From f34abb92f0addfe7383aed00164ba9589f750931 Mon Sep 17 00:00:00 2001 From: Niansong Zhang Date: Fri, 24 Jan 2025 16:17:48 -0500 Subject: [PATCH 01/16] machsuite initial commit --- examples/machsuite/GEMM/gemm_blocked.py | 31 + examples/machsuite/GEMM/gemm_blocked_opt.py | 23 + examples/machsuite/GEMM/gemm_ncubed.py | 15 + examples/machsuite/GEMM/gemm_ncubed_opt.py | 15 + examples/machsuite/GEMM/input.data | 8194 ++++++++++++ examples/machsuite/GEMM/setup-py312.sh | 24 + examples/machsuite/GEMM/testing.py | 33 + examples/machsuite/GEMM/testing_blocked.py | 29 + examples/machsuite/KMP.py | 115 + examples/machsuite/aes/aes.py | 190 + examples/machsuite/aes/check.data | 17 + examples/machsuite/aes/debug_aes.py | 59 + examples/machsuite/aes/input.data | 50 + examples/machsuite/aes/run_test.py | 37 + examples/machsuite/backprop/backprop.py | 251 + examples/machsuite/backprop/check.data | 5257 ++++++++ examples/machsuite/backprop/input.data | 7867 ++++++++++++ examples/machsuite/backprop/run_test.py | 46 + examples/machsuite/bfs/bfs_bulk_allo.py | 66 + examples/machsuite/bfs/bfs_bulk_python.py | 57 + examples/machsuite/bfs/bfs_queue_allo.py | 71 + examples/machsuite/bfs/bfs_queue_python.py | 57 + examples/machsuite/bfs/check.data | 11 + examples/machsuite/bfs/check2.data | 11 + examples/machsuite/bfs/generate.py | 82 + examples/machsuite/bfs/input.data | 4612 +++++++ examples/machsuite/bfs/support.py | 35 + examples/machsuite/check.data | 2049 +++ .../machsuite/fft/strided/check_strided.data | 2050 +++ .../machsuite/fft/strided/input_strided.data | 3076 +++++ examples/machsuite/fft/strided/strided_fft.py | 68 + .../machsuite/fft/strided/test_strided.py | 66 + .../fft/transpose/check_transpose.data | 1026 ++ .../fft/transpose/input_transpose.data | 1026 ++ .../machsuite/fft/transpose/test_transpose.py | 60 + .../machsuite/fft/transpose/transpose_fft.py | 550 + examples/machsuite/input.data | 2049 +++ examples/machsuite/md/grid/check.data | 1921 +++ examples/machsuite/md/grid/input.data | 1986 +++ examples/machsuite/md/grid/md.py | 265 + examples/machsuite/md/grid/md_kernel_test.py | 122 + examples/machsuite/md/grid/md_opt.py | 173 + examples/machsuite/md/knn/check.data | 771 ++ examples/machsuite/md/knn/input.data | 4868 ++++++++ examples/machsuite/md/knn/md.py | 199 + examples/machsuite/md/knn/md_kernel_test.py | 121 + examples/machsuite/md/knn/md_opt.py | 42 + examples/machsuite/md/knn/no-code.py | 15 + examples/machsuite/md/knn/reproduce.py | 17 + examples/machsuite/merge/check.data | 2049 +++ examples/machsuite/merge/check1.data | 7 + examples/machsuite/merge/input.data | 2049 +++ examples/machsuite/merge/input1.data | 7 + examples/machsuite/merge/mergesort.py | 64 + examples/machsuite/merge/testing.py | 34 + examples/machsuite/merge_sort | 57 + examples/machsuite/mergesort.py | 128 + .../machsuite/mergesort/testing_backup.py | 79 + examples/machsuite/spmv/crs/check.data | 495 + examples/machsuite/spmv/crs/crs.py | 74 + examples/machsuite/spmv/crs/input.data | 4325 +++++++ examples/machsuite/spmv/crs/run_test.py | 40 + examples/machsuite/spmv/ellpack/check.data | 495 + examples/machsuite/spmv/ellpack/ellpack.py | 68 + examples/machsuite/spmv/ellpack/input.data | 10377 ++++++++++++++++ examples/machsuite/spmv/ellpack/run_test.py | 37 + examples/machsuite/stencil2d.py | 95 + examples/machsuite/stencil3d.py | 144 + examples/machsuite/testing.py | 33 + examples/machsuite/viterbi/check.data | 141 + examples/machsuite/viterbi/input.data | 8400 +++++++++++++ examples/machsuite/viterbi/neg_loop_step.py | 16 + examples/machsuite/viterbi/read.py | 48 + examples/machsuite/viterbi/test.data | 19 + examples/machsuite/viterbi/viterbi.py | 64 + examples/machsuite/viterbi/viterbi_allo.py | 72 + examples/machsuite/viterbi/write.py | 6 + 77 files changed, 79198 insertions(+) create mode 100644 examples/machsuite/GEMM/gemm_blocked.py create mode 100644 examples/machsuite/GEMM/gemm_blocked_opt.py create mode 100644 examples/machsuite/GEMM/gemm_ncubed.py create mode 100644 examples/machsuite/GEMM/gemm_ncubed_opt.py create mode 100644 examples/machsuite/GEMM/input.data create mode 100644 examples/machsuite/GEMM/setup-py312.sh create mode 100644 examples/machsuite/GEMM/testing.py create mode 100644 examples/machsuite/GEMM/testing_blocked.py create mode 100644 examples/machsuite/KMP.py create mode 100644 examples/machsuite/aes/aes.py create mode 100644 examples/machsuite/aes/check.data create mode 100644 examples/machsuite/aes/debug_aes.py create mode 100644 examples/machsuite/aes/input.data create mode 100644 examples/machsuite/aes/run_test.py create mode 100644 examples/machsuite/backprop/backprop.py create mode 100644 examples/machsuite/backprop/check.data create mode 100644 examples/machsuite/backprop/input.data create mode 100644 examples/machsuite/backprop/run_test.py create mode 100644 examples/machsuite/bfs/bfs_bulk_allo.py create mode 100644 examples/machsuite/bfs/bfs_bulk_python.py create mode 100644 examples/machsuite/bfs/bfs_queue_allo.py create mode 100644 examples/machsuite/bfs/bfs_queue_python.py create mode 100644 examples/machsuite/bfs/check.data create mode 100644 examples/machsuite/bfs/check2.data create mode 100644 examples/machsuite/bfs/generate.py create mode 100644 examples/machsuite/bfs/input.data create mode 100644 examples/machsuite/bfs/support.py create mode 100644 examples/machsuite/check.data create mode 100644 examples/machsuite/fft/strided/check_strided.data create mode 100644 examples/machsuite/fft/strided/input_strided.data create mode 100644 examples/machsuite/fft/strided/strided_fft.py create mode 100644 examples/machsuite/fft/strided/test_strided.py create mode 100644 examples/machsuite/fft/transpose/check_transpose.data create mode 100644 examples/machsuite/fft/transpose/input_transpose.data create mode 100644 examples/machsuite/fft/transpose/test_transpose.py create mode 100644 examples/machsuite/fft/transpose/transpose_fft.py create mode 100644 examples/machsuite/input.data create mode 100644 examples/machsuite/md/grid/check.data create mode 100644 examples/machsuite/md/grid/input.data create mode 100644 examples/machsuite/md/grid/md.py create mode 100644 examples/machsuite/md/grid/md_kernel_test.py create mode 100644 examples/machsuite/md/grid/md_opt.py create mode 100644 examples/machsuite/md/knn/check.data create mode 100644 examples/machsuite/md/knn/input.data create mode 100644 examples/machsuite/md/knn/md.py create mode 100644 examples/machsuite/md/knn/md_kernel_test.py create mode 100644 examples/machsuite/md/knn/md_opt.py create mode 100644 examples/machsuite/md/knn/no-code.py create mode 100644 examples/machsuite/md/knn/reproduce.py create mode 100644 examples/machsuite/merge/check.data create mode 100644 examples/machsuite/merge/check1.data create mode 100644 examples/machsuite/merge/input.data create mode 100644 examples/machsuite/merge/input1.data create mode 100644 examples/machsuite/merge/mergesort.py create mode 100644 examples/machsuite/merge/testing.py create mode 100644 examples/machsuite/merge_sort create mode 100644 examples/machsuite/mergesort.py create mode 100644 examples/machsuite/mergesort/testing_backup.py create mode 100644 examples/machsuite/spmv/crs/check.data create mode 100644 examples/machsuite/spmv/crs/crs.py create mode 100644 examples/machsuite/spmv/crs/input.data create mode 100644 examples/machsuite/spmv/crs/run_test.py create mode 100644 examples/machsuite/spmv/ellpack/check.data create mode 100644 examples/machsuite/spmv/ellpack/ellpack.py create mode 100644 examples/machsuite/spmv/ellpack/input.data create mode 100644 examples/machsuite/spmv/ellpack/run_test.py create mode 100644 examples/machsuite/stencil2d.py create mode 100644 examples/machsuite/stencil3d.py create mode 100644 examples/machsuite/testing.py create mode 100644 examples/machsuite/viterbi/check.data create mode 100644 examples/machsuite/viterbi/input.data create mode 100644 examples/machsuite/viterbi/neg_loop_step.py create mode 100644 examples/machsuite/viterbi/read.py create mode 100644 examples/machsuite/viterbi/test.data create mode 100644 examples/machsuite/viterbi/viterbi.py create mode 100644 examples/machsuite/viterbi/viterbi_allo.py create mode 100644 examples/machsuite/viterbi/write.py diff --git a/examples/machsuite/GEMM/gemm_blocked.py b/examples/machsuite/GEMM/gemm_blocked.py new file mode 100644 index 0000000000..08bbbe1e41 --- /dev/null +++ b/examples/machsuite/GEMM/gemm_blocked.py @@ -0,0 +1,31 @@ +import allo +from allo.ir.types import int32 +import numpy as np +M, N, K = 1024, 1024, 1024 +block_size_value = 8 + +def bbgemm(A: int32[M, K], B: int32[K, N], S: int32) -> int32[M, N]: + C: int32[M, N] = 0 + + i_max: int32 = 0 + j_max: int32 = 0 + k_max: int32 = 0 + sum_value: int32 = 0 + + for i in range(0, M, S): + i_max = i + S if i + S < M else M + for j in range(0, N, S): + j_max = j + S if j + S < N else N + for k in range(0, K, S): + k_max = k + S if k + S < K else K + for ii in range(i, i_max): + for jj in range(j, j_max): + sum_value = 0 + for kk in range(k, k_max): + sum_value += A[ii, kk] * B[kk, jj] + C[ii, jj] += sum_value + return C + +s = allo.customize(bbgemm) +mod =s.build() +print(s.module) \ No newline at end of file diff --git a/examples/machsuite/GEMM/gemm_blocked_opt.py b/examples/machsuite/GEMM/gemm_blocked_opt.py new file mode 100644 index 0000000000..3b921fd12f --- /dev/null +++ b/examples/machsuite/GEMM/gemm_blocked_opt.py @@ -0,0 +1,23 @@ +import allo +from allo.ir.types import int32 +import numpy as np + + +def bbgemm(A: int32[64, 64], B: int32[64, 64]) -> int32[64, 64]: + C: int32[64, 64] = 0 + sum_value: int32[1] = 0 + + for i in range(0, 64, 8): + for j in range(0, 64, 8): + for k in range(0, 64, 8): + for ii in range(i, (i + 8) if (i + 8) < 64 else 64): + for jj in range(j, (j + 8) if (j + 8) < 64 else 64): + sum_value[0] = 0 + for kk in range(k, (k + 8) if (k + 8) < 64 else 64): + sum_value[0] += A[ii, kk] * B[kk, jj] + C[ii, jj] += sum_value[0] + return C + +s = allo.customize(bbgemm) +mod =s.build(target="vivado_hls", mode="csynth", project="gemm_blocked.prj") +# print(s.module) \ No newline at end of file diff --git a/examples/machsuite/GEMM/gemm_ncubed.py b/examples/machsuite/GEMM/gemm_ncubed.py new file mode 100644 index 0000000000..be672a862c --- /dev/null +++ b/examples/machsuite/GEMM/gemm_ncubed.py @@ -0,0 +1,15 @@ +import allo +from allo.ir.types import float32 +import numpy as np + +def gemm(A: float32[64, 64], B: float32[64, 64]) -> float32[64, 64]: + C: float32[64, 64] = 0.0 + for i, j in allo.grid(64, 64): + for k in allo.reduction(64): + C[i, j] += A[i, k] * B[k, j] + return C + + +s = allo.customize(gemm) +mod =s.build() +print(s.module) \ No newline at end of file diff --git a/examples/machsuite/GEMM/gemm_ncubed_opt.py b/examples/machsuite/GEMM/gemm_ncubed_opt.py new file mode 100644 index 0000000000..584c4710d3 --- /dev/null +++ b/examples/machsuite/GEMM/gemm_ncubed_opt.py @@ -0,0 +1,15 @@ +import allo +from allo.ir.types import int32 +import numpy as np +# M, N, K = 1024, 1024, 1024 + +def gemm(A: int32[64, 64], B: int32[64, 64]) -> int32[M, N]: + C: int32[64, 64] = 0.0 + for i, j in allo.grid(64, 64): + for k in allo.reduction(64): + C[i, j] += A[i, k] * B[k, j] + return C + +s = allo.customize(gemm) +mod =s.build(target="vitis_hls", mode="hw", project="gemm_ncubed.prj") +print(s.module) \ No newline at end of file diff --git a/examples/machsuite/GEMM/input.data b/examples/machsuite/GEMM/input.data new file mode 100644 index 0000000000..5e413733b7 --- /dev/null +++ b/examples/machsuite/GEMM/input.data @@ -0,0 +1,8194 @@ +%% +0.8483178396146527 +0.9316474009271629 +0.0749141099239747 +0.3243126095086337 +0.4889216894177568 +0.2003220013219365 +0.2465207945154783 +0.5009444841545747 +0.3833875674814791 +0.8638473264891788 +0.4270323830861616 +0.0263683207747022 +0.1798125277440863 +0.5388504032397917 +0.9782153590525915 +0.8309093043465101 +0.8577368190902865 +0.9543748287741737 +0.8490474371089849 +0.3694121479802369 +0.3352441047664209 +0.7552438928694989 +0.2817087394018067 +0.4852360002861091 +0.7268004045533238 +0.6343918397825450 +0.2104079488356254 +0.0395947057002634 +0.0400209978161234 +0.2976758337005888 +0.9521082225628823 +0.1866873697274503 +0.7358651200871347 +0.1361097436415447 +0.9090931683964897 +0.4604792296588825 +0.5769636562652027 +0.8616704275858206 +0.8767687582692533 +0.0279669403183254 +0.8816612565392817 +0.1866195592416753 +0.7633503369248252 +0.2150746941951263 +0.1339641300308199 +0.7161428864829403 +0.1365021466723779 +0.5001932391978972 +0.8470236345937937 +0.4470622249540837 +0.7140811894103265 +0.0127652175460312 +0.3876666127209407 +0.9958895038034786 +0.0926458725571736 +0.9676672240567189 +0.3736362838672994 +0.0488822949430138 +0.4076365668481068 +0.4603180906842517 +0.2873166763901486 +0.4365584272465929 +0.5850196896009423 +0.9590813817633715 +0.9980595552286854 +0.6068136140773602 +0.7043815368917442 +0.1974515966674346 +0.6575472564589070 +0.9454611044982865 +0.5747363779881197 +0.2194919783622648 +0.5763745454924379 +0.7153851752905834 +0.8911010718686341 +0.5206280483477259 +0.1501220678649025 +0.3812301813733660 +0.0463248309608765 +0.4254903780644615 +0.4973494195501764 +0.4281354730441760 +0.1142915128435944 +0.0804645407448647 +0.4373515560814680 +0.2582268915654431 +0.7683934478079263 +0.0766898881091194 +0.8463122892926332 +0.1107166721271598 +0.5840612962298976 +0.8557126220464411 +0.4838001677368423 +0.0621016340325793 +0.1310235740565679 +0.3776118887938892 +0.3530460812272584 +0.4149216674120018 +0.2064459122797230 +0.8343916891700796 +0.0932775064851222 +0.2731170192259920 +0.3356228717457055 +0.3267963290017710 +0.0435681404918652 +0.7228303690021292 +0.2107907960557750 +0.9615694238266003 +0.9326414560282523 +0.9394618799882867 +0.1764777376547630 +0.3732788212737727 +0.4000735922705779 +0.1120309369903489 +0.0511100243190568 +0.8575182783261570 +0.1349654718909908 +0.9723092959416103 +0.8067179481103881 +0.4657453752075365 +0.8214647023258758 +0.6642716262994925 +0.2924958180021960 +0.9396144243758447 +0.6692048055281263 +0.4554570494036198 +0.0154017302137861 +0.9462209557130911 +0.9279331770197743 +0.8926116198429296 +0.9844385803033128 +0.8235301034352464 +0.1171662519206369 +0.9738432213333370 +0.1702801969466125 +0.9700813330218533 +0.3431322540111262 +0.3521808070203251 +0.6456496860574097 +0.0078332098488572 +0.2780721231188467 +0.9308493287741327 +0.3391027675786487 +0.6387221774977941 +0.1387668025077644 +0.3193379819348149 +0.2938847760898528 +0.3760463174887679 +0.1542553433051521 +0.6639159037834084 +0.3564936178023257 +0.4878134574691712 +0.0345427675439928 +0.5848943772682992 +0.0693781648667100 +0.2191364932019932 +0.2761112415673199 +0.2440285243758249 +0.1440250692777039 +0.7614656056422392 +0.9809620066037130 +0.9348033021342805 +0.7552137859210596 +0.6065311722051752 +0.5503350398133949 +0.6275061460415338 +0.0111472337609468 +0.1246312888209616 +0.4231461451579110 +0.6484414922888584 +0.2337922181906040 +0.6779685516426726 +0.8782741573686651 +0.6177010100415349 +0.2939854446950563 +0.8761871775505162 +0.1810071211477334 +0.8720289503655566 +0.2532811225707449 +0.6100117892988954 +0.9301354739598914 +0.5191027833281141 +0.1431706944572742 +0.1708568797583734 +0.6242359909565518 +0.9782736794109049 +0.9891683505866096 +0.0196826080659797 +0.2768293352286383 +0.0768308861291690 +0.6270659160444320 +0.3147389465422545 +0.5336071033488232 +0.0120537996182269 +0.5307654724048916 +0.5153605911637142 +0.7528566241924224 +0.7033589194426896 +0.3209196647064811 +0.4410043195102882 +0.0111739864620048 +0.2863026779679601 +0.2683100918304755 +0.2979827363431253 +0.3721852873425603 +0.1633665685261703 +0.6533281645944697 +0.2843454312853405 +0.9051319563159713 +0.5983082899373767 +0.5757792223158209 +0.2692903346720601 +0.6096013896981760 +0.0901025770439411 +0.4634050247425767 +0.6204605185689965 +0.5112592424386806 +0.4937665420329518 +0.4695717035134276 +0.9097122918366112 +0.3201641400746201 +0.9905173479273656 +0.0056370341850618 +0.3921534977584564 +0.3346194563079505 +0.6360433801365077 +0.5201155310158935 +0.4362019819492165 +0.3809198621760362 +0.5670535082271564 +0.0529453230927324 +0.6790772399224166 +0.2868627608072348 +0.9392660254042972 +0.5753465166316099 +0.6541005362632644 +0.2817555840484371 +0.6612642174687781 +0.9423159385445181 +0.9174747407529212 +0.9779240481377166 +0.2986892413220574 +0.1916000764166038 +0.7468217076566656 +0.5936366233299584 +0.5410113779987784 +0.0748945408290509 +0.3395152960985217 +0.7470779072815197 +0.3161020201267201 +0.7374536219431782 +0.2805479172708150 +0.7130278376509701 +0.8459418603364357 +0.7522291563308318 +0.7673406794115867 +0.9791920811987473 +0.1123833682832090 +0.5471981463946101 +0.0433784996754932 +0.7831913287613563 +0.1725964107004632 +0.8671010177349522 +0.6393078646525761 +0.3310881842077714 +0.5352403136965146 +0.7661294193430825 +0.9244074576810648 +0.0287942216685237 +0.6707214734656840 +0.1748621195872093 +0.2273862811658987 +0.2993243342441511 +0.1768052463670724 +0.4825229633452092 +0.0222151629699995 +0.1239513072997847 +0.2987613558162890 +0.1379142600723082 +0.3440376084075450 +0.4373647696000651 +0.8535612938381643 +0.1715420896272014 +0.4749277287386244 +0.1199070948150680 +0.8089862728472129 +0.1441451973256533 +0.4292770696419592 +0.5211270487544926 +0.0011758916400356 +0.7007083090818177 +0.5281931199838487 +0.7671373984849126 +0.6021015440913253 +0.8912456482822858 +0.7899403302123719 +0.6772490738704474 +0.4708856876330734 +0.1763984475095891 +0.1463600662811033 +0.0165949685352888 +0.6068381808285457 +0.3224651525151173 +0.5148486338006011 +0.8463707450685359 +0.2157857682105999 +0.4175494429555621 +0.3779135888568587 +0.1956304117824023 +0.2671144901023431 +0.2978924140317022 +0.1791553064131353 +0.1601117923815020 +0.4436703260522413 +0.4354899010428503 +0.4863644602979916 +0.0455654999679936 +0.9061800810138900 +0.7274221170832363 +0.9082424735107425 +0.1397186081418257 +0.8710584598934502 +0.6569208507280179 +0.9408021142124381 +0.8543062414871980 +0.6782227444037920 +0.9034898824859597 +0.4495484633567567 +0.2222523874894407 +0.3137809125552068 +0.6478283781152648 +0.4165082365846282 +0.0360033802245706 +0.1218543381677559 +0.5108797423897457 +0.5180611700108055 +0.6056074920261487 +0.8779639279963387 +0.9471242759165983 +0.0824748458740915 +0.8674863090505956 +0.7868870903622686 +0.3087124472657461 +0.5009663253734257 +0.1286847456523950 +0.8405951440090710 +0.8737823046846828 +0.5714577591226613 +0.3163790157527726 +0.7294478876193773 +0.7828848822471060 +0.9947426877569866 +0.6268310698491563 +0.9471211534578475 +0.2243844220207657 +0.8573988054285285 +0.2936439994440631 +0.6987905411296418 +0.9507698943631454 +0.2277384525626225 +0.0983196954057779 +0.1158788858867381 +0.3943691258852570 +0.6522812929588194 +0.9323529611324425 +0.2505797725678027 +0.9463081170472853 +0.6972081938469031 +0.2217159609909230 +0.0158618584757915 +0.7992336160031288 +0.4916870887409591 +0.4203222451574106 +0.4954300164669786 +0.4072567181943900 +0.9436149636721938 +0.1115558766484206 +0.2133777544768501 +0.4926894729576140 +0.2288864259039310 +0.9233105307500995 +0.5522443624207825 +0.7804758780629942 +0.8577533254670533 +0.5175537145011389 +0.7458849304738195 +0.4700598126387943 +0.7256984927494721 +0.4946461243081034 +0.5928752445277561 +0.1435942641956947 +0.4530628816644502 +0.7303585087668238 +0.6771458036224584 +0.9821343857747540 +0.0328071121334004 +0.1185647260517267 +0.8226081939044526 +0.8158652049794541 +0.8828048367094834 +0.6291305933887741 +0.0868219653016111 +0.2738519339014919 +0.7144746575303565 +0.4011478376237659 +0.5007377866913673 +0.2288648035566036 +0.4618209141005981 +0.4425821772294087 +0.8664060965744277 +0.9349865168431754 +0.6358704096466863 +0.0008392427989186 +0.1111643065065295 +0.5246200509372015 +0.1354282528990725 +0.9424363035310214 +0.0744909276406249 +0.0310511640320245 +0.3761947915818324 +0.0217261429493881 +0.4949483768791444 +0.0973932294672044 +0.2981311546048886 +0.4083570361665385 +0.9868219940278903 +0.5543595302377633 +0.8069034553160739 +0.7665658438032671 +0.4969299039679246 +0.8434804973005380 +0.7665036069247364 +0.3282416327845119 +0.2149426327922223 +0.2818218695863094 +0.0961871139367003 +0.5579491260907850 +0.5867774049443926 +0.0881760013338349 +0.9878358065870914 +0.1061326855761554 +0.7271613020145520 +0.5798325617779146 +0.1155059662760101 +0.6973883104954021 +0.5049354722387228 +0.6508972709054981 +0.9006534219964644 +0.9605391610546545 +0.1394240512290819 +0.1671649450914079 +0.1664775697290567 +0.4080768206037291 +0.8477853400387060 +0.4499655955247234 +0.0255424858209450 +0.8505854782984940 +0.4636431798425881 +0.8918284279836336 +0.4856684644884649 +0.1659858594059837 +0.0238823839065784 +0.7994671317638116 +0.3751432912824046 +0.3804227384496434 +0.8413148607509543 +0.6506283850297021 +0.9766834855366925 +0.2191262745253812 +0.0248922210452291 +0.2231645580382334 +0.7404604855597532 +0.9355345620434551 +0.1653789667168293 +0.1059396938307424 +0.0020044749140114 +0.4132138001260813 +0.3312924847795359 +0.6492165403032210 +0.2445108317174756 +0.2171661955475684 +0.0119041354225503 +0.3199195886761848 +0.8799274836463801 +0.1697847195140275 +0.8799610104744855 +0.8029777980474817 +0.7691105305599997 +0.8614010915991184 +0.1349045754696620 +0.1039159475547794 +0.8460187964385510 +0.3083002773220541 +0.2412000351515887 +0.6655076815675369 +0.7731655682148677 +0.3339247226528733 +0.6582442922969689 +0.5215653744435931 +0.3567305965895141 +0.2981062040854478 +0.3833902369228816 +0.6969715537271688 +0.6615875892135347 +0.2121642451626392 +0.6571424956786973 +0.5146580817967552 +0.2742574950854690 +0.0533838274345822 +0.3421116783190124 +0.4346208023329561 +0.9428593202287435 +0.8746535554914753 +0.2787038915386076 +0.0607629710157441 +0.9475482605076305 +0.8000948050982155 +0.6696032733350000 +0.1191064572806398 +0.2713718953917491 +0.9754531978352212 +0.2555018393548908 +0.3156812728266634 +0.0378755150817178 +0.9773316421998351 +0.4036409576832637 +0.5324200478158887 +0.2225676235619323 +0.8308367730086326 +0.1544569956255000 +0.0976873451282712 +0.1354281620445729 +0.4682417610236912 +0.4112113092197985 +0.8283636157802693 +0.2354485044044702 +0.5138595908016150 +0.5212459531899646 +0.4374620898104384 +0.2897529706909659 +0.7560560479391087 +0.3444473384695645 +0.2101710283430648 +0.1913184876725962 +0.0194703354524034 +0.8244829999712530 +0.7004725373098700 +0.8548257075248383 +0.7529110407603758 +0.7272569630111225 +0.3430262664463163 +0.0543663112093189 +0.8584713279607648 +0.7237250361599911 +0.6861199156789359 +0.5769331828313227 +0.8880877406289909 +0.6817980021300837 +0.7181124881078564 +0.9474077459051521 +0.1669314152562441 +0.7977844154557096 +0.8776813456744198 +0.3617756810620581 +0.9250877956455573 +0.7853559941128757 +0.1073013935372346 +0.5154524213956178 +0.7705336169182980 +0.7455632462415369 +0.6858314418579472 +0.1451982048517642 +0.9769921914533929 +0.2707441083651104 +0.3692377801896228 +0.7895927671791430 +0.6419221159474837 +0.7595767306201764 +0.7091781136952096 +0.3356167379256038 +0.0962530381386420 +0.8259778697714617 +0.9345988394413669 +0.3858489471473220 +0.0361507946973068 +0.4856627526839860 +0.1892051894625248 +0.4575719204283109 +0.2364687687064010 +0.3024395144952008 +0.4236979859470674 +0.5712537893453448 +0.0743859838433636 +0.6992511255983868 +0.2143443403429400 +0.2557727874806550 +0.6020575222876966 +0.9329008633467030 +0.4591264949733487 +0.1316420504742486 +0.1834118248178533 +0.8616452724482049 +0.4934215152695882 +0.7063222135519909 +0.8890629485443693 +0.3378400307458436 +0.8999166805341422 +0.6545776790901677 +0.2924360980490139 +0.5331525361872268 +0.8521209023427115 +0.5028403366193390 +0.1964219728651424 +0.9007642452958530 +0.6041960938460277 +0.2353145244248827 +0.8739339865772545 +0.2358180816613767 +0.0053266675227582 +0.0245024808476083 +0.4565489134444910 +0.2971400601481179 +0.3462918638414297 +0.3174831292643161 +0.1022473410018786 +0.6345702753207734 +0.7986179739274762 +0.0887550087202571 +0.5395607076593224 +0.5027804701398525 +0.9545712661808851 +0.1311646089110300 +0.3816839551933244 +0.0287340536949976 +0.9741228417106041 +0.8881115817590194 +0.9443051692007695 +0.3973297345018290 +0.2435155738852830 +0.1652102803404903 +0.3243142246189342 +0.8630564791046341 +0.7427364645761575 +0.7628397127536366 +0.2767754158606018 +0.0538923118737419 +0.1873698021206745 +0.1533627910315691 +0.4113317799803305 +0.1961934245958332 +0.9159060981202446 +0.8137254244255523 +0.4905641817376404 +0.1733549482124006 +0.5895471919253229 +0.0471340501793856 +0.9186568804660693 +0.2220043575160327 +0.8392061621265459 +0.4075368623069701 +0.8249215210109830 +0.9296441921715146 +0.7625185210257652 +0.5646893167247345 +0.6062559916719461 +0.7733470603381122 +0.3581334207021432 +0.2525868596630824 +0.8030837979013034 +0.9078980508746070 +0.0213157617704918 +0.6198872241946154 +0.6982054377522401 +0.9125352939114136 +0.8662395645424570 +0.4964301003594250 +0.4589454657543227 +0.9729557362505116 +0.4761687642040447 +0.2915994889708689 +0.0625496872006724 +0.1082706330984529 +0.2676008131717454 +0.4510148028230647 +0.4210224473120947 +0.1548976062879481 +0.8710345719788597 +0.2967209912992471 +0.8860973384349545 +0.1028653706204793 +0.9112527657530287 +0.8316115232944399 +0.7876503979181846 +0.5703146078114243 +0.7668035869923945 +0.9765830388028187 +0.0635054924724125 +0.5053664034118617 +0.1667977138441292 +0.9084464933427940 +0.7396569990701948 +0.8901329413650267 +0.1282122077353620 +0.4280410688231076 +0.3546730853650018 +0.6740117202355542 +0.6993058676596479 +0.1008720531313658 +0.1655201742599672 +0.1678607872980307 +0.3498860824240698 +0.6979183623465720 +0.2972227666959424 +0.2718621421393922 +0.1371334239013910 +0.4695049786139125 +0.8856335695096561 +0.0421636389002602 +0.6171453064703414 +0.8408735929295654 +0.0821163784732936 +0.6958031307930189 +0.6798926151186255 +0.6338000423355364 +0.4342430860317124 +0.2476013748163865 +0.1524726995823791 +0.8910536354990762 +0.4307119981575572 +0.9065538585311617 +0.2802491643541730 +0.8519531607780675 +0.1309172521114062 +0.5223657172611972 +0.5940340561115732 +0.3471992523602176 +0.8553387616652556 +0.6768882381811585 +0.5180580908117607 +0.3464191929026591 +0.1534112256529780 +0.0416632587526700 +0.8032127017104451 +0.4956108399308800 +0.4327021758264568 +0.3047239994232592 +0.8910031103464617 +0.3485973984888802 +0.6992259055414151 +0.9250438169849708 +0.7898209042260892 +0.6802180037968130 +0.2967131969491587 +0.2720348328492520 +0.4998718700371028 +0.9163578329533125 +0.1844334098123010 +0.0446327913910037 +0.8986315754794177 +0.9565339328231259 +0.5917358349016343 +0.3039301433909674 +0.5032089054635454 +0.0098436923475592 +0.2290618525922859 +0.9941160211092916 +0.8018469588895006 +0.4515732147894628 +0.8513496134842463 +0.0670183661705313 +0.6178567164242852 +0.4182952572441551 +0.5383931272117743 +0.8023733482266281 +0.5417656241717650 +0.8788865026335969 +0.9290448072784062 +0.8280212198734908 +0.7615164777749828 +0.2390743428106357 +0.3649655704104566 +0.9861748858550504 +0.9590151332996334 +0.7884061132262163 +0.0238172507286693 +0.0288057462668017 +0.7563025130758088 +0.6327250271593858 +0.6647564006738251 +0.0403168932323779 +0.0851091202383121 +0.7131062167973624 +0.8266676506818488 +0.9699554487883290 +0.8566660020465017 +0.1673708090915806 +0.4935407356523587 +0.2583648166914596 +0.1595971470629153 +0.2616218585439897 +0.1565142635892891 +0.3304712882926483 +0.9311919539307059 +0.1237307163308776 +0.8449149809933604 +0.3000564008709446 +0.1208132269579128 +0.8551890471212074 +0.0613489685386913 +0.7006205445868144 +0.1740531003432544 +0.7732481261159894 +0.1343660168913316 +0.7749930699273819 +0.9868025567899982 +0.7757411308234101 +0.1887441922584664 +0.0740016559370295 +0.2881953716589823 +0.5678458093960356 +0.4288866101517670 +0.0670517898261449 +0.4631190147842646 +0.2993357137446890 +0.9724694844095528 +0.2340145672977075 +0.2952070238889182 +0.1034148020388507 +0.2599693743121106 +0.1983623100747410 +0.7891247745270171 +0.1365468411207909 +0.1704415101615018 +0.3795300396545589 +0.7872552286992399 +0.6761356879505004 +0.5746224709379114 +0.2599649322694619 +0.4465083963340758 +0.1772230114168324 +0.8958712439541665 +0.6755852294955170 +0.0424740404216321 +0.3474975250466014 +0.2787291110962878 +0.4239709392959372 +0.1264310228573687 +0.3030433007684182 +0.6167934317373043 +0.9774138579905517 +0.7922540390432117 +0.9754042035037350 +0.2937298063641197 +0.0493613402709324 +0.2131441317680902 +0.7118006990276875 +0.1926245778050174 +0.0565962349320215 +0.1083695656991906 +0.3233653572329019 +0.6883633369417523 +0.8142820788077080 +0.4708595737453577 +0.9574256940403741 +0.8577722569424684 +0.0390429387589084 +0.6485406197671680 +0.2286115179667637 +0.2505120841371920 +0.4679479656413075 +0.4803960416666576 +0.6427271305126666 +0.1298867853024623 +0.2293811386379165 +0.1945257046607350 +0.5737600072544007 +0.9456753829298495 +0.2914040068729966 +0.0411626576385112 +0.0851770531853963 +0.7512162357048413 +0.9114283912185644 +0.1084939194571904 +0.0340797220314683 +0.6686522970980507 +0.1906153990139051 +0.3274779492389834 +0.2516885885036551 +0.0772963287875257 +0.8935280009426281 +0.6201968041430754 +0.6029673627910744 +0.2263063654776020 +0.0421182878029569 +0.0135692741556023 +0.3516307018310701 +0.3075847105833159 +0.5301877412643056 +0.3610995616465294 +0.0932831537509481 +0.5333126231650014 +0.8783698621094786 +0.4581192548325713 +0.6692522865725606 +0.3856532909282943 +0.6141582130483899 +0.7281831720947005 +0.1948844614969170 +0.4943642276124682 +0.0784046332183870 +0.4345422259377688 +0.6558368046570618 +0.2400154516354979 +0.8126312836129430 +0.0042070986675205 +0.7770597741058617 +0.1301261926096061 +0.9201150257154005 +0.0150107888897510 +0.8096920536489608 +0.4692264045572709 +0.6698343981997922 +0.4625374292719958 +0.9620387146985410 +0.8815344945317943 +0.3039975463072964 +0.1632562644673550 +0.6693371407177068 +0.0255299687668171 +0.8262515235259924 +0.8290796078644540 +0.5251654865487730 +0.1769262026207146 +0.4146529856406467 +0.6257710753225278 +0.5385762819453994 +0.3467421010954000 +0.1803570538412348 +0.0062855490090003 +0.1631445529039522 +0.4952396311548886 +0.1707236567576024 +0.9432265054633366 +0.7188326227851898 +0.0739719232510591 +0.3438571127652211 +0.7995944476081212 +0.1332539980868194 +0.0690427248469638 +0.9524527209180689 +0.3688802404953913 +0.4580401459470407 +0.7170697644292721 +0.1786917333296686 +0.3231652528555629 +0.0632698207861022 +0.2341749143379414 +0.4131050383018145 +0.2951629865399300 +0.2573327687674984 +0.5130724364261614 +0.1589627169488473 +0.1819274409586360 +0.3605838202714328 +0.5440325678864545 +0.9090988849041570 +0.9379179733105221 +0.0141064347307200 +0.8508626122118714 +0.8167047819570149 +0.2623920121133221 +0.4495180123110233 +0.6073459575540703 +0.8055352308781114 +0.0827481756805070 +0.6495691246737028 +0.9557837386834148 +0.1689731366639478 +0.4739915237375780 +0.4228752065265029 +0.3864621066601071 +0.5216681823333275 +0.5101372326813385 +0.9282979463152260 +0.1934401620509328 +0.4407899952942061 +0.7970175752643954 +0.2477094328926093 +0.4700907027077451 +0.1180233354974776 +0.8422914801798748 +0.1531763443715683 +0.9784896365217246 +0.6142847292421334 +0.7350009968521926 +0.1559845355507213 +0.6408397957395198 +0.8871901348808436 +0.9853156529299215 +0.2043291709958035 +0.6791988294404089 +0.1737458412194951 +0.5556855949910641 +0.1662239833913383 +0.9252958993331035 +0.8815207942410712 +0.9207020404321706 +0.9462893018422216 +0.4915897861261869 +0.0532454258881340 +0.6745415400933488 +0.5767564764496971 +0.4995223250778442 +0.5741762963226479 +0.2972223117023296 +0.2369406864338512 +0.1705331838829866 +0.2544590026820316 +0.5933356553889287 +0.7557815104974221 +0.7308638669478563 +0.2163376957510569 +0.2586691231426438 +0.7553707339814911 +0.7346471788703769 +0.6851996707269928 +0.9561268831958318 +0.1776286268103218 +0.2090638796687267 +0.9208621583771288 +0.8812732646074325 +0.9508210687765537 +0.5758670702821425 +0.9854571787699822 +0.5933509225601570 +0.6604902179373257 +0.5584042648968202 +0.1729579729389596 +0.6564298508926651 +0.5830955438100045 +0.1511502127634319 +0.8334491162950335 +0.8390160418908958 +0.9498751132286368 +0.6805358424067183 +0.8917235509170629 +0.0579814337999107 +0.6969147789487629 +0.9731396352692780 +0.9648309337183751 +0.4480131490653159 +0.6360570365851460 +0.4915634649500484 +0.5743495417164315 +0.0506853134613660 +0.9193717203491890 +0.7636754938798417 +0.5903386060266718 +0.8494671255286941 +0.0739589906184266 +0.1899608827416598 +0.2538771945190215 +0.5549114767506421 +0.1512263034010119 +0.4704508482943693 +0.1139597810648855 +0.0081304123387332 +0.3214152877358947 +0.5058998597255967 +0.0024055063574932 +0.7229172036806094 +0.5087455328763326 +0.9655936820644072 +0.8051010575907215 +0.4643465008922253 +0.0474399070116224 +0.9881621738418157 +0.7421226355354282 +0.3629059508503248 +0.8925092177115014 +0.3188253775398846 +0.7615894499929026 +0.7860659345794263 +0.4274153344059541 +0.7506546481352957 +0.5117001905727838 +0.3142340252767178 +0.8396564812580460 +0.5533553856894283 +0.0121274426537729 +0.5099600179554283 +0.5515822970467751 +0.4417897139255623 +0.3099016162147389 +0.4920624029339674 +0.5445581611344861 +0.4216441834210417 +0.8777206587586367 +0.1495164713373523 +0.1831734514961648 +0.6802851933301981 +0.7650830052557893 +0.9975923957784105 +0.9918251862171550 +0.4221855138587343 +0.0493191080438314 +0.0907927261640321 +0.4756095856665302 +0.9296772780500112 +0.5313833738408521 +0.3553404222259285 +0.9298325596427710 +0.5203209861606916 +0.9814207600255722 +0.2397310019979580 +0.7668891880528556 +0.8258388168740718 +0.3750748486478326 +0.5810905371543164 +0.8283499836237471 +0.6595210877066515 +0.7348804125761836 +0.9582625853614675 +0.2956105741737018 +0.0449286630335014 +0.0881678863191049 +0.5128654175628093 +0.7286789583500690 +0.7746266141732618 +0.4910027259108165 +0.9582726479591426 +0.0455779586202578 +0.2511679936357397 +0.5950106288387715 +0.4093814302871493 +0.7920920765654557 +0.4807657545846785 +0.0644004221288580 +0.3604449818921059 +0.0149572948115759 +0.4572205672474317 +0.6500070579303660 +0.0857118129856162 +0.5149312986602372 +0.7259681538845659 +0.2807028792316934 +0.5678912487231295 +0.3027346086447427 +0.6027504146555527 +0.7888812709724224 +0.2095826733090249 +0.8710406122099337 +0.6144933973046902 +0.6731327025888862 +0.4660899259694030 +0.7593567503491224 +0.2631461563643998 +0.5907286543078356 +0.3308505541524190 +0.5902161819117852 +0.7655084118527854 +0.4787799428840276 +0.4260775139075946 +0.8520342917015215 +0.8609163564587169 +0.6285247522380816 +0.8873855914095965 +0.8773130229728554 +0.8474816953396310 +0.6632538077450801 +0.2491645066391866 +0.7028640101614491 +0.4035199579387483 +0.9960145295541215 +0.9511958635802541 +0.0819458983611275 +0.4934417933954853 +0.9612731335633516 +0.4539713643731078 +0.2835148173802094 +0.3299591313903339 +0.9469219869534339 +0.5569633761950359 +0.7783086704975904 +0.3757939716284633 +0.6320330796016872 +0.1575048003110159 +0.8603209340999428 +0.1104494711150759 +0.3315802806881127 +0.9830823457733846 +0.6138286519048827 +0.1468546406772117 +0.5303673577178163 +0.2142054358282510 +0.3156277528064569 +0.1168134761052319 +0.8641601000909435 +0.7412505756449894 +0.8929930420712373 +0.0370980474156693 +0.0833232565561686 +0.4591527565322978 +0.1605298255070592 +0.6159411041058860 +0.4985330815312950 +0.5368497894993722 +0.9390437945276464 +0.0909174562054448 +0.7732347078126135 +0.0735467691323205 +0.5964050836719743 +0.1475769219673463 +0.8936978238715337 +0.7244259915012240 +0.0727299453017558 +0.8719649899180534 +0.5787769379783843 +0.2379618848763425 +0.3347332345812675 +0.4840564894010427 +0.6254147522265978 +0.9692483998140925 +0.2663324295761842 +0.8840743805053830 +0.9454549465199087 +0.4260074016626994 +0.9392846118081410 +0.5612562105372151 +0.7183808978110240 +0.1810680799630747 +0.8836901232350469 +0.4306697602251128 +0.7479959824325308 +0.6017788602363955 +0.5838778581038879 +0.5444577643784778 +0.7257594794702550 +0.2410766860776957 +0.0693989810888280 +0.2812459689902557 +0.3176871138156662 +0.1726872233798366 +0.3235485781729581 +0.9284452397436733 +0.1623963081018855 +0.3108011367098680 +0.2586359209074861 +0.8384687836703300 +0.3050040805832570 +0.3618381349601113 +0.8529214888669500 +0.0194484695774601 +0.1554043499468879 +0.7219812672161211 +0.3012278948439847 +0.6242162002445819 +0.1787586078961123 +0.4612489101437085 +0.3867759227666984 +0.9396384644903751 +0.3505369540379645 +0.0419862136006587 +0.6557909085470451 +0.4556307965914432 +0.3714408100583654 +0.0292259135336660 +0.3219491289299332 +0.5613785988789820 +0.3532440293170446 +0.5413331599498716 +0.8243836253257907 +0.6604627578446109 +0.5634758937599540 +0.8540602042025437 +0.2371237902808737 +0.4591862410798935 +0.9690754325088510 +0.2139059639022128 +0.2324053015891293 +0.5623895344973615 +0.8850335964550572 +0.7415716132615051 +0.3905986164184125 +0.4473561969957039 +0.2474559056534647 +0.2450611111591871 +0.5634591813883659 +0.3675339651465732 +0.2469487773298110 +0.0555018599915761 +0.8996384466974866 +0.8429674019404689 +0.8171247585099440 +0.4793241292623960 +0.8590187260507717 +0.7181106557075176 +0.4965537109077771 +0.1668554868014473 +0.7120082978814256 +0.1361091799656849 +0.4027368771426713 +0.5097822805293074 +0.8967054930297859 +0.0677103170544368 +0.6034582654963560 +0.6550736247566969 +0.7407499552981331 +0.1292736897142973 +0.6930984835338998 +0.9452985705440307 +0.1412682515988833 +0.9203816951581538 +0.6083561055364055 +0.5628747621692389 +0.7602851804696842 +0.3160910119956966 +0.3655335386487320 +0.6296483223578682 +0.1934601450628901 +0.8179122459218160 +0.0490338644092028 +0.0471529488825729 +0.3804954406343724 +0.7166828189201992 +0.1445169305224963 +0.3829097355770772 +0.6315580068239689 +0.2335449829752699 +0.8040712545961126 +0.8776686154844410 +0.0229395889793185 +0.3973466496765722 +0.8436000809166979 +0.7958470057543354 +0.2780522875987176 +0.7468560547340364 +0.3510238519003651 +0.6175971436108465 +0.3940334864492763 +0.3237289141021380 +0.6877464519208845 +0.8984910975528118 +0.2684957943012544 +0.9433321864632048 +0.4901254615239304 +0.8473004971556561 +0.2930547390994029 +0.0140137578113008 +0.5308095920948962 +0.5733962430222072 +0.5561864159889069 +0.0750038383175027 +0.8003035313042662 +0.6195414012134963 +0.9910842494238157 +0.7091449492244239 +0.9731754448739771 +0.6847267734240555 +0.8590727910065618 +0.2343727372384076 +0.7034661540715051 +0.1064256866112102 +0.9382879863100901 +0.9592566943512906 +0.2994319742296596 +0.4309380561607828 +0.2765762635463608 +0.0500565948669185 +0.2826402097189002 +0.6799558557909341 +0.0344349670933182 +0.4944847494279151 +0.1818022911244169 +0.6577952977569871 +0.3955028612918697 +0.2441014576448463 +0.2415817883514426 +0.8540628125496926 +0.9682754154320869 +0.7787056157160520 +0.3988162963343365 +0.2409746663443497 +0.3271050685864407 +0.7183544960822831 +0.4741012071044621 +0.1963010834439670 +0.3804837148390998 +0.9255769055986287 +0.7682160439406055 +0.7754160115251729 +0.2254982017946379 +0.1592403704332606 +0.0417334873913729 +0.0126303341468577 +0.6507229436840348 +0.2317079054492765 +0.4585944636012668 +0.5301768198669289 +0.3919749866941878 +0.2640394621901843 +0.8826151599381713 +0.7448260047904357 +0.6968131092901025 +0.4878163373107030 +0.5309621289984101 +0.9777618767773157 +0.4627340421193095 +0.6983257143316665 +0.9720186799758442 +0.8324308318947888 +0.8699490023657372 +0.0957762018896637 +0.5776281924552997 +0.3115701794689702 +0.9971950340969689 +0.5130857110175624 +0.5234793169055783 +0.1007878387452373 +0.8804488531243910 +0.9347985059363554 +0.3146524839695926 +0.8300606525813007 +0.3927354461623758 +0.9820830106767154 +0.9149605321903987 +0.8126715781600673 +0.7018064616960138 +0.1126391921619974 +0.0861386253837150 +0.8658002209892777 +0.3245950979090420 +0.3938599269621023 +0.4348839826917701 +0.2124210282086236 +0.2298455829710880 +0.6055511425403319 +0.9222468653910245 +0.7820123292480046 +0.3302189553196816 +0.4843547856283799 +0.6897116034068658 +0.4032191766472548 +0.0321715783443726 +0.6000587665795133 +0.4282987034073391 +0.8745485049376570 +0.0767901834220190 +0.0893560489672005 +0.1350866476200832 +0.9693953608763296 +0.2798904101812061 +0.7703273223936905 +0.7764131659013896 +0.1542318403539684 +0.1820222517361119 +0.4217099856357790 +0.9831573290620735 +0.6717182621594086 +0.8180800199550459 +0.2721533164039120 +0.5170262633435022 +0.8112589660218131 +0.2887155760842149 +0.9924844103214874 +0.3324188211741472 +0.7009501970004657 +0.1110790593365149 +0.6875013197897945 +0.8114741873564465 +0.1961532691179642 +0.9749041757349296 +0.3722314796836262 +0.5029472684330377 +0.9938476870707592 +0.0785730891140177 +0.6873582052961151 +0.4549736415715384 +0.9584584294520418 +0.0494693101001363 +0.8499211733766552 +0.8075483551213346 +0.0184471548072749 +0.6205550966495932 +0.2366009421231575 +0.2030949221187415 +0.5981159311129930 +0.9522309466890955 +0.0166728484127095 +0.3736006641494428 +0.6548186088671466 +0.1153397624080071 +0.0161426774140987 +0.4796532412059872 +0.8827293521920049 +0.8042240778717331 +0.7621198835650267 +0.7561972650978945 +0.2795150857818947 +0.5361401046257658 +0.5598196025166333 +0.8729179719433231 +0.1954404252719764 +0.2014100952484681 +0.1104680296969008 +0.7106161585006977 +0.6312021971134438 +0.8984380320481528 +0.0440297569545808 +0.7524714184058229 +0.0667762296617902 +0.5837452107390664 +0.3626103834518689 +0.1832234279209112 +0.9312597340937907 +0.3230099759712715 +0.5139531123073339 +0.7239110847414717 +0.1781181115534966 +0.0531736206958139 +0.2111472411019038 +0.8554210263875838 +0.2115023971522408 +0.0806250405404240 +0.4725169714003127 +0.3502591260947862 +0.4272217401315196 +0.1286186339222690 +0.9632715087890527 +0.0724397689882399 +0.6206533508540893 +0.5033159949065573 +0.5440038790650273 +0.8533566586590772 +0.4065634518225006 +0.7359402951365357 +0.8935902947640075 +0.6271628117198540 +0.4694868266684950 +0.6937750821248603 +0.4378228031788631 +0.3150690752240649 +0.5351090949263548 +0.0550788995008191 +0.4028443227274215 +0.7500785123281940 +0.1835748146894443 +0.6631130400133519 +0.3930599077517083 +0.5789793152605277 +0.5181536051716817 +0.0777152573410451 +0.3201978479111682 +0.4271012766044924 +0.6186072368458863 +0.9718373694239282 +0.4120617704475453 +0.1343350530927840 +0.0981680328985104 +0.1449670647589225 +0.7202036281776740 +0.8657837591220954 +0.5739259319905322 +0.9684378632421182 +0.1786788434086288 +0.3685664837181979 +0.4621210275120023 +0.9113413159246286 +0.6321175130127841 +0.7914041217826194 +0.8760256234789781 +0.6941567759021646 +0.1275647251217849 +0.9080878193335128 +0.4669317926029261 +0.7914136221941976 +0.4932004557502185 +0.3107141881576834 +0.2651248914852155 +0.0315874003127839 +0.1038026875779222 +0.1661213973109814 +0.8433570087297781 +0.6137293818564650 +0.6062688300359890 +0.3459090516535702 +0.8681016381393473 +0.2185817151286858 +0.0254103623557117 +0.3330585822858419 +0.6333724579092227 +0.1828167260647722 +0.9364749563297090 +0.5351399185442015 +0.4522656154239647 +0.5488383900509531 +0.4505403664333439 +0.8441586420094294 +0.5946679726769909 +0.6048383618269364 +0.1255530722287846 +0.2054214690608080 +0.8873205341178325 +0.5293648890946622 +0.8048778866473214 +0.6161451029523104 +0.6257937922945630 +0.6973808131344044 +0.4500340718898797 +0.4237588161901980 +0.4985950748708313 +0.2036463152770128 +0.5796498805904450 +0.3069457320305912 +0.9711626382480357 +0.8500902205586187 +0.6838247528203829 +0.9338919869706606 +0.8668772608741793 +0.8369330502737017 +0.6829785045106866 +0.3814071036560642 +0.3074074256712594 +0.2970130362247582 +0.3462757474818600 +0.7216251441224336 +0.4264721738083586 +0.1951782179448280 +0.6786001800269478 +0.7493399851200931 +0.1199174461172946 +0.3395860438033023 +0.2452156183512082 +0.4497344173711701 +0.1081702544746859 +0.9651306539304539 +0.4001398244086237 +0.8283480626632970 +0.0390649016735763 +0.5415676047643138 +0.9656460908526844 +0.8483282485572319 +0.3626407407215967 +0.5341096433434886 +0.6951170005033274 +0.2041853872112774 +0.1564162798156581 +0.3359168097133057 +0.1898859003762233 +0.9563465319530173 +0.0277613172529810 +0.9982600663501350 +0.4157224082995776 +0.6182273126311373 +0.2909201625468670 +0.6982531188203482 +0.2927193169316778 +0.8448323082519557 +0.1784115975586884 +0.1562577201033060 +0.5267206742332438 +0.3723785072321812 +0.6016901688760332 +0.3394885004479785 +0.3681745351125202 +0.4816657621770388 +0.6502388817243625 +0.3744248090930519 +0.1997446062841129 +0.0638724747340945 +0.6271064708267968 +0.8944272924420821 +0.5776952722405957 +0.3240768182048999 +0.3963687189949507 +0.1513082052892844 +0.0998921614215191 +0.3787604266991969 +0.3143681217976549 +0.3038571659372357 +0.4159837470343808 +0.6917031638508321 +0.3311105301721752 +0.5117238036549624 +0.4258998933295580 +0.0882089657662043 +0.6716496731626198 +0.7008114320946870 +0.6821833198039549 +0.4967269745782379 +0.5003053041133251 +0.6379709856420225 +0.6731442287387129 +0.4862151348539277 +0.3416223867381789 +0.2587760226430585 +0.7627344444442377 +0.6728133703785900 +0.9606667244229609 +0.1237096588897197 +0.8392952352398773 +0.8563222755941469 +0.7762249703620516 +0.2394617308098057 +0.5425143845399832 +0.2717576339699620 +0.2517152907480128 +0.4773156177521747 +0.7514482723755929 +0.1534702596338070 +0.9169168939908613 +0.8638469106160196 +0.5787792644706513 +0.3307858360081919 +0.7824021365813203 +0.3062105903650517 +0.8717805652851589 +0.9486876133946452 +0.7237043838747773 +0.1385687422189358 +0.1807509111397761 +0.9539850727360514 +0.0872982947939255 +0.2189992860815851 +0.8225351417970397 +0.7739365262781076 +0.2574689328250547 +0.3754449045208572 +0.4776456172483712 +0.1630524546939007 +0.2148807980127670 +0.7625596369762973 +0.0822237237377212 +0.3073276715154953 +0.9871380016781808 +0.8250967554042705 +0.2530664464439327 +0.0999661393868426 +0.1376569473043827 +0.0457583661714829 +0.5522329465479632 +0.2318302819330120 +0.0290632569662585 +0.2574116423820800 +0.4059694257552362 +0.1158401408618711 +0.3988482279939093 +0.7509809561979029 +0.0108631990482573 +0.3613944769903494 +0.2615470161031007 +0.4799237874296278 +0.3603727299827104 +0.3422996764751868 +0.5481917944401783 +0.2038601324323919 +0.8094027057821973 +0.1827212151649459 +0.1365249276988363 +0.8757159076768996 +0.6316576915510255 +0.1808272163389700 +0.4638663709829043 +0.3276522013436806 +0.3498433108012495 +0.8699340189586838 +0.5501614310987493 +0.2175672724700776 +0.0828295429177196 +0.8442516418428533 +0.8537933194761173 +0.5429338068337091 +0.3759188132512924 +0.2529886991128149 +0.8700258729923230 +0.4678487253518634 +0.4430367158183640 +0.1614844317677137 +0.4602066902545943 +0.5659671443397306 +0.1732897997195924 +0.7084429063772016 +0.9015098432616030 +0.8990608206583623 +0.4663846962199934 +0.2953744178670430 +0.5808326926108186 +0.6620077369430641 +0.1404568820575970 +0.4018167552800908 +0.2182042101041856 +0.8419265962087658 +0.7753723189514359 +0.2599123275837484 +0.4085621343361786 +0.4952310162756288 +0.9218017740657179 +0.3214208711434320 +0.2970362553084925 +0.8093369938562239 +0.2236423581692771 +0.1962180844205230 +0.2959732768681405 +0.5222790193985309 +0.2897983642657037 +0.3235198875794608 +0.1501642316566192 +0.7329791004933724 +0.5269268209963717 +0.8884726443338818 +0.5331019024080771 +0.8556821087233278 +0.9966697522329172 +0.8763591276416762 +0.3771868810568650 +0.8959516080163772 +0.0834495135961426 +0.6613885168380074 +0.3857706854095542 +0.1753178205276683 +0.2210138301413972 +0.1628210376601531 +0.1116989649558261 +0.9739080371852294 +0.4639448349197089 +0.2356811926050254 +0.2150375411016321 +0.6615601386496218 +0.0986563104422051 +0.4312362687621764 +0.8769004361142536 +0.4387089205177668 +0.0638425786202156 +0.4675280175064468 +0.2532623400650860 +0.2650135603943644 +0.2040352126687831 +0.1500378017198587 +0.4695069710255595 +0.1451312684045712 +0.4619165616190904 +0.6932778818573035 +0.8284612419454459 +0.4307676500866464 +0.5817029665391599 +0.2345338419456773 +0.9132989263023193 +0.3303023713915403 +0.1318109580285394 +0.6104587340542236 +0.3773086045903022 +0.3348832520514470 +0.8941672268783825 +0.6961655370302464 +0.1283037129469135 +0.1874415847614497 +0.9984746006755881 +0.3739292082883631 +0.1811558138296607 +0.5433947482439856 +0.7636143526014230 +0.3308652371105901 +0.7854766307881149 +0.1377158968528451 +0.7361785266879094 +0.4484624012524798 +0.7525682199880136 +0.8778834033319801 +0.2513160662843510 +0.5739656453912447 +0.2703782742015675 +0.5496408367525180 +0.3773253983674111 +0.7145347405949672 +0.6278240088893512 +0.0681951941791360 +0.2490345278051752 +0.1110143947207681 +0.0072804680934511 +0.2535647918622971 +0.4400187451798140 +0.0876561827538812 +0.1258830873814117 +0.1157262082612758 +0.3880819300275033 +0.5335171278208106 +0.6158991593179487 +0.1732827736486425 +0.1681246048321837 +0.1340025161108179 +0.7031521299567874 +0.0971584743083325 +0.0300050486831313 +0.3649267915092207 +0.0130776266427562 +0.4249001724432021 +0.6019313321533512 +0.7186360933609287 +0.6488337051878523 +0.9424361971463059 +0.5312026324414025 +0.0113208088527744 +0.6947402907600092 +0.9114088601168154 +0.7372945608638083 +0.6105102322452791 +0.0142872257104041 +0.6527208539322490 +0.9248092645715644 +0.3613686971905408 +0.0582286150485331 +0.8920581585924597 +0.7528897655058325 +0.3791904352389403 +0.3547582816441380 +0.2989855142913732 +0.5325665763508927 +0.8478105322016664 +0.1916350596431049 +0.2330391063377503 +0.4955413306491385 +0.4739263553969173 +0.2696317123166044 +0.3548655179898875 +0.9972689878532153 +0.7315628879784852 +0.7555054055941167 +0.5290409772018628 +0.7216369183637000 +0.3354723322379004 +0.4062240429250423 +0.9600177423123862 +0.7951070021790079 +0.7300534830218630 +0.4045586280115107 +0.4179065312168281 +0.3548083205792757 +0.4817148632368162 +0.2202880412258661 +0.8208896366972340 +0.2569480573346263 +0.1927993405948100 +0.3516889856769385 +0.5271483990200734 +0.3166763063385680 +0.3368340152874436 +0.8300913006788359 +0.4783297547235413 +0.6447091328486032 +0.9143849738132728 +0.2829399807456394 +0.0173109259168123 +0.8010846556102031 +0.6006423400404350 +0.0206331776742071 +0.9587941158748166 +0.8786368989358860 +0.0216840544195256 +0.1581413353200226 +0.8511382079742316 +0.9901287840301416 +0.1477122922938129 +0.9421060197508584 +0.4288266101021798 +0.2708711392078308 +0.4389583514074658 +0.3880523023013942 +0.3119139450781151 +0.6566710831631445 +0.8731898664352326 +0.3784410097729697 +0.6739046995742594 +0.6660579854044060 +0.9515528307448153 +0.5581520126879149 +0.6616279084364836 +0.5336893468386074 +0.4881750153687056 +0.0591275406701608 +0.5035240527300738 +0.3292514658114145 +0.9460662446965842 +0.0824256077677896 +0.0397844930658592 +0.2141758773078516 +0.0972530171080400 +0.7155563522537424 +0.0523759359974893 +0.6571597137015464 +0.6706978383926298 +0.6892940129140753 +0.1526010454119323 +0.5941624590142602 +0.7389024276979497 +0.4637725190565459 +0.1237640735688782 +0.7713166019315632 +0.5086402753997981 +0.1266809709052739 +0.2410210371161156 +0.1836184879751259 +0.5329062562106652 +0.4395397488844712 +0.3853686927935102 +0.5036346266256724 +0.0915969662973197 +0.7281448369661329 +0.6514800805777704 +0.8775381572115346 +0.4316140910135685 +0.3631889371847135 +0.7151688867875271 +0.5940818450263510 +0.9109860592102107 +0.4256276542705520 +0.4707707352843019 +0.5160759693229782 +0.3952608054189305 +0.2256228996809151 +0.6427779480317762 +0.1133014653684221 +0.3618389417768640 +0.5333639380432589 +0.3439338629851783 +0.9462037966591541 +0.4734420041244100 +0.7077669265743015 +0.6514308911963711 +0.9147729697958245 +0.6562831521905720 +0.7750481858557561 +0.5801169513594883 +0.1557838145660915 +0.3662795009170770 +0.0943879784604676 +0.0659041009093625 +0.1265858305322482 +0.1127891776144493 +0.5016331756516540 +0.5829314173719836 +0.1592475658998847 +0.5518405515941514 +0.4471372896170390 +0.2994264287015914 +0.7679838996087345 +0.1941761887564426 +0.5024237737982008 +0.5423905138817627 +0.4233558363256540 +0.8216863253210320 +0.4605111586200669 +0.2842757491393184 +0.5201139486845655 +0.5906529106561965 +0.5322266724125800 +0.9796232969732901 +0.3789299651228887 +0.9515777656724279 +0.6301423159062844 +0.5085161643884144 +0.3962709119936564 +0.2448284366812226 +0.2169884609854950 +0.9671660744477497 +0.7771691654767080 +0.1955749057336822 +0.5448823001034440 +0.4766987997950337 +0.6471249988487286 +0.5224521055057686 +0.2974188913319513 +0.1704764144372600 +0.8225604160846552 +0.1464612053843218 +0.0378180633936665 +0.3605871599910743 +0.8374171988407302 +0.0358072867858866 +0.9286134144445969 +0.2864947204004493 +0.0858981983742980 +0.6275053335535775 +0.0542874868930629 +0.6115599284274751 +0.1404874926464613 +0.5781485380672087 +0.4517514673290326 +0.3005375698401018 +0.7830976284121697 +0.0914952261368912 +0.0615558611531103 +0.4812427410071211 +0.8246954036196973 +0.6162488256119552 +0.5363941137243149 +0.8335741639950196 +0.2248407538857113 +0.1783978510063497 +0.4894386549241055 +0.8426420791249377 +0.6691797748538200 +0.9530654309254941 +0.7215054773692434 +0.2184309752311924 +0.0535556545859940 +0.7355760360172161 +0.7125801045464030 +0.1129226950060812 +0.6408617863326520 +0.0088071916269654 +0.1752698044253288 +0.3626058506802130 +0.9016036414746993 +0.6571182115476382 +0.3579394987712949 +0.3981795379114300 +0.7076655520278619 +0.8332922762430486 +0.2140966400504132 +0.1040384770630214 +0.9174875249780529 +0.0454672578661966 +0.4451392160925987 +0.8236264176964948 +0.3988030698202904 +0.8395602189883247 +0.7481806329108371 +0.8574185863863462 +0.2860122570970343 +0.0305264413129378 +0.9338321511764129 +0.8036336251119043 +0.0152831247855128 +0.2537205457672891 +0.7467760023225934 +0.1578080470557290 +0.3383684180663123 +0.3224490510748183 +0.9849482703201532 +0.7312367091178014 +0.7368807769143340 +0.4863806188351322 +0.2398375668200497 +0.9591328031569991 +0.2216295075920989 +0.0991364917375947 +0.8714047585491038 +0.3413304091940184 +0.7807428201494574 +0.3021214528250382 +0.9356803899649662 +0.3477661913963421 +0.8636399601628809 +0.1427216082394106 +0.2834422656560801 +0.6917184074705158 +0.3328201440066467 +0.7396908833404031 +0.2310750207624588 +0.5471572842826460 +0.2007861762679823 +0.5644453013140681 +0.6950295201953028 +0.9540885663630770 +0.6519522809975965 +0.7111538644205979 +0.4950967240919409 +0.2651430390731895 +0.8741147374505847 +0.9103227120311351 +0.0388774741230039 +0.8868674067062638 +0.2341489620750941 +0.7113791822048114 +0.9333814718543431 +0.0526432924863842 +0.5704057448364516 +0.4933777168455576 +0.7963478160414786 +0.6208651035944479 +0.7434253395852687 +0.1690915897606438 +0.1763492456650821 +0.5373669639085051 +0.2652185569488609 +0.4051424866867496 +0.7334378461610146 +0.6795598344672715 +0.2867197750403624 +0.3004773459515181 +0.4316339439128885 +0.1071286887195278 +0.9065616633026685 +0.2925336075558105 +0.3196220094467764 +0.5977879637143374 +0.9090507465255502 +0.7621094165019628 +0.5186839142357113 +0.5752129355599445 +0.5151936338318472 +0.8569968051534240 +0.0060043393664977 +0.9177033757494512 +0.1757063108741401 +0.1920894650535574 +0.6157831106300466 +0.4879534658372437 +0.8515889159049316 +0.9158253212817329 +0.1112162138477586 +0.7503890052810741 +0.2356748086411832 +0.3525682638552110 +0.7949357521091615 +0.2199206057796898 +0.2305881420594342 +0.3653246466174305 +0.4253718419763609 +0.9698785749347818 +0.2452885874371920 +0.8673643140724830 +0.0678018532306537 +0.3841659190967407 +0.5342526995960374 +0.7632283545440813 +0.4570600160293788 +0.8187620498115149 +0.2679660288481221 +0.8468344627314129 +0.8688504092517723 +0.9633349231714418 +0.7514234218646944 +0.0793586017339285 +0.7649439307266134 +0.3221231053715377 +0.5534746993708656 +0.4091287269762280 +0.2951002971402829 +0.6767580998888071 +0.5315781944165791 +0.7552514208858222 +0.6325913019945780 +0.3871461893236725 +0.2176495442465485 +0.8701401944692417 +0.3682259306091179 +0.4710882877661311 +0.1082169457380409 +0.5642354607384407 +0.3071200080027510 +0.1135831809784949 +0.0795180069205806 +0.3045017991500948 +0.1376447176213058 +0.5964690557344714 +0.3073334510236777 +0.4313779236437474 +0.8054369474129578 +0.4705882904076342 +0.1507687746449139 +0.4992741834031693 +0.8463728936385136 +0.0473740515728895 +0.3364869536110377 +0.1717823319174135 +0.1074296824822306 +0.5302022314656027 +0.0663281904563182 +0.8206052904185863 +0.4287986810707852 +0.9316986343613594 +0.0339730458698110 +0.7721639704206783 +0.7419171665956227 +0.1440789256464766 +0.7843537697962057 +0.8810282730610096 +0.2248498519723474 +0.3549395517126120 +0.1683911986512410 +0.5739601400580372 +0.8016055346951138 +0.6099384329779106 +0.3705436645094171 +0.0512790200525748 +0.9887132170712494 +0.4411401671481128 +0.5166026298104477 +0.7951406300369281 +0.8765851009557281 +0.2757717845038575 +0.9707343379153335 +0.6046666810083280 +0.0705303276466742 +0.6462683629778959 +0.6632335331080468 +0.0732988558787049 +0.2533629125356554 +0.6520964389011924 +0.5177930063468691 +0.1178150989182707 +0.7961101489724633 +0.3353748979804557 +0.3836963180131407 +0.2248697823020759 +0.4625088176588762 +0.6824024621899156 +0.4500372806021483 +0.2773360393111158 +0.0048130319580941 +0.0544282315572927 +0.5266361569783869 +0.5514970159081751 +0.8174246124868261 +0.1191158069201757 +0.5113842574218206 +0.2665153740051175 +0.0037245413209977 +0.5404675276027460 +0.0687405190946288 +0.0919695068387091 +0.7085513024009341 +0.5673222894587168 +0.0172447284451748 +0.2694799328407629 +0.7652483664245864 +0.9913718067353091 +0.7960542799143854 +0.4258377781411711 +0.8890460572072034 +0.5478856868260973 +0.3793372129484971 +0.6545023965888795 +0.4146404945800153 +0.0899831078068159 +0.1654930362810276 +0.8830895043926623 +0.9215794277907529 +0.7455061199050282 +0.0311767839856468 +0.9401526371359209 +0.8456367133200753 +0.4142454351447334 +0.4838045157828784 +0.3185471692969156 +0.5053445870942752 +0.4844200077946961 +0.1989294084867025 +0.0198360101479607 +0.7185908131632434 +0.4797301207994495 +0.4784053048548190 +0.8252434521546315 +0.5505283898619004 +0.6841624088685818 +0.6988317011636084 +0.8521421897637346 +0.3847805875655068 +0.2194267016938193 +0.0842839596391133 +0.5333086267694065 +0.1133009018289502 +0.0104256109890148 +0.8061500981860513 +0.4557521085856776 +0.4143669445442562 +0.8171475244049123 +0.0309011248260638 +0.5908830058211804 +0.4966563072840477 +0.0998646156514907 +0.8676924601836843 +0.3490461621637053 +0.3336073991823478 +0.5053176385845938 +0.3635959022711146 +0.6459105675950397 +0.9884931551177264 +0.8536138674096286 +0.1425486612223637 +0.4831074655404859 +0.0176065124330450 +0.0217075560568057 +0.7262824450769664 +0.1841584257003132 +0.1922573098849259 +0.0083159254677885 +0.0906214911975787 +0.6196217377588924 +0.9281557018093158 +0.1874104778120492 +0.7728147629612755 +0.1431175524878318 +0.6075805199118314 +0.3023198665745097 +0.8582108485013409 +0.5543501751816330 +0.7054845944352374 +0.6491040354029248 +0.4472527521540218 +0.0790546281503892 +0.9945862779919972 +0.7024832766041549 +0.5043815013282165 +0.2666695778194133 +0.5821317568109406 +0.4023440202873682 +0.1343881790529876 +0.7057471414686156 +0.9198845205211597 +0.4355246660963339 +0.3915947678893558 +0.6203803527627844 +0.2532320330133330 +0.8811378513299315 +0.6987403457043178 +0.5209460001940921 +0.4106025638317067 +0.3476352613437553 +0.8564286048224697 +0.8379673700601790 +0.4932235878335750 +0.1267980951292684 +0.8152869288360616 +0.8686486839863338 +0.0310508902089805 +0.3563698833643751 +0.9903495800666862 +0.1053701076657829 +0.3777795214528517 +0.1442448322924833 +0.7159120163062261 +0.6187324641381081 +0.2467523826364655 +0.7833987603870364 +0.2553274118407315 +0.3331695189313171 +0.3260528987314503 +0.6368506101417425 +0.4152940656863943 +0.9783904337742555 +0.2332925569435231 +0.8282129395436600 +0.3111113543280430 +0.9464043478454933 +0.6823421375829853 +0.6999953378434149 +0.9941508220421779 +0.7565047011678470 +0.0442491658200842 +0.3131004406335741 +0.5088797193230705 +0.8409949230379481 +0.5215291401622927 +0.8823927816616770 +0.0300604483740412 +0.7797094915289946 +0.3657129969334863 +0.9503706660576682 +0.0936287385132829 +0.7159985676327357 +0.7541208441520265 +0.4470347298533524 +0.4474117236647696 +0.2073703568777756 +0.8291133748880026 +0.7432185189274925 +0.5218212522234045 +0.7899087966956031 +0.6346962728221569 +0.0156259770016502 +0.5853981144987728 +0.1788855307655953 +0.6126774948031649 +0.8002779813035363 +0.7037896313012244 +0.8589500509450789 +0.6837025169031509 +0.6524092842833663 +0.9410789309881914 +0.7013940507051653 +0.8436763287788025 +0.4577731669025164 +0.3871186727347858 +0.2087168032784273 +0.5204756790057550 +0.2448423098652422 +0.9407139644152347 +0.8925266866600758 +0.5877846240752774 +0.7924289067657115 +0.2568711731210435 +0.4064008473573240 +0.9705823744403960 +0.9900634686483679 +0.9333125683385073 +0.6712158729877038 +0.6732464282052617 +0.2435810925714018 +0.9875142339286425 +0.2832918162052459 +0.9684492166337187 +0.8387905318540074 +0.9194311755271211 +0.0657859660203974 +0.1396111043216324 +0.3028181258675409 +0.7375552110648771 +0.1563071323960990 +0.2386792956344240 +0.7921877217664572 +0.2347891028079261 +0.7793071332804931 +0.0433425096108236 +0.6461816064514923 +0.7087168408145493 +0.2124460108627451 +0.6834367747901853 +0.2816441551612461 +0.0793291421894096 +0.8992176612790532 +0.9392763092663072 +0.5935205488093617 +0.0182782444597044 +0.9527630269629872 +0.7855845936565192 +0.8457755732829202 +0.7550651691246478 +0.1335965723941956 +0.5181829230044624 +0.7989221107485351 +0.1460719789225934 +0.3391336315848943 +0.1692512315852532 +0.8167200945874217 +0.9082870871594021 +0.7708527769210990 +0.8327982921010419 +0.1451568873974036 +0.6766926420796106 +0.3228396980677798 +0.3790455759086485 +0.0098045228524780 +0.2082838967914925 +0.2566359163653352 +0.6957168124537216 +0.5298681767425926 +0.7418135561115391 +0.3134990374367818 +0.6129875949529717 +0.2556766266509379 +0.2587802383796110 +0.0643171789885681 +0.3440523954380816 +0.0020341670740794 +0.7377173323325710 +0.3836294497774591 +0.0401155562329665 +0.2203091323399088 +0.9444956436435430 +0.8590294415175803 +0.9071474493139494 +0.5209871378571608 +0.5280122238146157 +0.7132359809966036 +0.4589334622086688 +0.5263137966551262 +0.8334890654239904 +0.8336964842995791 +0.6623755264979475 +0.2774792513684601 +0.8089477602536728 +0.4259489845776475 +0.9498615317686153 +0.1587461722317200 +0.1524121479691934 +0.0413356994894433 +0.1843626049141853 +0.6595105119647875 +0.5919710576041460 +0.0169981104149089 +0.1068991984133257 +0.8782231039893145 +0.8110216741834017 +0.0940342537108579 +0.6640561530833688 +0.5669749743309493 +0.1826545468906379 +0.4366657128096059 +0.6067189487848200 +0.5741268824764744 +0.6317198440673419 +0.7559996990333637 +0.6548320689975954 +0.9663886564524881 +0.3918869004918690 +0.6253820411138985 +0.0876585165682384 +0.7998560918519819 +0.2467183526750592 +0.3742594547824361 +0.6580626501610026 +0.9341216806281327 +0.9648265037029683 +0.9909977643861146 +0.6192214798817117 +0.6055281390803471 +0.9494128686954411 +0.1096506432265245 +0.2317059502780414 +0.3952329022490060 +0.5122853835352710 +0.4712182565939949 +0.5036059965700318 +0.8867268786789304 +0.7153553770278717 +0.7776122145396586 +0.3676097706626074 +0.5321276724555907 +0.1983937704793166 +0.8397568231652707 +0.6090923688357607 +0.8971287821261218 +0.3590485691371640 +0.3963515977575180 +0.1517404824190753 +0.9427879336018888 +0.8504195509315551 +0.1125713693800051 +0.7182926016118734 +0.9838170509330592 +0.2473065287029811 +0.9540138088113749 +0.7708146438198877 +0.9851941046941377 +0.2614928463902765 +0.9821093211259458 +0.2117638509340185 +0.2998440391950218 +0.4941296152091866 +0.5079498373702066 +0.2364176588697153 +0.2821099000190708 +0.7599332448692953 +0.5731522994264293 +0.5669270116525842 +0.7257623628462186 +0.8717554103255414 +0.0053546756116713 +0.6019363700373109 +0.6400599336706774 +0.6389083535882745 +0.5165893167899723 +0.7870869143822443 +0.3441616368940548 +0.0540248663588292 +0.8530183020232055 +0.1858574463379224 +0.1064078138548376 +0.7990876974989792 +0.5287258479887386 +0.9597882914289245 +0.2186190669271233 +0.8205061242930550 +0.4944006959199598 +0.7051754741608011 +0.8007286057143383 +0.5065163848209715 +0.5417867940709452 +0.3086141856624374 +0.2138631072579297 +0.1445093050991562 +0.8879931530861160 +0.1360186267119828 +0.6721419586575380 +0.7968719530794882 +0.0927351037767287 +0.1262085241992867 +0.9553317637050301 +0.8881723007402811 +0.1450362860783446 +0.0632017625884842 +0.8148355394552320 +0.2867681819690914 +0.7431112792195215 +0.2519021410770473 +0.5043691036718858 +0.1420021622793086 +0.6971582033183266 +0.0613783372072092 +0.1459495572449420 +0.3805908112470316 +0.5120582659948225 +0.3804211202908996 +0.4305013451295585 +0.1077620504699729 +0.5756669488989862 +0.9789007981456525 +0.0006778924060086 +0.8411759498988617 +0.2413167810166133 +0.8200208199335094 +0.0511429243642432 +0.7337501723587482 +0.6666198854359879 +0.0336220052852073 +0.7122889925052333 +0.2393180787688089 +0.4703996778506551 +0.8248436364292279 +0.3828867458840307 +0.4412440373150769 +0.0693524901085713 +0.2625494378179999 +0.3219881507533592 +0.4225755106554954 +0.5127459207154902 +0.5722941011415659 +0.0569705168803355 +0.0704603511216377 +0.6909030670165396 +0.8624901811329428 +0.2437269175465372 +0.6130555313416628 +0.3290446456950772 +0.4722456510505183 +0.4738981463688732 +0.2007720147247455 +0.6893394032423452 +0.5163599874037810 +0.4703001768167508 +0.4308276679278869 +0.7120251625237207 +0.6966553526958426 +0.6686936028475430 +0.0193049724687554 +0.8956694096565817 +0.6042986184919292 +0.9280652076007632 +0.6673994326593113 +0.5882191249546108 +0.1634216915079643 +0.3346899613294943 +0.4536158282192582 +0.8488716010892065 +0.9274078169285489 +0.6685098377578147 +0.4579828194793494 +0.7403452060780927 +0.5110441509521613 +0.6046267207617656 +0.3845727805333203 +0.2537249713660096 +0.7105625689945402 +0.8228707722151810 +0.4264361486240333 +0.0725746467325331 +0.8095865629013025 +0.0391068120283742 +0.1677292413621340 +0.4125977831703645 +0.9437424701639953 +0.2785851316944986 +0.5904898504134510 +0.4455782988319585 +0.4700024876713483 +0.8069811506837834 +0.6204804175874228 +0.9803014150923876 +0.0913815853728978 +0.1824170306020535 +0.3230576836676652 +0.0767882819787199 +0.4044033112903296 +0.2869167632375137 +0.9653689921760135 +0.1229030402684809 +0.3862893759428359 +0.1727220670471953 +0.9418568370005337 +0.6149742151817531 +0.7681798959349385 +0.2196315763617516 +0.5513556499618311 +0.4609887294635613 +0.4878055357709927 +0.0726977461979966 +0.8682024927287832 +0.7263027029091590 +0.1158755601936181 +0.6520112226619750 +0.5674129270508719 +0.3694443288318152 +0.0793928052508253 +0.6980171805025920 +0.3247969334119606 +0.0642574135675386 +0.4228678335143275 +0.8041737998606097 +0.2073131557844663 +0.3504940734201946 +0.1744371994274187 +0.2802089259407566 +0.3308343278114223 +0.1319677924385653 +0.0617323055129424 +0.9903782531359497 +0.9941134264551078 +0.1147010190952787 +0.9718603908202059 +0.8043517612838919 +0.2544104847825911 +0.6401653200017332 +0.0140489071953548 +0.9610393512792075 +0.1163882692253572 +0.3416995678627345 +0.6543761442644220 +0.4927142362231199 +0.6073953342863813 +0.8508777930905965 +0.5902170201959552 +0.0309148496353481 +0.8813323918378778 +0.6236034728345641 +0.6567249458486170 +0.5423238999082411 +0.6512103015672214 +0.9835114191997647 +0.7308895283564047 +0.4630034716653725 +0.5865146534090433 +0.8385715811262069 +0.5872727879790017 +0.9774564510869574 +0.5800936838019131 +0.8910316885384547 +0.4711484950604988 +0.0954012280378809 +0.6794565808396941 +0.8321513667074516 +0.3560645601955574 +0.3562414566146881 +0.3413479950773950 +0.9307652054441669 +0.8055332897347738 +0.8979890163812628 +0.4120902192159311 +0.3398582884833220 +0.5453824137033345 +0.3048644311244232 +0.8257229159340309 +0.8336117986852922 +0.5497990922529404 +0.1167408078811349 +0.6534814375947918 +0.7760013621556713 +0.4927586415101003 +0.4208444040128250 +0.5600334800061432 +0.8125111763599946 +0.4963809115441208 +0.1239484321015676 +0.5237460463567558 +0.6417352389543201 +0.0037854039691273 +0.1198183818748725 +0.9499990427008117 +0.1403437547942013 +0.3136562693721806 +0.2686466067771681 +0.2237046297245256 +0.2084830352478901 +0.2152407808039985 +0.4463373366875809 +0.3785309991938858 +0.2445779506693463 +0.5502362961124982 +0.4623204045161117 +0.5852625472057276 +0.6702988159059508 +0.5341632430928093 +0.4243661562202983 +0.5873960787154537 +0.4573863903524429 +0.7999439522846815 +0.9052282998406704 +0.8841751743247436 +0.2553929588362078 +0.1194487432045275 +0.4749163781803037 +0.9178351241174887 +0.6420016205224650 +0.9805448363770505 +0.3860824310698207 +0.3672666353833788 +0.5849458875995521 +0.1485038978799439 +0.1284154972145100 +0.1987542343031092 +0.1311775275952755 +0.2875395002740706 +0.4433275923978055 +0.2341792864838095 +0.4716985994864466 +0.7653330019695874 +0.5355888857327684 +0.8236667946990146 +0.9305918482863142 +0.1392190912114604 +0.5568858561001121 +0.7469190598590154 +0.9069768184490278 +0.7137513935766195 +0.7812219528486398 +0.4343284943462814 +0.9927177395848351 +0.6784661146172022 +0.8200403634179926 +0.1256088693302464 +0.8575006944993883 +0.9455326028787304 +0.4207041887175202 +0.1791462351264334 +0.4697333900642302 +0.6862476801640839 +0.2266279545730851 +0.1416016385882077 +0.0936291983499709 +0.5628902570970387 +0.6293526330167585 +0.8096207047450676 +0.3799729035741282 +0.5127931371982657 +0.8176690156315489 +0.2704542534595643 +0.2349210081423545 +0.9247736932193642 +0.2215747181692869 +0.2600488220227843 +0.0479289836936332 +0.7233450900459700 +0.1620815855616085 +0.6893232734769278 +0.6369172867771816 +0.1657978238869506 +0.2947200972944085 +0.4312050267048375 +0.6802207531766202 +0.2166715942311605 +0.0065503584943788 +0.0675653721166204 +0.2742458065335402 +0.8025728189750324 +0.9753552470082490 +0.3493295163660052 +0.0250605135401414 +0.0789539286062442 +0.3202151424758622 +0.8427923744574309 +0.3089242217488471 +0.0204970885242169 +0.0673185475479911 +0.7127661528580257 +0.3963206193331120 +0.2926258648337060 +0.6387109123938431 +0.8311301447405802 +0.4651685036038573 +0.3071590587169996 +0.7508929873547046 +0.7305225711773634 +0.3075272493792864 +0.0332896330626568 +0.7622152168592710 +0.4560407817134677 +0.0298077140986966 +0.0801479926478941 +0.3000211122090841 +0.4971472490260250 +0.2418996402647312 +0.7462194151894821 +0.0320858933431313 +0.5581653396798779 +0.1668588342085847 +0.1765561803409228 +0.4485220683810294 +0.9488086185713019 +0.7333824922095604 +0.1180633590679800 +0.3770406725254607 +0.5191779855454074 +0.8107125332794396 +0.7744122210175314 +0.5836788047232486 +0.7342230425406834 +0.9422508445256931 +0.9446172622861596 +0.2699772678212761 +0.0927549281990316 +0.8015436614138453 +0.9830280476766229 +0.4230091677286750 +0.7113745749911626 +0.0758228984560412 +0.4580642936906506 +0.7863367634693296 +0.5103221485864710 +0.1262417542709046 +0.1237859848847594 +0.8591765756526173 +0.9280974603340021 +0.4420462798797635 +0.5855820292653398 +0.8682214019011666 +0.7370298850913908 +0.5913456909434992 +0.8036568563486212 +0.3060287092419895 +0.3673222815174885 +0.3091919423292769 +0.8173488949488451 +0.7682291297112813 +0.8502504906584892 +0.0459342352321476 +0.1490394309809920 +0.6185426282870566 +0.6507175801222862 +0.1257222009024445 +0.1028139362497752 +0.9533405104514718 +0.0245304068851621 +0.1912297974073539 +0.4744784456678889 +0.5491919110223858 +0.5138051759569182 +0.9549085686423879 +0.9325461621643166 +0.9745357807086195 +0.7116584878871164 +0.5729220368127211 +0.8946886859558514 +0.8098125246179506 +0.3428059471668667 +0.5928559894469391 +0.9070898232338704 +0.6898769574243476 +0.9106528971583618 +0.7678667458920585 +0.2134811662851940 +0.6503332113633331 +0.2313606182409191 +0.8474597098159106 +0.8071230820636389 +0.9744937176700812 +0.3192055523267409 +0.4431258046557249 +0.6374079613233025 +0.6816183664366676 +0.6253070857373455 +0.6907327063110903 +0.7577921534194149 +0.0824226761458937 +0.9401990082074545 +0.9422021098552033 +0.6741702802106800 +0.0209155094887567 +0.8989906267945699 +0.4848181788886528 +0.1678066765399804 +0.3469411656875215 +0.9214944627814002 +0.8320240627595443 +0.6211202476845490 +0.4711358752822325 +0.7269641733502106 +0.3749546339908194 +0.0014286265496336 +0.7468491614348745 +0.0717819591469005 +0.4817357533537355 +0.7036589483354948 +0.0154097360885848 +0.5234046456982343 +0.9515127573070240 +0.4210757782162310 +0.9383476750266099 +0.4773650205591025 +0.1550466626634699 +0.2662688366116893 +0.9459256393416812 +0.9569727288346257 +0.3329219746809199 +0.9584988409684010 +0.8239477295139807 +0.2499657634223057 +0.9358694276699370 +0.2803248033700377 +0.3292936238430579 +0.1050418981280408 +0.1387089449351044 +0.3913071325031758 +0.3939249277403174 +0.3304195572119055 +0.9729670218116907 +0.6352971665167652 +0.7602110948509491 +0.3291234380821621 +0.5514240725529662 +0.9530772657965793 +0.5440239128710066 +0.2983173661016918 +0.2608391018993130 +0.8952257351317862 +0.1066951051514141 +0.1795364494613431 +0.7333006205658980 +0.8777928509662055 +0.0831804240980483 +0.2111001649053972 +0.5287377914700729 +0.7480997663582223 +0.6733493756422638 +0.3263926528083707 +0.6043332505871191 +0.8393863749584483 +0.5268573684790530 +0.1213563453149046 +0.1272497680091083 +0.1918678945086983 +0.7368010474381070 +0.0542108073082442 +0.8634553288583814 +0.6382063416358221 +0.0566744835964747 +0.0530165472473116 +0.0485399283256977 +0.8794409530072729 +0.6022030328220871 +0.1769650929217870 +0.9209647876748021 +0.2069860879753258 +0.3832730312056133 +0.3210848995796401 +0.9584335930408803 +0.7850809935408409 +0.0043957095410118 +0.3088320910268275 +0.8342767580573826 +0.9305745254506655 +0.8045322702429181 +0.5376320904061922 +0.7437802287222151 +0.8918027203812570 +0.8284874380788748 +0.4427187540432582 +0.7832150918033467 +0.6241886274595667 +0.8602479433396343 +0.7828794191733379 +0.4034412966787308 +0.0972211624329052 +0.0957545575677323 +0.9468185043184369 +0.0166394021754269 +0.4400666000379582 +0.6548390667374594 +0.7489282946440325 +0.2904235575319047 +0.6869386879983279 +0.7660735138742700 +0.8492529858393671 +0.4726117589176622 +0.1503633278839865 +0.0534624861325624 +0.1248490103804762 +0.8545586626606988 +0.1533536055968326 +0.3187702419292168 +0.0545301822646316 +0.4587529988715144 +0.2977968500750285 +0.6911074649493023 +0.5274401862624398 +0.1217253413211385 +0.5865659948859288 +0.9683174695277287 +0.6963129412753164 +0.2963599229788997 +0.8708106187906951 +0.9543398210020682 +0.4188548711294953 +0.7727748528942019 +0.9754344884290469 +0.8062746361569690 +0.9575243479456901 +0.0485096623250765 +0.6715855359905861 +0.6381565316605341 +0.8788659094049958 +0.9709469796686030 +0.4108404554349301 +0.3669919920613725 +0.1552897214703702 +0.2817661128272226 +0.7856545161566852 +0.6768146074841703 +0.4162851937959462 +0.5427556481606701 +0.2328186895008260 +0.3516224082772561 +0.3694314616351728 +0.1864787557788296 +0.5107851365023033 +0.4965367158514620 +0.6558114365328713 +0.0955679717862449 +0.0516597136850452 +0.6841393427509785 +0.8999931263688298 +0.6753929188807213 +0.8597784507847106 +0.4744650005272790 +0.2770168426847358 +0.5080857324251810 +0.6030689227763453 +0.7112670032876418 +0.9221753518783958 +0.9304054239197047 +0.6629479889207339 +0.4215625958633478 +0.3750377794274948 +0.1007419858851232 +0.8469922179843797 +0.3964362871411219 +0.1749852057579427 +0.8426529275110314 +0.1937975995916280 +0.1086824132068137 +0.2530465696401206 +0.9850726164775396 +0.4239245956846406 +0.2881254742480331 +0.7982227368637218 +0.9110462020555714 +0.2868670126890072 +0.2244835527387883 +0.9895201774838012 +0.4212404809290919 +0.3708367984288298 +0.1860229598175284 +0.9472951294784691 +0.6712757067173407 +0.5525327379012264 +0.7848252633576295 +0.9319622622502425 +0.6220611863933907 +0.9701404341803265 +0.9439157161717374 +0.1224197690855551 +0.9018561288147540 +0.7623387603088255 +0.9516691779151696 +0.8602700222462256 +0.4962104213490892 +0.5885616699893338 +0.9135039311940605 +0.6059843658361579 +0.5466241675064033 +0.0980407321147256 +0.7869418226706374 +0.2488392309368879 +0.2831369011348138 +0.3563148108415215 +0.7038734629321319 +0.0320544660401869 +0.3933386661535521 +0.8011940565300464 +0.8824499154229233 +0.8695119753839098 +0.8426528160010499 +0.1376853067406616 +0.4727862566397199 +0.7592475513446590 +0.3481560522717445 +0.3691612592081409 +0.9963183048183122 +0.0582895777585185 +0.2777581763435786 +0.4622468853156725 +0.9464668172158465 +0.5311326703782138 +0.4399530742437879 +0.1280292022055795 +0.7942906467098109 +0.0290009173239912 +0.1326389487243496 +0.4530428162999831 +0.5241985797601161 +0.8575309209442439 +0.2913380452456262 +0.8532710183208454 +0.0838126615951708 +0.5835934585255784 +0.9053003531132240 +0.5948498372553975 +0.6243142177222549 +0.8486147774906893 +0.1127972044124028 +0.7381938921042442 +0.4928827910149667 +0.8624581692208484 +0.1179222299628571 +0.8867240864687649 +0.5760392864219475 +0.4856334366936687 +0.0442277188232372 +0.8972969806555193 +0.5456349129012545 +0.6207763216276143 +0.3111680431117006 +0.6882051682902283 +0.2239621122540072 +0.5985568992719273 +0.2858695848756822 +0.7588701984215833 +0.2801759364502935 +0.7434509748192851 +0.3379278577001779 +0.3599812914717095 +0.8020946373485069 +0.5533381236621043 +0.4129786657843247 +0.3197889347950157 +0.0907390388089702 +0.3637351224097894 +0.7999714456066029 +0.8454360000359874 +0.6763072940251612 +0.7585972776697341 +0.3683557698109673 +0.4700244245943911 +0.6511918123965198 +0.6102844548914053 +0.1296364201753137 +0.7570474437239754 +0.8329083243151789 +0.5638345532757192 +0.6956719615262047 +0.3190598718805366 +0.3000793270341480 +0.3958900914130883 +0.7971417514823089 +0.2752651077753829 +0.1346478707199898 +0.7868993983585427 +0.6465897204141028 +0.8345192421055727 +0.8553034798796854 +0.4035405694782536 +0.0393005987620078 +0.1864743818210754 +0.0782408712109127 +0.8082382547030694 +0.2592011765992596 +0.4727218417296649 +0.7835815390804642 +0.9625924921189504 +0.4284811333207777 +0.1703520835074033 +0.0741360427958031 +0.0842814283729507 +0.3220268789891595 +0.0684692951068559 +0.7569081646242020 +0.8190425026550325 +0.0604083240675614 +0.4015519017609845 +0.6060103847638154 +0.4611319235813013 +0.5893592411068641 +0.6090500565366371 +0.3897344010937195 +0.6333723021475033 +0.5537537947884796 +0.3671583560660169 +0.5595003010615971 +0.7118279174413930 +0.2896919875420444 +0.8797939161426416 +0.0283674943740764 +0.2252505166005045 +0.8647117327221190 +0.5838537823744645 +0.0533097940340064 +0.2454355324616551 +0.1457635265471866 +0.9916514807172295 +0.8018088121830826 +0.7839165626634601 +0.2304989070165952 +0.5400607989109327 +0.7420755464721360 +0.6775498089889564 +0.2761329376036514 +0.8094984630636168 +0.4274281995860807 +0.8529580416454822 +0.7327718260734296 +0.0267595427859441 +0.1533287099441819 +0.1785540330132014 +0.9049981022576421 +0.6370403347229363 +0.2333467016245261 +0.8330966976200318 +0.4824865000376169 +0.7969858190549778 +0.4898764403536429 +0.0098951488934947 +0.4853177369533326 +0.9111317811852874 +0.4856297405390637 +0.0593718239098601 +0.0492416160014340 +0.7268175819902564 +0.4315874796663755 +0.5482766906589944 +0.6107123035958083 +0.3973251200583114 +0.8034969097035769 +0.8437015785766225 +0.8872943610558727 +0.0459296351700952 +0.7049386289255136 +0.3180843440462041 +0.3521996425344311 +0.9379995094510883 +0.5553826868160102 +0.1305179899179889 +0.5445332748818809 +0.3999709312563738 +0.8316868649512391 +0.9985113177934113 +0.6960267782847426 +0.9561881667103697 +0.6802236232133327 +0.7177845104271785 +0.9947311614034371 +0.1938331411224928 +0.9581106108215182 +0.2776697628114175 +0.2513470073653531 +0.1174647197207670 +0.1071449778630509 +0.3095273780605141 +0.2082107204471396 +0.0680411303377704 +0.0553336585611877 +0.0547060247687520 +0.6020305811205667 +0.3481646449302296 +0.4741873140346660 +0.9433227522124742 +0.6216386708321144 +0.3004323982724183 +0.3373783246256792 +0.9339333293022144 +0.9860703651108117 +0.5015861980890027 +0.7536315161723348 +0.5042306876902864 +0.9168054239479918 +0.2671770187639119 +0.6290384631323430 +0.6170151680410770 +0.5629687350440642 +0.5091955254926195 +0.2702397237895343 +0.3674290239857216 +0.7679891595049857 +0.7075675707149066 +0.7303736243845586 +0.4906654267093791 +0.3783690434704202 +0.8376281586370878 +0.4433181894859248 +0.0644852600145862 +0.0741629770087011 +0.5884813853814782 +0.8726292647787558 +0.4993805845457442 +0.7426941432683318 +0.1661382620416438 +0.9948196495159256 +0.4960905252863093 +0.1615269140358198 +0.9263696668501155 +0.2509717635922702 +0.0856014641510393 +0.1321343336581146 +0.0127681402563455 +0.2148347216745659 +0.3144667162340182 +0.3630309645035544 +0.9998213626991237 +0.6364221473379665 +0.8959582152979828 +0.7748214945090773 +0.4243966197924200 +0.6380256664310779 +0.1129573709429025 +0.6265777676754362 +0.2877674165663668 +0.2401417772615207 +0.2700168744083968 +0.3668519478689093 +0.6785368022813182 +0.8821936927194002 +0.9743900307826544 +0.4524698016296237 +0.2081203354268589 +0.1962331244621722 +0.2257923625132734 +0.1291391531160373 +0.1037009717067546 +0.1561655863754546 +0.4071173483042607 +0.3546973551187848 +0.7792462614327318 +0.0852909299209756 +0.7520748822548631 +0.4677796660668629 +0.0177414228656497 +0.1091076158618242 +0.6178742609778533 +0.9039872008884522 +0.8790326774688466 +0.0901598239054849 +0.5902435479794661 +0.6034702961846992 +0.9675686174965299 +0.3218550625114011 +0.9704433028521787 +0.3653104601180138 +0.2903967479487290 +0.9500836366877444 +0.5942454607269896 +0.7402103767587034 +0.7694161904908208 +0.5943260572626130 +0.6660780579582368 +0.5034071458973298 +0.8571181980580108 +0.6987697376384235 +0.0393950242820781 +0.0207470764536919 +0.1493995969559883 +0.4427628699188064 +0.5178977425793684 +0.0040251848189055 +0.5416739470271813 +0.6065672066561448 +0.0684480015962372 +0.9070993480923639 +0.5021209112574512 +0.2206395806324882 +0.5179353406550722 +0.0619437457756905 +0.6128648683561332 +0.3945842864182926 +0.9644836795200163 +0.0560215472036411 +0.9143503827190211 +0.6370083085679005 +0.0901774428811184 +0.6022449412147705 +0.3571683626923595 +0.8485563258385083 +0.8493369103781154 +0.8936862899670551 +0.6895472611764749 +0.6208326977592575 +0.0915386169616530 +0.3576390337508497 +0.0379871805350188 +0.3973383899275636 +0.9662537054815710 +0.8889322022863616 +0.6807141868282839 +0.9757016067934301 +0.5808854614298566 +0.8051431799105656 +0.4518010084481107 +0.5675942499031384 +0.2045953596797140 +0.4678911233555230 +0.9589286970763056 +0.7126409098569627 +0.1442751223345858 +0.0777261893808430 +0.2592341010386940 +0.3941222534007708 +0.7058403355194004 +0.4518028142368543 +0.2230568779803564 +0.0352289947143969 +0.2854681131422772 +0.5619989676653263 +0.1203744016334308 +0.1616179073103561 +0.0647351504363285 +0.3885263873257561 +0.8889003300702796 +0.2166534725689228 +0.3295529104318212 +0.6098177338754266 +0.5423234560202240 +0.6973996137201184 +0.2523601102772647 +0.3523072195586315 +0.3974987856982318 +0.9041005735324209 +0.4281572112044837 +0.9494950539698883 +0.3310317998370815 +0.4095263049286418 +0.7658086713429273 +0.0527674503475612 +0.2318525341129702 +0.8557448657911788 +0.7886359519522118 +0.9914833238578070 +0.0340579201212248 +0.8640409744174753 +0.5861020103340558 +0.9461761339165113 +0.0535563354799457 +0.5422695913245698 +0.5948289554176101 +0.4682462281913729 +0.1065916753365985 +0.7329773329903606 +0.4552298027587030 +0.8703761898623446 +0.9069451251233291 +0.2612401327905112 +0.9072745346215518 +0.2982225117582469 +0.6701890737099837 +0.6486629730175258 +0.3476789436726416 +0.6069553946353698 +0.8753044094418365 +0.4244919279041355 +0.2018470149287022 +0.7577920820045654 +0.0134407417408604 +0.0597713648098465 +0.2933012427533213 +0.4220742406739290 +0.2151192833207042 +0.9507173770033219 +0.4201116796138531 +0.9874538856424147 +0.3016540349459197 +0.8305660404068024 +0.5404951066812829 +0.9244633180165635 +0.5280925584251142 +0.4478847736566256 +0.3931590004210562 +0.0335573290769412 +0.4819613871000669 +0.2714021668707060 +0.3483684663004801 +0.3155041749915854 +0.5213990003795758 +0.3588675328976439 +0.4729788692739723 +0.8449626468184095 +0.4278199439562870 +0.7009578000460521 +0.4502856315202420 +0.0539262090350153 +0.3094195552715717 +0.0695402711588709 +0.0832582996828970 +0.4611556379674120 +0.5928585048973124 +0.4904855733585885 +0.5806192875684917 +0.7035483908950515 +0.0989441273468646 +0.3453812878879815 +0.4305676260277960 +0.1870440138898889 +0.8627072082897314 +0.2566936453926283 +0.6548083531646354 +0.2881601676281960 +0.4856312718050483 +0.0010945024065687 +0.3582109556022177 +0.1207385745585247 +0.8078974791599174 +0.8067804068969963 +0.3984377532053100 +0.0766202879357664 +0.1740615416826545 +0.6076765730413947 +0.8773982614840347 +0.2199610209287552 +0.2577429649884649 +0.7043373363052443 +0.2470322086858558 +0.5289809938974113 +0.3316825443448341 +0.7317594109665763 +0.2776012179204936 +0.0904438959336663 +0.6571115285166766 +0.0311145165586959 +0.0113137165403429 +0.5770106929602846 +0.2518283067578856 +0.7173246639098539 +0.9797748119484488 +0.4830758378109952 +0.8003159026291570 +0.5888952986212693 +0.8026557643785668 +0.7955277408031037 +0.7946845470303125 +0.8352429365982578 +0.7962017417135824 +0.8278086753961391 +0.1387711009582998 +0.6047573729744773 +0.2619872130056564 +0.9049907647898884 +0.3614823279365794 +0.2176728714931604 +0.8862355563580705 +0.8988885502927421 +0.2411653206797683 +0.3922017287552129 +0.2342992584073436 +0.1121379279305236 +0.9452661807672263 +0.9163137579799617 +0.3520795558831729 +0.0699544112864469 +0.6948619735042708 +0.0791256563590374 +0.8331560538887953 +0.7470820213134997 +0.5965594049632699 +0.3768181231030067 +0.5440193822784947 +0.5438284935058681 +0.3976326333355200 +0.2677150220375470 +0.3791770789923231 +0.7377746243331721 +0.7836233045094935 +0.8949288092466063 +0.5299308110647731 +0.4563827054852294 +0.2769771391115356 +0.5017332898151771 +0.7630376126899732 +0.4694442108652175 +0.3701930483267317 +0.3520552999557838 +0.5106196902940164 +0.0805444975278731 +0.8644415256395910 +0.6799668095778671 +0.8173021224527385 +0.9262199874356766 +0.8997842073621133 +0.3864614297059774 +0.7581579065178720 +0.9218138442127921 +0.4781853811339705 +0.5686287843249328 +0.6633845188422757 +0.9726310592891884 +0.2431025646471857 +0.3796923400513239 +0.6027599281366354 +0.7998750057123523 +0.9113312329222760 +0.6826679892891340 +0.2347250577409572 +0.0193501972516604 +0.1582075449103721 +0.6050071122482342 +0.6317396914497669 +0.7054668935015765 +0.8085784461791388 +0.2423929591394197 +0.7943912045364800 +0.4841638715357013 +0.2909534481943852 +0.3694342164043868 +0.6106571476057602 +0.7007370816386747 +0.3296783324067281 +0.2378468671605201 +0.2138918606016414 +0.0834005232880555 +0.9625825176761640 +0.7071178822223231 +0.6193657344259127 +0.9037579764905734 +0.3760462537104926 +0.9272085379385860 +0.4145604436486642 +0.7163842443986543 +0.9416201902615027 +0.4696466543010526 +0.5475877358443557 +0.3078974293631170 +0.0864449867139666 +0.2947041392507166 +0.7845594830697051 +0.1973766068305152 +0.7076967492961203 +0.2220882579647708 +0.8984180577054697 +0.0641741882111155 +0.8453214919167448 +0.5434613072709705 +0.6570898653552437 +0.2666689291393401 +0.7118666614040309 +0.5222220232382256 +0.2019750110029918 +0.1694318951634734 +0.6080600343690593 +0.1322475636595851 +0.2240399269099285 +0.0875771366333505 +0.0129897623071988 +0.8213684222523250 +0.1685259339969558 +0.5599148858262145 +0.0244039295621356 +0.8756325687047770 +0.1358692594274837 +0.7452132755394657 +0.7963977764526176 +0.0057996067752371 +0.3083866531891359 +0.3481258746528091 +0.1379387184667966 +0.7108330651377835 +0.4910123105650222 +0.0127111152236490 +0.1400093210922283 +0.8772376310138545 +0.0642135455977788 +0.0474465203080256 +0.6023563777134481 +0.0705401977397903 +0.2404433676870347 +0.2877137972690681 +0.4147201192843088 +0.6276915124724459 +0.7275032281898189 +0.1650393419152797 +0.7900444750045588 +0.4831306802954756 +0.3663913955246970 +0.8634655019480085 +0.0439011628275715 +0.5408044334730607 +0.6087436454131336 +0.2630263594943114 +0.1923189102929856 +0.8226831344310569 +0.3205801078195882 +0.0737647586336594 +0.6363673953434528 +0.6425800284065696 +0.9776931502270542 +0.5393302511044680 +0.8489366203574595 +0.6083638236855146 +0.9874172880949750 +0.5531006096108984 +0.2631817780428966 +0.4005284257333844 +0.4393042660656227 +0.6696564519091706 +0.5241886101840103 +0.5851777908162870 +0.9426298779513287 +0.7608247078935377 +0.9845646153150303 +0.9993620360822618 +0.1718176286666659 +0.2019307559370854 +0.8130919063758836 +0.0394220312495019 +0.6995018578969400 +0.0190637848655241 +0.9282804728769622 +0.3693604936217229 +0.6073598748460106 +0.6704021063581598 +0.3817387379820327 +0.7932442088176627 +0.1899966718136513 +0.4620598452918018 +0.7213578850697171 +0.7016941641576053 +0.1428521577676866 +0.9515465782913169 +0.7160325919770573 +0.9591549315143448 +0.3393946315617082 +0.5021659666998124 +0.8275248141104553 +0.0599609286781410 +0.5059094019811358 +0.5816115982334229 +0.2545683067340665 +0.0027733723205142 +0.9589267315061605 +0.2066170383050034 +0.6365229481643158 +0.6659604618244720 +0.9498935960745365 +0.5562539219466368 +0.0919442176916449 +0.7330055888883731 +0.4687475013059940 +0.2138289900221892 +0.3888447259783548 +0.8978422498710903 +0.5812069799110943 +0.5053246302588236 +0.3689993558904881 +0.6075037462650175 +0.1010715788013506 +0.6163206888043542 +0.4313973795285059 +0.7289210155083319 +0.2434551742724788 +0.8767517631769769 +0.7638795446140799 +0.4683518428634790 +0.8029433736240098 +0.8332324851121918 +0.3541927557395376 +0.2067521753298019 +0.9917545788073994 +0.4813590995775784 +0.7906135293298242 +0.5551703592034277 +0.1178652888984343 +0.4738590869464704 +0.9148135116021678 +0.2052820697655480 +0.8373136303501840 +0.0351671855912436 +0.4959088586249558 +0.6294492856640239 +0.1606013680408289 +0.0634127374295977 +0.7454091952804132 +0.2130478491316503 +0.9814119354559367 +0.0085997517683986 +0.3044317285627039 +0.4979172836179641 +0.6105824531841729 +0.4997702750491402 +0.8890594698383838 +0.3899347151312688 +0.9737728539915710 +0.1345180334714729 +0.6202428330749135 +0.1178511521280436 +0.0215940786229476 +0.3199174859025778 +0.3650088339877630 +0.1027353881975562 +0.0398130954389242 +0.1359781012455575 +0.7726848078626293 +0.9578968980748209 +0.4586757974891814 +0.8933549726843074 +0.4029153499111170 +0.0654508054920698 +0.8718539209689278 +0.0861678873047313 +0.7227644532794208 +0.0753523596752715 +0.8170591055141160 +0.8670146554785372 +0.9064004732017060 +0.9755042342345405 +0.4467960979976642 +0.8250304772744029 +0.1430613361734182 +0.9923357677368152 +0.5245088196530916 +0.1057720822833328 +0.7957905540155363 +0.8434523678794333 +0.3513376614459972 +0.0774890794476364 +0.6780774037145523 +0.9246459963714948 +0.2751485396698508 +0.3884597945605621 +0.7646940134296738 +0.1147171930008135 +0.6885436169183272 +0.7011279689425205 +0.9905882736770518 +0.4152680232423990 +0.0193000216654164 +0.4137449222974127 +0.1903970833816367 +0.1565453235427942 +0.3552850491409862 +0.4419692235308819 +0.8687665420426781 +0.2392380858725140 +0.0815311610930919 +0.6108935017386188 +0.9528799140934776 +0.8139044629817798 +0.4595908436164710 +0.4888699504018674 +0.0775143268248063 +0.0764960347851348 +0.9505112200392730 +0.0774163088905336 +0.3802729794587423 +0.2025087137890029 +0.5883828638468152 +0.5026010468325494 +0.5931454467267677 +0.2139358260397758 +0.1506449985858682 +0.7007939538353719 +0.8438481618651184 +0.2010398630776860 +0.9313112959935892 +0.2006388280718107 +0.0924435681200207 +0.1941548257665664 +0.3187619654639952 +0.0711971657930817 +0.2018557402371236 +0.9438800019122410 +0.8744353320021668 +0.0972203541095714 +0.4853452148059803 +0.9654431398437867 +0.3479297517766198 +0.3612860977089697 +0.5031831255110939 +0.5463906026482228 +0.4705712111466593 +0.2182024730375788 +0.7683769708171466 +0.6557360214476132 +0.0268238030381397 +0.1289696859554829 +0.0443221501352365 +0.0597159078246455 +0.7853135537528347 +0.0665929879626907 +0.1419676574596913 +0.5505598400138620 +0.5086478673982043 +0.5659451955506059 +0.7859386174271199 +0.5081822831684474 +0.7516999672962027 +0.9252366162069251 +0.5718058812841218 +0.9364597776395780 +0.7645226621806690 +0.9230603192261170 +0.3896547776480180 +0.4662971659300724 +%% +0.6706497803768818 +0.8259915659051159 +0.6127769850532617 +0.4042432493346517 +0.0563064540342341 +0.4506809985950107 +0.6728182306226016 +0.2093887700710019 +0.2629049630806244 +0.0068903568874143 +0.6741981263711310 +0.8026358879744457 +0.6615563839200532 +0.2011487589490933 +0.2966113305625048 +0.5350148999623799 +0.7123884593841227 +0.8801106496231675 +0.1057599762765537 +0.7736908773165471 +0.1150862062662503 +0.3439478131991411 +0.2162976539518998 +0.0057640498417387 +0.5205619338920122 +0.1837588835868946 +0.1072048133407638 +0.9330220583897403 +0.0781877556303664 +0.6604415374454923 +0.0055543256941696 +0.2113213532549362 +0.4166371044168225 +0.2489126317221700 +0.8804237290693118 +0.9114630717835008 +0.2122197185028387 +0.1872496047054253 +0.0283493571356546 +0.0011739769717719 +0.2587451230366413 +0.6134283988672150 +0.7960136720771441 +0.4417212743517567 +0.3538190365232776 +0.4820827424201957 +0.7270079301991990 +0.5540293780631791 +0.6844720529281880 +0.7395825773469121 +0.1689867872929229 +0.7390011771948182 +0.3889554660143338 +0.0158743815304996 +0.2794561312296530 +0.5488249778351199 +0.9939879360511114 +0.3265921768161898 +0.7380059200028429 +0.2686659846029050 +0.0140301867513706 +0.0345076306283345 +0.7098586658566393 +0.8804033136216555 +0.1311251822393278 +0.1738269702011150 +0.9467849911595574 +0.0635165505526809 +0.8045666146925562 +0.5500252055448300 +0.2960850128458551 +0.3791679357611623 +0.3318679405186607 +0.1383370271666072 +0.9622471231685127 +0.0008209235817533 +0.2858982586997720 +0.9627033012525220 +0.5536461903980735 +0.0203918495292208 +0.2673520692161342 +0.3587292238852842 +0.0093934765497702 +0.0284739994461690 +0.5054042027492341 +0.8181935096212357 +0.5459306504169178 +0.9984011518683296 +0.4788924934998232 +0.9047358057561707 +0.6958031753814037 +0.0826713344650157 +0.2449075192032626 +0.4332419552713540 +0.7481090411770011 +0.3337436210362408 +0.1288111479371150 +0.1393425109365868 +0.3694359018085516 +0.2161886277610609 +0.0868289540623030 +0.2809660913222927 +0.6834390896658262 +0.6599492802927122 +0.0703576285531474 +0.8851721422324230 +0.0784159016220343 +0.6775815611931443 +0.8723857873635551 +0.3442387428829488 +0.7488398469947676 +0.6865869483303326 +0.5721400649461029 +0.5113942038836549 +0.7175259320021290 +0.5784878853002242 +0.1192925964151463 +0.3728264511453223 +0.3324480279209299 +0.7348138089866270 +0.9113418227917187 +0.0133558732261029 +0.0444334379695671 +0.7655890089284283 +0.8380837128929514 +0.6909078386850797 +0.8479124776327206 +0.7677202200246880 +0.5153327254961750 +0.8930457828966226 +0.6018790515210961 +0.0665720402909682 +0.5962448507692394 +0.3392590904124880 +0.1112857249315309 +0.5367884989765819 +0.9916240181373843 +0.8331481345246642 +0.2994661478507417 +0.8627726556183214 +0.6182353827040976 +0.6149876265111006 +0.3531793653091488 +0.5143005186400568 +0.5926468898446244 +0.3649024825358713 +0.5343363005946771 +0.5725036130122593 +0.3174075718189375 +0.3751798269431847 +0.6578860801973966 +0.9332728824329765 +0.1146445520498136 +0.1662239710723725 +0.8694019864172604 +0.7499672365062569 +0.7271363734624335 +0.9430020624479579 +0.4132824422670823 +0.4837363618225233 +0.4671709271543480 +0.4537214639120629 +0.7954668379373012 +0.2438654997599063 +0.4419460762806375 +0.6777206266673230 +0.9957734162654772 +0.2480800843375707 +0.1280403970412000 +0.3644668863337679 +0.9616873414436868 +0.1868708749314857 +0.6930411666732398 +0.5780037143603487 +0.5608423882500977 +0.6441989655644730 +0.9713249811202351 +0.4294390166286234 +0.8969774741365252 +0.1960699631492769 +0.7224530353170772 +0.1268089950416111 +0.9397683680282519 +0.5315018323429732 +0.2254886187046609 +0.0429141142621825 +0.2024717685614631 +0.6910933955316909 +0.7314732999603543 +0.1551093873719042 +0.6743060895480667 +0.4556540188327001 +0.4432436833380574 +0.5606860679844500 +0.6319108687982481 +0.0116703069980435 +0.2322452408551318 +0.3536862332363362 +0.1158322695030433 +0.9634522939857088 +0.8487323055999937 +0.4353499310626945 +0.6302969530620972 +0.1274088565446815 +0.2453010715007161 +0.7126333281485220 +0.5808262573450925 +0.5096368273743479 +0.4906882869254115 +0.6495880834323012 +0.0233123321742689 +0.0041469810558323 +0.8805597089399800 +0.2018707114365797 +0.3379314576230700 +0.4753747255809189 +0.6616274253970083 +0.3197317654981836 +0.2874055811093641 +0.0698162859045715 +0.5185972464080254 +0.3712390779666960 +0.0395522598727142 +0.8522029796288904 +0.6429233013492220 +0.1716043134564161 +0.0245860778925260 +0.1192679823597833 +0.2251123162515863 +0.2278627039406244 +0.6021001931781610 +0.7716493715297760 +0.7086536443199765 +0.6378488996151952 +0.9778896639349272 +0.6175561601799165 +0.1438112390964338 +0.5655215638728978 +0.8964914023258709 +0.4929803186620192 +0.3181047984817529 +0.2571762285898997 +0.5341139182822019 +0.4481070842468913 +0.7442557099061952 +0.0755455037462515 +0.0881736635594114 +0.8292182561831798 +0.4702901568278792 +0.3172165412962517 +0.5192743623627130 +0.0639664291315532 +0.7885729748132124 +0.8739453984594142 +0.2044745982999192 +0.7544967854617538 +0.6899486205135590 +0.9665559358594927 +0.1942611672076565 +0.2071430333395867 +0.2651524610606420 +0.6428563324162907 +0.6081367216327236 +0.4238958468282013 +0.7672532189318672 +0.9786971502709926 +0.0170800252756996 +0.5413752736159771 +0.4882800093012846 +0.5664635732064296 +0.4535325668908858 +0.4184044325889613 +0.9097756987185860 +0.4766618682549004 +0.9760491135221880 +0.6888504370810208 +0.5485435178768772 +0.5561370316148891 +0.0094666403269690 +0.3360619728116845 +0.4604348339427876 +0.9134297132560247 +0.9908922097051105 +0.1251950412031655 +0.5663664606143862 +0.0945400483940218 +0.4625197493670939 +0.8639195447432346 +0.0039262799519478 +0.6833368379014721 +0.7422283452747417 +0.3367793143998574 +0.5412184398424924 +0.3761234842735970 +0.8815788022034485 +0.6074823902030668 +0.4777707505251232 +0.9635916031584622 +0.2727502301296457 +0.1733453829569238 +0.8644986842700396 +0.9691780174692244 +0.2882628109384491 +0.6786791865359718 +0.8478671149035980 +0.4535076944249774 +0.1640098684409771 +0.4073202121801956 +0.5009583692983397 +0.9463817489661509 +0.0961353922326324 +0.1998223443867649 +0.7008862334619737 +0.2881202049236278 +0.3458537061813881 +0.2114514447990400 +0.0648526139252205 +0.8359259337698395 +0.7136411968729466 +0.8839727629895447 +0.4485996609021738 +0.4126785318598829 +0.1302233136776000 +0.6566698732369666 +0.7658415354209089 +0.0691474385841039 +0.5299372100597235 +0.8072030763876551 +0.7386502398203574 +0.8163976724866837 +0.9099590634362089 +0.1079579315030378 +0.1217338602508726 +0.8398682867388026 +0.0527879920083521 +0.8411987867709243 +0.5329342173929354 +0.0519388465693226 +0.8361373832400553 +0.6360358915176915 +0.7620059555978824 +0.7335875744925811 +0.7068483685535193 +0.8204346828900280 +0.2406901567099838 +0.3119376161816957 +0.8188672952427822 +0.0569869927182464 +0.8160735672225893 +0.1962001548817530 +0.6846908215984758 +0.0249193853783506 +0.5050224922572938 +0.8070765288638290 +0.9050568111880135 +0.5962573669748086 +0.1064109752073065 +0.8717233586021045 +0.7111238873247069 +0.8958953958961852 +0.0124857341852776 +0.3721871578061370 +0.1618305771923772 +0.7515039566733900 +0.7107271696811842 +0.2336812851484666 +0.1458156473180457 +0.9620985323087055 +0.8275964656273100 +0.1190767363568868 +0.9233858731422754 +0.5322410813615738 +0.0985540318104040 +0.8424411570469573 +0.0666493030651335 +0.5341925877342263 +0.5394414482514946 +0.8742698174359415 +0.7370734913518688 +0.0641610061811848 +0.7294092153878285 +0.3213275986725672 +0.1358937559382011 +0.5447052195538291 +0.1646240051946704 +0.1159073445476051 +0.5472078151545781 +0.7913238484821290 +0.2545447567715644 +0.5902198217476829 +0.6180104514739206 +0.2679718156247742 +0.6567257066434474 +0.4768088481712171 +0.8438998411194075 +0.8018278899795357 +0.7121966511487732 +0.9440082058646051 +0.3903038249845164 +0.6657680925264067 +0.9707962023941167 +0.9758816432468408 +0.5180344881975328 +0.4590301346752441 +0.5790243849919570 +0.9827581127256924 +0.7580890772895353 +0.0282653007892825 +0.4742266549813303 +0.5206714623709152 +0.0880362523484991 +0.9441696695392323 +0.4154944551240305 +0.4854395925471128 +0.5980708329728217 +0.1514730782817679 +0.2277850588198586 +0.6003959811473946 +0.4138648613445658 +0.5214294374618673 +0.5357899328102427 +0.1126604961733214 +0.3978861271719195 +0.1572100962678205 +0.9684761870036048 +0.2823789715122690 +0.7350302037352653 +0.2226577397656659 +0.2146205511975388 +0.7368134024381822 +0.6851977195850656 +0.2901994887952524 +0.2484031578734452 +0.8406937400471280 +0.7330257783888604 +0.6786698842197517 +0.2108314045756776 +0.9729048073557747 +0.1308633059219713 +0.8793668353727628 +0.3849229287904603 +0.1940388764205123 +0.1682749150222659 +0.7803041144613144 +0.7925818205728924 +0.6160000615567424 +0.6645809359455023 +0.6374354155824379 +0.2899256792758656 +0.2300623404836308 +0.5242963335351867 +0.1784243876633100 +0.2478678303610563 +0.6137636967201309 +0.1159975240188399 +0.4192057281273810 +0.6103248712962920 +0.6050614699403944 +0.6385246389661129 +0.7328477801951783 +0.1442908280252166 +0.2314561865539927 +0.6455315357936088 +0.0036223892582007 +0.0890605637757619 +0.6577781560016939 +0.5651268147351131 +0.5703656983239329 +0.5241197109565234 +0.0928816194038764 +0.5691972941463214 +0.8203219486093015 +0.2960977178239230 +0.4965672877217533 +0.2267953990067369 +0.1616474206061058 +0.2368359225241292 +0.8386880802324272 +0.4304339747920264 +0.8145921244355058 +0.2926089852252082 +0.4587937530266486 +0.4627877133550086 +0.9834880148784035 +0.2091795422250676 +0.8352278251817872 +0.0575487671296270 +0.3627326891505497 +0.6041543996670723 +0.0240717091937075 +0.4567222795141845 +0.4187870842887678 +0.5690436201072602 +0.3836306545353996 +0.7612922517768207 +0.5830063635525695 +0.7915574263840475 +0.4175259561486966 +0.2865009367887664 +0.4939103319869848 +0.2032170404710166 +0.8525061025761500 +0.7470551056895179 +0.8704712147963954 +0.6021654256915009 +0.6238331380559238 +0.2855855561303914 +0.6225569675320149 +0.2935555722964330 +0.9589648176738705 +0.9601991287755726 +0.5852953296215396 +0.6340552231766458 +0.6093081552867891 +0.8201434308862593 +0.2822697850577675 +0.9967785368852289 +0.2335465394107082 +0.6133704666150794 +0.4904032972340310 +0.1486629614533488 +0.8344672104592319 +0.9135908892417143 +0.7375622842785539 +0.5897558904109929 +0.1098753606683376 +0.9272881333662260 +0.6750529795155394 +0.8462439715445221 +0.2697821392669694 +0.7935084333473916 +0.8943474250522346 +0.2476696228020709 +0.3595067971832537 +0.8828856110778583 +0.6013691126210915 +0.9341383640410316 +0.4639396851498175 +0.8290389292699053 +0.9429304352276578 +0.8081843415934805 +0.2868742714089621 +0.6535422941066777 +0.6023122114508395 +0.2223677379303567 +0.6361442691922778 +0.3982437177621924 +0.5200912939619448 +0.5758078305226627 +0.7748887228869331 +0.1868994335680947 +0.8514212268643726 +0.3243979065563521 +0.4913208241743346 +0.0238366876477415 +0.1780986630421012 +0.8175212786729061 +0.9890372316210527 +0.3728789405866972 +0.6985932887801443 +0.3352356552544678 +0.3583583587778792 +0.4466220774815540 +0.0073745961146291 +0.6395481290571057 +0.5310219901165730 +0.7821001015015184 +0.2685203738424503 +0.1438215294677934 +0.5978443760279027 +0.9795823619109548 +0.3137689628064870 +0.3214138467598521 +0.8115559552087143 +0.2312886358012007 +0.8212584584657652 +0.9204949582089900 +0.0535134842000858 +0.9994410687255284 +0.6078550477689345 +0.7973926779009489 +0.1996560290000941 +0.5062876995415149 +0.8106786658315915 +0.0578425989842830 +0.5827079546553868 +0.0432037154811639 +0.5040317224858045 +0.9355691016054981 +0.2346848591614981 +0.5349390666455331 +0.9174472475955017 +0.9493137647333125 +0.4753405498076677 +0.1103976875454604 +0.7558087927388618 +0.3570947260322702 +0.8038972094324570 +0.3579640237972918 +0.7760442284305953 +0.3810516153211138 +0.1975746340404962 +0.8492999204369951 +0.6765546499587541 +0.1665838822246852 +0.1122785128910717 +0.2931939247600330 +0.7919951366782531 +0.0000582404213271 +0.8365080694915067 +0.2203637985585991 +0.6121296532474468 +0.2632961130913377 +0.0167285780013336 +0.4663309861016941 +0.7681799354590529 +0.3578060430860387 +0.2507600408199844 +0.5213115453088991 +0.3586892252566525 +0.6067751293117634 +0.9444632137746499 +0.9554219865588455 +0.5440689530350660 +0.1909700800250211 +0.1093806604767160 +0.7921633027842446 +0.1450294874919295 +0.1471985053609071 +0.0840312398289538 +0.0154118778449698 +0.4113809834270833 +0.3409183263468049 +0.8245251809130726 +0.6855985912090038 +0.2734045968044596 +0.7470573345824032 +0.7955318051569673 +0.0098127554247992 +0.6683780880410551 +0.1955225398256463 +0.3766197726646677 +0.0391047380371551 +0.2781487271629544 +0.1364691784907707 +0.2850721502751419 +0.0328973603833372 +0.9943792719896820 +0.6688384792981219 +0.4181112610271447 +0.1958179163192384 +0.9487291300060424 +0.3077654564242168 +0.7734300984283474 +0.6001396078131837 +0.8288257992036374 +0.0598446880534251 +0.0041856455700249 +0.9894728358865287 +0.0264532417712930 +0.4804227234935126 +0.0209322318342958 +0.9079223600125221 +0.9942765238896506 +0.5695570360172535 +0.7908262776651667 +0.9298491328745901 +0.2208941532330675 +0.4179045817888594 +0.6575322667894352 +0.8683361463991330 +0.0839274555745167 +0.5310017743192919 +0.5588325296668758 +0.0790463710490849 +0.7141867336772016 +0.4660200337484994 +0.7912064169318891 +0.8692844841966102 +0.5698923882269467 +0.4622641334170032 +0.1857573872948335 +0.5555595117353874 +0.0274413368339296 +0.1478438882769952 +0.4022779560333388 +0.8310386550646565 +0.1955024169867306 +0.8105401474647648 +0.3179930012343569 +0.0645600918293471 +0.2821075221546099 +0.8126411863275826 +0.1958498653224454 +0.3417382871033576 +0.5429096178775660 +0.0584930853678110 +0.4318403446245803 +0.3400144716621019 +0.9163287579962210 +0.6570576629613014 +0.4512718082641197 +0.9918900189591481 +0.4125872327658243 +0.3068165288947494 +0.3917093909562097 +0.3211895063719646 +0.3791139793096455 +0.3120045087232532 +0.1830462244693473 +0.5714279559387955 +0.2432982030208981 +0.3619224357655671 +0.4432778294797055 +0.7380736063012061 +0.9969313795461562 +0.5796349622748407 +0.7489459668531810 +0.7253672276173816 +0.5964103996236462 +0.2396655416315751 +0.0793554566490335 +0.3066772003296285 +0.5463786145232832 +0.0368418381532545 +0.9528706490181399 +0.6710863315232413 +0.2502500622002418 +0.4954620639638203 +0.2095527133076652 +0.4969308697084986 +0.4630343362496562 +0.7156447186913564 +0.9234436793840297 +0.1856394858598623 +0.3900936852835272 +0.6562750780860392 +0.6782481697309971 +0.0911612232140149 +0.1506002710545582 +0.4054244376561835 +0.4151740738781450 +0.9276398938602863 +0.6659787134123577 +0.9664801684939164 +0.3115282554454715 +0.8850230123909625 +0.6794787234586774 +0.2039261229292699 +0.5261577562343004 +0.8031207979755999 +0.6089336135656924 +0.7589013122320359 +0.3252171220337829 +0.2898318363065108 +0.7628518731394488 +0.1208005967267066 +0.4226086253200432 +0.4642084456183688 +0.6308854486034864 +0.1873009554916036 +0.6745428364676211 +0.3021643928953425 +0.6945713970307663 +0.2122282798610379 +0.4109919470346464 +0.2792336701373840 +0.6547910278041879 +0.2040536576239929 +0.8670961185862694 +0.8436951669448575 +0.7947723365945589 +0.7520419119893480 +0.7868348879649741 +0.2582729804497911 +0.8551167038829224 +0.3565121290335632 +0.1988301591539327 +0.1253561067512468 +0.3366010045544819 +0.3272425311344930 +0.1538595967543899 +0.1033105160116152 +0.3743997170512169 +0.6153147887679208 +0.6675935686067275 +0.8367262623602036 +0.6291700812098902 +0.0581007481140927 +0.5781984136712619 +0.2994004347902761 +0.2100447758866776 +0.3443339876707654 +0.0288499938062725 +0.3475022184142304 +0.7603928954830640 +0.5794945515381902 +0.5742942870031563 +0.0880799601167812 +0.1316003510675131 +0.2672551380763951 +0.4159943880195391 +0.5989595178839436 +0.2079628915883681 +0.7947277676573256 +0.7012523488967064 +0.3131759144170164 +0.9430180194210784 +0.8093026915237201 +0.7638995751704638 +0.9863321525652662 +0.4003011775272923 +0.9392228653340066 +0.5293987821876242 +0.0699443843988401 +0.3134108149213973 +0.7679636839503412 +0.2065000836745334 +0.5092162007580897 +0.3550337294465232 +0.2625737652496218 +0.3582208438688635 +0.9962482615397005 +0.7136425903233395 +0.9873002903568326 +0.7940620208707384 +0.1919963578354481 +0.6051337418560589 +0.2133650689005113 +0.9788801647903563 +0.4018239919361203 +0.9855890087001478 +0.8940523377283587 +0.3345351792526688 +0.9332820447600124 +0.5065539962732061 +0.9850765452102191 +0.5451311385903999 +0.6739192120991860 +0.8995240635621277 +0.5550385370458792 +0.3985632869525510 +0.9486246686280224 +0.3963824622451271 +0.0923621929153820 +0.4044468670200175 +0.9129165705540221 +0.2474533411648938 +0.0907881496037106 +0.5333879332631586 +0.0824018675289126 +0.2441935596529791 +0.5602324445708283 +0.2031084500396330 +0.3395845457034887 +0.8651871658783690 +0.1909952863567097 +0.2795872739642140 +0.8312696340084913 +0.7787417059599778 +0.0449367160743683 +0.4692373597415473 +0.1408660435935495 +0.4078630996645722 +0.9620032624635270 +0.2366611129563654 +0.5014567508919666 +0.0981788114016942 +0.1806323541546026 +0.4900608810254211 +0.2257804796681363 +0.6635944289309471 +0.5115215380743492 +0.4660595600809136 +0.5893662854201182 +0.2212515715943369 +0.0890093449785207 +0.9642799094591201 +0.7520228015470677 +0.5725258426375218 +0.2807641908627197 +0.9622855547195419 +0.6132306130320873 +0.1471264854779259 +0.5576803869075215 +0.5224653336349999 +0.4353217702014705 +0.2121603219439661 +0.5072724887865836 +0.3664609952382488 +0.3621023188399063 +0.0568475790644856 +0.6277682176611352 +0.1804715445896593 +0.5440077939177549 +0.6382937479031150 +0.1863015302591411 +0.4739561207873199 +0.9198099739242492 +0.4462258281478695 +0.3780301601045438 +0.1416867369433903 +0.3206521623141904 +0.8805001012584773 +0.9963772804791737 +0.4617856603383861 +0.6395592546966653 +0.2299436212495613 +0.5523120968280731 +0.0390347512883195 +0.9754607130246790 +0.6898141941820103 +0.6098647799232504 +0.0011919751190465 +0.2742158816023777 +0.0129619504510874 +0.7112811891677699 +0.8748053417175690 +0.7771672829000217 +0.8636747421080946 +0.2008204071149156 +0.1670931862843831 +0.9930516449781763 +0.2295481356655345 +0.4619626182430470 +0.2716373586077914 +0.4774434444031093 +0.1554564497529733 +0.5801407455126777 +0.9251803686711203 +0.5870197311906299 +0.4426079411888729 +0.8193189482072215 +0.9469464587102370 +0.6456911458242299 +0.6790549569637353 +0.4549697186771808 +0.7432000533939859 +0.4987473965562773 +0.0215206591826416 +0.4239912636305227 +0.3798668775474282 +0.5902707500336405 +0.4617226843808971 +0.1450335004744172 +0.8270521721189605 +0.4798500419297958 +0.3531084288980881 +0.4127904888076044 +0.3979812311811942 +0.0633748050049529 +0.9628699220321748 +0.2808764620100573 +0.7951747844806449 +0.6440324052030922 +0.8268915145821329 +0.6776694233399565 +0.7476721154021942 +0.7913956135491885 +0.4438037611563914 +0.1894062094066217 +0.6742821959559429 +0.0751962319153344 +0.4171746726632544 +0.8028094818238460 +0.5741540631774584 +0.2119586184816012 +0.7002240855906146 +0.5915092902196697 +0.4088850928024466 +0.3891466494839805 +0.4450613685799698 +0.8605063273274033 +0.7619769015116673 +0.4109791488118166 +0.6995209428283368 +0.7927465224293798 +0.6651371873253121 +0.8783821906590518 +0.7324899106003891 +0.9787996433785298 +0.2243933711503675 +0.3396867072456570 +0.9706742302917581 +0.4226697559960621 +0.4053856578671966 +0.4299848906994959 +0.0195538050942645 +0.4882446058399408 +0.0050335943612510 +0.6184150514021836 +0.7436742538352471 +0.9760423311005739 +0.4809790251925535 +0.8281110640624487 +0.4293368810785904 +0.7447513040531746 +0.3658407082754213 +0.9347167863565927 +0.5756712042417134 +0.8907119866888689 +0.5040296297570688 +0.0431348307802444 +0.9924178790289504 +0.1382007251365877 +0.6552489912530833 +0.3028184124450130 +0.6008649706098884 +0.2387731461416915 +0.6260593296138161 +0.3966320214295392 +0.4410662055655723 +0.3598054629319845 +0.1273167659069661 +0.5659734413179224 +0.2577111394577001 +0.7920323294835268 +0.2084368240195619 +0.3714806785942453 +0.1605691731804975 +0.8915152147589399 +0.6678945841165947 +0.9620524271442882 +0.5115421986130528 +0.6740783028295261 +0.5062493706921459 +0.8663526052435616 +0.7023252651270384 +0.7311501233259725 +0.1879876391345607 +0.8349081475459735 +0.4239934311379909 +0.9729107465553655 +0.5253140884030542 +0.7153643647990499 +0.8097557908319570 +0.4281199262969559 +0.0336082488182343 +0.6422743193895412 +0.8664740396054412 +0.8499016976167587 +0.8662031678458075 +0.8633948653851446 +0.3314137123176484 +0.6966065053518696 +0.4441905912241438 +0.4586997265792671 +0.6832300586376354 +0.4452520506859341 +0.9743019876856285 +0.1972669846409746 +0.3999453463693672 +0.8716341794734965 +0.9392526345490593 +0.4078170195036085 +0.4977580170575677 +0.7313521221776285 +0.4708001698881611 +0.9015858890087439 +0.5776283281676070 +0.5261645780094363 +0.1873361917379495 +0.3183682940450852 +0.3026371472034468 +0.7027122454964163 +0.8741308605412854 +0.7477014851329072 +0.3878588233174927 +0.1230665676874787 +0.9611162062905568 +0.6429508714803907 +0.6805755179400397 +0.8076469660038721 +0.7863769563783374 +0.8299917104581902 +0.5172410717492845 +0.4706494595514595 +0.0028857581699064 +0.3283724836419109 +0.5974215880908222 +0.3637519656148018 +0.0625848865700366 +0.2556806833524042 +0.1314988250825415 +0.6778174568471043 +0.4592717561148534 +0.1095826743807705 +0.6278432281397783 +0.5778926120439918 +0.0346061533231668 +0.9414436233758671 +0.8471078173912678 +0.9634648427650838 +0.8538593907713599 +0.5063024252317282 +0.2681910862893243 +0.0796816904736719 +0.2453476235020552 +0.4662236567928310 +0.1958375594229104 +0.8709268322544527 +0.8136249764817466 +0.8474832589931299 +0.9035519050886631 +0.0225191712694915 +0.7239348250432245 +0.6867304281273064 +0.0092867971145361 +0.6020711038665827 +0.8706532146734764 +0.9179843861724638 +0.0410185442246580 +0.1822352636845558 +0.9248575843794211 +0.5211236717730604 +0.4510727500750041 +0.4517458957796450 +0.0934367872300967 +0.7508691477534293 +0.5284026626017644 +0.8393702879550945 +0.2438067920352463 +0.8723163609094619 +0.9840383455310787 +0.8348651951871527 +0.4481408405654671 +0.3902188934728952 +0.1016659768032312 +0.9351170132324814 +0.6397757941767460 +0.3295906817068242 +0.5093636227100334 +0.6457594030228846 +0.1863015544438260 +0.5200665306897020 +0.7870726376723480 +0.9127192797753966 +0.5470721740315405 +0.8926302690050050 +0.6363389096463550 +0.9601333950642523 +0.3706193841752623 +0.1386829921182344 +0.9588389973018461 +0.2277220408831829 +0.7180470078127240 +0.8065194462333201 +0.9110964726918016 +0.7426402847535993 +0.9851873494269756 +0.5045404384800642 +0.6033470114508762 +0.5053048950620602 +0.1821706243452708 +0.5095071520576512 +0.4878328125233971 +0.9004596327773445 +0.9618410414328150 +0.3068680431956540 +0.5046274913296918 +0.4172029689554730 +0.7670397251756738 +0.9332966518291168 +0.6485564972476571 +0.5811943828247736 +0.1488728445642979 +0.3322074212980943 +0.5400555704376303 +0.7031863415243131 +0.7669549772950260 +0.8886009739428576 +0.0546645941807403 +0.1918008887570896 +0.3294462748959614 +0.0423501673210455 +0.9824061432643633 +0.3602869273744204 +0.5260462169293489 +0.2910294649726550 +0.3020284562493477 +0.7709643464233488 +0.7074300137165597 +0.4167448570146364 +0.5473605115913461 +0.6787282889941261 +0.3111969219047548 +0.2059550398831939 +0.9670512607244869 +0.1386722654256127 +0.4924633533546569 +0.8819242532885108 +0.4055280534630044 +0.6593833689876296 +0.7084295652762030 +0.2009824987741067 +0.4026557881803819 +0.8570163548169257 +0.7412595616728223 +0.8451211357601036 +0.6078952659525060 +0.1917469531178785 +0.3020135465357887 +0.7302113291255181 +0.1607169783855153 +0.3704826975333985 +0.4563019863606176 +0.4604478550205848 +0.2830025486607967 +0.6896187478927254 +0.3722090063816373 +0.7950662064217235 +0.3348360203134726 +0.0894686744595175 +0.3131440244414995 +0.6844497001816023 +0.2320520233230104 +0.0630692129371812 +0.4855638283523876 +0.4965223237201346 +0.9982592694182569 +0.9336370556795063 +0.4765344655401264 +0.6204062808188641 +0.6409336170248937 +0.1423732376046224 +0.7218417997981040 +0.0251948869031422 +0.4909029452917174 +0.5315158170434265 +0.6792714176240864 +0.2785917048485730 +0.9892130481716161 +0.0718708728884951 +0.1105211423483690 +0.2476463085989742 +0.0877703830360676 +0.3927175624140121 +0.5194937068661596 +0.2129820728970462 +0.5116859464372664 +0.9701954086706548 +0.2873223706950525 +0.9233588265617964 +0.3202957011432098 +0.7791746019144454 +0.9209934033719811 +0.9055937012421273 +0.5325132251968094 +0.3328632260400404 +0.6879271306239299 +0.6402844764267249 +0.3795103594138809 +0.0104455357879364 +0.8645202597223570 +0.9665086486985087 +0.8585639967066960 +0.5896684881948212 +0.4193839547307011 +0.8493300328385999 +0.2147913221791555 +0.2178345534963051 +0.9592739581968029 +0.8079379395659060 +0.3485584241424272 +0.7876367022679963 +0.6571206096210505 +0.2742004033810502 +0.7844973503336494 +0.9215009178567896 +0.3673928884402909 +0.2694485164429946 +0.8477599036677013 +0.0197733826665731 +0.9508153113715531 +0.4873538161115555 +0.1738055037722702 +0.4287095907432208 +0.0400733113888152 +0.3487703920656186 +0.0259574643662913 +0.4368592948167376 +0.1687529035079925 +0.0259042723130055 +0.0719586872242812 +0.6430274491897451 +0.0114041688989043 +0.0775811394458042 +0.9223172893733803 +0.6718885396626793 +0.5199939983391061 +0.0826638545418551 +0.7146037669691063 +0.8175022559802654 +0.4589764113545460 +0.9610839736700799 +0.2703559113423437 +0.8896222515317803 +0.5026845150159609 +0.0381470695767974 +0.2717425462398037 +0.4038553830832153 +0.7970668453594278 +0.2330985796013476 +0.3582673009272933 +0.5517150582761918 +0.6598581014187268 +0.2218884618999365 +0.9762124378489822 +0.6396709043830325 +0.2480394526978102 +0.7595500832590132 +0.3927735686328228 +0.5754941526394404 +0.3123407094673069 +0.0215684359916686 +0.4296692679649919 +0.6831645084459348 +0.9170702241972314 +0.1878667418114593 +0.9102305328613657 +0.3408413486688138 +0.7026429254335277 +0.1758883202244403 +0.7841527065942911 +0.8871619722542370 +0.4405644139217184 +0.8621191632112634 +0.6800467610385879 +0.9553649143590983 +0.8912267606498364 +0.6900608695698048 +0.2570009291409269 +0.1955109471129666 +0.0271261000024117 +0.6517197906162637 +0.9305352719464305 +0.0212299243550949 +0.6395854929880482 +0.3315313356692369 +0.9255905733332066 +0.7875500687587406 +0.0899734733084319 +0.1040757479266377 +0.1394336256620761 +0.6090159635682290 +0.2598777693170771 +0.9611367026643435 +0.2765725319856374 +0.6778858688433568 +0.3141230252886089 +0.0203547899449999 +0.0095817847494037 +0.0610637907984764 +0.5526652945738433 +0.7147416224628306 +0.4656216816761077 +0.4546946621297752 +0.4030354883920502 +0.3868185686872813 +0.8009164149131514 +0.6594529835275775 +0.7518138273803485 +0.8836259797670921 +0.3657194700513534 +0.9775612212299545 +0.9229481884182147 +0.2247027261430662 +0.8225957546037668 +0.9660192468670252 +0.4183206264910264 +0.1680814572518313 +0.4637392546241816 +0.3309454778655800 +0.5590929455073977 +0.2447328717422609 +0.8376171715612460 +0.2047712583344336 +0.8277759639768222 +0.5144552987413169 +0.2484164534965537 +0.6897256734773605 +0.6580908583538513 +0.8879918301005744 +0.2672114165009548 +0.6347878489451315 +0.5274753092267366 +0.7218235212939345 +0.8095640610314773 +0.3906289598627614 +0.0445790309120977 +0.8092999013602296 +0.4802389454333384 +0.7521930350435397 +0.2547425313612202 +0.9291760722080621 +0.3083790008351598 +0.5671369577507618 +0.8056249972073503 +0.9259937055166781 +0.0108541343650807 +0.9995096890250954 +0.0468467767183383 +0.1015936452475766 +0.6244921261511849 +0.5610149259685449 +0.1897416806139023 +0.0831319487873877 +0.0706035632146813 +0.8954138902763091 +0.8520072965491357 +0.9566347385595937 +0.4787620074084486 +0.1172054936578882 +0.5351143889040114 +0.1152222666330742 +0.2922462181448231 +0.3200833726774070 +0.1181354526867396 +0.2404575448750886 +0.5415909901854883 +0.3211389059912222 +0.3510463296267063 +0.7746324488118888 +0.9986030947566680 +0.0418595158942575 +0.0139787161175348 +0.3875907595896543 +0.7530389086716179 +0.5941317089184823 +0.1595625427646494 +0.4194132666128316 +0.6563692272464169 +0.7790335494772769 +0.8956786136783697 +0.9515107168427686 +0.9677560237200764 +0.6229528862708318 +0.6895320519652769 +0.0473014817654582 +0.3620892707510956 +0.4848792401906387 +0.0860256114500050 +0.1231564388786734 +0.0649173780997755 +0.6530233085976481 +0.2429985447839251 +0.3364787209385801 +0.6459399067910920 +0.3203764689930123 +0.6990693047823500 +0.4341323145713521 +0.6563422059892272 +0.2173387971355377 +0.9637952866773769 +0.6607275980470636 +0.0796469243440591 +0.4479284411694911 +0.5415876254192639 +0.6557567534066947 +0.8340148838324034 +0.1922276581617431 +0.4076427724465323 +0.3533006825814292 +0.5981341136279571 +0.2553379914371780 +0.1919467015311055 +0.9294979370271899 +0.5744078435073761 +0.2798287115224770 +0.8338315974978148 +0.4896111546024445 +0.2203518595405510 +0.8501585460851093 +0.2950349902168938 +0.5329113050349750 +0.1557779573842886 +0.3158441582262916 +0.3435317300120490 +0.0501260294635253 +0.5708653611593014 +0.8115657322046125 +0.1128616801596810 +0.9481083901226166 +0.9731976148322251 +0.2862745100218906 +0.7679103932822915 +0.2984715121287830 +0.4963932883852935 +0.9894080736664661 +0.0494555565027316 +0.3702362623475484 +0.5174465377145300 +0.7664428139096473 +0.8421790808778825 +0.3613062961000928 +0.0304059869582618 +0.8163494961351256 +0.0066496192799561 +0.4353939689505179 +0.6164955456506980 +0.3677672876430078 +0.6058981686330663 +0.8482330837866502 +0.8508228913740034 +0.0420607643745302 +0.6764219799533058 +0.3016978510235287 +0.2061570293911438 +0.4894713187226017 +0.8947067781885739 +0.4974399832782541 +0.2560584232650818 +0.3545240503132590 +0.0497645050704449 +0.3649382456285633 +0.5781017928703784 +0.2593985048801880 +0.2573054854966929 +0.8411345508500866 +0.1673501853211126 +0.2698629368291344 +0.0114681157053863 +0.5425356489234545 +0.9124050823057182 +0.3243438310007327 +0.0444391412355456 +0.2854804921104441 +0.9713481381612467 +0.1493028258138311 +0.9376220915546207 +0.5160480009443225 +0.7575753428651201 +0.4392434079381751 +0.8641895135928856 +0.6048116800155845 +0.8517577489309491 +0.0681054820570370 +0.3507316083262376 +0.1584073325761163 +0.9048422929448370 +0.2454456134530116 +0.1688553989695608 +0.0925885913979589 +0.6156297430830749 +0.5117834588197085 +0.5927523492918186 +0.9284291380830760 +0.4295983204456260 +0.7005624337148904 +0.0683092844046305 +0.5042668834271299 +0.7823365651784885 +0.7913493504668692 +0.7143029247109636 +0.4981071978430911 +0.5904419032047712 +0.1096904064169723 +0.2201526756501532 +0.1583351274890349 +0.8978992567846610 +0.4534670964102946 +0.3385387806043364 +0.8593305478788553 +0.6829161334968287 +0.9477761586191684 +0.7326863964439103 +0.3717420865424330 +0.6865041726173859 +0.2257920557058972 +0.2153121365673821 +0.7081949833336886 +0.1456191362384329 +0.3819270358226128 +0.1482824488284014 +0.8397461173564810 +0.5095795900424288 +0.9533439251481428 +0.0031193434442223 +0.1835190420210124 +0.2126659650200075 +0.7026535406262844 +0.0926336341837400 +0.8983485289172923 +0.3584504138910118 +0.5226308085286762 +0.3473896043618652 +0.3327680155018392 +0.2779397906022432 +0.8690825544212326 +0.4379204522330615 +0.6588062234418051 +0.0845975714870132 +0.0426857190169780 +0.4426838510419984 +0.6385115281333987 +0.0468161403668703 +0.3179645073860647 +0.2520913007147265 +0.1310366504615986 +0.8406932627872690 +0.7062852925711428 +0.8117694859180328 +0.2544704680915038 +0.5028047000489703 +0.5024131357778179 +0.9758845426614957 +0.3776248605135203 +0.1560141998388467 +0.4365298069364617 +0.8740165912993504 +0.6249453573075638 +0.3584603369820842 +0.5812052635912771 +0.7064391204933703 +0.2590970165632111 +0.9616261270243925 +0.7371200538040362 +0.8760180277757790 +0.2477914310539994 +0.4596424959467362 +0.1997953719048625 +0.1025062748242720 +0.2128657260791223 +0.9537716668849801 +0.3250156576093250 +0.2426958968117487 +0.6371153835140172 +0.9842940491864728 +0.5338854397695886 +0.7107330495915096 +0.5615951156497201 +0.4974925589399317 +0.1248608704692610 +0.0653478205616685 +0.4995372200732820 +0.9166056415751752 +0.5604306335633519 +0.0168225782271857 +0.8638570115317078 +0.0690418190997658 +0.7590143505888518 +0.1488856672386586 +0.2286919108552740 +0.9232449990816181 +0.4805208219527649 +0.7179963295659471 +0.1486892621703501 +0.4203278297205737 +0.5190996974631388 +0.2096879014544686 +0.8925270420925629 +0.1983568854738631 +0.0016125358176491 +0.9881801548783509 +0.1319881603987824 +0.9360905385012720 +0.8310210136280922 +0.4360755966886609 +0.0794404984136965 +0.2248113269254897 +0.2025194147491347 +0.0363324026444286 +0.3923839381164775 +0.7766632656102206 +0.9173689276496617 +0.6504967858451154 +0.6068946954502972 +0.9659888371945107 +0.5690692313924823 +0.1991219338090241 +0.1773277227699380 +0.7108295824508500 +0.6970606269690431 +0.9649042244467533 +0.5618734107635087 +0.7311277757280892 +0.3527781517282796 +0.8191464096957458 +0.6858132156912087 +0.3573405703805015 +0.3853339766032497 +0.8102174856585140 +0.4903624529474172 +0.2423793284917126 +0.4434779790592663 +0.2800492035870955 +0.5821730245457386 +0.7804142279797868 +0.7166911594708220 +0.2666068292819997 +0.3713383720971528 +0.0680229006285039 +0.4262955169175252 +0.9892175858714144 +0.4335280915793611 +0.0823560106269561 +0.7670735542380446 +0.8202882149578634 +0.9114414573051591 +0.9439149093249251 +0.8020672803295404 +0.1510127658616406 +0.6819584785461428 +0.9459783015865997 +0.0177456972609941 +0.0677281602122275 +0.1684869620222255 +0.8801085341366714 +0.5266360815497825 +0.3240634223890045 +0.2583433493451672 +0.5552886782383709 +0.0028728320033330 +0.2561453714930781 +0.1756304211722207 +0.7927598776722965 +0.7407312200833395 +0.6577896151185617 +0.0215305357367126 +0.1583856915392156 +0.2304879757242600 +0.9861086250863013 +0.9022317622920208 +0.9395066438928235 +0.7858749917959041 +0.7872547942492210 +0.1296149965814871 +0.2012412185255479 +0.5976058508472814 +0.7983280453108142 +0.3331059352600580 +0.8688069511171967 +0.3626717804320311 +0.7630185250512496 +0.9448369216702093 +0.8927858127970022 +0.1291753652670494 +0.5196630832232656 +0.7400979199890309 +0.2424624018252474 +0.3371683802973342 +0.3840708848328651 +0.2246769054521544 +0.0678706418418612 +0.1123802356325516 +0.6998075135450743 +0.6949245762243059 +0.1275475579388417 +0.5919798260770579 +0.9667346689505580 +0.7274768031650555 +0.2356456471960194 +0.2760441233144222 +0.4353027378685878 +0.5896858784646944 +0.6660646890608888 +0.3536900202122732 +0.5836296582623269 +0.8487296204131421 +0.0266214263945826 +0.1883480922821393 +0.1932333033290927 +0.6090000382146201 +0.9125268695002923 +0.4843806999657029 +0.3384077327164764 +0.0728766379887434 +0.4932348745355788 +0.4295417609839121 +0.5387690605084077 +0.3665522269142119 +0.9496307630822044 +0.8070069141532575 +0.1410670617274711 +0.5049755016580028 +0.3995270685772330 +0.2576757670334312 +0.0331007656505329 +0.5419223146351337 +0.9828015631932735 +0.2474143375257285 +0.2798160041657937 +0.4539045319551354 +0.6713641663858049 +0.6191971169652316 +0.6324322066047796 +0.9385249342522616 +0.9809966755016950 +0.1001079041876762 +0.1415330856138893 +0.1704488839366777 +0.3881485905965430 +0.2935499941248824 +0.1120005811916858 +0.5914879323108095 +0.8765235178597197 +0.2271962394785683 +0.6161754863290158 +0.4764176557196777 +0.7056085159691604 +0.1496645437284556 +0.7058634873540515 +0.9859995805692675 +0.9355089490367021 +0.2785601350972580 +0.1003528419838865 +0.2261425593878807 +0.4967031151489507 +0.0566664538568530 +0.9159277316054119 +0.3922953860809024 +0.4483502985238674 +0.9124681416233108 +0.6718031407877725 +0.4816634428056503 +0.7061227517611068 +0.1873683529932155 +0.3169404869243944 +0.0910609552450158 +0.2949820297812915 +0.0245653972452079 +0.4141141928760574 +0.8185350103409462 +0.4636467348206875 +0.6289251174784207 +0.6869857659841480 +0.5964122412216316 +0.4618838976102555 +0.7359986342556086 +0.8051806030752703 +0.1706060923454619 +0.9482913628610325 +0.4809387541501188 +0.8579969297238123 +0.9968685829068644 +0.5392077948673361 +0.0947857543232063 +0.9287967257651502 +0.0585686642139498 +0.6695867268859137 +0.1936208173684255 +0.0259080832807979 +0.1963049592221661 +0.9536030970765107 +0.4186538106744412 +0.4546006669003153 +0.0781686485842149 +0.6534944031709503 +0.6433527421047117 +0.4721226608708392 +0.4722094731200412 +0.8946639929385878 +0.7557253174510878 +0.9654927884521087 +0.3597407314778985 +0.9799811185141807 +0.7607680901727522 +0.6508613178756906 +0.2436633564044947 +0.8925608164716374 +0.5919963182484672 +0.7111540657638707 +0.1740080894329348 +0.0355902435505784 +0.6079107078295621 +0.7214647631957276 +0.2955362684203443 +0.4562961344523110 +0.0779334540207073 +0.1021414682525891 +0.7065259216680965 +0.6222726095579222 +0.7988079862222858 +0.9618378826488166 +0.6333816246201256 +0.9331191849755162 +0.3102661147308385 +0.3875507149968780 +0.4498616242467166 +0.8894861406466421 +0.2243485310274160 +0.2707622428419260 +0.4786969146798553 +0.9846251447247807 +0.5729761491506550 +0.8513888062996343 +0.9132168187018416 +0.2772562585729932 +0.2007969491109869 +0.7721790667651092 +0.7797739521900092 +0.5401140573140070 +0.7634158161949297 +0.6366050729945988 +0.0770363291291437 +0.4721668146956453 +0.4686432376641178 +0.6968911564583339 +0.4225138471526058 +0.2991646701389455 +0.7099622684953939 +0.3213712247060048 +0.1890481684469329 +0.5430008637584348 +0.9171931156991225 +0.5872694907499869 +0.7584472802012305 +0.4226089782700226 +0.9294961108168333 +0.4543320886707632 +0.0823410508928388 +0.1758714870797015 +0.9153472698235159 +0.8393921070525052 +0.4224232250181824 +0.1777626197675873 +0.0419886888245400 +0.8262135835404802 +0.5052004520770992 +0.2637273907291635 +0.9440946973564522 +0.9229891394437990 +0.9894965857068228 +0.1129838258364303 +0.2561510074557786 +0.7875380908210652 +0.6319777168903906 +0.6617064324814188 +0.2866653780760334 +0.8660328782465921 +0.7916314662378321 +0.5969386861976854 +0.8843213689630884 +0.6730165711165048 +0.2982409442407024 +0.3065158119143195 +0.6557112141528549 +0.1891885643338961 +0.9306619264648888 +0.1877469903470455 +0.0334335459897208 +0.7582239608908194 +0.7483979351883965 +0.7911550121426927 +0.9501843543802572 +0.2722935458685424 +0.6007415948786937 +0.3901549076518685 +0.9763755612054245 +0.0369939700249492 +0.5323729445506774 +0.7856730916404367 +0.3497280843685927 +0.6387814536537902 +0.6792836778919811 +0.6541452667514743 +0.1569148474471564 +0.4490370580981634 +0.6120169481812407 +0.4291933530968562 +0.8849982720438981 +0.7790553412783163 +0.0331638468875693 +0.1215640456835296 +0.6412051548983529 +0.1942739494269774 +0.6193798821139512 +0.3990234774825708 +0.4587772307346252 +0.3257413037677643 +0.7588046323386585 +0.1037593527667019 +0.8321320812847075 +0.5608472276986062 +0.5760265944119405 +0.6073082243118895 +0.2993349058571911 +0.7678174345784632 +0.6197024503169893 +0.0831102403921690 +0.1673107408842182 +0.2496212996915371 +0.9957936244241495 +0.9023690064795112 +0.3417791450257848 +0.2132540412149562 +0.2748117750164497 +0.0580707922064493 +0.0302003492278179 +0.9353036575742548 +0.0704915014151684 +0.9435622151044095 +0.1150421314579128 +0.7943208010593020 +0.9243679720473754 +0.8180606145619777 +0.7693368208868272 +0.9269028270471269 +0.0716061769037047 +0.1374518610202794 +0.4379920531781609 +0.2799964018764617 +0.3750445895500082 +0.1252938052153874 +0.3636804417561890 +0.4916875036003094 +0.5734618587685328 +0.1033924013526448 +0.0047566450719206 +0.6829888108652479 +0.9759443974204535 +0.3633676200711662 +0.7362900598063589 +0.5509065377926534 +0.9917593780234876 +0.6278834045356503 +0.1553793406044841 +0.6025802475252517 +0.7556594391164060 +0.7723281635324477 +0.2024199741261136 +0.6365184884751295 +0.1401223395222604 +0.9204158061945104 +0.8409760855592519 +0.4030988975865366 +0.0797163856639079 +0.2279533339232732 +0.8685041370249280 +0.9924199481463124 +0.2922436471527523 +0.0332181762314443 +0.1336691578462882 +0.9786199296286078 +0.2802261413336742 +0.3023797459494975 +0.3287873010032111 +0.7921060249068855 +0.9225916883513958 +0.7850993153812060 +0.8474991423452118 +0.1067095448456049 +0.8458985887255326 +0.6846225021968605 +0.9036181463180440 +0.7224748697753093 +0.3342460342540206 +0.1173245081376589 +0.6984498386545128 +0.5433877135872228 +0.1985025309029395 +0.6371900354379039 +0.7097815171508399 +0.6208031849535145 +0.7263305328814040 +0.9182174066146056 +0.5467990157951281 +0.8799271016679129 +0.4333543027484889 +0.9580083734844091 +0.8639409539357322 +0.6617163541433831 +0.1168465140212412 +0.6817131992600645 +0.2433453353730155 +0.4644642812297524 +0.9082284253198464 +0.8020966184045929 +0.8663983141380835 +0.1737822456463625 +0.5194094901570069 +0.0169302627768005 +0.1436561895187408 +0.6106929247383819 +0.2618672248522042 +0.2188649547461539 +0.9947507742070121 +0.1310251433160454 +0.9455554493610040 +0.0696159079694186 +0.2140276966668211 +0.5554124526262427 +0.2637067488889844 +0.0911155297285757 +0.1661280939687333 +0.5011615243934917 +0.1100992035279255 +0.1412587275249444 +0.0995751608974772 +0.2627060852763985 +0.6342966168815523 +0.6768336652904491 +0.9748301440095153 +0.2292324685112495 +0.4008871349850629 +0.5974652718577376 +0.3822692476844953 +0.0757144239438484 +0.3177899458612168 +0.2075964784851643 +0.4529547830290563 +0.6201183259245497 +0.4687509895638818 +0.7270959939771672 +0.7013305336049380 +0.2477703411225342 +0.5262581730027912 +0.1776465925219300 +0.8700935582670346 +0.8389953518944439 +0.2196786775898805 +0.6202520310464685 +0.5516537147578645 +0.6087754021366627 +0.8936780350076884 +0.7827779522304362 +0.1758652721951158 +0.4972289162183700 +0.6059529357580395 +0.7130301811159451 +0.8596385375734888 +0.6391932981098963 +0.5887081588545566 +0.8936721566251852 +0.7183373966652044 +0.3228062530090938 +0.3707911797021348 +0.7364208881589807 +0.4316219469550188 +0.3572694378006537 +0.3138175500557325 +0.6244081383965628 +0.8675676014797002 +0.8759615692583863 +0.9365154468413415 +0.7433043281225773 +0.4056836276498403 +0.6443499358660489 +0.2206039338744345 +0.6508569030236597 +0.8555644826246532 +0.6325750545992908 +0.9868097318323660 +0.4635187669438467 +0.5657400050310177 +0.1157655500324088 +0.1163859845173219 +0.2383849613486622 +0.5405867679807470 +0.0684025993237541 +0.2849853367531424 +0.0629259998894395 +0.1925659935892730 +0.2653042874391041 +0.9314489567745914 +0.4947204649861094 +0.3120536209830941 +0.2849697583085745 +0.2108695153102065 +0.5511080661030812 +0.8429663839534144 +0.9777554581731687 +0.4248490252564392 +0.2478895011199792 +0.1840953558752291 +0.0306056615913880 +0.3058430496147007 +0.6353552250362883 +0.4383101539866083 +0.2338112277989623 +0.0211983881535119 +0.0712461246959274 +0.2113991352481090 +0.7949031811022533 +0.3805400197462047 +0.7186323016644206 +0.9065632633526954 +0.3376554898120862 +0.4710461122327015 +0.2913289014446749 +0.3503133544690384 +0.1909629029424268 +0.1568733838349911 +0.5487271279048312 +0.5003409308398880 +0.3131182001903026 +0.3867805096969247 +0.9781644910262695 +0.9840747966364163 +0.2271315989736059 +0.1943299345284453 +0.7312787032966112 +0.0422015835284154 +0.5117771636821119 +0.5750782535910294 +0.0030782736878965 +0.8027050213017932 +0.0487987963982722 +0.6829641993410900 +0.7309757066843222 +0.6983215724339001 +0.2324537813400110 +0.1039695855171783 +0.2838189068593525 +0.7169576664367757 +0.9507119858036748 +0.6497863167843734 +0.5492045539913952 +0.7367940167798390 +0.2432521340060706 +0.6368982022979823 +0.3110533886338623 +0.3887509146167604 +0.0814918811892169 +0.5911303526141637 +0.9118206940962326 +0.5462907006195745 +0.0570610234267521 +0.3287219928958103 +0.3837925816143414 +0.2456097395769410 +0.3840718414980835 +0.0216831354038262 +0.0323446848357492 +0.2136053216055497 +0.2515686352360630 +0.4547675052467607 +0.7560601768748735 +0.1151137989478402 +0.4459907401167787 +0.5219318646141409 +0.4029219013976958 +0.8850646288602388 +0.3613262544146608 +0.3024388213252649 +0.3650937284619293 +0.1959769775963441 +0.1891180706391074 +0.6989587519988958 +0.3781129179390808 +0.2120985966202965 +0.9112108675884004 +0.3807303876039323 +0.4137071695130826 +0.1893143843398929 +0.9804922842088835 +0.1124770162224866 +0.4495232729801300 +0.0378757213609248 +0.1100748006771031 +0.0860732671597094 +0.8919560013964665 +0.1422400593534927 +0.1130258376026575 +0.6620428427348600 +0.7738180212483589 +0.7836370348227916 +0.7587208043621751 +0.8263215448898816 +0.4590926366929638 +0.1614325381696843 +0.4612824840290185 +0.2726667585161675 +0.6152661946112064 +0.4383517857712692 +0.5319054128048194 +0.2252427752535455 +0.8547473335356496 +0.3951882373086660 +0.5464726243951982 +0.7965737207573602 +0.3168420172378338 +0.5202801818738064 +0.5682557715571042 +0.8774815375558623 +0.8052271462196303 +0.1945275877689054 +0.2593278107933764 +0.6551292650217213 +0.3528642599580720 +0.8855659442826312 +0.1445798491151181 +0.6189029157849091 +0.9889907441601455 +0.2559840167365194 +0.5384930923201144 +0.6833376951851492 +0.0696696653512354 +0.4448429128180033 +0.3619195187677985 +0.1113532420250700 +0.3697993829018421 +0.1567798385936343 +0.4856004158845726 +0.1128769426014182 +0.4100471916935172 +0.3278123678013509 +0.8033711009282011 +0.4250922142124365 +0.5740273989848887 +0.3179571610606062 +0.4229652210393595 +0.7574623391410822 +0.5151610804490614 +0.3739834510993206 +0.6263529613883547 +0.0798727666458218 +0.7609281543135803 +0.5462209965445174 +0.6772834811991795 +0.6005647333963041 +0.2570639911138122 +0.0671901781913464 +0.7010966386414133 +0.5576750142468556 +0.1373789750610118 +0.4291926311886515 +0.5644731100830583 +0.1985120137359764 +0.6927687735794372 +0.4778204039312450 +0.8091134056683726 +0.8551032424473254 +0.1918101731485582 +0.0578982585410387 +0.8224736662414506 +0.6339196902098865 +0.5285597730759886 +0.5237926112567608 +0.6067592486433189 +0.5942964367596129 +0.2009746354573663 +0.1229079775264173 +0.2738195510737064 +0.7736301405510647 +0.3646297004554473 +0.1929478868791691 +0.6389453593425197 +0.0474608076229809 +0.5210058420620016 +0.2675814857860954 +0.6715867465043378 +0.7276366647480302 +0.9733471450877078 +0.4983872392132644 +0.9795425713308116 +0.4317351176909463 +0.8590440628148251 +0.4734314596088596 +0.2710684550054215 +0.0618921953487952 +0.9589351639402076 +0.0515392607549173 +0.5710601888403317 +0.5170961713529671 +0.4339244521016377 +0.0056411208751191 +0.3063813897837524 +0.6819402715359614 +0.3505149030770587 +0.4125348777270141 +0.5735243338777470 +0.9332310901554849 +0.0171698858285609 +0.2109580670809580 +0.9280769351248651 +0.6687123751575741 +0.3182305101402755 +0.4975961271659044 +0.5019821861036969 +0.9573041051037562 +0.5193393604564319 +0.8121058203288879 +0.6744443527716226 +0.2319928316780180 +0.8635313509861434 +0.9791890548707380 +0.8912425192676844 +0.8013408494620968 +0.8889397105245140 +0.1234271638085666 +0.5830906262606326 +0.8172092060278197 +0.5907902108743418 +0.1711860647546211 +0.8399519785253313 +0.8235526438421128 +0.9624080780819501 +0.1529730587350045 +0.6034092686039084 +0.0386799172301899 +0.5331682941563185 +0.7013829239251173 +0.9427655219765450 +0.4112738028227974 +0.9249215412365197 +0.5490046368042139 +0.2456892240259040 +0.9166348024173846 +0.4747760208728015 +0.9270209830962918 +0.9260177581212643 +0.2335004809341738 +0.9270794780794804 +0.4579896519277681 +0.1136841759176972 +0.7871453397436495 +0.4428267897252037 +0.4940440582550536 +0.1763139742113466 +0.2558519655755877 +0.3936840533149819 +0.0040309208172359 +0.5448165062970943 +0.5669367909899098 +0.4330201767117541 +0.8147036442375436 +0.2293810367032126 +0.6489986250100064 +0.5168873650912207 +0.5537887083181703 +0.2797601616976392 +0.3636551767145870 +0.0467957836489408 +0.9130874770529670 +0.1912189812674835 +0.9886810948139901 +0.2006225740466708 +0.1775338427463685 +0.2977799466819427 +0.1479188071380166 +0.1172028702215285 +0.1242010168813659 +0.0225552508180891 +0.5662809660732754 +0.8841867719282607 +0.7312814900058969 +0.3531879674397241 +0.5966015458058689 +0.8829711590945659 +0.4513444224601150 +0.9694889832741199 +0.5927488133727438 +0.3396049277373778 +0.6608279907803493 +0.0365218470407455 +0.8265872160788240 +0.9231239195956772 +0.5064960709934986 +0.4928525442821521 +0.4297542586206582 +0.6297086926082467 +0.4671628063249157 +0.4439592417247724 +0.6563127939154818 +0.2549380321083613 +0.4373357543143452 +0.1053125397168596 +0.1892832580852158 +0.8327291367651705 +0.0171805441861160 +0.8458747167591856 +0.9035212962460917 +0.3615053877317662 +0.8847306874768228 +0.0837941455584337 +0.4039241954095356 +0.7771752795863403 +0.7500550862503530 +0.4078994835116534 +0.5120729922348450 +0.9194100343389090 +0.8996544058361938 +0.6428103386684728 +0.5903832248078932 +0.9570889133549190 +0.3976405736902547 +0.1841442067454379 +0.1536403827814869 +0.5811038261335163 +0.8124670166318528 +0.7959604402893791 +0.1863635860037035 +0.8230339146314990 +0.1932715025720215 +0.1589033154038024 +0.4153878343666717 +0.6653147788198980 +0.4218689182080718 +0.9082212586799744 +0.2328640251067574 +0.8719032215409300 +0.0934286251151026 +0.6066404880243841 +0.3178065424469673 +0.2096594226977372 +0.7607008219582292 +0.2749765078036719 +0.2099432676325038 +0.9518052411502533 +0.4609902667721021 +0.7837124396582826 +0.7674223862020693 +0.5888467219924421 +0.8126388688622690 +0.4493699774365243 +0.4233144364253454 +0.9437320247524976 +0.0579932723344032 +0.9380430619146506 +0.2126458057988500 +0.6817661149813998 +0.2939514106973011 +0.5365928973307806 +0.7175931043331778 +0.0729363847573541 +0.2490381993456429 +0.8031535205004233 +0.2709221163321436 +0.2544548287235081 +0.8026203239782833 +0.4645057873315249 +0.9669160818624946 +0.3663768192469513 +0.5090179159053722 +0.6342528026015917 +0.4167053557301900 +0.0131260273013897 +0.1349413456669559 +0.3728711731817764 +0.0565736112736507 +0.3678621661307605 +0.5596867981485875 +0.4276849946969118 +0.3161158135780279 +0.6950153805643957 +0.1865955912368681 +0.7123625803619320 +0.9465444467715145 +0.1640701178277738 +0.5288132468691444 +0.8219452765005371 +0.1509443243981779 +0.3636056044968974 +0.5973491303248710 +0.3914715591132254 +0.7818900887180683 +0.1377539214298980 +0.9610707955758955 +0.9454116237527719 +0.3643483346169943 +0.1687031977165938 +0.4698062490735393 +0.1513551427474638 +0.3986150095147143 +0.5941725085253207 +0.5966337362181545 +0.1116377498895729 +0.4310163111679934 +0.5247427016501139 +0.2065947633301262 +0.2615834865421487 +0.3419923415391768 +0.9348498544076438 +0.3933332491832110 +0.3566066631893925 +0.4612146013308161 +0.3015471218501019 +0.4344707139660967 +0.1801015269742987 +0.4651115608443717 +0.0454760254210119 +0.1096301820849350 +0.9718693382273154 +0.0348447925858021 +0.4594539163494470 +0.8833284512513764 +0.0582610146743793 +0.8443737279198956 +0.9795255015059384 +0.7565594789920754 +0.8790070548675091 +0.4636479245572682 +0.3802837431038160 +0.7505001429700476 +0.1643648558147171 +0.9639061331548464 +0.4250597453538525 +0.7942929511686594 +0.4246859135390591 +0.3493554749427280 +0.1465260695491343 +0.2133162893118217 +0.2678911430834340 +0.2881423962691383 +0.2309801141516686 +0.2395562488007093 +0.0224563421625056 +0.7063739692951070 +0.6907846497843610 +0.8728563048159124 +0.1455436351532448 +0.5209748956267971 +0.3467372167314559 +0.6348891468293104 +0.2987602887699883 +0.3252290112564024 +0.5766850627114333 +0.7982353372346244 +0.3018559668091040 +0.9489051570040348 +0.4379027361023099 +0.8229215645715848 +0.0263150368884914 +0.1776751212490120 +0.8746632720559925 +0.5276407836792805 +0.6745477304047895 +0.6407529042328762 +0.2859796992875509 +0.9952957506752927 +0.6744534476112900 +0.9304769045913656 +0.8619972040947571 +0.3703660128928549 +0.8371610078340121 +0.3413500651355380 +0.9504104889706287 +0.8987708678194404 +0.6569529557604826 +0.5891623618704200 +0.4428059799772390 +0.7222354864571913 +0.0391878210312704 +0.1059685341874931 +0.8069672260726064 +0.9643057110532074 +0.0977331637806196 +0.6952749356319133 +0.8228700129758153 +0.2728658584446968 +0.5063604703084774 +0.8774925207788475 +0.2089037712604399 +0.1113335260395547 +0.2054598095455895 +0.0997081610552545 +0.8679363667684028 +0.3626630647759844 +0.7004999264396903 +0.6056923348629711 +0.9520627800773355 +0.7822415818591221 +0.6490671972015787 +0.8767661013059145 +0.5249828995804126 +0.2065361062509685 +0.5524235302928883 +0.0977332544003112 +0.8710497983770643 +0.2522646288253396 +0.8931667231377955 +0.7764085302502153 +0.4701810870105381 +0.5323995048157854 +0.7480802119244796 +0.9064676562451112 +0.6916814837226591 +0.4440813426724699 +0.2652024140170477 +0.4456564353206106 +0.7463404551081245 +0.3131247933032065 +0.1642040875681695 +0.6686033731047023 +0.0964779154377887 +0.9445138898807497 +0.8179756452070128 +0.7039503688077839 +0.5134380468193412 +0.7261458442203923 +0.1685905748347270 +0.5475120404040339 +0.5763917342940471 +0.3272504140120357 +0.7321401320798823 +0.5435130174121984 +0.1515230321293589 +0.4614142477784033 +0.4496710813450988 +0.9469967276655596 +0.6607228020360648 +0.9639260145033548 +0.9667926218487144 +0.4075268940411121 +0.1426653957262339 +0.0948809760667325 +0.2236940145123590 +0.6669275769292319 +0.5620732695964338 +0.7685744396888347 +0.9230910609659772 +0.0447784106392832 +0.6691482278291867 +0.8029637144074445 +0.2007518196116110 +0.1621969457374351 +0.5498161951841352 +0.3247960455675121 +0.0555657174422847 +0.9507964298777801 +0.7464146448325126 +0.8701378871308296 +0.1764176709338983 +0.6476407481335331 +0.8118957908730597 +0.7001025798930463 +0.6954499169867434 +0.4269261130818651 +0.2584224686550218 +0.8557911065085821 +0.4080311933884037 +0.8921766436227925 +0.6570661694465365 +0.9013910560094708 +0.7067650618992493 +0.7986710578240241 +0.9934091994568139 +0.3837716675032453 +0.3984667038320578 +0.8430119803823234 +0.3984852040692691 +0.9187647721272022 +0.5890825521842522 +0.1282440763540252 +0.4063276620089407 +0.4487514754867101 +0.5126427780617493 +0.3961708312780415 +0.6838211264800994 +0.4430178824554102 +0.5162034738546781 +0.1448633575422701 +0.7326239205647583 +0.2262076941849885 +0.1540259257540633 +0.5974313606575705 +0.6834770995352164 +0.2868467925311327 +0.5751947667860926 +0.1821203594217198 +0.9549358417914217 +0.8449640126273854 +0.6233779871040017 +0.9368096474224712 +0.7530481428041115 +0.6676516219678099 +0.1931223840891168 +0.7451106619183011 +0.6497137846770245 +0.8816191119016713 +0.8807817020687638 +0.7482263236977590 +0.0916623139259684 +0.6305543527523649 +0.9764785561738009 +0.3574107775346321 +0.2606808889932940 +0.6288603793972403 +0.3861915242206575 +0.5540970109675031 +0.7514969652755670 +0.9892576005077395 +0.8817104991690599 +0.6190572873263608 +0.3322969936910256 +0.5410325883437056 +0.8280465480388737 +0.0939881149405492 +0.9467825252219553 +0.9123292097291379 +0.8999448584342006 +0.1021824440434559 +0.3867807936564447 +0.8287559196301943 +0.0439928299238042 +0.3912945256034284 +0.0087757537075989 +0.3922465992678454 +0.7833037309265811 +0.4302373912302858 +0.0836047947691785 +0.2092693190052297 +0.6318477060572308 +0.4570254676268140 +0.3217845556429611 +0.9803750308727694 +0.5918649918923817 +0.6912033714027225 +0.6179443311727641 +0.3334517983654598 +0.9098340407833777 +0.5690357431170759 +0.8999753091926783 +0.0724679469105484 +0.3415662593695014 +0.7974908887599885 +0.4929254414887597 +0.0770865617229143 +0.4176836641305233 +0.0736229240657903 +0.3128924356375894 +0.7346192154935036 +0.2653650830090053 +0.4708417679274263 +0.9637326558135999 +0.2233344229878275 +0.3173647450103672 +0.1496438226795781 +0.4556146022401861 +0.6108247067764538 +0.3145541775288102 +0.3331607391503046 +0.7247357583582351 +0.8782894632000819 +0.9750452229946508 +0.5259443030774046 +0.4717511612443351 +0.2720277675511649 +0.6083135865277604 +0.8650981880448310 +0.0687078606124558 +0.4511860038700734 +0.5726337332571396 +0.3661982715927656 +0.3081025932247643 +0.1423980674466295 +0.7188660208882818 +0.4968824763207218 +0.5193575897234158 +0.3237274035651022 +0.8204890500501928 +0.1682113548151652 +0.1570609461731189 +0.1178386036114570 +0.5201435138957931 +0.0108195671442699 +0.5728635481870499 +0.6237282217488047 +0.0061946435201270 +0.3865488948628893 +0.3344583830947076 +0.2764747843947868 +0.3860268472675207 +0.6468509316836342 +0.7902109702413553 +0.3214803254027717 +0.5146668963558023 +0.3127791712702981 +0.5523556359138064 +0.3113164548331319 +0.2715166958134880 +0.2696725712861748 +0.5876289109573154 +0.0189027637938617 +0.6396398196580594 +0.2233441078691917 +0.3062931411859928 +0.7125529850041792 +0.8484733811907379 +0.7256719378929907 +0.0283406410667621 +0.2527593291264946 +0.5265794023996558 +0.4809310455171297 +0.3391211311716686 +0.1353979371877488 +0.6273199057936474 +0.6353390984536212 +0.7165035974229624 +0.6045557452870042 +0.3770747894574380 +0.6047703580631050 +0.5608768215301636 +0.3855510851675122 +0.4414240786932923 +0.2596232668506761 +0.0668367015786133 +0.7148501475093065 +0.7775446973417393 +0.6516060678377167 +0.2781881165082198 +0.7637065017776843 +0.6732710189880377 +0.7410062848167595 +0.6241551426060181 +0.6061769692932210 +0.7177708389102360 +0.1773637650368193 +0.9849649160774979 +0.5038153066735473 +0.2149858265836500 +0.7549893138371494 +0.6548805934123709 +0.4186134070403760 +0.0454358016897985 +0.8903693123664190 +0.9710578868530227 +0.3143465939198342 +0.7779501430401617 +0.3810653349366381 +0.8463839425129869 +0.1615016174688448 +0.7353178554093256 +0.8135060722577998 +0.5525926130013498 +0.4604252973242768 +0.1690872537033562 +0.5403875898033681 +0.7127707992219700 +0.1589958278306129 +0.4400065194765697 +0.6271785186632960 +0.3409265932919875 +0.1638569330848884 +0.5413105873907236 +0.2803454721914291 +0.0465395918250496 +0.8380357570562974 +0.9160018079546464 +0.0911276206501758 +0.1189789477979659 +0.0458687824665198 +0.2095650547096802 +0.9611044880593111 +0.2228254193808072 +0.8601528313146197 +0.2627472783194154 +0.2303648877064658 +0.6046207949582443 +0.6611270313450298 +0.3713682395258254 +0.1743405787398492 +0.0049651621141271 +0.3739565858265579 +0.2122761152485618 +0.6280553278635256 +0.1419947395118994 +0.8475043438017765 +0.4861853167539388 +0.7111626168507752 +0.6940818680870718 +0.6483943804140281 +0.9250861862841840 +0.3650907813109042 +0.2674501949231847 +0.9631944991058083 +0.2563093681148351 +0.5012887546850463 +0.0572751357908885 +0.0048792970022117 +0.0720459586939031 +0.8470977911064690 +0.8741668507835810 +0.3325876219700402 +0.0887608337501947 +0.2336343695171201 +0.3899464518102683 +0.7809174907470868 +0.1357746094621514 +0.8158316279512876 +0.0978421639191211 +0.9944485062594591 +0.7631660906774567 +0.5104394493445547 +0.7445950886089299 +0.5743903194439279 +0.5913726441134529 +0.6981041851596637 +0.8388345502257361 +0.4689634920834597 +0.5728227458459714 +0.8236031661129011 +0.2838521163820377 +0.6389563745825669 +0.4378977751661047 +0.7007924002571561 +0.8783184645733956 +0.1489166847314697 +0.7259753413442116 +0.1334991111423169 +0.1064897955985747 +0.6730295438882458 +0.2869572894269682 +0.7079329793634805 +0.9235016204831968 +0.5803631725014128 +0.0409096263451661 +0.6120759002744813 +0.3855545345718656 +0.2635260292475370 +0.5868798300059380 +0.3016145778063414 +0.2945415129453403 +0.8246489557153501 +0.5835982827916305 +0.6671875260977598 +0.4277423400608538 +0.5742249620566068 +0.4117698211215645 +0.2885492757703365 +0.9622348649199955 +0.9615537775527098 +0.0392438853766996 +0.2573971823851843 +0.6336073005202605 +0.1534051702778775 +0.7213041630116503 +0.1287328064453885 +0.8392358989052883 +0.1090424350020984 +0.2084043852089612 +0.5148907533277063 +0.9987439707632532 +0.9711006827143380 +0.2892075009928889 +0.5870119354720940 +0.1263070636402274 +0.5626976645954397 +0.9869041838286523 +0.9509886518341037 +0.1666283984566050 +0.7936973923825491 +0.2303696689302618 +0.1299598248754407 +0.7193949707809599 +0.4836236193614193 +0.1218362271844129 +0.2101916774479936 +0.1526105577191852 +0.0515364500698388 +0.1208855426704545 +0.2141399230462596 +0.7974800159440272 +0.4428767268634248 +0.1454691097752801 +0.4613142250042476 +0.5379475931489045 +0.4831569793135084 +0.9600817822896669 +0.4813790396192721 +0.7707309572513631 +0.1283095364838849 +0.1855992839320634 +0.8943519448631011 +0.7117174673758302 +0.9950419146330347 +0.8999068159064955 +0.9633030005808503 +0.6298705231518571 +0.2072829728242044 +0.0371978480177478 +0.2249443501737158 +0.9425160482077461 +0.6264371105362913 +0.5126000470443903 +0.0434622207251730 +0.4840805484492140 +0.5377870964577022 +0.1411657217618572 +0.8509379048393558 +0.4264370969967503 +0.1199439811970452 +0.6305239912300294 +0.9828027943567310 +0.9118653006670880 +0.6669892012392025 +0.2584616017691808 +0.2213976660745338 +0.3233833933329494 +0.8516480823593563 +0.3510985854493050 +0.9780050639181338 +0.0287085367965143 +0.9942082642433182 +0.5954530628256699 +0.8324232207889402 +0.8346051939051872 +0.0789569312923590 +0.2321059001191234 +0.4591553817851783 +0.6571556917649888 +0.2514816902350940 +0.0335281900383571 +0.8300653245974394 +0.9677304322924599 +0.5710103079878723 +0.5605323828534732 +0.2983033599595394 +0.1077372668972931 +0.8777517983440664 +0.8213780444039860 +0.7960357462290809 +0.1333384792149022 +0.5383211200121083 +0.3730956049007724 +0.3246673865047690 +0.2448169355063909 +0.6207319364194025 +0.5035562017095430 +0.3271616931061729 +0.9245462844425575 +0.6079458509979555 +0.3502909366169590 +0.6665088156220389 +0.3661241049069908 +0.9939999118569857 +0.5182152311787992 +0.8324482833810826 +0.3682112496055341 +0.6982414350951044 +0.3489937042677249 +0.7049949331930265 +0.4477570090992364 +0.1344910633246543 +0.0301232035070222 +0.1938051044170610 +0.2095987559797875 +0.0481670786491321 +0.7946866129053529 +0.9149321561417251 +0.9794331391295049 +0.1550235681923567 +0.8580501377841311 +0.8347893113994014 +0.2769896590345319 +0.1098581750552740 +0.2248763495232860 +0.1637921435099287 +0.6450649436975239 +0.6889887462760442 +0.3202461024788755 +0.0527561003177464 +0.6468307825965837 +0.2239438744721323 +0.8549594250319258 +0.9343639367262815 +0.8547367353467349 +0.6780936637917433 +0.8496977199718273 +0.7996266697666955 +0.9900157620583137 +0.1288125753547609 +0.4549822995135085 +0.0543546143951467 +0.8451430685991986 +0.7713218883517662 +0.3028530058442990 +0.2484474409778098 +0.9967393369142546 +0.3426433535296828 +0.3171449665045525 +0.5668001170537623 +0.0173863137311968 +0.6307935913417893 +0.5996301276463204 +0.2769472158116873 +0.6881110806979086 +0.4258768299651968 +0.1855412088231387 +0.2164209638909639 +0.9879696753771976 +0.3763795278896999 +0.4507260659607661 +0.1714906541642699 +0.3400671426255745 +0.1261607339191308 +0.6604590403828685 +0.7212128305515212 +0.1578127874006147 +0.6419953827350798 +0.1866133465800725 +0.6641915996293858 +0.9543452882395757 +0.2530357928421164 +0.3858811198472460 +0.8317013905819667 +0.4556725033185925 +0.1485589763924226 +0.0631953039934159 +0.9155515699434648 +0.0444127415513378 +0.8934581023505754 +0.0035539859859854 +0.0826098109456852 +0.7728659492993096 +0.6492289991689618 +0.9266684001041536 +0.4016381941286306 +0.4449209864811698 +0.0453024045788368 +0.6744822152982231 +0.8529070687271770 +0.9032777372384868 +0.7220092552230120 +0.3221864902962057 +0.7663363875959082 +0.1518372443200215 +0.0847432954199855 +0.8064971530357057 +0.1694753651302676 +0.8176063110541527 +0.7448447533127468 +0.5753301258645515 +0.9367611233262976 +0.1511462214064298 +0.9356375291256585 +0.0337129663950172 +0.0137912907137914 +0.0955406619717245 +0.0759784099693897 +0.9913877179726797 +0.3535789536192085 +0.8515309602203993 +0.2824651687528292 +0.8223753966693962 +0.0615185938987057 +0.4358033972743817 +0.6662095369317013 +0.3902505030695910 +0.6350066500572807 +0.6477626317506298 +0.2076427248604955 +0.8440215638970610 +0.6158008262311028 +0.4687356693996213 +0.9621556063826321 +0.4693718421343177 +0.0888117846537118 +0.9822704845770566 +0.0589292167547899 +0.7028244384824039 +0.1613793966661895 +0.8738097883030351 +0.6201098510238203 +0.7685614182487543 +0.1928454231992696 +0.2948968587816548 +0.0434712724404338 +0.2657501300052919 +0.8958744327157354 +0.7252933263330101 +0.6856374171720245 +0.0789683281492478 +0.3774007901419771 +0.7699758164787809 +0.3175541104772741 +0.6322404270974508 +0.4343337771222068 +0.5950295941088068 +0.5128569894578279 +0.0704601497161563 +0.8739691693757392 +0.5008904302837718 +0.2696200106336988 +0.2440753246626009 +0.4226765934364002 +0.9707208516752488 +0.3512869114584589 +0.6527387248880785 +0.9160853485749051 +0.9845901782681918 +0.1965349597397970 +0.7015367102872970 +0.6547593948819044 +0.7134940694124560 +0.3222228623170293 +0.2276504704839755 +0.2456490078975147 +0.2345933519509922 +0.3736848029012488 +0.0618984223479150 +0.1438179192806950 +0.2820741512199350 +0.1686952567113232 +0.2900835622424199 +0.8687649640284049 +0.7591331993954807 +0.1371498568530490 +0.6846817886518658 +0.4242364003644321 +0.6520423256110016 +0.8704003670471167 +0.0911173672711642 +0.9581823805408390 +0.0285256385002091 +0.3688729477646421 +0.7063159806311957 +0.7735156212287586 +0.4026045997460139 +0.5994577718336805 +0.5938121297973028 +0.3517031101215584 +0.7570057653895577 +0.6673908544508536 +0.8775337327107734 +0.9511414475580500 +0.7852618176184961 +0.4050046245095935 +0.6142633006105205 +0.1355479593208981 +0.1922780548715168 +0.6390540211009592 +0.2923085950200515 +0.3822791959687200 +0.1347339459858347 +0.3250915221831860 +0.5778808242807872 +0.5686982767602882 +0.4065525185253236 +0.3514984481981450 +0.3133512926860471 +0.9682554551274564 +0.3533998162285419 +0.6957205356327055 +0.6847428130154095 +0.8682479239445948 +0.9602375316694656 +0.2691104163392815 +0.2866046523404587 +0.6939230606443462 +0.6159553975838948 +0.3232233413347266 +0.3577221613958597 +0.9457367220876570 +0.4787264242776245 +0.4374964753898052 +0.7126577604468228 +0.7280355641238991 +0.0751340327284612 +0.3722979815220576 +0.1954508577098989 +0.8326250440198980 +0.2328388225398497 +0.2803914146447187 +0.3945336374642353 +0.2689126324750311 +0.3401702608340884 +0.0496103603106149 +0.1847265811323002 +0.0885915022704502 +0.9810832131448329 +0.5088556045002297 +0.4619988883523340 +0.1144653989413662 +0.6202895608891309 +0.4205614684864838 +0.4924717551287293 +0.6955512364278810 +0.6139018548740238 +0.7506666943202854 +0.9595305583308357 +0.6264722680423318 +0.0132934327384797 +0.1648116031236186 +0.5685168061739171 +0.3742623473374296 +0.1367027543782267 +0.5678157317893688 +0.9222959480302243 +0.4215047556113787 +0.5922616285808097 +0.5193342081595044 +0.6860325126085799 +0.2895169656860639 +0.9070510371742110 +0.5692344093485971 +0.4646997247120890 +0.1308021305469336 +0.3360647053129587 +0.6252867044693028 +0.2281412236360646 +0.2692837835504257 +0.5023909292738894 +0.4719298236415889 +0.0989330573731109 +0.6086902551988170 +0.0306916554924255 +0.7951819300838288 +0.9689402168182070 +0.0928584242992020 +0.9511177126225021 +0.8917901507978196 +0.0796209377659138 +0.8942791762943808 +0.0756582194340036 +0.8524920019718304 +0.7776825001911938 +0.8591575703568813 +0.6350643655932994 +0.3866893959113714 +0.9356641207536417 +0.2477000833376177 +0.9668854639593490 +0.5624390540996577 +0.7896878927946959 +0.9511939497690176 +0.6461373755171875 +0.8720458690309005 +0.0814398082613586 +0.6100834560256365 +0.4217608935494335 +0.2754720300875200 +0.4337478233729890 +0.3181947427734010 +0.1671451020724283 +0.2426300424963984 +0.8006886903047120 +0.3170696935248111 +0.0398690098662475 +0.4031408223409829 +0.4428581638558566 +0.8459384231992374 +0.1419323763814824 +0.7636300977859752 +0.7572858003909119 +0.6888571690502810 +0.6312871424017545 +0.0621014672332205 +0.3163453190569315 +0.5883705695063821 +0.5333363026868428 +0.6441665832883675 +0.3694196753051330 +0.3487864915401314 +0.2499718155499667 +0.1260868714755394 +0.7268179877232523 +0.7385074174989852 +0.1638278006239400 +0.0899152606814574 +0.9114849747660871 +0.5304472994611305 +0.5239449066363071 +0.6490032403293007 +0.3661875947860148 +0.0069644226143314 +0.7064366780986365 +0.9102127627157890 +0.8230947910017576 +0.6586904152077444 +0.5426298249008631 +0.8632530738293718 +0.5230795466248702 +0.5741296538498493 +0.7746334581158708 +0.5188856267472509 +0.7745682630348170 +0.8480022828441559 +0.5031924320809790 +0.4190720242971119 +0.2955220994088717 +0.4088443034973781 +0.6491630261443907 +0.0690628197424478 +0.7915438927194609 +0.4369219558845996 +0.8630563349021801 +0.1057419409970080 +0.9421158717161077 +0.9455580452333414 +0.3795985647597186 +0.9630706869650973 +0.9373632002034864 +0.0376233373590138 +0.0427115415650853 +0.2575607649942694 +0.6041967268176728 +0.7579654585142864 +0.5028863449146018 +0.8997294937129526 +0.8257625007890427 +0.1876292260481766 +0.1611218677822427 +0.5756054206447589 +0.2709306494820310 +0.4181656598597601 +0.2562539929886002 +0.5747352415756489 +0.1161696367266494 +0.4017534383225067 +0.1578684827808490 +0.7615103278169035 +0.4059943378517891 +0.8776358776599731 +0.9494002735264540 +0.9006349069723660 +0.4355415777231810 +0.3349048672380194 +0.3045587024858248 +0.9928510276691366 +0.2649329295549460 +0.1248246249887440 +0.0214221014354256 +0.5919394363865536 +0.8837669982955006 +0.0862916803884344 +0.5302807062158765 +0.3079703475342763 +0.3368022884894052 +0.5037935511027167 +0.8108959963214764 +0.0163780562966749 +0.7026421763588978 +0.5690931392185360 +0.8308186850948277 +0.6994454032801732 +0.5085922360287749 +0.6468444999064321 +0.8556035146321254 +0.5967375629707358 +0.9021842422995419 +0.0479491111315656 +0.9955531169081846 +0.6373350247849729 +0.0955463288860236 +0.5203829231108750 +0.3913993153561542 +0.4412091774824465 +0.5320349348252249 +0.4930614743196868 +0.4922264572980378 +0.4196213854736572 +0.7019489580957559 +0.3481021592664419 +0.3549554626908037 +0.7961946928330699 +0.7104329514588159 +0.7584443999368344 +0.4382795173158305 +0.0170458775009219 +0.0537993644927600 +0.6410874579776630 +0.3639120908755651 +0.4955116834779562 +0.6039028453650120 +0.8212140463783906 +0.8858822212762416 +0.4818044428900620 +0.6639754767604806 +0.1417055823135218 +0.0194000031020874 +0.8715370097317358 +0.0586795303411281 +0.3392246445650924 +0.8633670866917796 +0.5348256180656783 +0.8192053783989264 +0.1250291763070594 +0.3047939734500653 +0.8063318187043338 +0.5145791646679497 +0.3331116262574282 +0.4641524893162475 +0.3108927290773412 +0.5095591136521186 +0.6022389733282494 +0.8503532254005470 +0.5484205193192184 +0.9619696085898178 +0.4027647936392752 +0.3638701681038269 +0.5389892811984535 +0.9467769403352206 +0.8854488371074130 +0.9590384555996012 +0.0637407230374178 +0.1928507656744056 +0.8630148728613440 +0.8646899659901202 +0.2610004171662564 +0.5721103800225625 +0.4897783307910739 +0.8343544491645567 +0.3210210078200334 +0.7842167099968975 +0.8183819766054143 +0.4804175929634013 +0.6177086588293222 +0.8240119734525737 +0.8592202184714766 +0.5185725279504294 +0.5656509643770243 +0.1923840423555024 +0.9151713295842649 +0.9824915116039127 +0.8351973143335265 +0.7457921595382653 +0.8885047111441623 +0.9057650181705917 +0.8210509308630805 +0.5473874516895294 +0.6652631015739449 +0.3496565662204631 +0.0063932971602750 +0.5066488670483926 +0.4936067755127737 +0.6998763984893109 +0.3480475113606617 +0.3234285667002604 +0.0134371445952464 +0.1702485537633432 +0.8119804759159118 +0.2716116796085886 +0.5782723936852415 +0.3799645501753812 +0.0029348400271083 +0.3806812382042609 +0.8353822079663196 +0.6471416292831312 +0.3089262026318753 +0.0860733940669950 +0.1477416640347983 +0.3943162995760795 +0.3970503237014046 +0.6243038394891625 +0.9075118944465639 +0.8609124220749952 +0.6890978131896852 +0.6776339212236266 +0.3283416533914786 +0.7138336032371070 +0.2077443726779923 +0.3106785551470603 +0.1426042736541671 +0.4102104312821251 +0.1025029196144746 +0.6302766239292742 +0.7535473207529370 +0.7772193406179878 +0.8314565729842434 +0.8945283528296089 +0.5172657099881329 +0.2588544386014501 +0.8239180933042720 +0.0703844188154351 +0.2539294801782476 +0.5092011971637833 +0.8754312536659660 +0.4185949058487153 +0.1191343046034892 +0.3832232353003271 +0.4066014358902328 +0.0800093296983278 +0.5931199546259429 +0.9303583238056383 +0.2684345901860224 +0.6170343326711578 +0.2057368811802059 +0.7543369048700779 +0.6223157684129104 +0.6543464685243070 +0.4611191589926993 +0.2775897240624260 +0.4219224948344127 +0.8326251092465238 +0.8666558526080980 +0.8241515990655706 +0.4311932186193822 +0.7737640666349305 +0.4061660805673123 +0.5670336486464720 +0.6536434867240749 +0.0943537856523908 +0.9020147748525827 +0.0808963880362578 +0.9497857613521382 +0.0674846954203605 +0.5052382466100686 +0.8787667206310243 +0.9216929457110492 +0.5350952143141043 +0.0468085928038452 +0.7181365644190563 +0.1885278043326467 +0.7112796716977007 +0.9931490678129947 +0.2023647140163892 +0.8892402450461474 +0.8264536174564026 +0.6510246524334288 +0.3165347975742644 +0.6289394622522293 +0.2159822091612651 +0.5225040502135401 +0.9257961901183096 +0.9809012919641079 +0.9311899486920171 +0.8756880679574339 +0.7497748312759055 +0.2004990318056434 +0.5005755751901551 +0.0895272807033023 +0.0657686181302542 +0.9560096620682418 +0.8585374750011819 +0.0174942003782250 +0.0740138468167145 +0.5815551194797854 +0.5212542938808363 +0.5007889390255161 +0.0096634690035043 +0.6245739501621127 +0.8803319569852166 +0.8127731049811253 +0.2757654552351039 +0.5692765171185458 +0.2825857997408593 +0.4357644337702811 +0.1709888964275718 +0.6618458355103916 +0.0961141463396262 +0.4482191336844942 +0.2943017256158122 +0.8812035666887482 +0.5483021301966271 +0.1044471867056734 +0.9260244947286494 +0.5631910120421563 +0.6238664335619096 +0.1587836492574903 +0.5033393373644321 +0.9997544918900463 +0.7340618908450933 +0.7057184433745347 +0.6960892677934105 +0.4602553605820607 +0.3812496569237124 +0.7956180792998351 +0.1950703840516066 +0.1962505010299684 +0.2546667625670089 +0.1608074461388874 +0.3371962105484665 +0.7360414799849176 +0.8823297505545290 +0.2489779602370610 +0.8850917742257747 +0.0116946251630607 +0.0869338738844986 +0.7815874642132405 +0.0523620331851256 +0.5510698753799739 +0.2086266100089444 +0.6117944622057337 +0.6580063593968488 +0.2346445437734486 +0.0981567476907283 +0.0611888183645963 +0.6910599713210896 +0.4297698030930609 +0.4822496887120519 +0.6187305952387991 +0.2317202898767556 +0.9401894117818901 +0.5660686728413793 +0.4168002077089659 +0.2342407012142255 +0.7329600009626106 +0.5846098411399414 +0.5177182887342885 +0.4698610472074138 +0.2394673185109746 +0.5183084289986644 +0.7193841599655487 +0.7747382299346429 +0.4641082918759536 +0.1980340091246358 +0.2537705731995317 +0.5152972376755222 +0.2962523838962505 +0.5105710104347215 +0.0332042492463865 +0.7413037406151809 +0.7824637915999241 +0.6095517809403775 +0.1898430817794196 +0.3985392356871770 +0.9903337664655959 +0.5850380402472457 +0.9608057919064550 +0.5890875814684613 +0.3214790068077099 +0.1074567073284539 +0.2172989586327303 +0.5407497456878783 +0.6941728588072454 +0.9260493792437919 +0.7941816072938562 +0.4297888923898942 +0.4166084842604219 +0.7625610592712999 +0.7444808392434304 +0.4413686376260545 +0.1131583941972516 +0.3485589122727082 +0.7362898880718852 +0.4568600463459189 +0.8739938938972788 +0.0468195127778072 +0.5031604508892873 +0.6165037774847977 +0.5139819789223679 +0.0932932132957973 +0.2617800003473775 +0.8667041402269570 +0.1418951754469502 +0.1184819597514346 +0.2496863725639776 +0.0439646276964972 +0.5374878409601039 +0.2344178424258360 +0.4207397550600492 +0.5958767505040581 +0.2640370936637656 +0.1173619065437163 +0.1389730841261784 +0.9815338437538212 +0.0548446313478029 +0.8639050431112300 +0.4091472809739085 +0.0914098400052272 +0.2924511926882077 +0.8341072674228749 +0.9063571374425314 +0.9354546573418866 +0.6477398462777451 +0.3056528526493715 +0.3357105432423399 +0.9970673833973877 +0.9191206362153325 +0.6329937887849238 +0.1811248281531150 +0.9946397012756670 +0.3616655327612184 +0.8572157037352498 +0.4161717217475666 +0.9186418420411845 +0.4937420021944939 +0.6150884727507665 +0.9694619246555832 +0.1989117333686791 +0.8222632525390694 +0.8625020901798364 +0.9813174472647360 +0.9737597506217200 +0.1424798553906285 +0.0756219210493462 +0.7058028327415606 +0.9630899705527698 +0.1233660557701673 +0.2787136416820667 +0.9461960119459432 +0.7950975947095447 +0.8338735931296666 +0.8208664594746544 +0.5858443212857665 +0.5770431849393872 +0.8127530670726920 +0.0467544057375541 +0.6072295003510089 +0.8439457657535949 +0.8042866620552710 +0.9676556009046338 +0.9451395668126975 +0.5588683344974364 +0.1741249682626592 +0.3340472402616684 +0.5225629443863583 +0.4494408522515017 +0.1324317323068525 +0.6871394714087652 +0.3108478714141773 +0.4233591783086375 +0.3530258381872665 +0.8596691273504133 +0.9300638386880165 +0.3221710798322680 +0.3856540316043208 +0.9948187033230584 +0.6758359365897221 +0.2052447001670879 +0.9429019811442961 +0.6373742344696804 +0.2555441974863149 +0.8208543074699097 +0.4908545685419795 +0.5977954594480067 +0.0323493551234803 +0.0216774671839612 +0.2714016338013079 +0.3050860534910699 +0.3634514077961929 +0.4964753317420894 +0.1470483640028502 +0.1924411884271331 +0.9645044754797040 +0.9128755037186511 +0.2446108182598414 +0.6527823716644632 +0.4833511225251816 +0.6569525946478005 +0.8480170427585838 +0.6642149883855176 +0.3116529902856549 +0.6201110571199142 +0.9426340782057823 +0.6091899201366227 +0.1665739483517239 +0.3241475398236102 +0.0076923121823691 +0.8663010265956035 +0.7547080237742787 +0.4432321780783209 +0.8719247205719000 +0.6683124065682919 +0.5600602964436892 +0.3179731645631844 +0.9702921992545719 +0.7499693192076474 +0.7696484988317184 +0.3283739948157595 +0.4275295333300883 +0.0245779191458986 +0.8220812733353746 +0.2958956136801289 +0.1646366427944430 +0.9151267785637606 +0.1886443254429894 +0.4463677783156101 +0.5394003784147128 +0.0159790216745736 +0.6411700814653186 +0.0126742545562036 +0.5053435004802815 +0.8025789045716888 +0.9834838239285439 +0.3991630138357820 +0.5775123759964353 +0.5744490761786466 +0.9810162386996795 +0.6908628700315042 +0.4547270363043814 +0.9013898790313836 +0.3661673134905380 +0.7076764056474339 +0.1418524680454674 +0.8626773153355396 +0.4324078163887816 +0.1440770633499817 +0.7941828509102772 +0.9966883166797117 +0.6006798050191969 +0.1240459017459825 +0.2961440704401475 +0.9314375464792607 +0.4982649967433120 +0.2992412251228406 +0.5146651847781548 +0.4221580114035435 +0.2539327871420151 +0.0880232781366852 +0.8829621953165878 +0.1629584720874507 +0.6719682673375300 +0.3704579486276234 +0.9638192888048213 +0.2484486196452460 +0.5247045674660742 +0.2652716837465754 +0.0208413071810196 +0.6733469963052907 +0.1908770255401239 +0.2258924750500340 +0.2583945048854795 +0.5659764079770653 +0.3801663085487789 +0.8607361804082391 +0.0932461507075871 +0.4393864228536248 +0.4797856708940539 +0.5904640355661406 +0.9836831391063524 +0.0330573381609349 +0.7374507163765850 +0.6637581138534575 +0.0337354895952007 +0.2712596244887543 +0.5822774098133469 +0.7174314790569768 +0.7716722260490573 +0.6164764878597639 +0.0315861605731262 +0.4204018894628171 +0.3460505272883869 +0.7290155421249658 +0.4062766042051045 +0.6241736726711947 +0.8644214952980255 +0.8399951853820917 +0.6676764837564315 +0.6310050334873238 +0.1426920361141336 +0.7270156412609167 +0.6059240375304933 +0.3021208114599034 +0.4970573081749277 +0.5169761825325546 +0.3053032238831100 +0.6343009861347658 +0.8676815225248905 +0.2107309852739936 +0.8527478185139891 +0.9189340270067456 +0.9708341746265018 +0.0757675873161756 +0.8839526181521286 +0.4784939559220838 +0.7740756928409699 +0.9668472172523122 +0.6939646976537082 +0.7856652368505715 +0.9655427657149195 +0.7889688197471899 +0.4975169674936818 +0.6354566356643697 +0.1788013486468323 +0.6804430643119709 +0.4220455503329315 +0.8424278622806806 +0.3167163691588802 +0.9537394807313093 +0.5917154634896798 +0.6659413533971892 +0.4427519859458661 +0.3865390906576301 +0.5549558581142912 +0.5467342005826487 +0.4417973188212148 +0.4716988712562071 +0.4752971471495617 +0.2114175968330289 +0.3968767854763474 +0.5339047909944767 +0.7602055964564732 +0.9811595372841326 +0.8332277234895037 +0.0586117178048113 +0.3752435485730808 +0.1139518142973991 +0.5462444668715074 +0.9706599023730074 +0.5304454196808286 +0.1684801260114551 +0.0040092863104130 +0.4593660202141126 +0.0139403103754096 +0.9581229606199110 +0.1391431361467037 +0.6221373083733361 +0.4093510840058727 +0.6331866495659348 +0.5056385967155725 +0.1077286378963363 +0.9269554032237798 +0.1135793394499816 +0.4522994437922002 +0.4970252176139072 +0.9996814373256075 +0.3793319461052901 +0.4448159914428240 +0.6523988991186846 +0.2399842468180099 +0.7327924271771716 +0.0708898183968216 +0.8598144106825126 +0.5777692906408652 +0.6426249129200496 +0.8217830796491505 +0.4099427823229086 +0.3677426601336815 +0.0617126310863716 +0.7302741820061712 +0.3534630644875740 +0.8991244862779448 +0.0694055097854803 diff --git a/examples/machsuite/GEMM/setup-py312.sh b/examples/machsuite/GEMM/setup-py312.sh new file mode 100644 index 0000000000..d0179f279f --- /dev/null +++ b/examples/machsuite/GEMM/setup-py312.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# Enable gcc-7 +source /opt/rh/devtoolset-7/enable + +# LLVM +export LLVM_HOME=/work/shared/users/common/llvm-project-18.x +export PREFIX=$LLVM_HOME +export LLVM_BUILD_DIR=$LLVM_HOME/build-patch +export LLVM_SYMBOLIZER_PATH=${LLVM_BUILD_DIR}/bin/llvm-symbolizer +export PATH=$LLVM_BUILD_DIR/bin:$PATH +# LLVM Python Bindings +export PYTHONPATH=$LLVM_HOME/build/tools/mlir/python_packages/mlir_core:$PYTHONPATH + +# HCL dialect +export HCL_DIALECT_BUILD_DIR=/work/shared/users/common/hcl-dialect-18.x/build-py312 +export PYTHONPATH=${HCL_DIALECT_BUILD_DIR}/tools/hcl/python_packages/hcl_core:${PYTHONPATH} +export PATH=${HCL_DIALECT_BUILD_DIR}/bin:$PATH + +# HCL Runtime Library +export LD_LIBRARY_PATH=${HCL_DIALECT_BUILD_DIR}/lib:$LD_LIBRARY_PATH + +# Allo package +# Please intall by yourself \ No newline at end of file diff --git a/examples/machsuite/GEMM/testing.py b/examples/machsuite/GEMM/testing.py new file mode 100644 index 0000000000..d42832b997 --- /dev/null +++ b/examples/machsuite/GEMM/testing.py @@ -0,0 +1,33 @@ +import allo +import numpy as np +from gemm_ncubed import gemm +from allo.ir.types import float32 + +def read_data(filename): + with open(filename, 'r') as file: + lines = file.readlines() + data = [float(line.strip()) for line in lines if not line.startswith("%%")] + return data + + +def main(): + input_data = read_data("input.data") + + # m1= np.array(input_data[0:1024]).astype(np.float32).reshape((1024,1024)) + + # m2= np.array(input_data[40:80]).astype(np.float32).reshape((1024,1024)) + m1 = np.random.randint(0, 100, (64, 64)).astype(np.float32) + m2 = np.random.randint(0, 100, (64, 64)).astype(np.float32) + # print(m1,m2) + s = allo.customize(gemm) + + mod = s.build(target="llvm") + + actual = mod(m1, m2) + check = np.matmul(m1, m2) + np.testing.assert_allclose(actual, check, rtol=1e-5, atol=1e-5) + print("PASS!") + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/examples/machsuite/GEMM/testing_blocked.py b/examples/machsuite/GEMM/testing_blocked.py new file mode 100644 index 0000000000..f22c2f3aa4 --- /dev/null +++ b/examples/machsuite/GEMM/testing_blocked.py @@ -0,0 +1,29 @@ +import allo +import numpy as np +from gemm_blocked import gemm +from allo.ir.types import int32 + +def read_data(filename): + with open(filename, 'r') as file: + lines = file.readlines() + data = [int(line.strip()) for line in lines if not line.startswith("%%")] + return data + +def main(): + input_data = read_data("input.data") + + m1,m2,n = np.array(input_data).astype(np.int32) + + + s = allo.customize(gemm) + + mod = s.build(target="llvm") + + actual = mod(m1, m2, n) + check = np.matmul(m1, m2) + np.testing.assert_allclose(actual, check, rtol=1e-5, atol=1e-5) + + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/examples/machsuite/KMP.py b/examples/machsuite/KMP.py new file mode 100644 index 0000000000..1c0c457053 --- /dev/null +++ b/examples/machsuite/KMP.py @@ -0,0 +1,115 @@ +import allo +import os +import json +import pytest +import numpy as np +from allo.ir.types import int32, uint8, index +import allo.ir.types as T + + +def python_kmp(pattern, input): + k = 0 + kmp_next = np.zeros(len(pattern), dtype=object) + kmp_next[0] = 0 + + for q in range(1, len(pattern)): + + while k > 0 and pattern[k] != pattern[q]: + k = kmp_next[k - 1] + + if pattern[q] == pattern[k]: + k += 1 + kmp_next[q] = k + + matches = 0 + q = 0 + for i in range(len(input)): + while (q > 0 and pattern[q] != input[i]): + q = kmp_next[q - 1] + + if (pattern[q] == input[i]): + q += 1 + + if (q >= len(pattern)): + matches += 1 + q = kmp_next[q - 1] + + return matches + + +### allo implementation ### +def kmp(concrete_type, s, p): + def kmp_kernal[ + + T: (uint8, int32), S: uint8, P: uint8 + ](pattern: "T[P]", input_str: "T[S]", kmp_next: "T[P]", matches: "T[1]"): + + k: index = 0 + x: index = 1 + + for i in allo.grid((P - 1), name = "CPF"): + while k > 0 and pattern[k] != pattern[x]: + k = kmp_next[k-1] + + if pattern[k] == pattern[x]: + k += 1 + kmp_next[x] = k + x += 1 + + q: index = 0 + for i in allo.grid(S, name = "KMP"): + while (q > 0 and pattern[q] != input_str[i]): + q = kmp_next[q-1] + + if (pattern[q] == input_str[i]): + q += 1 + + if q >= P: + matches[0] += 1 + q = kmp_next[q-1] + + + + sch = allo.customize(kmp_kernal, instantiate = [concrete_type, s, p]) + + return sch + + +def test_kmp(): + setting_path = os.path.join(os.path.dirname(__file__), "psize.json") + with open(setting_path, "r") as f: + psize = json.load(f) + + test_psize = "large" + S = psize["kmp"][test_psize]["Str_len"] + P = psize["kmp"][test_psize]["Patt_len"] + + concrete_type = uint8 + sch = kmp(concrete_type, S, P) + + #functional correctness checking + Input_str = np.random.randint(1, 5, size = S).astype(np.uint8) + + Pattern = np.random.randint(1, 5, size = P).astype(np.uint8) + + + print('hello') + + KMP_next = np.zeros(P).astype(np.uint8) + debug_var = np.zeros(S).astype(np.uint8) + + + kmp_matches = np.zeros(1).astype(np.uint8) + mod = sch.build() + + kmp_matches_ref = python_kmp(Pattern, Input_str) + + mod(Pattern, Input_str, KMP_next, kmp_matches) + np.testing.assert_allclose(kmp_matches[0], kmp_matches_ref, rtol=1e-5, atol=1e-5) + + +test_kmp() + + + + diff --git a/examples/machsuite/aes/aes.py b/examples/machsuite/aes/aes.py new file mode 100644 index 0000000000..55ff6fe550 --- /dev/null +++ b/examples/machsuite/aes/aes.py @@ -0,0 +1,190 @@ +import allo +import numpy as np +from allo.ir.types import uint32, uint8, Struct, index + +def F(x: uint8) -> uint8: + return (x << 1) ^ ((x >> 7 & 1) * 0x1b) + + +def rj_sbox(x: uint8) -> uint8: + sbox: uint8[256] = [ + 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, + 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, + 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, + 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, + 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, + 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, + 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, + 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, + 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, + 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, + 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, + 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, + 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, + 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, + 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, + 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, + 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, + 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, + 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, + 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, + 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, + 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, + 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, + 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, + 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, + 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, + 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, + 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, + 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, + 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, + 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, + 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16 + ] + + i: uint32 = x + return sbox[i] + + +def rj_xtime(x: uint8) -> uint8: + return (x << 1) ^ 0x1b if (x & 0x80) != 0x00 else (x << 1) + + +def sub_bytes(buf: uint8[16]): + i: uint8 = 16 + while i > 0: + i -= 1 + buf[i] = rj_sbox(buf[i]) + + +def add_round_key(buf: uint8[16], key: uint8[16]): + for i in range(16): + buf[i] ^= key[i] + + +def add_round_key_cpy(buf: uint8[16], key: uint8[32], cpk: uint8[32]): + i: uint8 = 16 + while i > 0: + i -= 1 + buf[i] ^= key[i] + cpk[i] = key[i] + cpk[16 + i] = key[16 + i] + + +def shift_rows(buf: uint8[16]): + i: uint8 + j: uint8 + + i = buf[1] + buf[1] = buf[5] + buf[5] = buf[9] + buf[9] = buf[13] + buf[13] = i + + i = buf[10] + buf[10] = buf[2] + buf[2] = i + + j = buf[3] + buf[3] = buf[15] + buf[15] = buf[11] + buf[11] = buf[7] + buf[7] = j + + j = buf[14] + buf[14] = buf[6] + buf[6] = j + + +def mix_columns(buf: uint8[16]): + a: uint8 + b: uint8 + c: uint8 + d: uint8 + e: uint8 + + for i in range(0, 16, 4): + a = buf[i] + b = buf[i+1] + c = buf[i+2] + d = buf[i+3] + e = a ^ b ^ c ^ d + buf[i] ^= e ^ rj_xtime(a^b) + buf[i+1] ^= e ^ rj_xtime(b^c) + buf[i+2] ^= e ^ rj_xtime(c^d) + buf[i+3] ^= e ^ rj_xtime(d^a) + + +def expand_enc_key(k: uint8[32], rc: uint8[1]): + k[0] ^= rj_sbox(k[29]) ^ (rc[0]) + k[1] ^= rj_sbox(k[30]) + k[2] ^= rj_sbox(k[31]) + k[3] ^= rj_sbox(k[28]) + rc[0] = F(rc[0]) + + for i in range(4, 16, 4): + k[i] ^= k[i-4] + k[i+1] ^= k[i-3] + k[i+2] ^= k[i-2] + k[i+3] ^= k[i-1] + + k[16] ^= rj_sbox(k[12]) + k[17] ^= rj_sbox(k[13]) + k[18] ^= rj_sbox(k[14]) + k[19] ^= rj_sbox(k[15]) + + for i in range(20, 32, 4): + k[i] ^= k[i-4] + k[i+1] ^= k[i-3] + k[i+2] ^= k[i-2] + k[i+3] ^= k[i-1] + + +def encrypt_ecb(k: uint8[32], buf: uint8[16]): + # Context + key: uint8[32] + enc_key: uint8[32] + dec_key: uint8[32] + + rcon: uint8[1] = [1] + i: uint8 + + for i in range(32): + enc_key[i] = k[i] + dec_key[i] = k[i] + + for i in range(7): + expand_enc_key(dec_key, rcon) + + add_round_key_cpy(buf, enc_key, key) + + rcon[0] = 1 + for i in range(1, 14): + sub_bytes(buf) + shift_rows(buf) + mix_columns(buf) + if (i & 1) != 0: + temp_key: uint8[16] + for j in range(16): + temp_key[j] = key[16 + j] + + add_round_key(buf, temp_key) + else: + expand_enc_key(key, rcon) + temp_key: uint8[16] + for j in range(16): + temp_key[j] = key[j] + + add_round_key(buf, temp_key) + + sub_bytes(buf) + shift_rows(buf) + expand_enc_key(key, rcon) + temp_key: uint8[16] + for j in range(16): + temp_key[j] = key[j] + add_round_key(buf, temp_key) + + +s = allo.customize(encrypt_ecb) +mod = s.build(target="llvm") \ No newline at end of file diff --git a/examples/machsuite/aes/check.data b/examples/machsuite/aes/check.data new file mode 100644 index 0000000000..0cb19c8ff0 --- /dev/null +++ b/examples/machsuite/aes/check.data @@ -0,0 +1,17 @@ +%% +142 +162 +183 +202 +81 +103 +69 +191 +234 +252 +73 +144 +75 +73 +96 +137 \ No newline at end of file diff --git a/examples/machsuite/aes/debug_aes.py b/examples/machsuite/aes/debug_aes.py new file mode 100644 index 0000000000..550d56019d --- /dev/null +++ b/examples/machsuite/aes/debug_aes.py @@ -0,0 +1,59 @@ +import allo +import numpy as np +from allo.ir.types import uint8, index + +def rj_sbox(x: index) -> uint8: + sbox: uint8[256] = [ + 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, + 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, + 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, + 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, + 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, + 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, + 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, + 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, + 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, + 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, + 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, + 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, + 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, + 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, + 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, + 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, + 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, + 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, + 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, + 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, + 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, + 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, + 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, + 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, + 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, + 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, + 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, + 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, + 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, + 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, + 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, + 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16 + ] + + return sbox[x] + + +def top() -> uint8[256]: + res: uint8[256] + for i in range(256): + ii8: uint8 = i + res[i] = rj_sbox(ii8) + return res + + +s = allo.customize(top) +print(s.module) +module = s.build() +res_np = module() +print("shape of res_np is: ") +print(res_np.shape) +# print as hex +print(','.join([f'{x:02x}' for x in res_np])) \ No newline at end of file diff --git a/examples/machsuite/aes/input.data b/examples/machsuite/aes/input.data new file mode 100644 index 0000000000..073af848e0 --- /dev/null +++ b/examples/machsuite/aes/input.data @@ -0,0 +1,50 @@ +%% +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +%% +0 +17 +34 +51 +68 +85 +102 +119 +136 +153 +170 +187 +204 +221 +238 +255 \ No newline at end of file diff --git a/examples/machsuite/aes/run_test.py b/examples/machsuite/aes/run_test.py new file mode 100644 index 0000000000..0650472498 --- /dev/null +++ b/examples/machsuite/aes/run_test.py @@ -0,0 +1,37 @@ +import allo +import numpy as np +from aes import encrypt_ecb + +def parse_data(file_name): + data_arrays = [] + current_array = [] + + with open(file_name, 'r') as f: + for line in f: + if line.strip() == '%%': + if current_array: + data_arrays.append(current_array) + current_array = [] + else: + num = float(line.strip()) + current_array.append(num) + + data_arrays.append(current_array) + + return data_arrays + +if __name__ == "__main__": + input_data = parse_data("input.data") + check_data = parse_data("check.data") + + np_input = [np.asarray(lst).astype(np.uint8) for lst in input_data] + np_check = [np.asarray(lst) for lst in check_data] + + [k, buf] = np_input + [buf_check] = np_check + + s = allo.customize(encrypt_ecb) + mod = s.build(target="llvm") + mod(k, buf) + + np.testing.assert_allclose(buf, buf_check, rtol=1e-5, atol=1e-5) \ No newline at end of file diff --git a/examples/machsuite/backprop/backprop.py b/examples/machsuite/backprop/backprop.py new file mode 100644 index 0000000000..29738532e0 --- /dev/null +++ b/examples/machsuite/backprop/backprop.py @@ -0,0 +1,251 @@ +import allo +from allo.ir.types import float64, float32, int32 + +INPUT_DIMENSION = 13 +POSSIBLE_OUTPUTS = 3 +TRAINING_SETS = 163 +NODES_PER_LAYER = 64 +# LAYERS = 2 +LEARNING_RATE = 0.01 +# EPOCHS = 1 +# TEST_SETS = 15 +# NORM_PARAM = 0.05 + +def soft_max(net_outputs: float64[POSSIBLE_OUTPUTS], activations: float64[POSSIBLE_OUTPUTS]): + total: float64 = 0.0 + + for i in range(POSSIBLE_OUTPUTS): + total += allo.exp(-activations[i]) + for i in range(POSSIBLE_OUTPUTS): + net_outputs[i] = allo.exp(-activations[i]) / total + + +def RELU_NPL(activations: float64[NODES_PER_LAYER], dactivations: float64[NODES_PER_LAYER]): + for i in range(NODES_PER_LAYER): + dactivations[i] = activations[i] * (1.0 - activations[i]) + activations[i] = 1.0 / (1.0 + allo.exp(-activations[i])) + +def RELU_PO(activations: float64[POSSIBLE_OUTPUTS], dactivations: float64[POSSIBLE_OUTPUTS]): + for i in range(POSSIBLE_OUTPUTS): + dactivations[i] = activations[i] * (1.0 - activations[i]) + activations[i] = 1.0 / (1.0 + allo.exp(-activations[i])) + + +def add_bias_to_activations_NPL(biases: float64[NODES_PER_LAYER], activations: float64[NODES_PER_LAYER]): + for i in range(NODES_PER_LAYER): + activations[i] = activations[i] + biases[i] + + +def add_bias_to_activations_PO(biases: float64[POSSIBLE_OUTPUTS], activations: float64[POSSIBLE_OUTPUTS]): + for i in range(POSSIBLE_OUTPUTS): + activations[i] = activations[i] + biases[i] + + +def matrix_vector_product_with_bias_input_layer( + biases: float64[NODES_PER_LAYER], weights: float64[INPUT_DIMENSION * NODES_PER_LAYER], + activations: float64[NODES_PER_LAYER], input_sample: float64[INPUT_DIMENSION]): + + for j in range(NODES_PER_LAYER): + activations[j] = 0.0 + for i in range(INPUT_DIMENSION): + activations[j] += weights[j * INPUT_DIMENSION + i] * input_sample[i] + add_bias_to_activations_NPL(biases, activations) + + +def matrix_vector_product_with_bias_second_layer( + biases: float64[NODES_PER_LAYER], weights: float64[NODES_PER_LAYER * NODES_PER_LAYER], + activations: float64[NODES_PER_LAYER], input_activations: float64[NODES_PER_LAYER]): + + for i in range(NODES_PER_LAYER): + activations[i] = 0.0 + for j in range(NODES_PER_LAYER): + activations[i] += weights[i * NODES_PER_LAYER + j] * input_activations[j] + add_bias_to_activations_NPL(biases, activations) + + +def matrix_vector_product_with_bias_output_layer( + biases: float64[POSSIBLE_OUTPUTS], weights: float64[NODES_PER_LAYER * POSSIBLE_OUTPUTS], + activations: float64[POSSIBLE_OUTPUTS], input_activations: float64[NODES_PER_LAYER]): + + for j in range(POSSIBLE_OUTPUTS): + activations[j] = 0.0 + for i in range(NODES_PER_LAYER): + activations[j] += weights[j * NODES_PER_LAYER + i] * input_activations[i] + add_bias_to_activations_PO(biases, activations) + + +def take_difference( + net_outputs: float64[POSSIBLE_OUTPUTS], solutions: float64[POSSIBLE_OUTPUTS], + output_difference: float64[POSSIBLE_OUTPUTS], dactivations: float64[POSSIBLE_OUTPUTS]): + + for i in range(POSSIBLE_OUTPUTS): + output_difference[i] = (net_outputs[i] - solutions[i]) * -1.0 * dactivations[i] + + +def get_delta_matrix_weights3( + delta_weights3: float64[NODES_PER_LAYER * POSSIBLE_OUTPUTS], + output_difference: float64[POSSIBLE_OUTPUTS], last_activations: float64[NODES_PER_LAYER]): + + for i, j in allo.grid(NODES_PER_LAYER, POSSIBLE_OUTPUTS): + delta_weights3[i * POSSIBLE_OUTPUTS + j] = last_activations[i] * output_difference[j] + + +def get_oracle_activations2( + weights3: float64[NODES_PER_LAYER * POSSIBLE_OUTPUTS], output_differences: float64[POSSIBLE_OUTPUTS], + oracle_activations: float64[NODES_PER_LAYER], dactivations: float64[NODES_PER_LAYER]): + + for i in range(NODES_PER_LAYER): + oracle_activations[i] = 0.0 + for j in range(POSSIBLE_OUTPUTS): + oracle_activations[i] += output_differences[j] * weights3[i * POSSIBLE_OUTPUTS + j] + oracle_activations[i] = oracle_activations[i] * dactivations[i] + + +def get_delta_matrix_weights2( + delta_weights2: float64[NODES_PER_LAYER * NODES_PER_LAYER], + output_difference: float64[NODES_PER_LAYER], last_activations: float64[NODES_PER_LAYER]): + + for i, j in allo.grid(NODES_PER_LAYER, NODES_PER_LAYER): + delta_weights2[i * NODES_PER_LAYER + j] = last_activations[i] * output_difference[j] + + +def get_oracle_activations1( + weights2: float64[NODES_PER_LAYER * NODES_PER_LAYER], output_differences: float64[NODES_PER_LAYER], + oracle_activations: float64[NODES_PER_LAYER], dactivations: float64[NODES_PER_LAYER]): + + for i in range(NODES_PER_LAYER): + oracle_activations[i] = 0.0 + for j in range(NODES_PER_LAYER): + oracle_activations[i] += output_differences[j] * weights2[i * NODES_PER_LAYER + j] + oracle_activations[i] = oracle_activations[i] * dactivations[i] + + +def get_delta_matrix_weights1( + delta_weights1: float64[INPUT_DIMENSION * NODES_PER_LAYER], + output_difference: float64[NODES_PER_LAYER], last_activations: float64[INPUT_DIMENSION]): + + for i, j in allo.grid(INPUT_DIMENSION, NODES_PER_LAYER): + delta_weights1[i * NODES_PER_LAYER + j] = last_activations[i] * output_difference[j] + + +def update_weights( + weights1: float64[INPUT_DIMENSION * NODES_PER_LAYER], weights2: float64[NODES_PER_LAYER * NODES_PER_LAYER], + weights3: float64[NODES_PER_LAYER * POSSIBLE_OUTPUTS], d_weights1: float64[INPUT_DIMENSION * NODES_PER_LAYER], + d_weights2: float64[NODES_PER_LAYER * NODES_PER_LAYER], d_weights3: float64[NODES_PER_LAYER * POSSIBLE_OUTPUTS], + biases1: float64[NODES_PER_LAYER], biases2: float64[NODES_PER_LAYER], biases3: float64[POSSIBLE_OUTPUTS], + d_biases1: float64[NODES_PER_LAYER], d_biases2: float64[NODES_PER_LAYER], d_biases3: float64[POSSIBLE_OUTPUTS]): + + # TODO: allo.sqrt() does not currently work with float64 + norm1: float32 = 0.0 + bias_norm1: float32 = 0.0 + + for i, j in allo.grid(INPUT_DIMENSION, NODES_PER_LAYER): + weights1[i * NODES_PER_LAYER + j] -= d_weights1[i * NODES_PER_LAYER + j] * LEARNING_RATE + norm1 += weights1[i * NODES_PER_LAYER + j] * weights1[i * NODES_PER_LAYER + j] + for i in range(NODES_PER_LAYER): + biases1[i] -= d_biases1[i] * LEARNING_RATE + bias_norm1 += biases1[i] * biases1[i] + + norm1 = allo.sqrt(norm1) + bias_norm1 = allo.sqrt(bias_norm1) + + for i, j in allo.grid(INPUT_DIMENSION, NODES_PER_LAYER): + weights1[i * NODES_PER_LAYER + j] = weights1[i * NODES_PER_LAYER + j] / norm1 + for i in range(NODES_PER_LAYER): + biases1[i] = biases1[i] / bias_norm1 + + norm2: float32 = 0.0 + bias_norm2: float32 = 0.0 + + for i, j in allo.grid(NODES_PER_LAYER, NODES_PER_LAYER): + weights2[i * NODES_PER_LAYER + j] -= d_weights2[i * NODES_PER_LAYER + j] * LEARNING_RATE + norm2 += weights2[i * NODES_PER_LAYER + j] * weights2[i * NODES_PER_LAYER + j] + for i in range(NODES_PER_LAYER): + biases2[i] -= d_biases2[i] * LEARNING_RATE + bias_norm2 += biases2[i] * biases2[i] + + norm2 = allo.sqrt(norm2) + bias_norm2 = allo.sqrt(bias_norm2) + + for i, j in allo.grid(NODES_PER_LAYER, NODES_PER_LAYER): + weights2[i * NODES_PER_LAYER + j] = weights2[i * NODES_PER_LAYER + j] / norm2 + for i in range(NODES_PER_LAYER): + biases2[i] = biases2[i] / bias_norm2 + + norm3: float32 = 0.0 + bias_norm3: float32 = 0.0 + + for i, j in allo.grid(NODES_PER_LAYER, POSSIBLE_OUTPUTS): + weights3[i * POSSIBLE_OUTPUTS + j] -= d_weights3[i * POSSIBLE_OUTPUTS + j] * LEARNING_RATE + norm3 += weights3[i * POSSIBLE_OUTPUTS + j] * weights3[i * POSSIBLE_OUTPUTS + j] + for i in range(POSSIBLE_OUTPUTS): + biases3[i] -= d_biases3[i] * LEARNING_RATE + bias_norm3 += biases3[i] * biases3[i] + + norm3 = allo.sqrt(norm3) + bias_norm3 = allo.sqrt(bias_norm3) + + for i, j in allo.grid(NODES_PER_LAYER, POSSIBLE_OUTPUTS): + weights3[i * POSSIBLE_OUTPUTS + j] = weights3[i * POSSIBLE_OUTPUTS + j] / norm3 + for i in range(POSSIBLE_OUTPUTS): + biases3[i] = biases3[i] / bias_norm3 + + +def backprop( + weights1: float64[INPUT_DIMENSION * NODES_PER_LAYER], weights2: float64[NODES_PER_LAYER * NODES_PER_LAYER], + weights3: float64[NODES_PER_LAYER * POSSIBLE_OUTPUTS], biases1: float64[NODES_PER_LAYER], + biases2: float64[NODES_PER_LAYER], biases3: float64[POSSIBLE_OUTPUTS], + training_data: float64[TRAINING_SETS * INPUT_DIMENSION], training_targets: float64[TRAINING_SETS * POSSIBLE_OUTPUTS]): + + # Forward and training structures + activations1: float64[NODES_PER_LAYER] = 0.0 + activations2: float64[NODES_PER_LAYER] = 0.0 + activations3: float64[POSSIBLE_OUTPUTS] = 0.0 + dactivations1: float64[NODES_PER_LAYER] = 0.0 + dactivations2: float64[NODES_PER_LAYER] = 0.0 + dactivations3: float64[POSSIBLE_OUTPUTS] = 0.0 + net_outputs: float64[POSSIBLE_OUTPUTS] = 0.0 + # Training structures + output_difference: float64[POSSIBLE_OUTPUTS] = 0.0 + delta_weights1: float64[INPUT_DIMENSION * NODES_PER_LAYER] = 0.0 + delta_weights2: float64[NODES_PER_LAYER * NODES_PER_LAYER] = 0.0 + delta_weights3: float64[NODES_PER_LAYER * POSSIBLE_OUTPUTS] = 0.0 + oracle_activations1: float64[NODES_PER_LAYER] = 0.0 + oracle_activations2: float64[NODES_PER_LAYER] = 0.0 + + for i in range(TRAINING_SETS): + for j in range(NODES_PER_LAYER): + activations1[j] = 0.0 + activations2[j] = 0.0 + if j < POSSIBLE_OUTPUTS: + activations3[j] = 0.0 + + training_data_input1: float64[INPUT_DIMENSION] = 0.0 + for k in range(INPUT_DIMENSION): + training_data_input1[k] = training_data[i * INPUT_DIMENSION + k] + matrix_vector_product_with_bias_input_layer(biases1, weights1, activations1, training_data_input1) + + RELU_NPL(activations1, dactivations1) + matrix_vector_product_with_bias_second_layer(biases2, weights2, activations2, activations1) + RELU_NPL(activations2, dactivations2) + matrix_vector_product_with_bias_output_layer(biases3, weights3, activations3, activations2) + RELU_PO(activations3, dactivations3) + soft_max(net_outputs, activations3) + + training_targets_input: float64[POSSIBLE_OUTPUTS] = 0.0 + for k in range(POSSIBLE_OUTPUTS): + training_targets_input[k] = training_targets[i * POSSIBLE_OUTPUTS + k] + take_difference(net_outputs, training_targets_input, output_difference, dactivations3) + + get_delta_matrix_weights3(delta_weights3, output_difference, activations2) + get_oracle_activations2(weights3, output_difference, oracle_activations2, dactivations2) + get_delta_matrix_weights2(delta_weights2, oracle_activations2, activations1) + get_oracle_activations1(weights2, oracle_activations2, oracle_activations1, dactivations1) + + training_data_input2: float64[INPUT_DIMENSION] = 0.0 + for k in range(INPUT_DIMENSION): + training_data_input2[k] = training_data[i * INPUT_DIMENSION + k] + get_delta_matrix_weights1(delta_weights1, oracle_activations1, training_data_input2) + + update_weights(weights1, weights2, weights3, delta_weights1, delta_weights2, delta_weights3, + biases1, biases2, biases3, oracle_activations1, oracle_activations2, output_difference) \ No newline at end of file diff --git a/examples/machsuite/backprop/check.data b/examples/machsuite/backprop/check.data new file mode 100644 index 0000000000..430967a855 --- /dev/null +++ b/examples/machsuite/backprop/check.data @@ -0,0 +1,5257 @@ +%% +0.0000000033101436 +0.0000000015479249 +0.0000000001004358 +0.0000000000364163 +0.0000000000407159 +0.0000014497376937 +0.0000003035337987 +0.0000011983070851 +0.0000010490761193 +0.0000016367837014 +0.0000000132466512 +0.0000000126750943 +0.0000000048075421 +0.0000000018395992 +0.0000000004864273 +0.0000000000281399 +0.0000000201896963 +-0.0000000000730134 +0.0000001272024342 +0.0000003213899017 +0.0000142248587956 +0.0000004476003093 +0.0000002151130794 +0.0000000041574232 +0.0000000160759547 +0.0000000011784375 +0.0000000006160755 +0.0000000002257905 +0.0000000000215129 +0.0000000000224720 +-0.0000000000132671 +0.0000008242153168 +0.0000117506327550 +0.0000005455789965 +0.0000001210125333 +0.0000001299767681 +0.0000000509761169 +0.0000000501245280 +0.0000000008920892 +0.0000000006712727 +0.0000000011497495 +0.0000000002020437 +0.0000000000685082 +-0.0000000001135434 +0.0000003899036725 +0.0000381553882461 +0.0000000346940674 +0.0000001435625174 +0.0000000194364549 +0.0000000492566898 +0.0000000141491509 +0.0000000004145226 +0.0000000015308925 +-0.0000000001459076 +0.0000000000778971 +0.0000000000720425 +0.0115611891961562 +0.0000000659418916 +0.0000030881932846 +0.0000001015246746 +0.0000010529318327 +0.0000000431489449 +0.0000000150811733 +0.0000000068133704 +0.0000000004191571 +0.0000000001960107 +0.0000000000127180 +0.0000000000046113 +0.0000000000051558 +0.0000001835774978 +0.0000000384359016 +0.0000001517393231 +0.0000001328424924 +0.0000002072627321 +0.0000000016773980 +0.0000000016050227 +0.0000000006087698 +0.0000000002329449 +0.0000000000615953 +0.0000000000035633 +0.0000000025565824 +-0.0000000000092455 +0.0000000161073998 +0.0000000406969856 +0.0000018012652850 +0.0000000566787668 +0.0000000272393510 +0.0000000005264465 +0.0000000020356670 +0.0000000001492232 +0.0000000000780124 +0.0000000000285914 +0.0000000000027241 +0.0000000000028456 +-0.0000000000016800 +0.0000001043688015 +0.0000014879600416 +0.0000000690856074 +0.0000000153235840 +0.0000000164587054 +0.0000000064550072 +0.0000000063471719 +0.0000000001129635 +0.0000000000850020 +0.0000000001455905 +0.0000000000255844 +0.0000000000086751 +-0.0000000000143778 +0.0000000493727524 +0.0000048315434808 +0.0000000043932427 +0.0000000181790451 +0.0000000024612009 +0.0000000062372793 +0.0000000017916796 +0.0000000000524902 +0.0000000001938539 +-0.0000000000184760 +0.0000000000098640 +0.0000000000091226 +0.0014639711678757 +0.0000000083500950 +0.0000003910519803 +0.0000000128558727 +0.0000001333307111 +0.0000000054638674 +0.0000000019096998 +0.0000000008627639 +0.0000000005796344 +0.0000000002710548 +0.0000000000175872 +0.0000000000063768 +0.0000000000071297 +0.0000002538614621 +0.0000000531513627 +0.0000002098338134 +0.0000001837021953 +0.0000002866147651 +0.0000000023196018 +0.0000000022195172 +0.0000000008418417 +0.0000000003221295 +0.0000000000851776 +0.0000000000049275 +0.0000000035353884 +-0.0000000000127853 +0.0000000222742335 +0.0000000562781189 +0.0000024908928358 +0.0000000783786401 +0.0000000376681331 +0.0000000007280003 +0.0000000028150367 +0.0000000002063544 +0.0000000001078801 +0.0000000000395378 +0.0000000000037671 +0.0000000000039350 +-0.0000000000023232 +0.0000001443271471 +0.0000020576362367 +0.0000000955355305 +0.0000000211903283 +0.0000000227600394 +0.0000000089263532 +0.0000000087772324 +0.0000000001562124 +0.0000000001175456 +0.0000000002013309 +0.0000000000353796 +0.0000000000119964 +-0.0000000000198824 +0.0000000682754656 +0.0000066813346241 +0.0000000060752273 +0.0000000251390232 +0.0000000034034893 +0.0000000086252666 +0.0000000024776370 +0.0000000000725865 +0.0000000002680723 +-0.0000000000255497 +0.0000000000136405 +0.0000000000126153 +0.0020244630502579 +0.0000000115469889 +0.0000005407690412 +0.0000000177778362 +0.0000001843773356 +0.0000000075557484 +0.0000000026408421 +0.0000000011930793 +0.0000000033532564 +0.0000000015680857 +0.0000000001017440 +0.0000000000368906 +0.0000000000412462 +0.0000014686199826 +0.0000003074872124 +0.0000012139145848 +0.0000010627399376 +0.0000016581017039 +0.0000000134191836 +0.0000000128401811 +0.0000000048701581 +0.0000000018635590 +0.0000000004927628 +0.0000000000285064 +0.0000000204526595 +-0.0000000000739644 +0.0000001288591981 +0.0000003255758845 +0.0000144101177707 +0.0000004534301345 +0.0000002179147911 +0.0000000042115719 +0.0000000162853346 +0.0000000011937859 +0.0000000006240996 +0.0000000002287313 +0.0000000000217931 +0.0000000000227647 +-0.0000000000134399 +0.0000008349504117 +0.0000119036803330 +0.0000005526848140 +0.0000001225886702 +0.0000001316696321 +0.0000000516400557 +0.0000000507773727 +0.0000000009037083 +0.0000000006800157 +0.0000000011647242 +0.0000000002046752 +0.0000000000694005 +-0.0000000001150223 +0.0000003949820187 +0.0000386523478467 +0.0000000351459407 +0.0000001454323586 +0.0000000196896066 +0.0000000498982317 +0.0000000143334357 +0.0000000004199216 +0.0000000015508315 +-0.0000000001478079 +0.0000000000789117 +0.0000000000729808 +0.0117117693430054 +0.0000000668007600 +0.0000031284158422 +0.0000001028469753 +0.0000010666456048 +0.0000000437109374 +0.0000000152775977 +0.0000000069021108 +0.0000000265865384 +0.0000000124326831 +0.0000000008066844 +0.0000000002924898 +0.0000000003270235 +0.0000116440584336 +0.0000024379343273 +0.0000096246084936 +0.0000084260095436 +0.0000131463823804 +0.0000001063949576 +0.0000001018043077 +0.0000000386134006 +0.0000000147753638 +0.0000000039069057 +0.0000000002260154 +0.0000001621603716 +-0.0000000005864317 +0.0000010216693565 +0.0000025813516554 +0.0001142517833125 +0.0000035950532160 +0.0000017277535043 +0.0000000333917507 +0.0000001291194704 +0.0000000094650196 +0.0000000049482190 +0.0000000018135126 +0.0000000001727882 +0.0000000001804915 +-0.0000000001065591 +0.0000066199639786 +0.0000943791797833 +0.0000043820023719 +0.0000009719530829 +0.0000010439524062 +0.0000004094319259 +0.0000004025921055 +0.0000000071651164 +0.0000000053915538 +0.0000000092346022 +0.0000000016227822 +0.0000000005502466 +-0.0000000009119623 +0.0000031316431733 +0.0003064579007845 +0.0000002786571375 +0.0000011530709059 +0.0000001561104598 +0.0000003956217690 +0.0000001136436924 +0.0000000033293788 +0.0000000122958815 +-0.0000000011719060 +0.0000000006256572 +0.0000000005786337 +0.0928575997909717 +0.0000005296345972 +0.0000248038684633 +0.0000008154297771 +0.0000084569783867 +0.0000003465653487 +0.0000001211295456 +0.0000000547238896 +0.0000000009293314 +0.0000000004345840 +0.0000000000281976 +0.0000000000102240 +0.0000000000114311 +0.0000004070175500 +0.0000000852178871 +0.0000003364277663 +0.0000002945307934 +0.0000004595313006 +0.0000000037190311 +0.0000000035585654 +0.0000000013497298 +0.0000000005164723 +0.0000000001365657 +0.0000000000079004 +0.0000000056683087 +-0.0000000000204987 +0.0000000357124074 +0.0000000902310335 +0.0000039936685084 +0.0000001256649271 +0.0000000603935571 +0.0000000011672072 +0.0000000045133660 +0.0000000003308494 +0.0000000001729648 +0.0000000000633913 +0.0000000000060398 +0.0000000000063091 +-0.0000000000037248 +0.0000002314005495 +0.0000032990200753 +0.0000001531727244 +0.0000000339745782 +0.0000000364913163 +0.0000000143116760 +0.0000000140725908 +0.0000000002504563 +0.0000000001884615 +0.0000000003227952 +0.0000000000567243 +0.0000000000192338 +-0.0000000000318776 +0.0000001094664497 +0.0000107122224335 +0.0000000097404486 +0.0000000403055439 +0.0000000054568344 +0.0000000138289429 +0.0000000039724107 +0.0000000001163783 +0.0000000004298021 +-0.0000000000409639 +0.0000000000218698 +0.0000000000202261 +0.0032458333136548 +0.0000000185133540 +0.0000008670181304 +0.0000000285033154 +0.0000002956133530 +0.0000000121141776 +0.0000000042340783 +0.0000000019128714 +0.0000000008957987 +0.0000000004189030 +0.0000000000271802 +0.0000000000098551 +0.0000000000110186 +0.0000003923313392 +0.0000000821430127 +0.0000003242886113 +0.0000002839033856 +0.0000004429502126 +0.0000000035848391 +0.0000000034301633 +0.0000000013010281 +0.0000000004978366 +0.0000000001316381 +0.0000000000076153 +0.0000000054637819 +-0.0000000000197591 +0.0000000344238144 +0.0000000869752722 +0.0000038495654971 +0.0000001211306222 +0.0000000582144009 +0.0000000011250914 +0.0000000043505121 +0.0000000003189115 +0.0000000001667238 +0.0000000000611039 +0.0000000000058219 +0.0000000000060814 +-0.0000000000035904 +0.0000002230510391 +0.0000031799831828 +0.0000001476458550 +0.0000000327486899 +0.0000000351746148 +0.0000000137952743 +0.0000000135648156 +0.0000000002414192 +0.0000000001816614 +0.0000000003111479 +0.0000000000546775 +0.0000000000185398 +-0.0000000000307274 +0.0000001055166263 +0.0000103256986654 +0.0000000093889885 +0.0000000388512184 +0.0000000052599381 +0.0000000133299592 +0.0000000038290759 +0.0000000001121791 +0.0000000004142937 +-0.0000000000394858 +0.0000000000210807 +0.0000000000194963 +0.0031287155324666 +0.0000000178453459 +0.0000008357339486 +0.0000000274748424 +0.0000002849468568 +0.0000000116770671 +0.0000000040813020 +0.0000000018438501 +0.0000000000766459 +0.0000000000358420 +0.0000000000023256 +0.0000000000008432 +0.0000000000009428 +0.0000000335684560 +0.0000000070282790 +0.0000000277466185 +0.0000000242911981 +0.0000000378994775 +0.0000000003067242 +0.0000000002934899 +0.0000000001113179 +0.0000000000425956 +0.0000000000112632 +0.0000000000006516 +0.0000000004674893 +-0.0000000000016906 +0.0000000029453530 +0.0000000074417343 +0.0000003293744340 +0.0000000103641171 +0.0000000049809106 +0.0000000000962645 +0.0000000003722363 +0.0000000000272865 +0.0000000000142651 +0.0000000000052281 +0.0000000000004981 +0.0000000000005203 +-0.0000000000003072 +0.0000000190845804 +0.0000002720841158 +0.0000000126327987 +0.0000000028020268 +0.0000000030095923 +0.0000000011803442 +0.0000000011606258 +0.0000000000206562 +0.0000000000155432 +0.0000000000266223 +0.0000000000046783 +0.0000000000015863 +-0.0000000000026291 +0.0000000090281603 +0.0000008834822167 +0.0000000008033359 +0.0000000033241683 +0.0000000004500482 +0.0000000011405312 +0.0000000003276214 +0.0000000000095982 +0.0000000000354476 +-0.0000000000033785 +0.0000000000018037 +0.0000000000016681 +0.0002676975789995 +0.0000000015268745 +0.0000000715066462 +0.0000000023507884 +0.0000000243804764 +0.0000000009991073 +0.0000000003492023 +0.0000000001577626 +0.0000000004478994 +0.0000000002094515 +0.0000000000135901 +0.0000000000049275 +0.0000000000055093 +0.0000001961656696 +0.0000000410715063 +0.0000001621443057 +0.0000001419516927 +0.0000002214750997 +0.0000000017924196 +0.0000000017150816 +0.0000000006505141 +0.0000000002489183 +0.0000000000658190 +0.0000000000038076 +0.0000000027318910 +-0.0000000000098795 +0.0000000172119072 +0.0000000434876361 +0.0000019247825535 +0.0000000605653111 +0.0000000291071997 +0.0000000005625457 +0.0000000021752560 +0.0000000001594557 +0.0000000000833619 +0.0000000000305520 +0.0000000000029109 +0.0000000000030407 +-0.0000000000017952 +0.0000001115255196 +0.0000015899915914 +0.0000000738229256 +0.0000000163743449 +0.0000000175873070 +0.0000000068976371 +0.0000000067824077 +0.0000000001207096 +0.0000000000908307 +0.0000000001555739 +0.0000000000273388 +0.0000000000092699 +-0.0000000000153637 +0.0000000527583131 +0.0000051628493327 +0.0000000046944942 +0.0000000194256091 +0.0000000026299690 +0.0000000066649795 +0.0000000019145379 +0.0000000000560895 +0.0000000002071468 +-0.0000000000197429 +0.0000000000105404 +0.0000000000097482 +0.0015643577662333 +0.0000000089226730 +0.0000004178669743 +0.0000000137374210 +0.0000001424734247 +0.0000000058385335 +0.0000000020406509 +0.0000000009219250 +0.0000000016886046 +0.0000000007896435 +0.0000000000512354 +0.0000000000185771 +0.0000000000207704 +0.0000007395550827 +0.0000001548417790 +0.0000006112927182 +0.0000005351654861 +0.0000008349730279 +0.0000000067575178 +0.0000000064659497 +0.0000000024524729 +0.0000000009384353 +0.0000000002481413 +0.0000000000143550 +0.0000000102993752 +-0.0000000000372463 +0.0000000648898122 +0.0000001639507177 +0.0000072565344538 +0.0000002283344673 +0.0000001097357065 +0.0000000021208275 +0.0000000082008319 +0.0000000006011567 +0.0000000003142788 +0.0000000001151826 +0.0000000000109744 +0.0000000000114636 +-0.0000000000067679 +0.0000004204571830 +0.0000059943534727 +0.0000002783163950 +0.0000000617321578 +0.0000000663050920 +0.0000000260044617 +0.0000000255700410 +0.0000000004550817 +0.0000000003424366 +0.0000000005865221 +0.0000000001030686 +0.0000000000349481 +-0.0000000000579219 +0.0000001989016668 +0.0000194642185494 +0.0000000176984949 +0.0000000732355875 +0.0000000099151242 +0.0000000251273304 +0.0000000072179107 +0.0000000002114606 +0.0000000007809547 +-0.0000000000744319 +0.0000000000397377 +0.0000000000367511 +0.0058977125787165 +0.0000000336389551 +0.0000015753808774 +0.0000000517908144 +0.0000005371324642 +0.0000000220115845 +0.0000000076933636 +0.0000000034757068 +0.0000000002419135 +0.0000000001131262 +0.0000000000073401 +0.0000000000026614 +0.0000000000029756 +0.0000001059504406 +0.0000000221830058 +0.0000000875752656 +0.0000000766690949 +0.0000001196202141 +0.0000000009680982 +0.0000000009263274 +0.0000000003513471 +0.0000000001344425 +0.0000000000355493 +0.0000000000020565 +0.0000000014755133 +-0.0000000000053360 +0.0000000092962706 +0.0000000234879743 +0.0000010395876736 +0.0000000327117451 +0.0000000157209979 +0.0000000003038348 +0.0000000011748707 +0.0000000000861231 +0.0000000000450243 +0.0000000000165013 +0.0000000000015722 +0.0000000000016423 +-0.0000000000009696 +0.0000000602357077 +0.0000008587655016 +0.0000000398722673 +0.0000000088438971 +0.0000000094990248 +0.0000000037254614 +0.0000000036632251 +0.0000000000651961 +0.0000000000490583 +0.0000000000840265 +0.0000000000147659 +0.0000000000050067 +-0.0000000000082980 +0.0000000284951312 +0.0000027884907826 +0.0000000025355287 +0.0000000104919061 +0.0000000014204645 +0.0000000035998013 +0.0000000010340551 +0.0000000000302943 +0.0000000001118814 +-0.0000000000106633 +0.0000000000056929 +0.0000000000052650 +0.0008449204946245 +0.0000000048191976 +0.0000002256928551 +0.0000000074196754 +0.0000000769508722 +0.0000000031534322 +0.0000000011021696 +0.0000000004979380 +0.0000000007808299 +0.0000000003651401 +0.0000000000236918 +0.0000000000085902 +0.0000000000096045 +0.0000003419786521 +0.0000000716005935 +0.0000002826686811 +0.0000002474665861 +0.0000003861009818 +0.0000000031247528 +0.0000000029899284 +0.0000000011340512 +0.0000000004339431 +0.0000000001147434 +0.0000000000066379 +0.0000000047625478 +-0.0000000000172231 +0.0000000300057846 +0.0000000758126700 +0.0000033555034904 +0.0000001055844455 +0.0000000507430333 +0.0000000009806947 +0.0000000037921576 +0.0000000002779817 +0.0000000001453261 +0.0000000000532617 +0.0000000000050747 +0.0000000000053009 +-0.0000000000031296 +0.0000001944241667 +0.0000027718569837 +0.0000001286966526 +0.0000000285456493 +0.0000000306602253 +0.0000000120247577 +0.0000000118238766 +0.0000000002104350 +0.0000000001583465 +0.0000000002712145 +0.0000000000476601 +0.0000000000161604 +-0.0000000000267838 +0.0000000919743849 +0.0000090004752580 +0.0000000081839846 +0.0000000338649656 +0.0000000045848658 +0.0000000116191622 +0.0000000033376437 +0.0000000000977818 +0.0000000003611223 +-0.0000000000344181 +0.0000000000183752 +0.0000000000169941 +0.0027271691390361 +0.0000000155550341 +0.0000007284739726 +0.0000000239486592 +0.0000002483761338 +0.0000000101784060 +0.0000000035574985 +0.0000000016072062 +0.0000002850268226 +0.0000001332873008 +0.0000000086482374 +0.0000000031357010 +0.0000000035059282 +0.0001248326985218 +0.0000261364130579 +0.0001031827397061 +0.0000903328948896 +0.0001409386680492 +0.0000011406306174 +0.0000010914154658 +0.0000004139634584 +0.0000001584025307 +0.0000000418848395 +0.0000000024230476 +0.0000017384760553 +-0.0000000062869704 +0.0000109530318400 +0.0000276739501795 +0.0012248606955493 +0.0000385415614679 +0.0000185227598642 +0.0000003579836216 +0.0000013842536003 +0.0000001014718139 +0.0000000530484675 +0.0000000194421599 +0.0000000018524136 +0.0000000019349989 +-0.0000000011423899 +0.0000709707849956 +0.0010118128283073 +0.0000469782160099 +0.0000104200372442 +0.0000111919203665 +0.0000043894050161 +0.0000043160770809 +0.0000000768152078 +0.0000000578013377 +0.0000000990015724 +0.0000000173973926 +0.0000000058990391 +-0.0000000097768928 +0.0000335734717181 +0.0032854495669690 +0.0000029874051417 +0.0000123617508003 +0.0000016736165981 +0.0000042413500757 +0.0000012183421566 +0.0000000356933375 +0.0000001318206931 +-0.0000000125636751 +0.0000000067074954 +0.0000000062033702 +0.9955003941554625 +0.0000056780646004 +0.0002659153465885 +0.0000087419938490 +0.0000906648891689 +0.0000037154299774 +0.0000012985959124 +0.0000005866794735 +%% +-0.0159766908980595 +-0.0159766876717542 +-0.0159766871112941 +-0.0159766876713955 +-0.0159766875753671 +-0.0159767089416718 +-0.0159766877463526 +-0.0160073250551973 +-0.0159766877859469 +-0.0159767651699631 +-0.0159766882632052 +-0.0159766885463628 +-0.0159766870974960 +-0.0159766877904846 +-0.0159766906525718 +-0.0159766877743875 +-0.0159766869394323 +-0.0159766871146967 +-0.0159766874968795 +-0.0159766870993232 +-0.0159766905137102 +-0.0159731495537249 +-0.0159766882173568 +-0.0159766944097071 +-0.0159766906980414 +-0.0159766877812873 +-0.0155842566281400 +-0.0159766869507633 +-0.0159766869351870 +-0.0159766873750173 +-0.0159766897088521 +-0.0159766869387253 +-0.0159766881653938 +-0.0159766897209257 +-0.0159766877423484 +-0.0159766878374504 +-0.0159766869182186 +-0.0160329173160141 +-0.0159766869951602 +-0.0159766869277664 +-0.0159766898732550 +-0.0159766991435967 +-0.0156370520787302 +-0.0159767021332008 +-0.0159766869554105 +-0.0159766869971443 +-0.0159766869084713 +-0.0159766873148399 +-0.0159766876933821 +-0.0162183547488910 +-0.0159766877861922 +-0.0159768097115938 +-0.0159766869400880 +-0.0159766869770068 +-0.0159766904997772 +-0.0159766877919417 +-0.0159766897214034 +-0.0159766872393662 +-0.0159767053335342 +-0.0159766894612017 +-0.0159766877696968 +-0.0159766904262806 +-0.0159766877936930 +-0.0159766909348899 +-0.0159770092363493 +-0.0159770060099797 +-0.0159770054495085 +-0.0159770060096210 +-0.0159770059135907 +-0.0159770272803211 +-0.0159770060845796 +-0.0160076440039583 +-0.0159770061241747 +-0.0159770835097330 +-0.0159770066014425 +-0.0159770068846057 +-0.0159770054357100 +-0.0159770061287124 +-0.0159770089908567 +-0.0159770061126150 +-0.0159770052776432 +-0.0159770054529111 +-0.0159770058351015 +-0.0159770054375373 +-0.0159770088519923 +-0.0159734678214435 +-0.0159770065555932 +-0.0159770127480669 +-0.0159770090363272 +-0.0159770061195150 +-0.0155845671461224 +-0.0159770052889745 +-0.0159770052733978 +-0.0159770057132369 +-0.0159770080471182 +-0.0159770052769362 +-0.0159770065036291 +-0.0159770080591920 +-0.0159770060805754 +-0.0159770061756792 +-0.0159770052564291 +-0.0160332367747729 +-0.0159770053333722 +-0.0159770052659771 +-0.0159770082115244 +-0.0159770174820508 +-0.0156373636487996 +-0.0159770204717145 +-0.0159770052936217 +-0.0159770053353563 +-0.0159770052466816 +-0.0159770056530583 +-0.0159770060316080 +-0.0162186779030259 +-0.0159770061244200 +-0.0159771280522513 +-0.0159770052782989 +-0.0159770053152184 +-0.0159770088380591 +-0.0159770061301696 +-0.0159770080596697 +-0.0159770055775831 +-0.0159770236721116 +-0.0159770077994628 +-0.0159770061079242 +-0.0159770087645610 +-0.0159770061319209 +-0.0159770092731804 +-0.0159772706058828 +-0.0159772673794604 +-0.0159772668189800 +-0.0159772673791017 +-0.0159772672830699 +-0.0159772886501502 +-0.0159772674540615 +-0.0160079058751740 +-0.0159772674936573 +-0.0159773448804829 +-0.0159772679709329 +-0.0159772682541007 +-0.0159772668051813 +-0.0159772674981951 +-0.0159772703603862 +-0.0159772674820974 +-0.0159772666471119 +-0.0159772668223827 +-0.0159772672045793 +-0.0159772668070087 +-0.0159772702215196 +-0.0159737291329823 +-0.0159772679250829 +-0.0159772741176579 +-0.0159772704058575 +-0.0159772674889975 +-0.0155848220892948 +-0.0159772666584434 +-0.0159772666428665 +-0.0159772670827127 +-0.0159772694166323 +-0.0159772666464049 +-0.0159772678731179 +-0.0159772694287063 +-0.0159772674500572 +-0.0159772675451626 +-0.0159772666258974 +-0.0160334990651052 +-0.0159772667028418 +-0.0159772666354456 +-0.0159772695810411 +-0.0159772788517194 +-0.0156376194564929 +-0.0159772818414320 +-0.0159772666630907 +-0.0159772667048260 +-0.0159772666161498 +-0.0159772670225332 +-0.0159772674010891 +-0.0162189432303109 +-0.0159772674939026 +-0.0159773894237306 +-0.0159772666477676 +-0.0159772666846877 +-0.0159772702075861 +-0.0159772674996523 +-0.0159772694291840 +-0.0159772669470567 +-0.0159772850418816 +-0.0159772691689728 +-0.0159772674774065 +-0.0159772701340868 +-0.0159772675014036 +-0.0159772706427145 +-0.0159772821689778 +-0.0159772789425530 +-0.0159772783820722 +-0.0159772789421943 +-0.0159772788461624 +-0.0159773002132582 +-0.0159772790171542 +-0.0160079174604442 +-0.0159772790567500 +-0.0159773564436316 +-0.0159772795340260 +-0.0159772798171940 +-0.0159772783682736 +-0.0159772790612878 +-0.0159772819234810 +-0.0159772790451901 +-0.0159772782102041 +-0.0159772783854749 +-0.0159772787676718 +-0.0159772783701009 +-0.0159772817846143 +-0.0159737406935138 +-0.0159772794881759 +-0.0159772856807555 +-0.0159772819689523 +-0.0159772790520902 +-0.0155848333683193 +-0.0159772782215355 +-0.0159772782059586 +-0.0159772786458052 +-0.0159772809797264 +-0.0159772782094970 +-0.0159772794362109 +-0.0159772809918004 +-0.0159772790131499 +-0.0159772791082554 +-0.0159772781889895 +-0.0160335106689011 +-0.0159772782659340 +-0.0159772781985377 +-0.0159772811441354 +-0.0159772904148204 +-0.0156376307737341 +-0.0159772934045351 +-0.0159772782261828 +-0.0159772782679182 +-0.0159772781792419 +-0.0159772785856255 +-0.0159772789641817 +-0.0162189549683410 +-0.0159772790569953 +-0.0159774009869116 +-0.0159772782108598 +-0.0159772782477799 +-0.0159772817706808 +-0.0159772790627450 +-0.0159772809922781 +-0.0159772785101490 +-0.0159772966049870 +-0.0159772807320668 +-0.0159772790404993 +-0.0159772816971815 +-0.0159772790644963 +-0.0159772822058096 +-0.0159772813900014 +-0.0159772781635768 +-0.0159772776030960 +-0.0159772781632181 +-0.0159772780671862 +-0.0159772994342809 +-0.0159772782381780 +-0.0160079166799841 +-0.0159772782777737 +-0.0159773556646516 +-0.0159772787550497 +-0.0159772790382177 +-0.0159772775892973 +-0.0159772782823116 +-0.0159772811445046 +-0.0159772782662139 +-0.0159772774312278 +-0.0159772776064987 +-0.0159772779886956 +-0.0159772775911247 +-0.0159772810056379 +-0.0159737399147089 +-0.0159772787091996 +-0.0159772849017789 +-0.0159772811899759 +-0.0159772782731139 +-0.0155848326083574 +-0.0159772774425593 +-0.0159772774269824 +-0.0159772778668289 +-0.0159772802007501 +-0.0159772774305208 +-0.0159772786572346 +-0.0159772802128240 +-0.0159772782341737 +-0.0159772783292791 +-0.0159772774100133 +-0.0160335098872014 +-0.0159772774869578 +-0.0159772774195615 +-0.0159772803651590 +-0.0159772896358436 +-0.0156376300112134 +-0.0159772926255582 +-0.0159772774472066 +-0.0159772774889419 +-0.0159772774002657 +-0.0159772778066493 +-0.0159772781852055 +-0.0162189541776618 +-0.0159772782780191 +-0.0159774002079294 +-0.0159772774318836 +-0.0159772774688037 +-0.0159772809917044 +-0.0159772782837688 +-0.0159772802133018 +-0.0159772777311728 +-0.0159772958260099 +-0.0159772799530905 +-0.0159772782615230 +-0.0159772809182051 +-0.0159772782855201 +-0.0159772814268331 +-0.0157234901584507 +-0.0157234869832698 +-0.0157234864316909 +-0.0157234869829168 +-0.0157234868884101 +-0.0157235079161414 +-0.0157234870566861 +-0.0157536388828166 +-0.0157234870956530 +-0.0157235632534316 +-0.0157234875653487 +-0.0157234878440192 +-0.0157234864181114 +-0.0157234871001188 +-0.0157234899168530 +-0.0157234870842768 +-0.0157234862625524 +-0.0157234864350396 +-0.0157234868111662 +-0.0157234864199097 +-0.0157234897801918 +-0.0157200049307433 +-0.0157234875202268 +-0.0157234936144522 +-0.0157234899616021 +-0.0157234870910672 +-0.0153372744928160 +-0.0157234862737039 +-0.0157234862583744 +-0.0157234866912351 +-0.0157234889880876 +-0.0157234862618566 +-0.0157234874690871 +-0.0157234889999699 +-0.0157234870527454 +-0.0157234871463404 +-0.0157234862416748 +-0.0157788256057826 +-0.0157234863173972 +-0.0157234862510714 +-0.0157234891498854 +-0.0157234982733280 +-0.0153892333302411 +-0.0157235012155584 +-0.0157234862782774 +-0.0157234863193499 +-0.0157234862320820 +-0.0157234866320113 +-0.0157234870045550 +-0.0159613245876811 +-0.0157234870958945 +-0.0157236070892496 +-0.0157234862631977 +-0.0157234862995315 +-0.0157234897664796 +-0.0157234871015529 +-0.0157234890004400 +-0.0157234865577335 +-0.0157235043651788 +-0.0157234887443615 +-0.0157234870796604 +-0.0157234896941477 +-0.0157234871032763 +-0.0157234901946974 +-0.0159228291740265 +-0.0159228259585965 +-0.0159228254000257 +-0.0159228259582390 +-0.0159228258625344 +-0.0159228471568169 +-0.0159228260329435 +-0.0159533600688478 +-0.0159228260724043 +-0.0159229031955726 +-0.0159228265480539 +-0.0159228268302570 +-0.0159228253862740 +-0.0159228260769267 +-0.0159228289293663 +-0.0159228260608839 +-0.0159228252287432 +-0.0159228254034168 +-0.0159228257843113 +-0.0159228253880951 +-0.0159228287909728 +-0.0159192997669434 +-0.0159228265023601 +-0.0159228326738370 +-0.0159228289746827 +-0.0159228260677604 +-0.0155317177395531 +-0.0159228252400360 +-0.0159228252245122 +-0.0159228256628599 +-0.0159228279888278 +-0.0159228252280385 +-0.0159228264505721 +-0.0159228280008606 +-0.0159228260289528 +-0.0159228261237342 +-0.0159228252076010 +-0.0159788660627736 +-0.0159228252842832 +-0.0159228252171166 +-0.0159228281526765 +-0.0159228373917695 +-0.0155843352238734 +-0.0159228403712961 +-0.0159228252446675 +-0.0159228252862606 +-0.0159228251978865 +-0.0159228256028854 +-0.0159228259801515 +-0.0161636784220983 +-0.0159228260726488 +-0.0159229475870613 +-0.0159228252293967 +-0.0159228252661910 +-0.0159228287770868 +-0.0159228260783790 +-0.0159228280013367 +-0.0159228255276660 +-0.0159228435608418 +-0.0159228277420121 +-0.0159228260562090 +-0.0159228287038380 +-0.0159228260801243 +-0.0159228292107328 +-0.0157664036957137 +-0.0157664005118680 +-0.0157663999587839 +-0.0157664005115141 +-0.0157664004167495 +-0.0157664215018637 +-0.0157664005854847 +-0.0157966346934234 +-0.0157664006245579 +-0.0157664769901648 +-0.0157664010955353 +-0.0157664013749664 +-0.0157663999451673 +-0.0157664006290359 +-0.0157664034534567 +-0.0157664006131506 +-0.0157663997891839 +-0.0157663999621417 +-0.0157664003392948 +-0.0157663999469705 +-0.0157664033164226 +-0.0157629089571063 +-0.0157664010502903 +-0.0157664071611464 +-0.0157664034983279 +-0.0157664006199596 +-0.0153791340729621 +-0.0157663998003658 +-0.0157663997849944 +-0.0157664002190364 +-0.0157664025221568 +-0.0157663997884861 +-0.0157664009990111 +-0.0157664025340715 +-0.0157664005815333 +-0.0157664006753836 +-0.0157663997682493 +-0.0158218901487812 +-0.0157663998441783 +-0.0157663997776715 +-0.0157664026843961 +-0.0157664118327359 +-0.0154312347033524 +-0.0157664147829953 +-0.0157663998049517 +-0.0157663998461363 +-0.0157663997586303 +-0.0157664001596509 +-0.0157664005332113 +-0.0160048871526861 +-0.0157664006248000 +-0.0157665209456071 +-0.0157663997898309 +-0.0157663998262638 +-0.0157664033026730 +-0.0157664006304739 +-0.0157664025345429 +-0.0157664000851705 +-0.0157664179412109 +-0.0157664022777656 +-0.0157664006085217 +-0.0157664032301437 +-0.0157664006322021 +-0.0157664037320594 +-0.0157918312968791 +-0.0157918281078999 +-0.0157918275539240 +-0.0157918281075454 +-0.0157918280126280 +-0.0157918491317396 +-0.0157918281816353 +-0.0158221110387377 +-0.0157918282207715 +-0.0157919047095096 +-0.0157918286925083 +-0.0157918289723899 +-0.0157918275402854 +-0.0157918282252567 +-0.0157918310542316 +-0.0157918282093458 +-0.0157918273840505 +-0.0157918275572872 +-0.0157918279350483 +-0.0157918275420916 +-0.0157918309169765 +-0.0157883309233853 +-0.0157918286471903 +-0.0157918347678995 +-0.0157918310991751 +-0.0157918282161658 +-0.0154039372369541 +-0.0157918273952504 +-0.0157918273798543 +-0.0157918278145960 +-0.0157918301214301 +-0.0157918273833516 +-0.0157918285958284 +-0.0157918301333639 +-0.0157918281776774 +-0.0157918282716791 +-0.0157918273630822 +-0.0158474072156584 +-0.0157918274391336 +-0.0157918273725195 +-0.0157918302839309 +-0.0157918394470214 +-0.0154561218756842 +-0.0157918424020378 +-0.0157918273998438 +-0.0157918274410948 +-0.0157918273534476 +-0.0157918277551149 +-0.0157918281292776 +-0.0160306992793606 +-0.0157918282210140 +-0.0157919487358253 +-0.0157918273846986 +-0.0157918274211902 +-0.0157918309032047 +-0.0157918282266970 +-0.0157918301338361 +-0.0157918276805143 +-0.0157918455653456 +-0.0157918298766448 +-0.0157918282047094 +-0.0157918308305584 +-0.0157918282284279 +-0.0157918313332834 +-0.0156509794164375 +-0.0156509762559497 +-0.0156509757069233 +-0.0156509762555984 +-0.0156509761615290 +-0.0156509970919550 +-0.0156509763290263 +-0.0156809886263732 +-0.0156509763678129 +-0.0156510521731732 +-0.0156509768353350 +-0.0156509771127161 +-0.0156509756934066 +-0.0156509763722580 +-0.0156509791759578 +-0.0156509763564893 +-0.0156509755385675 +-0.0156509757102564 +-0.0156509760846425 +-0.0156509756951965 +-0.0156509790399290 +-0.0156475103165114 +-0.0156509767904220 +-0.0156509828564465 +-0.0156509792204998 +-0.0156509763632483 +-0.0152665506618079 +-0.0156509755496673 +-0.0156509755344087 +-0.0156509759652664 +-0.0156509782514903 +-0.0156509755378748 +-0.0156509767395189 +-0.0156509782633175 +-0.0156509763251039 +-0.0156509764182657 +-0.0156509755177865 +-0.0157060587937464 +-0.0156509755931584 +-0.0156509755271395 +-0.0156509784125393 +-0.0156509874937634 +-0.0153182691333969 +-0.0156509904223787 +-0.0156509755542196 +-0.0156509755951021 +-0.0156509755082380 +-0.0156509759063166 +-0.0156509762771364 +-0.0158877131426279 +-0.0156509763680532 +-0.0156510958061420 +-0.0156509755392098 +-0.0156509755753754 +-0.0156509790262803 +-0.0156509763736854 +-0.0156509782637855 +-0.0156509758323826 +-0.0156509935574244 +-0.0156509780088920 +-0.0156509763518943 +-0.0156509789542831 +-0.0156509763754009 +-0.0156509794525165 +-0.0159748964674722 +-0.0159748932415291 +-0.0159748926811320 +-0.0159748932411705 +-0.0159748931451529 +-0.0159749145090584 +-0.0159748933161191 +-0.0160055271848760 +-0.0159748933557090 +-0.0159749707310362 +-0.0159748938329138 +-0.0159748941160395 +-0.0159748926673354 +-0.0159748933602462 +-0.0159748962220120 +-0.0159748933441509 +-0.0159748925092895 +-0.0159748926845342 +-0.0159748930666740 +-0.0159748926691624 +-0.0159748960831660 +-0.0159713555207753 +-0.0159748937870705 +-0.0159748999787255 +-0.0159748962674765 +-0.0159748933510499 +-0.0155825062623853 +-0.0159748925206192 +-0.0159748925050446 +-0.0159748929448255 +-0.0159748952783983 +-0.0159748925085825 +-0.0159748937351133 +-0.0159748952904705 +-0.0159748933121154 +-0.0159748934072067 +-0.0159748924880781 +-0.0160311165720907 +-0.0159748925650111 +-0.0159748924976249 +-0.0159748954427827 +-0.0159749047120835 +-0.0156352957847245 +-0.0159749077013519 +-0.0159748925252658 +-0.0159748925669950 +-0.0159748924783319 +-0.0159748928846549 +-0.0159748932631546 +-0.0162165331834853 +-0.0159748933559543 +-0.0159750152676656 +-0.0159748925099451 +-0.0159748925468597 +-0.0159748960692346 +-0.0159748933617032 +-0.0159748952909482 +-0.0159748928091897 +-0.0159749109013260 +-0.0159748950307757 +-0.0159748933394607 +-0.0159748959957463 +-0.0159748933634542 +-0.0159748965042984 +-0.0159749989833526 +-0.0159749957573890 +-0.0159749951969884 +-0.0159749957570304 +-0.0159749956610122 +-0.0159750170250535 +-0.0159749958319796 +-0.0160056298954425 +-0.0159749958715697 +-0.0159750732473887 +-0.0159749963487775 +-0.0159749966319050 +-0.0159749951831917 +-0.0159749958761069 +-0.0159749987378909 +-0.0159749958600115 +-0.0159749950251448 +-0.0159749952003906 +-0.0159749955825329 +-0.0159749951850188 +-0.0159749985990440 +-0.0159714580141489 +-0.0159749963029339 +-0.0159750024946283 +-0.0159749987833557 +-0.0159749958669106 +-0.0155826062830253 +-0.0159749950364746 +-0.0159749950208999 +-0.0159749954606836 +-0.0159749977942712 +-0.0159749950244378 +-0.0159749962509764 +-0.0159749978063435 +-0.0159749958279759 +-0.0159749959230677 +-0.0159749950039333 +-0.0160312194452890 +-0.0159749950808667 +-0.0159749950134801 +-0.0159749979586567 +-0.0159750072280164 +-0.0156353961411869 +-0.0159750102173038 +-0.0159749950411212 +-0.0159749950828506 +-0.0159749949941870 +-0.0159749954005126 +-0.0159749957790147 +-0.0162166372347366 +-0.0159749958718150 +-0.0159751177843012 +-0.0159749950258004 +-0.0159749950627152 +-0.0159749985851126 +-0.0159749958775639 +-0.0159749978068212 +-0.0159749953250469 +-0.0159750134172982 +-0.0159749975466470 +-0.0159749958553213 +-0.0159749985116237 +-0.0159749958793149 +-0.0159749990201791 +-0.0159764204086399 +-0.0159764171823893 +-0.0159764166219388 +-0.0159764171820307 +-0.0159764170860040 +-0.0159764384519462 +-0.0159764172569865 +-0.0160070540462161 +-0.0159764172965801 +-0.0159764946792839 +-0.0159764177738304 +-0.0159764180569831 +-0.0159764166081409 +-0.0159764173011177 +-0.0159764201631564 +-0.0159764172850209 +-0.0159764164500799 +-0.0159764166253413 +-0.0159764170075176 +-0.0159764166099681 +-0.0159764200242971 +-0.0159728791243667 +-0.0159764177279828 +-0.0159764239202280 +-0.0159764202086253 +-0.0159764172919206 +-0.0155839927937716 +-0.0159764164614107 +-0.0159764164458347 +-0.0159764168856575 +-0.0159764192194528 +-0.0159764164493729 +-0.0159764176760206 +-0.0159764192315261 +-0.0159764172529824 +-0.0159764173480828 +-0.0159764164288665 +-0.0160326458729764 +-0.0159764165058068 +-0.0159764164384142 +-0.0159764193838529 +-0.0159764286540373 +-0.0156367873491146 +-0.0159764316435907 +-0.0159764164660578 +-0.0159764165077909 +-0.0159764164191194 +-0.0159764168254811 +-0.0159764172040169 +-0.0162180801605595 +-0.0159764172968255 +-0.0159765392201592 +-0.0159764164507356 +-0.0159764164876537 +-0.0159764200103645 +-0.0159764173025749 +-0.0159764192320038 +-0.0159764167500087 +-0.0159764348438698 +-0.0159764189718065 +-0.0159764172803303 +-0.0159764199368691 +-0.0159764173043261 +-0.0159764204454697 +-0.0159769565180675 +-0.0159769532917085 +-0.0159769527312392 +-0.0159769532913499 +-0.0159769531953199 +-0.0159769745619799 +-0.0159769533663082 +-0.0160075911847525 +-0.0159769534059032 +-0.0159770307912066 +-0.0159769538831695 +-0.0159769541663317 +-0.0159769527174408 +-0.0159769534104409 +-0.0159769562725758 +-0.0159769533943436 +-0.0159769525593745 +-0.0159769527346418 +-0.0159769531168309 +-0.0159769527192681 +-0.0159769561337118 +-0.0159734151148288 +-0.0159769538373203 +-0.0159769600297736 +-0.0159769563180461 +-0.0159769534012435 +-0.0155845157208297 +-0.0159769525707057 +-0.0159769525551291 +-0.0159769529949667 +-0.0159769553288404 +-0.0159769525586675 +-0.0159769537853564 +-0.0159769553409141 +-0.0159769533623040 +-0.0159769534574075 +-0.0159769525381604 +-0.0160331838712546 +-0.0159769526151033 +-0.0159769525477084 +-0.0159769554932460 +-0.0159769647637419 +-0.0156373120495444 +-0.0159769677533957 +-0.0159769525753529 +-0.0159769526170874 +-0.0159769525284130 +-0.0159769529347883 +-0.0159769533133368 +-0.0162186243886245 +-0.0159769534061485 +-0.0159770753335781 +-0.0159769525600302 +-0.0159769525969496 +-0.0159769561197787 +-0.0159769534118981 +-0.0159769553413918 +-0.0159769528593134 +-0.0159769709537823 +-0.0159769550811858 +-0.0159769533896528 +-0.0159769560462808 +-0.0159769534136494 +-0.0159769565548985 +-0.0159772009077656 +-0.0159771976813572 +-0.0159771971208793 +-0.0159771976809985 +-0.0159771975849671 +-0.0159772189519542 +-0.0159771977559581 +-0.0160078360433048 +-0.0159771977955536 +-0.0159772751820414 +-0.0159771982728272 +-0.0159771985559938 +-0.0159771971070807 +-0.0159771978000914 +-0.0159772006622701 +-0.0159771977839938 +-0.0159771969490120 +-0.0159771971242820 +-0.0159771975064769 +-0.0159771971089080 +-0.0159772005234040 +-0.0159736594503269 +-0.0159771982269773 +-0.0159772044195254 +-0.0159772007077411 +-0.0159771977908938 +-0.0155847541045125 +-0.0159771969603434 +-0.0159771969447665 +-0.0159771973846109 +-0.0159771997185203 +-0.0159771969483049 +-0.0159771981750126 +-0.0159771997305942 +-0.0159771977519538 +-0.0159771978470588 +-0.0159771969277976 +-0.0160334291214967 +-0.0159771970047416 +-0.0159771969373457 +-0.0159771998829284 +-0.0159772091535662 +-0.0156375512412180 +-0.0159772121432657 +-0.0159771969649907 +-0.0159771970067258 +-0.0159771969180500 +-0.0159771973244316 +-0.0159771977029858 +-0.0162188724770366 +-0.0159771977957989 +-0.0159773197250946 +-0.0159771969496677 +-0.0159771969865876 +-0.0159772005094706 +-0.0159771978015486 +-0.0159771997310719 +-0.0159771972489554 +-0.0159772153437013 +-0.0159771994708619 +-0.0159771977793030 +-0.0159772004359717 +-0.0159771978032999 +-0.0159772009445972 +-0.0159772836633895 +-0.0159772804369644 +-0.0159772798764836 +-0.0159772804366058 +-0.0159772803405738 +-0.0159773017076716 +-0.0159772805115657 +-0.0160079189577238 +-0.0159772805511614 +-0.0159773579380503 +-0.0159772810284375 +-0.0159772813116055 +-0.0159772798626849 +-0.0159772805556993 +-0.0159772834178927 +-0.0159772805396016 +-0.0159772797046154 +-0.0159772798798863 +-0.0159772802620832 +-0.0159772798645123 +-0.0159772832790260 +-0.0159737421875940 +-0.0159772809825874 +-0.0159772871751675 +-0.0159772834633640 +-0.0159772805465016 +-0.0155848348259950 +-0.0159772797159468 +-0.0159772797003699 +-0.0159772801402166 +-0.0159772824741380 +-0.0159772797039083 +-0.0159772809306224 +-0.0159772824862120 +-0.0159772805075614 +-0.0159772806026668 +-0.0159772796834009 +-0.0160335121685764 +-0.0159772797603453 +-0.0159772796929491 +-0.0159772826385470 +-0.0159772919092329 +-0.0156376322363518 +-0.0159772948989479 +-0.0159772797205942 +-0.0159772797623295 +-0.0159772796736532 +-0.0159772800800369 +-0.0159772804585932 +-0.0162189564853766 +-0.0159772805514068 +-0.0159774024813344 +-0.0159772797052711 +-0.0159772797421912 +-0.0159772832650925 +-0.0159772805571565 +-0.0159772824866897 +-0.0159772800045604 +-0.0159772980994001 +-0.0159772822264784 +-0.0159772805349107 +-0.0159772831915932 +-0.0159772805589078 +-0.0159772837002213 +-0.0159736432952889 +-0.0159736400695988 +-0.0159736395092457 +-0.0159736400692402 +-0.0159736399732302 +-0.0159736613354602 +-0.0159736401441830 +-0.0160042716103522 +-0.0159736401837698 +-0.0159737175530285 +-0.0159736406609371 +-0.0159736409440406 +-0.0159736394954502 +-0.0159736401883066 +-0.0159736430498480 +-0.0159736401722126 +-0.0159736393374166 +-0.0159736395126476 +-0.0159736398947575 +-0.0159736394972771 +-0.0159736429110129 +-0.0159701026263057 +-0.0159736406150975 +-0.0159736468062668 +-0.0159736430953089 +-0.0159736401791110 +-0.0155812838653749 +-0.0159736393487455 +-0.0159736393331721 +-0.0159736397729186 +-0.0159736421063083 +-0.0159736393367097 +-0.0159736405631443 +-0.0159736421183795 +-0.0159736401401797 +-0.0159736402352635 +-0.0159736393162069 +-0.0160298589906166 +-0.0159736393931339 +-0.0159736393257530 +-0.0159736422706798 +-0.0159736515392537 +-0.0156340692473943 +-0.0159736545282876 +-0.0159736393533917 +-0.0159736393951176 +-0.0159736393064615 +-0.0159736397127526 +-0.0159736400912226 +-0.0162152610600697 +-0.0159736401840151 +-0.0159737620861649 +-0.0159736393380722 +-0.0159736393749839 +-0.0159736428970826 +-0.0159736401897635 +-0.0159736421188572 +-0.0159736396372933 +-0.0159736577280107 +-0.0159736418587051 +-0.0159736401675228 +-0.0159736428236000 +-0.0159736401915144 +-0.0159736433321122 +-0.0159773019347608 +-0.0159772987083320 +-0.0159772981478505 +-0.0159772987079733 +-0.0159772986119413 +-0.0159773199790635 +-0.0159772987829333 +-0.0160079372641297 +-0.0159772988225291 +-0.0159773762095065 +-0.0159772992998057 +-0.0159772995829741 +-0.0159772981340518 +-0.0159772988270669 +-0.0159773016892637 +-0.0159772988109692 +-0.0159772979759821 +-0.0159772981512532 +-0.0159772985334506 +-0.0159772981358791 +-0.0159773015503967 +-0.0159737604549152 +-0.0159772992539556 +-0.0159773054465428 +-0.0159773017347350 +-0.0159772988178693 +-0.0155848526485596 +-0.0159772979873136 +-0.0159772979717366 +-0.0159772984115838 +-0.0159773007455079 +-0.0159772979752751 +-0.0159772992019905 +-0.0159773007575819 +-0.0159772987789290 +-0.0159772988740346 +-0.0159772979547676 +-0.0160335305042510 +-0.0159772980317121 +-0.0159772979643158 +-0.0159773009099171 +-0.0159773101806135 +-0.0156376501192958 +-0.0159773131703320 +-0.0159772979919609 +-0.0159772980336963 +-0.0159772979450199 +-0.0159772983514041 +-0.0159772987299607 +-0.0162189750331267 +-0.0159772988227744 +-0.0159774207528416 +-0.0159772979766378 +-0.0159772980135580 +-0.0159773015364633 +-0.0159772988285242 +-0.0159773007580596 +-0.0159772982759275 +-0.0159773163707878 +-0.0159773004978480 +-0.0159772988062783 +-0.0159773014629639 +-0.0159772988302755 +-0.0159773019715926 +-0.0159543763398674 +-0.0159543731180676 +-0.0159543725583903 +-0.0159543731177094 +-0.0159543730218152 +-0.0159543943582818 +-0.0159543731925619 +-0.0159849677165495 +-0.0159543732321009 +-0.0159544505080506 +-0.0159543737086927 +-0.0159543739914548 +-0.0159543725446113 +-0.0159543732366322 +-0.0159543760947225 +-0.0159543732205576 +-0.0159543723867684 +-0.0159543725617881 +-0.0159543729434371 +-0.0159543725464361 +-0.0159543759560548 +-0.0159508399410066 +-0.0159543736629083 +-0.0159543798466110 +-0.0159543761401286 +-0.0159543732274477 +-0.0155624901065957 +-0.0159543723980836 +-0.0159543723825290 +-0.0159543728217451 +-0.0159543751523208 +-0.0159543723860624 +-0.0159543736110178 +-0.0159543751643774 +-0.0159543731885633 +-0.0159543732835324 +-0.0159543723655843 +-0.0160105242379335 +-0.0159543724424185 +-0.0159543723751188 +-0.0159543753164941 +-0.0159543845738898 +-0.0156152118276232 +-0.0159543875593188 +-0.0159543724027243 +-0.0159543724443998 +-0.0159543723558506 +-0.0159543727616518 +-0.0159543731396653 +-0.0161957027097334 +-0.0159543732323458 +-0.0159544949874791 +-0.0159543723874232 +-0.0159543724242904 +-0.0159543759421413 +-0.0159543732380873 +-0.0159543751648545 +-0.0159543726862834 +-0.0159543907551830 +-0.0159543749050161 +-0.0159543732158734 +-0.0159543758687474 +-0.0159543732398361 +-0.0159543763766463 +-0.0159196483091053 +-0.0159196450943175 +-0.0159196445358583 +-0.0159196450939601 +-0.0159196449982746 +-0.0159196662883038 +-0.0159196451686497 +-0.0159501731056111 +-0.0159196452081026 +-0.0159197223158661 +-0.0159196456836572 +-0.0159196459658039 +-0.0159196445221094 +-0.0159196452126241 +-0.0159196480644940 +-0.0159196451965844 +-0.0159196443646100 +-0.0159196445392487 +-0.0159196449200671 +-0.0159196445239301 +-0.0159196479261281 +-0.0159161196069949 +-0.0159196456379725 +-0.0159196518082167 +-0.0159196481098012 +-0.0159196452034596 +-0.0155286149966923 +-0.0159196443759006 +-0.0159196443603798 +-0.0159196447986400 +-0.0159196471241433 +-0.0159196443639055 +-0.0159196455861949 +-0.0159196471361737 +-0.0159196451646598 +-0.0159196452594223 +-0.0159196443434720 +-0.0159756740049121 +-0.0159196444201389 +-0.0159196443529857 +-0.0159196472879592 +-0.0159196565252068 +-0.0155812219709467 +-0.0159196595041383 +-0.0159196443805311 +-0.0159196444221159 +-0.0159196443337595 +-0.0159196447386774 +-0.0159196451158682 +-0.0161604494495434 +-0.0159196452083470 +-0.0159197666984879 +-0.0159196443652633 +-0.0159196444020503 +-0.0159196479122449 +-0.0159196452140760 +-0.0159196471366497 +-0.0159196446634731 +-0.0159196626930469 +-0.0159196468773769 +-0.0159196451919105 +-0.0159196478390106 +-0.0159196452158210 +-0.0159196483458042 +-0.0077179447704959 +-0.0077179432120889 +-0.0077179429413691 +-0.0077179432119156 +-0.0077179431655309 +-0.0077179534861282 +-0.0077179432481223 +-0.0077327420266926 +-0.0077179432672476 +-0.0077179806461619 +-0.0077179434977784 +-0.0077179436345524 +-0.0077179429347041 +-0.0077179432694394 +-0.0077179446519176 +-0.0077179432616640 +-0.0077179428583544 +-0.0077179429430126 +-0.0077179431276189 +-0.0077179429355867 +-0.0077179445848430 +-0.0077162341897005 +-0.0077179434756321 +-0.0077179464667321 +-0.0077179446738808 +-0.0077179432649968 +-0.0075283858502035 +-0.0077179428638276 +-0.0077179428563038 +-0.0077179430687556 +-0.0077179441960713 +-0.0077179428580129 +-0.0077179434505323 +-0.0077179442019032 +-0.0077179432461881 +-0.0077179432921254 +-0.0077179428481075 +-0.0077451038807536 +-0.0077179428852727 +-0.0077179428527194 +-0.0077179442754831 +-0.0077179487533497 +-0.0075538879172160 +-0.0077179501974225 +-0.0077179428660723 +-0.0077179428862311 +-0.0077179428433992 +-0.0077179430396881 +-0.0077179432225358 +-0.0078346756480130 +-0.0077179432673661 +-0.0077180021611707 +-0.0077179428586711 +-0.0077179428765040 +-0.0077179445781130 +-0.0077179432701433 +-0.0077179442021339 +-0.0077179430032319 +-0.0077179517432843 +-0.0077179440764483 +-0.0077179432593982 +-0.0077179445426118 +-0.0077179432709892 +-0.0077179447882861 +-0.0158972176371468 +-0.0158972144268882 +-0.0158972138692157 +-0.0158972144265313 +-0.0158972143309806 +-0.0158972355910154 +-0.0158972145011156 +-0.0159276994289256 +-0.0158972145405130 +-0.0158972915396435 +-0.0158972150153976 +-0.0158972152971467 +-0.0158972138554862 +-0.0158972145450281 +-0.0158972173928801 +-0.0158972145290110 +-0.0158972136982087 +-0.0158972138726014 +-0.0158972142528832 +-0.0158972138573043 +-0.0158972172547091 +-0.0158936939064354 +-0.0158972149697772 +-0.0158972211313285 +-0.0158972174381235 +-0.0158972145358765 +-0.0155067352332910 +-0.0158972137094833 +-0.0158972136939845 +-0.0158972141316272 +-0.0158972164538542 +-0.0158972136975052 +-0.0158972149180726 +-0.0158972164658677 +-0.0158972144971313 +-0.0158972145917603 +-0.0158972136771005 +-0.0159531644014238 +-0.0158972137536594 +-0.0158972136866008 +-0.0158972166174394 +-0.0158972258416731 +-0.0155592680917285 +-0.0158972288164077 +-0.0158972137141074 +-0.0158972137556336 +-0.0158972136674017 +-0.0158972140717491 +-0.0158972144484085 +-0.0161376795270184 +-0.0158972145407571 +-0.0158973358597370 +-0.0158972136988611 +-0.0158972137355963 +-0.0158972172408455 +-0.0158972145464780 +-0.0158972164663430 +-0.0158972139966508 +-0.0158972320008236 +-0.0158972162074355 +-0.0158972145243436 +-0.0158972171677144 +-0.0158972145482205 +-0.0158972176737940 +-0.0159379296641191 +-0.0159379264456473 +-0.0159379258865481 +-0.0159379264452895 +-0.0159379263494943 +-0.0159379476639210 +-0.0159379265200646 +-0.0159684894406029 +-0.0159379265595627 +-0.0159380037556889 +-0.0159379270356623 +-0.0159379273181323 +-0.0159379258727834 +-0.0159379265640894 +-0.0159379294192274 +-0.0159379265480314 +-0.0159379257151035 +-0.0159379258899424 +-0.0159379262711972 +-0.0159379258746062 +-0.0159379292807030 +-0.0159343969182443 +-0.0159379269899252 +-0.0159379331672403 +-0.0159379294645866 +-0.0159379265549144 +-0.0155464481975323 +-0.0159379257264070 +-0.0159379257108685 +-0.0159379261496309 +-0.0159379284777991 +-0.0159379257143982 +-0.0159379269380883 +-0.0159379284898433 +-0.0159379265160702 +-0.0159379266109412 +-0.0159379256939413 +-0.0159940195622715 +-0.0159379257706961 +-0.0159379257034659 +-0.0159379286418028 +-0.0159379378896360 +-0.0155991154684576 +-0.0159379408719812 +-0.0159379257310429 +-0.0159379257726754 +-0.0159379256842177 +-0.0159379260895996 +-0.0159379264672227 +-0.0161790067338189 +-0.0159379265598075 +-0.0159380481891715 +-0.0159379257157576 +-0.0159379257525867 +-0.0159379292668038 +-0.0159379265655430 +-0.0159379284903199 +-0.0159379260143091 +-0.0159379440645441 +-0.0159379282307500 +-0.0159379265433521 +-0.0159379291934857 +-0.0159379265672900 +-0.0159379297008600 +-0.0159765378209877 +-0.0159765345947132 +-0.0159765340342585 +-0.0159765345943545 +-0.0159765344983271 +-0.0159765558644273 +-0.0159765346693109 +-0.0160071716851162 +-0.0159765347089048 +-0.0159766120921809 +-0.0159765351861586 +-0.0159765354693134 +-0.0159765340204605 +-0.0159765347134425 +-0.0159765375755023 +-0.0159765346973455 +-0.0159765338623983 +-0.0159765340376611 +-0.0159765344198402 +-0.0159765340222877 +-0.0159765374366420 +-0.0159729965105255 +-0.0159765351403107 +-0.0159765413326017 +-0.0159765376209715 +-0.0159765347042452 +-0.0155841073049574 +-0.0159765338737292 +-0.0159765338581531 +-0.0159765342979792 +-0.0159765366317917 +-0.0159765338616913 +-0.0159765350883481 +-0.0159765366438651 +-0.0159765346653068 +-0.0159765347604078 +-0.0159765338411848 +-0.0160327637011516 +-0.0159765339181257 +-0.0159765338507325 +-0.0159765367961930 +-0.0159765460664460 +-0.0156369022504893 +-0.0159765490560215 +-0.0159765338783763 +-0.0159765339201098 +-0.0159765338314376 +-0.0159765342378023 +-0.0159765346163409 +-0.0162181993604770 +-0.0159765347091502 +-0.0159766566333856 +-0.0159765338630540 +-0.0159765338999724 +-0.0159765374227092 +-0.0159765347148996 +-0.0159765366443428 +-0.0159765341623293 +-0.0159765522563243 +-0.0159765363841436 +-0.0159765346926549 +-0.0159765373492133 +-0.0159765347166508 +-0.0159765378578177 +-0.0159743828329127 +-0.0159743796070739 +-0.0159743790466949 +-0.0159743796067152 +-0.0159743795107008 +-0.0159744008739158 +-0.0159743796816615 +-0.0160050125602318 +-0.0159743797212501 +-0.0159744570940763 +-0.0159743801984394 +-0.0159743804815560 +-0.0159743790328987 +-0.0159743797257871 +-0.0159743825874605 +-0.0159743797096923 +-0.0159743788748579 +-0.0159743790500970 +-0.0159743794322244 +-0.0159743790347257 +-0.0159743824486189 +-0.0159708420006680 +-0.0159743801525977 +-0.0159743863440525 +-0.0159743826329235 +-0.0159743797165911 +-0.0155820053076633 +-0.0159743788861873 +-0.0159743788706132 +-0.0159743793103799 +-0.0159743816438773 +-0.0159743788741510 +-0.0159743801006421 +-0.0159743816559490 +-0.0159743796776579 +-0.0159743797727461 +-0.0159743788536472 +-0.0160306011202808 +-0.0159743789305777 +-0.0159743788631937 +-0.0159743818082564 +-0.0159743910772576 +-0.0156347931245082 +-0.0159743940664293 +-0.0159743788908338 +-0.0159743789325615 +-0.0159743788439014 +-0.0159743792502112 +-0.0159743796286987 +-0.0162160117371816 +-0.0159743797214954 +-0.0159745016292662 +-0.0159743788755135 +-0.0159743789124269 +-0.0159743824346880 +-0.0159743797272441 +-0.0159743816564267 +-0.0159743791747484 +-0.0159743972662999 +-0.0159743813962626 +-0.0159743797050023 +-0.0159743823612020 +-0.0159743797289950 +-0.0159743828697377 +-0.0159770759679930 +-0.0159770727416098 +-0.0159770721811363 +-0.0159770727412512 +-0.0159770726452205 +-0.0159770940120402 +-0.0159770728162101 +-0.0160077108636570 +-0.0159770728558053 +-0.0159771502416872 +-0.0159770733330752 +-0.0159770736162395 +-0.0159770721673378 +-0.0159770728603431 +-0.0159770757224993 +-0.0159770728442456 +-0.0159770720092703 +-0.0159770721845390 +-0.0159770725667309 +-0.0159770721691651 +-0.0159770755836344 +-0.0159735345382839 +-0.0159770732872257 +-0.0159770794797252 +-0.0159770757679700 +-0.0159770728511456 +-0.0155846322374019 +-0.0159770720206016 +-0.0159770720050249 +-0.0159770724448658 +-0.0159770747787569 +-0.0159770720085633 +-0.0159770732352614 +-0.0159770747908307 +-0.0159770728122058 +-0.0159770729073101 +-0.0159770719880561 +-0.0160333037414515 +-0.0159770720649995 +-0.0159770719976042 +-0.0159770749431638 +-0.0159770842137290 +-0.0156374289607559 +-0.0159770872034051 +-0.0159770720252489 +-0.0159770720669837 +-0.0159770719783086 +-0.0159770723846870 +-0.0159770727632383 +-0.0162187456448820 +-0.0159770728560507 +-0.0159771947843916 +-0.0159770720099261 +-0.0159770720468457 +-0.0159770755697011 +-0.0159770728618003 +-0.0159770747913085 +-0.0159770723092114 +-0.0159770904038156 +-0.0159770745311005 +-0.0159770728395548 +-0.0159770754962027 +-0.0159770728635516 +-0.0159770760048242 +-0.0159771774881299 +-0.0159771742617263 +-0.0159771737012492 +-0.0159771742613676 +-0.0159771741653363 +-0.0159771955322920 +-0.0159771743363270 +-0.0160078125787656 +-0.0159771743759225 +-0.0159772517622968 +-0.0159771748531954 +-0.0159771751363615 +-0.0159771736874506 +-0.0159771743804603 +-0.0159771772426347 +-0.0159771743643627 +-0.0159771735293821 +-0.0159771737046518 +-0.0159771740868462 +-0.0159771736892779 +-0.0159771771037689 +-0.0159736360358821 +-0.0159771748073456 +-0.0159771809998845 +-0.0159771772881057 +-0.0159771743712627 +-0.0155847312601080 +-0.0159771735407135 +-0.0159771735251367 +-0.0159771739649804 +-0.0159771762988863 +-0.0159771735286750 +-0.0159771747553809 +-0.0159771763109602 +-0.0159771743323227 +-0.0159771744274276 +-0.0159771735081677 +-0.0160334056194445 +-0.0159771735851117 +-0.0159771735177158 +-0.0159771764632942 +-0.0159771857339184 +-0.0156375283194256 +-0.0159771887236136 +-0.0159771735453607 +-0.0159771735870958 +-0.0159771734984201 +-0.0159771739048011 +-0.0159771742833549 +-0.0162188487031709 +-0.0159771743761678 +-0.0159772963052848 +-0.0159771735300378 +-0.0159771735669577 +-0.0159771770898355 +-0.0159771743819175 +-0.0159771763114379 +-0.0159771738293251 +-0.0159771919240445 +-0.0159771760512283 +-0.0159771743596719 +-0.0159771770163367 +-0.0159771743836688 +-0.0159771775249614 +-0.0159772479737893 +-0.0159772447473714 +-0.0159772441868918 +-0.0159772447470127 +-0.0159772446509810 +-0.0159772660180310 +-0.0159772448219724 +-0.0160078831996373 +-0.0159772448615681 +-0.0159773222482840 +-0.0159772453388431 +-0.0159772456220105 +-0.0159772441730932 +-0.0159772448661059 +-0.0159772477282930 +-0.0159772448500083 +-0.0159772440150240 +-0.0159772441902945 +-0.0159772445724906 +-0.0159772441749205 +-0.0159772475894265 +-0.0159737065059108 +-0.0159772452929931 +-0.0159772514855594 +-0.0159772477737642 +-0.0159772448569083 +-0.0155848000136904 +-0.0159772440263554 +-0.0159772440107785 +-0.0159772444506242 +-0.0159772467845404 +-0.0159772440143169 +-0.0159772452410282 +-0.0159772467966144 +-0.0159772448179681 +-0.0159772449130734 +-0.0159772439938095 +-0.0160334763532752 +-0.0159772440707538 +-0.0159772440033577 +-0.0159772469489490 +-0.0159772562196142 +-0.0156375973060256 +-0.0159772592093225 +-0.0159772440310027 +-0.0159772440727380 +-0.0159772439840619 +-0.0159772443904447 +-0.0159772447690001 +-0.0162189202554959 +-0.0159772448618134 +-0.0159773667914686 +-0.0159772440156797 +-0.0159772440525997 +-0.0159772475754931 +-0.0159772448675631 +-0.0159772467970921 +-0.0159772443149683 +-0.0159772624097676 +-0.0159772465368813 +-0.0159772448453174 +-0.0159772475019940 +-0.0159772448693144 +-0.0159772480106209 +-0.0159772848597227 +-0.0159772816332973 +-0.0159772810728165 +-0.0159772816329387 +-0.0159772815369067 +-0.0159773029040061 +-0.0159772817078986 +-0.0160079201563538 +-0.0159772817474943 +-0.0159773591343890 +-0.0159772822247704 +-0.0159772825079385 +-0.0159772810590178 +-0.0159772817520322 +-0.0159772846142259 +-0.0159772817359345 +-0.0159772809009483 +-0.0159772810762192 +-0.0159772814584161 +-0.0159772810608451 +-0.0159772844753591 +-0.0159737433836616 +-0.0159772821789203 +-0.0159772883715009 +-0.0159772846596972 +-0.0159772817428345 +-0.0155848359929062 +-0.0159772809122797 +-0.0159772808967028 +-0.0159772813365494 +-0.0159772836704711 +-0.0159772809002412 +-0.0159772821269553 +-0.0159772836825451 +-0.0159772817038943 +-0.0159772817989998 +-0.0159772808797337 +-0.0160335133691254 +-0.0159772809566782 +-0.0159772808892819 +-0.0159772838348801 +-0.0159772931055666 +-0.0156376334072211 +-0.0159772960952819 +-0.0159772809169270 +-0.0159772809586624 +-0.0159772808699861 +-0.0159772812763698 +-0.0159772816549261 +-0.0162189576998300 +-0.0159772817477397 +-0.0159774036776765 +-0.0159772809016040 +-0.0159772809385241 +-0.0159772844614256 +-0.0159772817534894 +-0.0159772836830228 +-0.0159772812008933 +-0.0159772992957343 +-0.0159772834228114 +-0.0159772817312436 +-0.0159772843879263 +-0.0159772817552407 +-0.0159772848965544 +-0.0159772846862048 +-0.0159772814597795 +-0.0159772808992986 +-0.0159772814594208 +-0.0159772813633889 +-0.0159773027304880 +-0.0159772815343807 +-0.0160079199825044 +-0.0159772815739765 +-0.0159773589608703 +-0.0159772820512526 +-0.0159772823344206 +-0.0159772808855000 +-0.0159772815785143 +-0.0159772844407080 +-0.0159772815624166 +-0.0159772807274304 +-0.0159772809027013 +-0.0159772812848983 +-0.0159772808873273 +-0.0159772843018412 +-0.0159737432101821 +-0.0159772820054025 +-0.0159772881979830 +-0.0159772844861793 +-0.0159772815693167 +-0.0155848358236362 +-0.0159772807387619 +-0.0159772807231849 +-0.0159772811630316 +-0.0159772834969532 +-0.0159772807267234 +-0.0159772819534375 +-0.0159772835090272 +-0.0159772815303764 +-0.0159772816254819 +-0.0159772807062159 +-0.0160335131949990 +-0.0159772807831604 +-0.0159772807157641 +-0.0159772836613622 +-0.0159772929320487 +-0.0156376332373795 +-0.0159772959217639 +-0.0159772807434092 +-0.0159772807851445 +-0.0159772806964682 +-0.0159772811028520 +-0.0159772814814082 +-0.0162189575236970 +-0.0159772815742218 +-0.0159774035041573 +-0.0159772807280861 +-0.0159772807650063 +-0.0159772842879078 +-0.0159772815799715 +-0.0159772835095049 +-0.0159772810273754 +-0.0159772991222163 +-0.0159772832492936 +-0.0159772815577258 +-0.0159772842144084 +-0.0159772815817228 +-0.0159772847230366 +-0.0159772911424547 +-0.0159772879160281 +-0.0159772873555470 +-0.0159772879156694 +-0.0159772878196375 +-0.0159773091867452 +-0.0159772879906294 +-0.0160079264511311 +-0.0159772880302251 +-0.0159773654171502 +-0.0159772885075014 +-0.0159772887906696 +-0.0159772873417483 +-0.0159772880347630 +-0.0159772908969578 +-0.0159772880186653 +-0.0159772871836787 +-0.0159772873589497 +-0.0159772877411468 +-0.0159772873435757 +-0.0159772907580910 +-0.0159737496650012 +-0.0159772884616513 +-0.0159772946542343 +-0.0159772909424291 +-0.0159772880255653 +-0.0155848421213333 +-0.0159772871950102 +-0.0159772871794333 +-0.0159772876192801 +-0.0159772899532027 +-0.0159772871829717 +-0.0159772884096863 +-0.0159772899652766 +-0.0159772879866251 +-0.0159772880817306 +-0.0159772871624642 +-0.0160335196739654 +-0.0159772872394087 +-0.0159772871720124 +-0.0159772901176117 +-0.0159772993883019 +-0.0156376395564074 +-0.0159773023780183 +-0.0159772871996575 +-0.0159772872413929 +-0.0159772871527165 +-0.0159772875591004 +-0.0159772879376569 +-0.0162189640775832 +-0.0159772880304705 +-0.0159774099604553 +-0.0159772871843345 +-0.0159772872212546 +-0.0159772907441575 +-0.0159772880362202 +-0.0159772899657544 +-0.0159772874836239 +-0.0159773055784720 +-0.0159772897055429 +-0.0159772880139744 +-0.0159772906706581 +-0.0159772880379715 +-0.0159772911792865 +-0.0158310806354878 +-0.0158310774385830 +-0.0158310768832303 +-0.0158310774382276 +-0.0158310773430743 +-0.0158310985146730 +-0.0158310775125017 +-0.0158614356310731 +-0.0158310775517351 +-0.0158311542305695 +-0.0158310780246443 +-0.0158310783052215 +-0.0158310768695579 +-0.0158310775562315 +-0.0158310803922372 +-0.0158310775402810 +-0.0158310767129346 +-0.0158310768866019 +-0.0158310772653019 +-0.0158310768713685 +-0.0158310802546410 +-0.0158275715625732 +-0.0158310779792138 +-0.0158310841151346 +-0.0158310804372924 +-0.0158310775471180 +-0.0154422225463122 +-0.0158310767241624 +-0.0158310767087280 +-0.0158310771445502 +-0.0158310794571174 +-0.0158310767122340 +-0.0158310779277242 +-0.0158310794690809 +-0.0158310775085340 +-0.0158310776027693 +-0.0158310766919142 +-0.0158867946761254 +-0.0158310767681547 +-0.0158310767013750 +-0.0158310796200221 +-0.0158310888058854 +-0.0154945368792922 +-0.0158310917682459 +-0.0158310767287672 +-0.0158310767701207 +-0.0158310766822557 +-0.0158310770849212 +-0.0158310774600138 +-0.0160705422715051 +-0.0158310775519782 +-0.0158311983663030 +-0.0158310767135844 +-0.0158310767501667 +-0.0158310802408350 +-0.0158310775576753 +-0.0158310794695543 +-0.0158310770101353 +-0.0158310949394155 +-0.0158310792117237 +-0.0158310775356331 +-0.0158310801680081 +-0.0158310775594106 +-0.0158310806719825 +-0.0142415912685602 +-0.0142415883925941 +-0.0142415878929936 +-0.0142415883922744 +-0.0142415883066736 +-0.0142416073528456 +-0.0142415884590921 +-0.0142688989135277 +-0.0142415884943869 +-0.0142416574753973 +-0.0142415889198205 +-0.0142415891722304 +-0.0142415878806937 +-0.0142415884984318 +-0.0142415910497296 +-0.0142415884840827 +-0.0142415877397939 +-0.0142415878960267 +-0.0142415882367088 +-0.0142415878823226 +-0.0142415909259467 +-0.0142384344731333 +-0.0142415888789507 +-0.0142415943988836 +-0.0142415910902617 +-0.0142415884902332 +-0.0138917710589210 +-0.0142415877498945 +-0.0142415877360096 +-0.0142415881280794 +-0.0142415902084869 +-0.0142415877391637 +-0.0142415888326302 +-0.0142415902192494 +-0.0142415884555227 +-0.0142415885402977 +-0.0142415877208838 +-0.0142917121559344 +-0.0142415877894704 +-0.0142415877293948 +-0.0142415903550375 +-0.0142415986187278 +-0.0139388334735602 +-0.0142416012836955 +-0.0142415877540370 +-0.0142415877912391 +-0.0142415877121949 +-0.0142415880744366 +-0.0142415884118735 +-0.0144570133433608 +-0.0142415884946055 +-0.0142416971803239 +-0.0142415877403784 +-0.0142415877732882 +-0.0142415909135267 +-0.0142415884997307 +-0.0142415902196752 +-0.0142415880071585 +-0.0142416041365099 +-0.0142415899877284 +-0.0142415884799013 +-0.0142415908480110 +-0.0142415885012918 +-0.0142415913013912 +-0.0158754931201038 +-0.0158754899142493 +-0.0158754893573420 +-0.0158754899138930 +-0.0158754898184733 +-0.0158755110493410 +-0.0158754899883749 +-0.0159059330926390 +-0.0158754900277182 +-0.0158755669212121 +-0.0158754905019513 +-0.0158754907833140 +-0.0158754893436313 +-0.0158754900322271 +-0.0158754928761722 +-0.0158754900162321 +-0.0158754891865695 +-0.0158754893607230 +-0.0158754897404831 +-0.0158754893454469 +-0.0158754927381908 +-0.0158719742236605 +-0.0158754904563936 +-0.0158754966094917 +-0.0158754929213535 +-0.0158754900230881 +-0.0154855463268938 +-0.0158754891978287 +-0.0158754891823511 +-0.0158754896193934 +-0.0158754919384345 +-0.0158754891858670 +-0.0158754904047599 +-0.0158754919504315 +-0.0158754899843962 +-0.0158754900788953 +-0.0158754891654903 +-0.0159313631276447 +-0.0158754892419442 +-0.0158754891749776 +-0.0158754921017953 +-0.0158755013133741 +-0.0155380071391973 +-0.0158755042840276 +-0.0158754892024464 +-0.0158754892439157 +-0.0158754891558048 +-0.0158754895595975 +-0.0158754899357402 +-0.0161156250710746 +-0.0158754900279620 +-0.0158756111805020 +-0.0158754891872211 +-0.0158754892239058 +-0.0158754927243461 +-0.0158754900336751 +-0.0158754919509062 +-0.0158754894846022 +-0.0158755074640747 +-0.0158754916923539 +-0.0158754900115711 +-0.0158754926513154 +-0.0158754900354152 +-0.0158754931567007 +-0.0159554470754596 +-0.0159554438534444 +-0.0159554432937296 +-0.0159554438530862 +-0.0159554437571856 +-0.0159554650950787 +-0.0159554439279436 +-0.0159860404973880 +-0.0159554439674853 +-0.0159555212486016 +-0.0159554444441090 +-0.0159554447268900 +-0.0159554432799498 +-0.0159554439720169 +-0.0159554468302984 +-0.0159554439559412 +-0.0159554431220963 +-0.0159554432971277 +-0.0159554436788022 +-0.0159554432817746 +-0.0159554466916214 +-0.0159519104401619 +-0.0159554443983216 +-0.0159554505824377 +-0.0159554468757075 +-0.0159554439628319 +-0.0155635346367009 +-0.0159554431334123 +-0.0159554431178567 +-0.0159554435571021 +-0.0159554458878336 +-0.0159554431213902 +-0.0159554443464276 +-0.0159554458998911 +-0.0159554439239448 +-0.0159554440189203 +-0.0159554431009108 +-0.0160115987273539 +-0.0159554431777501 +-0.0159554431104460 +-0.0159554460520178 +-0.0159554553100325 +-0.0156162598837753 +-0.0159554582956612 +-0.0159554431380533 +-0.0159554431797316 +-0.0159554430911765 +-0.0159554434970047 +-0.0159554438750436 +-0.0161967895778049 +-0.0159554439677303 +-0.0159555657310039 +-0.0159554431227512 +-0.0159554431596208 +-0.0159554466777070 +-0.0159554439734722 +-0.0159554459003681 +-0.0159554434216314 +-0.0159554614917390 +-0.0159554456405124 +-0.0159554439512568 +-0.0159554466043081 +-0.0159554439752211 +-0.0159554471122410 +-0.0159536205166425 +-0.0159536172949999 +-0.0159536167353498 +-0.0159536172946417 +-0.0159536171987521 +-0.0159536385341780 +-0.0159536173694905 +-0.0159842104008287 +-0.0159536174090276 +-0.0159536946812076 +-0.0159536178855962 +-0.0159536181683445 +-0.0159536167215716 +-0.0159536174135587 +-0.0159536202715096 +-0.0159536173974849 +-0.0159536165637364 +-0.0159536167387475 +-0.0159536171203779 +-0.0159536167233962 +-0.0159536201328487 +-0.0159500842902935 +-0.0159536178398141 +-0.0159536240232151 +-0.0159536203169135 +-0.0159536174043747 +-0.0155617533741551 +-0.0159536165750510 +-0.0159536165594972 +-0.0159536169986919 +-0.0159536193291538 +-0.0159536165630304 +-0.0159536177879261 +-0.0159536193412099 +-0.0159536173654921 +-0.0159536174604566 +-0.0159536165425533 +-0.0160097656750855 +-0.0159536166193837 +-0.0159536165520873 +-0.0159536194933191 +-0.0159536287502632 +-0.0156144725298168 +-0.0159536317355467 +-0.0159536165796914 +-0.0159536166213650 +-0.0159536165328201 +-0.0159536169386014 +-0.0159536173165965 +-0.0161949351023115 +-0.0159536174092725 +-0.0159537391584663 +-0.0159536165643911 +-0.0159536166012565 +-0.0159536201189359 +-0.0159536174150137 +-0.0159536193416869 +-0.0159536168632368 +-0.0159536349312549 +-0.0159536190818613 +-0.0159536173928009 +-0.0159536200455455 +-0.0159536174167624 +-0.0159536205534197 +-0.0159680736031751 +-0.0159680703786105 +-0.0159680698184528 +-0.0159680703782520 +-0.0159680702822755 +-0.0159680916370522 +-0.0159680704531687 +-0.0159986912321361 +-0.0159680704927416 +-0.0159681478350066 +-0.0159680709697425 +-0.0159680712527472 +-0.0159680698046621 +-0.0159680704972768 +-0.0159680733578199 +-0.0159680704811884 +-0.0159680696466837 +-0.0159680698218536 +-0.0159680702038301 +-0.0159680698064884 +-0.0159680732190332 +-0.0159645341695144 +-0.0159680709239188 +-0.0159680771129281 +-0.0159680734032649 +-0.0159680704880845 +-0.0155758510615862 +-0.0159680696580086 +-0.0159680696424407 +-0.0159680700820337 +-0.0159680724146094 +-0.0159680696459771 +-0.0159680708719838 +-0.0159680724266764 +-0.0159680704491667 +-0.0159680705442173 +-0.0159680696254814 +-0.0160242696850194 +-0.0159680697023815 +-0.0159680696350241 +-0.0159680725789235 +-0.0159680818442636 +-0.0156286180280335 +-0.0159680848322547 +-0.0159680696626533 +-0.0159680697043646 +-0.0159680696157394 +-0.0159680700218888 +-0.0159680704002267 +-0.0162096070668568 +-0.0159680704929868 +-0.0159681923526056 +-0.0159680696473391 +-0.0159680696842379 +-0.0159680732051077 +-0.0159680704987332 +-0.0159680724271538 +-0.0159680699464558 +-0.0159680880308614 +-0.0159680721670925 +-0.0159680704765002 +-0.0159680731316508 +-0.0159680705004835 +-0.0159680736399856 +-0.0159681359202507 +-0.0159681326956779 +-0.0159681321355189 +-0.0159681326953195 +-0.0159681325993427 +-0.0159681539541736 +-0.0159681327702363 +-0.0159987536266118 +-0.0159681328098094 +-0.0159682101522703 +-0.0159681332868114 +-0.0159681335698169 +-0.0159681321217281 +-0.0159681328143446 +-0.0159681356748949 +-0.0159681327982561 +-0.0159681319637493 +-0.0159681321389196 +-0.0159681325208971 +-0.0159681321235544 +-0.0159681355361078 +-0.0159645964776205 +-0.0159681332409876 +-0.0159681394300126 +-0.0159681357203401 +-0.0159681328051522 +-0.0155759123591724 +-0.0159681319750743 +-0.0159681319595063 +-0.0159681323991004 +-0.0159681347316820 +-0.0159681319630427 +-0.0159681331890524 +-0.0159681347437490 +-0.0159681327662343 +-0.0159681328612852 +-0.0159681319425470 +-0.0160243321438906 +-0.0159681320194473 +-0.0159681319520897 +-0.0159681348959966 +-0.0159681441613601 +-0.0156286794656917 +-0.0159681471493587 +-0.0159681319797189 +-0.0159681320214303 +-0.0159681319328049 +-0.0159681323389553 +-0.0159681327172942 +-0.0162096699844347 +-0.0159681328100545 +-0.0159682546699820 +-0.0159681319644047 +-0.0159681320013036 +-0.0159681355221824 +-0.0159681328158010 +-0.0159681347442265 +-0.0159681322635221 +-0.0159681503479735 +-0.0159681344841645 +-0.0159681327935679 +-0.0159681354487252 +-0.0159681328175513 +-0.0159681359570613 +-0.0159771276202287 +-0.0159771243938352 +-0.0159771238333598 +-0.0159771243934765 +-0.0159771242974455 +-0.0159771456643345 +-0.0159771244684356 +-0.0160077626152972 +-0.0159771245080310 +-0.0159772018941639 +-0.0159771249853024 +-0.0159771252684677 +-0.0159771238195613 +-0.0159771245125688 +-0.0159771273747343 +-0.0159771244964713 +-0.0159771236614933 +-0.0159771238367625 +-0.0159771242189557 +-0.0159771238213886 +-0.0159771272358689 +-0.0159735861790287 +-0.0159771249394528 +-0.0159771311319724 +-0.0159771274202052 +-0.0159771245033713 +-0.0155846826164911 +-0.0159771236728246 +-0.0159771236572478 +-0.0159771240970902 +-0.0159771264309888 +-0.0159771236607862 +-0.0159771248874883 +-0.0159771264430627 +-0.0159771244644314 +-0.0159771245595359 +-0.0159771236402790 +-0.0160333555761380 +-0.0159771237172227 +-0.0159771236498270 +-0.0159771265953962 +-0.0159771358659915 +-0.0156374795110981 +-0.0159771388556773 +-0.0159771236774719 +-0.0159771237192068 +-0.0159771236305314 +-0.0159771240369111 +-0.0159771244154637 +-0.0162187980813806 +-0.0159771245082763 +-0.0159772464370130 +-0.0159771236621490 +-0.0159771236990688 +-0.0159771272219356 +-0.0159771245140260 +-0.0159771264435404 +-0.0159771239614354 +-0.0159771420560983 +-0.0159771261833316 +-0.0159771244917804 +-0.0159771271484370 +-0.0159771245157773 +-0.0159771276570601 +-0.0159771675139017 +-0.0159771642875001 +-0.0159771637270234 +-0.0159771642871414 +-0.0159771641911102 +-0.0159771855580526 +-0.0159771643621008 +-0.0160078025854294 +-0.0159771644016963 +-0.0159772417880223 +-0.0159771648789688 +-0.0159771651621348 +-0.0159771637132248 +-0.0159771644062341 +-0.0159771672684067 +-0.0159771643901365 +-0.0159771635551564 +-0.0159771637304260 +-0.0159771641126202 +-0.0159771637150521 +-0.0159771671295410 +-0.0159736260638629 +-0.0159771648331191 +-0.0159771710256542 +-0.0159771673138777 +-0.0159771643970365 +-0.0155847215306720 +-0.0159771635664878 +-0.0159771635509110 +-0.0159771639907544 +-0.0159771663246589 +-0.0159771635544493 +-0.0159771647811544 +-0.0159771663367328 +-0.0159771643580965 +-0.0159771644532013 +-0.0159771635339420 +-0.0160333956101452 +-0.0159771636108859 +-0.0159771635434901 +-0.0159771664890667 +-0.0159771757596851 +-0.0156375185570557 +-0.0159771787493784 +-0.0159771635711350 +-0.0159771636128701 +-0.0159771635241944 +-0.0159771639305752 +-0.0159771643091287 +-0.0162188385782094 +-0.0159771644019416 +-0.0159772863309825 +-0.0159771635558121 +-0.0159771635927320 +-0.0159771671156076 +-0.0159771644076913 +-0.0159771663372105 +-0.0159771638550992 +-0.0159771819498073 +-0.0159771660770010 +-0.0159771643854456 +-0.0159771670421088 +-0.0159771644094426 +-0.0159771675507332 +-0.0159770811522159 +-0.0159770779258317 +-0.0159770773653580 +-0.0159770779254731 +-0.0159770778294424 +-0.0159770991962690 +-0.0159770780004320 +-0.0160077160578044 +-0.0159770780400273 +-0.0159771554259342 +-0.0159770785172973 +-0.0159770788004617 +-0.0159770773515595 +-0.0159770780445650 +-0.0159770809067222 +-0.0159770780284676 +-0.0159770771934920 +-0.0159770773687607 +-0.0159770777509528 +-0.0159770773533868 +-0.0159770807678572 +-0.0159735397213596 +-0.0159770784714478 +-0.0159770846639493 +-0.0159770809521929 +-0.0159770780353675 +-0.0155846372944820 +-0.0159770772048233 +-0.0159770771892466 +-0.0159770776290876 +-0.0159770799629795 +-0.0159770771927849 +-0.0159770784194834 +-0.0159770799750533 +-0.0159770779964278 +-0.0159770780915320 +-0.0159770771722777 +-0.0160333089438898 +-0.0159770772492212 +-0.0159770771818258 +-0.0159770801273864 +-0.0159770893979546 +-0.0156374340349416 +-0.0159770923876317 +-0.0159770772094705 +-0.0159770772512054 +-0.0159770771625302 +-0.0159770775689088 +-0.0159770779474602 +-0.0162187509073925 +-0.0159770780402726 +-0.0159771999686531 +-0.0159770771941477 +-0.0159770772310674 +-0.0159770807539239 +-0.0159770780460222 +-0.0159770799755310 +-0.0159770774934332 +-0.0159770955880433 +-0.0159770797153230 +-0.0159770780237767 +-0.0159770806804255 +-0.0159770780477735 +-0.0159770811890472 +-0.0159772522571613 +-0.0159772490307426 +-0.0159772484702628 +-0.0159772490303839 +-0.0159772489343522 +-0.0159772703014079 +-0.0159772491053436 +-0.0160078874912485 +-0.0159772491449393 +-0.0159773265316760 +-0.0159772496222144 +-0.0159772499053819 +-0.0159772484564642 +-0.0159772491494772 +-0.0159772520116650 +-0.0159772491333795 +-0.0159772482983950 +-0.0159772484736655 +-0.0159772488558617 +-0.0159772484582915 +-0.0159772518727985 +-0.0159737107883304 +-0.0159772495763644 +-0.0159772557689324 +-0.0159772520571362 +-0.0159772491402795 +-0.0155848041915345 +-0.0159772483097264 +-0.0159772482941495 +-0.0159772487339953 +-0.0159772510679121 +-0.0159772482976879 +-0.0159772495243995 +-0.0159772510799861 +-0.0159772491013393 +-0.0159772491964446 +-0.0159772482771805 +-0.0160334806517696 +-0.0159772483541248 +-0.0159772482867287 +-0.0159772512323208 +-0.0159772605029884 +-0.0156376014980648 +-0.0159772634926976 +-0.0159772483143737 +-0.0159772483561090 +-0.0159772482674329 +-0.0159772486738158 +-0.0159772490523713 +-0.0162189246038701 +-0.0159772491451847 +-0.0159773710748726 +-0.0159772482990507 +-0.0159772483359707 +-0.0159772518588651 +-0.0159772491509344 +-0.0159772510804638 +-0.0159772485983394 +-0.0159772666931435 +-0.0159772508202530 +-0.0159772491286886 +-0.0159772517853659 +-0.0159772491526857 +-0.0159772522939930 +-0.0159772763735651 +-0.0159772731471415 +-0.0159772725866609 +-0.0159772731467828 +-0.0159772730507509 +-0.0159772944178389 +-0.0159772732217427 +-0.0160079116539132 +-0.0159772732613384 +-0.0159773506481920 +-0.0159772737386142 +-0.0159772740217822 +-0.0159772725728622 +-0.0159772732658762 +-0.0159772761280684 +-0.0159772732497786 +-0.0159772724147928 +-0.0159772725900636 +-0.0159772729722604 +-0.0159772725746896 +-0.0159772759892017 +-0.0159737348993864 +-0.0159772736927642 +-0.0159772798853415 +-0.0159772761735397 +-0.0159772732566786 +-0.0155848277153318 +-0.0159772724261242 +-0.0159772724105473 +-0.0159772728503937 +-0.0159772751843141 +-0.0159772724140857 +-0.0159772736407992 +-0.0159772751963881 +-0.0159772732177384 +-0.0159772733128438 +-0.0159772723935783 +-0.0160335048530816 +-0.0159772724705227 +-0.0159772724031264 +-0.0159772753487231 +-0.0159772846194047 +-0.0156376251015860 +-0.0159772876091183 +-0.0159772724307715 +-0.0159772724725069 +-0.0159772723838306 +-0.0159772727902141 +-0.0159772731687702 +-0.0162189490852179 +-0.0159772732615837 +-0.0159773951914558 +-0.0159772724154485 +-0.0159772724523686 +-0.0159772759752683 +-0.0159772732673335 +-0.0159772751968658 +-0.0159772727147376 +-0.0159772908095691 +-0.0159772749366546 +-0.0159772732450877 +-0.0159772759017689 +-0.0159772732690848 +-0.0159772764103968 +-0.0159773092567349 +-0.0159773060303046 +-0.0159773054698229 +-0.0159773060299459 +-0.0159773059339139 +-0.0159773273010459 +-0.0159773061049060 +-0.0160079446001394 +-0.0159773061445018 +-0.0159773835315146 +-0.0159773066217786 +-0.0159773069049471 +-0.0159773054560242 +-0.0159773061490396 +-0.0159773090112377 +-0.0159773061329419 +-0.0159773052979544 +-0.0159773054732256 +-0.0159773058554231 +-0.0159773054578515 +-0.0159773088723707 +-0.0159737677752668 +-0.0159773065759284 +-0.0159773127685185 +-0.0159773090567090 +-0.0159773061398420 +-0.0155848597907309 +-0.0159773053092859 +-0.0159773052937089 +-0.0159773057335563 +-0.0159773080674815 +-0.0159773052972473 +-0.0159773065239633 +-0.0159773080795555 +-0.0159773061009016 +-0.0159773061960073 +-0.0159773052767398 +-0.0160335378519861 +-0.0159773053536844 +-0.0159773052862881 +-0.0159773082318907 +-0.0159773175025914 +-0.0156376572856568 +-0.0159773204923112 +-0.0159773053139332 +-0.0159773053556686 +-0.0159773052669922 +-0.0159773056733765 +-0.0159773060519334 +-0.0162189824658221 +-0.0159773061447471 +-0.0159774280748701 +-0.0159773052986101 +-0.0159773053355303 +-0.0159773088584372 +-0.0159773061504968 +-0.0159773080800332 +-0.0159773055978999 +-0.0159773236927686 +-0.0159773078198214 +-0.0159773061282510 +-0.0159773087849378 +-0.0159773061522481 +-0.0159773092935667 +-0.0159074058342549 +-0.0159074026219394 +-0.0159074020639097 +-0.0159074026215823 +-0.0159074025259704 +-0.0159074237996269 +-0.0159074026962144 +-0.0159379071562371 +-0.0159074027356370 +-0.0159074797841023 +-0.0159074032108259 +-0.0159074034927556 +-0.0159074020501713 +-0.0159074027401550 +-0.0159074055898317 +-0.0159074027241277 +-0.0159074018927931 +-0.0159074020672975 +-0.0159074024478230 +-0.0159074020519907 +-0.0159074054515722 +-0.0159038798458267 +-0.0159074031651763 +-0.0159074093306754 +-0.0159074056351042 +-0.0159074027309976 +-0.0155166732383998 +-0.0159074019040750 +-0.0159074018885662 +-0.0159074023264893 +-0.0159074046502042 +-0.0159074018920891 +-0.0159074031134385 +-0.0159074046622254 +-0.0159074026922276 +-0.0159074027869172 +-0.0159074018716713 +-0.0159633884445458 +-0.0159074019482793 +-0.0159074018811778 +-0.0159074048138942 +-0.0159074140440380 +-0.0155692397563152 +-0.0159074170206786 +-0.0159074019087019 +-0.0159074019502548 +-0.0159074018619663 +-0.0159074022665728 +-0.0159074026434736 +-0.0161480217909746 +-0.0159074027358813 +-0.0159075241325924 +-0.0159074018934459 +-0.0159074019302046 +-0.0159074054376997 +-0.0159074027416059 +-0.0159074046627010 +-0.0159074021914264 +-0.0159074202071348 +-0.0159074044036276 +-0.0159074027194574 +-0.0159074053645218 +-0.0159074027433495 +-0.0159074058709256 +-0.0116547825769474 +-0.0116547802232920 +-0.0116547798144250 +-0.0116547802230303 +-0.0116547801529757 +-0.0116547957401298 +-0.0116547802777131 +-0.0116771308222512 +-0.0116547803065979 +-0.0116548367598128 +-0.0116547806547676 +-0.0116547808613368 +-0.0116547798043589 +-0.0116547803099082 +-0.0116547823978591 +-0.0116547802981651 +-0.0116547796890483 +-0.0116547798169072 +-0.0116547800957173 +-0.0116547798056920 +-0.0116547822965567 +-0.0116521990942350 +-0.0116547806213203 +-0.0116547851387658 +-0.0116547824310301 +-0.0116547803031986 +-0.0113684944221893 +-0.0116547796973145 +-0.0116547796859512 +-0.0116547800068164 +-0.0116547817093964 +-0.0116547796885325 +-0.0116547805834121 +-0.0116547817182043 +-0.0116547802747920 +-0.0116547803441708 +-0.0116547796735724 +-0.0116958009074147 +-0.0116547797297029 +-0.0116547796805378 +-0.0116547818293317 +-0.0116547885922346 +-0.0114070096214499 +-0.0116547907732116 +-0.0116547797007047 +-0.0116547797311504 +-0.0116547796664616 +-0.0116547799629158 +-0.0116547802390700 +-0.0118310815554080 +-0.0116547803067769 +-0.0116548692538389 +-0.0116547796895266 +-0.0116547797164596 +-0.0116547822863924 +-0.0116547803109713 +-0.0116547817185528 +-0.0116547799078562 +-0.0116547931079200 +-0.0116547815287304 +-0.0116547802947431 +-0.0116547822327751 +-0.0116547803122488 +-0.0116547826038159 +-0.0159710194350005 +-0.0159710162098407 +-0.0159710156495797 +-0.0159710162094822 +-0.0159710161134879 +-0.0159710374722059 +-0.0159710162844127 +-0.0160016427146354 +-0.0159710163239929 +-0.0159710936805319 +-0.0159710168010818 +-0.0159710170841388 +-0.0159710156357864 +-0.0159710163285290 +-0.0159710191896000 +-0.0159710163124376 +-0.0159710154777789 +-0.0159710156529811 +-0.0159710160350281 +-0.0159710156376131 +-0.0159710190507876 +-0.0159674793481164 +-0.0159710167552497 +-0.0159710229454012 +-0.0159710192350534 +-0.0159710163193349 +-0.0155787245077985 +-0.0159710154891059 +-0.0159710154735351 +-0.0159710159132092 +-0.0159710182462154 +-0.0159710154770721 +-0.0159710167033051 +-0.0159710182582846 +-0.0159710162804100 +-0.0159710163754781 +-0.0159710154565727 +-0.0160272258881957 +-0.0159710155334870 +-0.0159710154661172 +-0.0159710184105599 +-0.0159710276776099 +-0.0156315012123601 +-0.0159710306661524 +-0.0159710154937514 +-0.0159710155354704 +-0.0159710154468289 +-0.0159710158530532 +-0.0159710162314610 +-0.0162125974757260 +-0.0159710163242382 +-0.0159711382063468 +-0.0159710154784344 +-0.0159710155153400 +-0.0159710190368596 +-0.0159710163299856 +-0.0159710182587622 +-0.0159710157776063 +-0.0159710338653495 +-0.0159710179986529 +-0.0159710163077486 +-0.0159710189633891 +-0.0159710163317362 +-0.0159710194718178 +-0.0159513833393005 +-0.0159513801181059 +-0.0159513795585337 +-0.0159513801177478 +-0.0159513800218715 +-0.0159514013543301 +-0.0159513801925861 +-0.0159819689692895 +-0.0159513802321177 +-0.0159514574935510 +-0.0159513807086200 +-0.0159513809913290 +-0.0159513795447574 +-0.0159513802366482 +-0.0159513830942016 +-0.0159513802205766 +-0.0159513793869441 +-0.0159513795619308 +-0.0159513799435082 +-0.0159513795465817 +-0.0159513829555600 +-0.0159478476047600 +-0.0159513806628443 +-0.0159513868453853 +-0.0159513831395992 +-0.0159513802274655 +-0.0155595707179986 +-0.0159513793982571 +-0.0159513793827055 +-0.0159513798218391 +-0.0159513821519769 +-0.0159513793862382 +-0.0159513806109635 +-0.0159513821640313 +-0.0159513801885883 +-0.0159513802835396 +-0.0159513793657639 +-0.0160075206897457 +-0.0159513794425837 +-0.0159513793752967 +-0.0159513823161194 +-0.0159513915717761 +-0.0156122825363091 +-0.0159513945566443 +-0.0159513794028969 +-0.0159513794445646 +-0.0159513793560321 +-0.0159513797617570 +-0.0159513801396995 +-0.0161926643733257 +-0.0159513802323626 +-0.0159515019646239 +-0.0159513793875987 +-0.0159513794244590 +-0.0159513829416491 +-0.0159513802381030 +-0.0159513821645083 +-0.0159513796864028 +-0.0159513977519081 +-0.0159513819047187 +-0.0159513802158933 +-0.0159513828682689 +-0.0159513802398515 +-0.0159513833760725 +-0.0159704847224134 +-0.0159704814975689 +-0.0159704809373627 +-0.0159704814972104 +-0.0159704814012255 +-0.0159705027578554 +-0.0159704815721336 +-0.0160011050002195 +-0.0159704816117099 +-0.0159705589606862 +-0.0159704820887522 +-0.0159704823717815 +-0.0159704809235708 +-0.0159704816162456 +-0.0159704844770368 +-0.0159704816001558 +-0.0159704807655787 +-0.0159704809407637 +-0.0159704813227734 +-0.0159704809253972 +-0.0159704843382381 +-0.0159669449815161 +-0.0159704820429246 +-0.0159704882324709 +-0.0159704845224858 +-0.0159704816070524 +-0.0155782269422633 +-0.0159704807769046 +-0.0159704807613353 +-0.0159704812009664 +-0.0159704835337445 +-0.0159704807648720 +-0.0159704819909850 +-0.0159704835458125 +-0.0159704815681312 +-0.0159704816631901 +-0.0159704807443745 +-0.0160266856535553 +-0.0159704808212813 +-0.0159704807539180 +-0.0159704836980729 +-0.0159704929642170 +-0.0156309987854569 +-0.0159704959524673 +-0.0159704807815496 +-0.0159704808232645 +-0.0159704807346317 +-0.0159704811408163 +-0.0159704815191870 +-0.0162120386102990 +-0.0159704816119552 +-0.0159706034821481 +-0.0159704807662341 +-0.0159704808031361 +-0.0159704843243114 +-0.0159704816177021 +-0.0159704835462900 +-0.0159704810653767 +-0.0159704991513516 +-0.0159704832862062 +-0.0159704815954672 +-0.0159704842508481 +-0.0159704816194525 +-0.0159704847592271 +-0.0159683794040889 +-0.0159683761794628 +-0.0159683756192945 +-0.0159683761791043 +-0.0159683760831260 +-0.0159683974383101 +-0.0159683762540224 +-0.0159989976170506 +-0.0159683762935961 +-0.0159684536373363 +-0.0159683767706061 +-0.0159683770536162 +-0.0159683756055035 +-0.0159683762981314 +-0.0159683791587290 +-0.0159683762820427 +-0.0159683754475221 +-0.0159683756226953 +-0.0159683760046791 +-0.0159683756073298 +-0.0159683790199397 +-0.0159648399029158 +-0.0159683767247815 +-0.0159683829139089 +-0.0159683792041750 +-0.0159683762889389 +-0.0155761493796992 +-0.0159683754588472 +-0.0159683754432790 +-0.0159683758828804 +-0.0159683782155005 +-0.0159683754468154 +-0.0159683766728455 +-0.0159683782275678 +-0.0159683762500204 +-0.0159683763450728 +-0.0159683754263194 +-0.0160245765578026 +-0.0159683755032210 +-0.0159683754358623 +-0.0159683783798179 +-0.0159683876453346 +-0.0156289173529928 +-0.0159683906333827 +-0.0159683754634920 +-0.0159683755052041 +-0.0159683754165772 +-0.0159683758227343 +-0.0159683762010795 +-0.0162099174742197 +-0.0159683762938413 +-0.0159684981557845 +-0.0159683754481775 +-0.0159683754850770 +-0.0159683790060140 +-0.0159683762995878 +-0.0159683782280453 +-0.0159683757472999 +-0.0159683938320504 +-0.0159683779679790 +-0.0159683762773544 +-0.0159683789325556 +-0.0159683763013382 +-0.0159683794409002 +-0.0159747320746873 +-0.0159747288487778 +-0.0159747282883865 +-0.0159747288484192 +-0.0159747287524026 +-0.0159747501160860 +-0.0159747289233671 +-0.0160053624736038 +-0.0159747289629565 +-0.0159748063374793 +-0.0159747294401563 +-0.0159747297232791 +-0.0159747282745901 +-0.0159747289674936 +-0.0159747318292297 +-0.0159747289513985 +-0.0159747281165458 +-0.0159747282917887 +-0.0159747286739245 +-0.0159747282764171 +-0.0159747316903852 +-0.0159711911648063 +-0.0159747293943135 +-0.0159747355859041 +-0.0159747318746938 +-0.0159747289582975 +-0.0155823459473525 +-0.0159747281278754 +-0.0159747281123010 +-0.0159747285520773 +-0.0159747308856258 +-0.0159747281158388 +-0.0159747293423568 +-0.0159747308976979 +-0.0159747289193634 +-0.0159747290144537 +-0.0159747280953346 +-0.0160309515947282 +-0.0159747281722668 +-0.0159747281048813 +-0.0159747310500086 +-0.0159747403192130 +-0.0156351349213265 +-0.0159747433084503 +-0.0159747281325220 +-0.0159747281742507 +-0.0159747280855886 +-0.0159747284919073 +-0.0159747288704031 +-0.0162163662774603 +-0.0159747289632018 +-0.0159748508736456 +-0.0159747281172014 +-0.0159747281541156 +-0.0159747316764539 +-0.0159747289689506 +-0.0159747308981756 +-0.0159747284164429 +-0.0159747465083910 +-0.0159747306380058 +-0.0159747289467084 +-0.0159747316029663 +-0.0159747289707016 +-0.0159747321115132 +-0.0159772138787650 +-0.0159772106523540 +-0.0159772100918757 +-0.0159772106519954 +-0.0159772105559639 +-0.0159772319229683 +-0.0159772107269549 +-0.0160078490392543 +-0.0159772107665505 +-0.0159772881531013 +-0.0159772112438245 +-0.0159772115269913 +-0.0159772100780770 +-0.0159772107710883 +-0.0159772136332693 +-0.0159772107549907 +-0.0159772099200082 +-0.0159772100952783 +-0.0159772104774736 +-0.0159772100799044 +-0.0159772134944031 +-0.0159736724184421 +-0.0159772111979746 +-0.0159772173905277 +-0.0159772136787404 +-0.0159772107618907 +-0.0155847667559462 +-0.0159772099313396 +-0.0159772099157627 +-0.0159772103556075 +-0.0159772126895187 +-0.0159772099193012 +-0.0159772111460098 +-0.0159772127015927 +-0.0159772107229506 +-0.0159772108180557 +-0.0159772098987938 +-0.0160334421382905 +-0.0159772099757379 +-0.0159772099083419 +-0.0159772128539270 +-0.0159772221245723 +-0.0156375639356383 +-0.0159772251142743 +-0.0159772099359869 +-0.0159772099777221 +-0.0159772098890462 +-0.0159772102954281 +-0.0159772106739827 +-0.0162188856448793 +-0.0159772107667959 +-0.0159773326961908 +-0.0159772099206639 +-0.0159772099575839 +-0.0159772134804697 +-0.0159772107725456 +-0.0159772127020704 +-0.0159772102199519 +-0.0159772283147125 +-0.0159772124418602 +-0.0159772107502999 +-0.0159772134069707 +-0.0159772107742968 +-0.0159772139155966 +-0.0159770122884786 +-0.0159770090621083 +-0.0159770085016370 +-0.0159770090617496 +-0.0159770089657193 +-0.0159770303324539 +-0.0159770091367082 +-0.0160076470620787 +-0.0159770091763033 +-0.0159770865618768 +-0.0159770096535713 +-0.0159770099367345 +-0.0159770084878386 +-0.0159770091808411 +-0.0159770120429859 +-0.0159770091647437 +-0.0159770083297717 +-0.0159770085050396 +-0.0159770088872301 +-0.0159770084896658 +-0.0159770119041215 +-0.0159734708728803 +-0.0159770096077220 +-0.0159770158001968 +-0.0159770120884564 +-0.0159770091716436 +-0.0155845701216030 +-0.0159770083411030 +-0.0159770083255263 +-0.0159770087653655 +-0.0159770110992473 +-0.0159770083290647 +-0.0159770095557578 +-0.0159770111113210 +-0.0159770091327040 +-0.0159770092278079 +-0.0159770083085575 +-0.0160332398378992 +-0.0159770083855007 +-0.0159770083181056 +-0.0159770112636535 +-0.0159770205341817 +-0.0156373666345815 +-0.0159770235238459 +-0.0159770083457502 +-0.0159770083874849 +-0.0159770082988101 +-0.0159770087051869 +-0.0159770090837367 +-0.0162186810024517 +-0.0159770091765487 +-0.0159771311044038 +-0.0159770083304274 +-0.0159770083673469 +-0.0159770118901883 +-0.0159770091822983 +-0.0159770111117988 +-0.0159770086297116 +-0.0159770267242437 +-0.0159770108515918 +-0.0159770091600529 +-0.0159770118166902 +-0.0159770091840496 +-0.0159770123253097 +-0.0159773150918565 +-0.0159773118654250 +-0.0159773113049431 +-0.0159773118650664 +-0.0159773117690343 +-0.0159773331361741 +-0.0159773119400264 +-0.0160079504464948 +-0.0159773119796222 +-0.0159773893666635 +-0.0159773124568992 +-0.0159773127400678 +-0.0159773112911444 +-0.0159773119841601 +-0.0159773148463592 +-0.0159773119680624 +-0.0159773111330746 +-0.0159773113083458 +-0.0159773116905435 +-0.0159773112929717 +-0.0159773147074922 +-0.0159737736090898 +-0.0159773124110491 +-0.0159773186036414 +-0.0159773148918306 +-0.0159773119749624 +-0.0155848654819738 +-0.0159773111444060 +-0.0159773111288291 +-0.0159773115686766 +-0.0159773139026026 +-0.0159773111323675 +-0.0159773123590839 +-0.0159773139146766 +-0.0159773119360221 +-0.0159773120311278 +-0.0159773111118600 +-0.0160335437077267 +-0.0159773111888046 +-0.0159773111214082 +-0.0159773140670120 +-0.0159773233377161 +-0.0156376629962530 +-0.0159773263274370 +-0.0159773111490533 +-0.0159773111907888 +-0.0159773111021123 +-0.0159773115084968 +-0.0159773118870538 +-0.0162189883895747 +-0.0159773119798676 +-0.0159774339100353 +-0.0159773111337303 +-0.0159773111706505 +-0.0159773146935587 +-0.0159773119856173 +-0.0159773139151544 +-0.0159773114330202 +-0.0159773295278955 +-0.0159773136549425 +-0.0159773119633715 +-0.0159773146200592 +-0.0159773119873686 +-0.0159773151286883 +-0.0159772746780693 +-0.0159772714516460 +-0.0159772708911655 +-0.0159772714512873 +-0.0159772713552555 +-0.0159772927223412 +-0.0159772715262472 +-0.0160079099551645 +-0.0159772715658429 +-0.0159773489526883 +-0.0159772720431187 +-0.0159772723262866 +-0.0159772708773668 +-0.0159772715703808 +-0.0159772744325726 +-0.0159772715542831 +-0.0159772707192974 +-0.0159772708945682 +-0.0159772712767649 +-0.0159772708791942 +-0.0159772742937059 +-0.0159737332042667 +-0.0159772719972687 +-0.0159772781898453 +-0.0159772744780439 +-0.0159772715611831 +-0.0155848260615067 +-0.0159772707306288 +-0.0159772707150519 +-0.0159772711548983 +-0.0159772734888185 +-0.0159772707185903 +-0.0159772719453037 +-0.0159772735008924 +-0.0159772715222429 +-0.0159772716173483 +-0.0159772706980829 +-0.0160335031516152 +-0.0159772707750273 +-0.0159772707076311 +-0.0159772736532274 +-0.0159772829239080 +-0.0156376234421550 +-0.0159772859136213 +-0.0159772707352761 +-0.0159772707770115 +-0.0159772706883352 +-0.0159772710947187 +-0.0159772714732747 +-0.0162189473640597 +-0.0159772715660883 +-0.0159773934959474 +-0.0159772707199531 +-0.0159772707568732 +-0.0159772742797725 +-0.0159772715718380 +-0.0159772735013702 +-0.0159772710192422 +-0.0159772891140717 +-0.0159772732411590 +-0.0159772715495922 +-0.0159772742062732 +-0.0159772715735893 +-0.0159772747149010 +-0.0159772757327529 +-0.0159772725063294 +-0.0159772719458489 +-0.0159772725059708 +-0.0159772724099389 +-0.0159772937770261 +-0.0159772725809306 +-0.0160079110118826 +-0.0159772726205264 +-0.0159773500073768 +-0.0159772730978022 +-0.0159772733809701 +-0.0159772719320502 +-0.0159772726250642 +-0.0159772754872563 +-0.0159772726089665 +-0.0159772717739808 +-0.0159772719492516 +-0.0159772723314483 +-0.0159772719338775 +-0.0159772753483895 +-0.0159737342587151 +-0.0159772730519521 +-0.0159772792445292 +-0.0159772755327275 +-0.0159772726158666 +-0.0155848270901352 +-0.0159772717853122 +-0.0159772717697353 +-0.0159772722095817 +-0.0159772745435020 +-0.0159772717732737 +-0.0159772729999871 +-0.0159772745555760 +-0.0159772725769263 +-0.0159772726720318 +-0.0159772717527663 +-0.0160335042100332 +-0.0159772718297107 +-0.0159772717623144 +-0.0159772747079109 +-0.0159772839785922 +-0.0156376244742880 +-0.0159772869683057 +-0.0159772717899595 +-0.0159772718316949 +-0.0159772717430186 +-0.0159772721494021 +-0.0159772725279582 +-0.0162189484347962 +-0.0159772726207717 +-0.0159773945506389 +-0.0159772717746365 +-0.0159772718115566 +-0.0159772753344561 +-0.0159772726265214 +-0.0159772745560537 +-0.0159772720739256 +-0.0159772901687563 +-0.0159772742958425 +-0.0159772726042756 +-0.0159772752609568 +-0.0159772726282727 +-0.0159772757695847 +0.0000008907034567 +0.0000008907036787 +0.0000008907037172 +0.0000008907036787 +0.0000008907036853 +0.0000008907022151 +0.0000008907036736 +0.0000008885800597 +0.0000008907036708 +0.0000008906983460 +0.0000008907036380 +0.0000008907036185 +0.0000008907037182 +0.0000008907036705 +0.0000008907034736 +0.0000008907036716 +0.0000008907037291 +0.0000008907037170 +0.0000008907036907 +0.0000008907037181 +0.0000008907034831 +0.0000008909469312 +0.0000008907036411 +0.0000008907032150 +0.0000008907034704 +0.0000008907036711 +0.0000009153708297 +0.0000008907037283 +0.0000008907037294 +0.0000008907036991 +0.0000008907035385 +0.0000008907037291 +0.0000008907036447 +0.0000008907035377 +0.0000008907036738 +0.0000008907036673 +0.0000008907037305 +0.0000008867820107 +0.0000008907037252 +0.0000008907037299 +0.0000008907035272 +0.0000008907028893 +0.0000009123161218 +0.0000008907026836 +0.0000008907037280 +0.0000008907037251 +0.0000008907037312 +0.0000008907037032 +0.0000008907036772 +0.0000008730371644 +0.0000008907036708 +0.0000008906952809 +0.0000008907037290 +0.0000008907037265 +0.0000008907034841 +0.0000008907036704 +0.0000008907035376 +0.0000008907037084 +0.0000008907024634 +0.0000008907035556 +0.0000008907036719 +0.0000008907034891 +0.0000008907036703 +0.0000008907034541 +-0.0159653945821168 +-0.0159653913580922 +-0.0159653907980284 +-0.0159653913577338 +-0.0159653912617733 +-0.0159654126129733 +-0.0159653914326379 +-0.0159960070828515 +-0.0159653914722042 +-0.0159654688015149 +-0.0159653919491252 +-0.0159653922320825 +-0.0159653907842400 +-0.0159653914767387 +-0.0159653943368026 +-0.0159653914606530 +-0.0159653906262881 +-0.0159653908014286 +-0.0159653911833411 +-0.0159653907860660 +-0.0159653941980392 +-0.0159618557412895 +-0.0159653919033092 +-0.0159653980912819 +-0.0159653943822401 +-0.0159653914675479 +-0.0155732377405979 +-0.0159653906376111 +-0.0159653906220458 +-0.0159653910615651 +-0.0159653933937501 +-0.0159653906255815 +-0.0159653918513829 +-0.0159653934058151 +-0.0159653914286366 +-0.0159653915236713 +-0.0159653906050893 +-0.0160215812515875 +-0.0159653906819765 +-0.0159653906146304 +-0.0159653935580368 +-0.0159654028218249 +-0.0156259958676089 +-0.0159654058093155 +-0.0159653906422549 +-0.0159653906839592 +-0.0159653905953489 +-0.0159653910014303 +-0.0159653913797048 +-0.0162068875927879 +-0.0159653914724494 +-0.0159655133116574 +-0.0159653906269433 +-0.0159653906638360 +-0.0159653941841161 +-0.0159653914781948 +-0.0159653934062925 +-0.0159653909260099 +-0.0159654090073865 +-0.0159653931462747 +-0.0159653914559656 +-0.0159653941106714 +-0.0159653914799448 +-0.0159653946189211 +-0.0154539289514870 +-0.0154539258307341 +-0.0154539252886102 +-0.0154539258303872 +-0.0154539257375005 +-0.0154539464047810 +-0.0154539259028920 +-0.0154835608762403 +-0.0154539259411909 +-0.0154540007934970 +-0.0154539264028352 +-0.0154539266767289 +-0.0154539252752635 +-0.0154539259455801 +-0.0154539287140307 +-0.0154539259300096 +-0.0154539251223710 +-0.0154539252919015 +-0.0154539256615806 +-0.0154539252770309 +-0.0154539285797121 +-0.0154505034664519 +-0.0154539263584868 +-0.0154539323482469 +-0.0154539287580128 +-0.0154539259366837 +-0.0150743337124401 +-0.0154539251333313 +-0.0154539251182646 +-0.0154539255437053 +-0.0154539278011860 +-0.0154539251216871 +-0.0154539263082237 +-0.0154539278128645 +-0.0154539258990188 +-0.0154539259910094 +-0.0154539251018513 +-0.0155083158570190 +-0.0154539251762757 +-0.0154539251110868 +-0.0154539279602102 +-0.0154539369272617 +-0.0151254018780288 +-0.0154539398190573 +-0.0154539251378264 +-0.0154539251781949 +-0.0154539250924229 +-0.0154539254854967 +-0.0154539258516544 +-0.0156876865160981 +-0.0154539259414282 +-0.0154540438778952 +-0.0154539251230053 +-0.0154539251587162 +-0.0154539285662350 +-0.0154539259469896 +-0.0154539278133266 +-0.0154539254124922 +-0.0154539429146880 +-0.0154539275616377 +-0.0154539259254724 +-0.0154539284951430 +-0.0154539259486835 +-0.0154539289871125 +-0.0159588749632761 +-0.0159588717405707 +-0.0159588711807360 +-0.0159588717402124 +-0.0159588716442912 +-0.0159588929867556 +-0.0159588718150859 +-0.0159894749392356 +-0.0159588718546360 +-0.0159589491523084 +-0.0159588723313618 +-0.0159588726142034 +-0.0159588711669532 +-0.0159588718591686 +-0.0159588747180624 +-0.0159588718430895 +-0.0159588710090659 +-0.0159588711841348 +-0.0159588715658911 +-0.0159588711687784 +-0.0159588745793557 +-0.0159553375703151 +-0.0159588722855646 +-0.0159588784710055 +-0.0159588747634812 +-0.0159588718499816 +-0.0155668785527200 +-0.0159588710203843 +-0.0159588710048254 +-0.0159588714441649 +-0.0159588737753957 +-0.0159588710083597 +-0.0159588722336595 +-0.0159588737874557 +-0.0159588718110862 +-0.0159588719060820 +-0.0159588709878759 +-0.0160150386444254 +-0.0159588710647316 +-0.0159588709974130 +-0.0159588739396151 +-0.0159588831996131 +-0.0156196150980793 +-0.0159588861858814 +-0.0159588710250263 +-0.0159588710667135 +-0.0159588709781394 +-0.0159588713840547 +-0.0159588717621745 +-0.0162002691639767 +-0.0159588718548810 +-0.0159589936442403 +-0.0159588710097209 +-0.0159588710465985 +-0.0159588745654383 +-0.0159588718606241 +-0.0159588737879329 +-0.0159588713086651 +-0.0159588893826440 +-0.0159588735280215 +-0.0159588718384040 +-0.0159588744920237 +-0.0159588718623734 +-0.0159588750000654 +-0.0157761116148746 +-0.0157761084291002 +-0.0157761078756810 +-0.0157761084287460 +-0.0157761083339240 +-0.0157761294318114 +-0.0157761085027615 +-0.0158063609250820 +-0.0157761085418583 +-0.0157761849537270 +-0.0157761090131211 +-0.0157761092927214 +-0.0157761078620562 +-0.0157761085463390 +-0.0157761113724709 +-0.0157761085304441 +-0.0157761077059782 +-0.0157761078790408 +-0.0157761082564224 +-0.0157761078638605 +-0.0157761112353537 +-0.0157726147591642 +-0.0157761089678486 +-0.0157761150824066 +-0.0157761114173692 +-0.0157761085372572 +-0.0153886072030565 +-0.0157761077171669 +-0.0157761077017862 +-0.0157761081360911 +-0.0157761104406068 +-0.0157761077052801 +-0.0157761089165384 +-0.0157761104525287 +-0.0157761084988076 +-0.0157761085927148 +-0.0157761076850310 +-0.0158316316770906 +-0.0157761077610060 +-0.0157761076944589 +-0.0157761106029444 +-0.0157761197568261 +-0.0154407394411587 +-0.0157761227088728 +-0.0157761077217556 +-0.0157761077629652 +-0.0157761076754061 +-0.0157761080766697 +-0.0157761084504564 +-0.0160147394616579 +-0.0157761085421006 +-0.0157762289357971 +-0.0157761077066257 +-0.0157761077430806 +-0.0157761112215958 +-0.0157761085477779 +-0.0157761104530004 +-0.0157761080021441 +-0.0157761258690016 +-0.0157761101960675 +-0.0157761085258124 +-0.0157761111490225 +-0.0157761085495071 +-0.0157761116512423 +-0.0159693598203275 +-0.0159693565955104 +-0.0159693560353089 +-0.0159693565951519 +-0.0159693564991679 +-0.0159693778556166 +-0.0159693566700745 +-0.0159999798462533 +-0.0159693567096505 +-0.0159694340579711 +-0.0159693571866887 +-0.0159693574697156 +-0.0159693560215171 +-0.0159693567141861 +-0.0159693595749531 +-0.0159693566980964 +-0.0159693558635264 +-0.0159693560387099 +-0.0159693564207164 +-0.0159693560233435 +-0.0159693594361555 +-0.0159658201095388 +-0.0159693571408614 +-0.0159693633303553 +-0.0159693596204017 +-0.0159693567049930 +-0.0155771065268215 +-0.0159693558748522 +-0.0159693558592830 +-0.0159693562989104 +-0.0159693586316687 +-0.0159693558628197 +-0.0159693570889223 +-0.0159693586437367 +-0.0159693566660721 +-0.0159693567611302 +-0.0159693558423224 +-0.0160255603011620 +-0.0159693559192285 +-0.0159693558518659 +-0.0159693587959958 +-0.0159693680620613 +-0.0156298776352145 +-0.0159693710502863 +-0.0159693558794972 +-0.0159693559212117 +-0.0159693558325796 +-0.0159693562387608 +-0.0159693566171284 +-0.0162109121763776 +-0.0159693567098957 +-0.0159694785790556 +-0.0159693558641818 +-0.0159693559010835 +-0.0159693594222290 +-0.0159693567156426 +-0.0159693586442142 +-0.0159693561633219 +-0.0159693742491434 +-0.0159693583841325 +-0.0159693566934079 +-0.0159693593487663 +-0.0159693567173930 +-0.0159693598571409 +-0.0159745640059234 +-0.0159745607800477 +-0.0159745602196624 +-0.0159745607796891 +-0.0159745606836736 +-0.0159745820471327 +-0.0159745608546362 +-0.0160051940832999 +-0.0159745608942253 +-0.0159746382679358 +-0.0159745613714201 +-0.0159745616545399 +-0.0159745602058660 +-0.0159745608987623 +-0.0159745637604684 +-0.0159745608826674 +-0.0159745600478234 +-0.0159745602230645 +-0.0159745606051963 +-0.0159745602076930 +-0.0159745636216253 +-0.0159710231332131 +-0.0159745613255778 +-0.0159745675171033 +-0.0159745638059320 +-0.0159745608895663 +-0.0155821819981187 +-0.0159745600591529 +-0.0159745600435787 +-0.0159745604833504 +-0.0159745628168744 +-0.0159745600471165 +-0.0159745612736216 +-0.0159745628289463 +-0.0159745608506326 +-0.0159745609457219 +-0.0159745600266125 +-0.0160307829358094 +-0.0159745601035439 +-0.0159745600361591 +-0.0159745629812554 +-0.0159745722503625 +-0.0156349704178273 +-0.0159745752395684 +-0.0159745600637994 +-0.0159745601055277 +-0.0159745600168665 +-0.0159745604231810 +-0.0159745608016728 +-0.0162161956723378 +-0.0159745608944706 +-0.0159746828036345 +-0.0159745600484790 +-0.0159745600853929 +-0.0159745636076942 +-0.0159745609002193 +-0.0159745628294240 +-0.0159745603477173 +-0.0159745784394756 +-0.0159745625692569 +-0.0159745608779773 +-0.0159745635342074 +-0.0159745609019703 +-0.0159745640427489 +-0.0159760580080058 +-0.0159760547818283 +-0.0159760542213905 +-0.0159760547814697 +-0.0159760546854451 +-0.0159760760509029 +-0.0159760548564238 +-0.0160066909509024 +-0.0159760548960165 +-0.0159761322769655 +-0.0159760553732560 +-0.0159760556564023 +-0.0159760542075929 +-0.0159760549005540 +-0.0159760577625278 +-0.0159760548844576 +-0.0159760540495355 +-0.0159760542247930 +-0.0159760546069606 +-0.0159760542094201 +-0.0159760576236717 +-0.0159725168040385 +-0.0159760553274094 +-0.0159760615195142 +-0.0159760578079956 +-0.0159760548913571 +-0.0155836392924608 +-0.0159760540608661 +-0.0159760540452904 +-0.0159760544851032 +-0.0159760568188456 +-0.0159760540488285 +-0.0159760552754484 +-0.0159760568309186 +-0.0159760548524198 +-0.0159760549475180 +-0.0159760540283226 +-0.0160322821973184 +-0.0159760541052612 +-0.0159760540378701 +-0.0159760569832419 +-0.0159760662532162 +-0.0156364326505207 +-0.0159760692427017 +-0.0159760540655130 +-0.0159760541072452 +-0.0159760540185757 +-0.0159760544249282 +-0.0159760548034554 +-0.0162177122798737 +-0.0159760548962619 +-0.0159761768168307 +-0.0159760540501912 +-0.0159760540871085 +-0.0159760576097393 +-0.0159760549020111 +-0.0159760568313963 +-0.0159760543494575 +-0.0159760724429083 +-0.0159760565712049 +-0.0159760548797671 +-0.0159760575362456 +-0.0159760549037623 +-0.0159760580448347 +%% +-0.0223352195595191 +-0.0189255130441532 +0.1215125954702671 +-0.0223352207405905 +-0.0189255140448308 +0.1215126018954801 +-0.0223352209457610 +-0.0189255142186641 +0.1215126030116396 +-0.0223352207407218 +-0.0189255140449421 +0.1215126018961944 +-0.0223352207758754 +-0.0189255140747264 +0.1215126020874354 +-0.0223352129541597 +-0.0189255074476792 +0.1215125595360812 +-0.0223352207132819 +-0.0189255140216932 +0.1215126017469168 +-0.0223239200832957 +-0.0189159394155230 +0.1214511245398641 +-0.0223352206987874 +-0.0189255140094126 +0.1215126016680645 +-0.0223351923698759 +-0.0189254900073851 +0.1215124475543635 +-0.0223352205240749 +-0.0189255138613852 +0.1215126007176012 +-0.0223352204204179 +-0.0189255137735605 +0.1215126001536910 +-0.0223352209508122 +-0.0189255142229438 +0.1215126030391188 +-0.0223352206971262 +-0.0189255140080052 +0.1215126016590277 +-0.0223352196493862 +-0.0189255131202942 +0.1215125959591582 +-0.0223352207030190 +-0.0189255140129979 +0.1215126016910851 +-0.0223352210086753 +-0.0189255142719691 +0.1215126033539035 +-0.0223352209445154 +-0.0189255142176088 +0.1215126030048634 +-0.0223352208046078 +-0.0189255140990703 +0.1215126022437441 +-0.0223352209501433 +-0.0189255142223771 +0.1215126030354798 +-0.0223352197002200 +-0.0189255131633639 +0.1215125962357024 +-0.0223365148349868 +-0.0189266104825608 +0.1215196419708059 +-0.0223352205408588 +-0.0189255138756057 +0.1215126008089086 +-0.0223352182739887 +-0.0189255119549714 +0.1215125884767812 +-0.0223352196327409 +-0.0189255131061913 +0.1215125958686051 +-0.0223352207004931 +-0.0189255140108578 +0.1215126016773442 +-0.0224660714834908 +-0.0190363781275911 +0.1222244476040273 +-0.0223352210045273 +-0.0189255142684547 +0.1215126033313377 +-0.0223352210102294 +-0.0189255142732858 +0.1215126033623580 +-0.0223352208492185 +-0.0189255141368673 +0.1215126024864334 +-0.0223352199948590 +-0.0189255134130004 +0.1215125978385843 +-0.0223352210089342 +-0.0189255142721884 +0.1215126033553115 +-0.0223352205598812 +-0.0189255138917226 +0.1215126009123935 +-0.0223352199904392 +-0.0189255134092557 +0.1215125978145398 +-0.0223352207147477 +-0.0189255140229352 +0.1215126017548911 +-0.0223352206799332 +-0.0189255139934382 +0.1215126015654949 +-0.0223352210164412 +-0.0189255142785488 +0.1215126033961508 +-0.0223143476047288 +-0.0189078290006959 +0.1213990487246676 +-0.0223352209882748 +-0.0189255142546844 +0.1215126032429211 +-0.0223352210129459 +-0.0189255142755874 +0.1215126033771362 +-0.0223352199346751 +-0.0189255133620089 +0.1215125975111745 +-0.0223352165410212 +-0.0189255104866928 +0.1215125790491674 +-0.0224499097263093 +-0.0190226851018155 +0.1221365258504805 +-0.0223352154465942 +-0.0189255095594257 +0.1215125730953138 +-0.0223352210028261 +-0.0189255142670133 +0.1215126033220829 +-0.0223352209875484 +-0.0189255142540691 +0.1215126032389698 +-0.0223352210200094 +-0.0189255142815720 +0.1215126034155625 +-0.0223352208712480 +-0.0189255141555320 +0.1215126026062770 +-0.0223352207326730 +-0.0189255140381227 +0.1215126018524079 +-0.0222410429919522 +-0.0188457204477017 +0.1210002592384944 +-0.0223352206986976 +-0.0189255140093365 +0.1215126016675759 +-0.0223351760634897 +-0.0189254761915937 +0.1215123588450769 +-0.0223352210084353 +-0.0189255142717657 +0.1215126033525976 +-0.0223352209949203 +-0.0189255142603149 +0.1215126032790737 +-0.0223352197053206 +-0.0189255131676853 +0.1215125962634500 +-0.0223352206965928 +-0.0189255140075532 +0.1215126016561257 +-0.0223352199902643 +-0.0189255134091075 +0.1215125978135884 +-0.0223352208988770 +-0.0189255141789411 +0.1215126027565834 +-0.0223352142750222 +-0.0189255085667965 +0.1215125667217790 +-0.0223352200855178 +-0.0189255134898122 +0.1215125983317823 +-0.0223352207047361 +-0.0189255140144528 +0.1215126017004267 +-0.0223352197322259 +-0.0189255131904812 +0.1215125964098191 +-0.0223352206959517 +-0.0189255140070101 +0.1215126016526381 +-0.0223352195460364 +-0.0189255130327298 +0.1215125953969190 +%% +0.0000002860515429 +0.0000001336923965 +0.0000000086825011 +0.0000000031474389 +0.0000000035227788 +0.0001253960836368 +0.0000262543699298 +0.0001036484182358 +0.0000907387047426 +0.0001413510538386 +0.0000011456969965 +0.0000010956060781 +0.0000004156118037 +0.0000001589596450 +0.0000000420240903 +0.0000000024325447 +0.0000017463208003 +-0.0000000063149758 +0.0000110024640267 +0.0000277988468344 +0.0012237898106768 +0.0000387151851673 +0.0000185810900032 +0.0000003594970814 +0.0000013889375324 +0.0000001017729949 +0.0000000532367727 +0.0000000195062862 +0.0000000018605114 +0.0000000019438707 +-0.0000000011477865 +0.0000712910851704 +0.0010163792685161 +0.0000471245446582 +0.0000104643762336 +0.0000112266862765 +0.0000044064970721 +0.0000043316804395 +0.0000000771244344 +0.0000000580161255 +0.0000000992841434 +0.0000000174619020 +0.0000000059206197 +-0.0000000098213873 +0.0000337237896365 +0.0033002772275274 +0.0000029991124506 +0.0000124144984307 +0.0000016792804727 +0.0000042568583938 +0.0000012227028352 +0.0000000358335915 +0.0000001322583757 +-0.0000000126041656 +0.0000000067318724 +0.0000000062299183 +0.9999932153359626 +0.0000057036923494 +0.0002671154604164 +0.0000087723167142 +0.0000909511293817 +0.0000037292412118 +0.0000013034513990 +0.0000005887752391 +%% +-0.1250485269999813 +-0.1250485017387021 +-0.1250484973504203 +-0.1250485017358938 +-0.1250485009840124 +-0.1250486682775984 +-0.1250485023227919 +-0.1252883862387800 +-0.1250485026328068 +-0.1250491085330709 +-0.1250485063696373 +-0.1250485085867000 +-0.1250484972423835 +-0.1250485026683358 +-0.1250485250778653 +-0.1250485025422989 +-0.1250484960047790 +-0.1250484973770616 +-0.1250485003694706 +-0.1250484972566906 +-0.1250485239906086 +-0.1250207990375155 +-0.1250485060106542 +-0.1250485544954296 +-0.1250485254338826 +-0.1250485025963228 +-0.1219759042419306 +-0.1250484960934984 +-0.1250484959715390 +-0.1250484994153161 +-0.1250485176887426 +-0.1250484959992431 +-0.1250485056037944 +-0.1250485177832757 +-0.1250485022914402 +-0.1250485030360682 +-0.1250484958386799 +-0.1254887690039716 +-0.1250484964411162 +-0.1250484959134374 +-0.1250485189759819 +-0.1250485915607708 +-0.1223892680712233 +-0.1250486149687297 +-0.1250484961298845 +-0.1250484964566514 +-0.1250484957623608 +-0.1250484989441400 +-0.1250485019080441 +-0.1269407269019648 +-0.1250485026347276 +-0.1250494572844961 +-0.1250484960099129 +-0.1250484962989789 +-0.1250485238815167 +-0.1250485026797450 +-0.1250485177870162 +-0.1250484983531969 +-0.1250486400266543 +-0.1250485157496926 +-0.1250485025055717 +-0.1250485233060540 +-0.1250485026934568 +-0.1250485272883554 +%% +-0.1786819872446880 +-0.1514298249324479 +0.9721840132172598 \ No newline at end of file diff --git a/examples/machsuite/backprop/input.data b/examples/machsuite/backprop/input.data new file mode 100644 index 0000000000..e0123e5f43 --- /dev/null +++ b/examples/machsuite/backprop/input.data @@ -0,0 +1,7867 @@ +%% +0.3483178396146527 +0.1706497803768818 +0.4316474009271629 +0.3259915659051159 +-0.4250858900760253 +0.1127769850532617 +-0.1756873904913663 +-0.0957567506653483 +-0.0110783105822432 +-0.4436935459657658 +-0.2996779986780636 +-0.0493190014049893 +-0.2534792054845217 +0.1728182306226016 +0.0009444841545747 +-0.2906112299289981 +-0.1166124325185209 +-0.2370950369193756 +0.3638473264891788 +-0.4931096431125856 +-0.0729676169138384 +0.1741981263711310 +-0.4736316792252979 +0.3026358879744457 +-0.3201874722559137 +0.1615563839200532 +0.0388504032397917 +-0.2988512410509067 +0.4782153590525915 +-0.2033886694374952 +0.3309093043465101 +0.0350148999623799 +0.3577368190902865 +0.2123884593841227 +0.4543748287741737 +0.3801106496231675 +0.3490474371089849 +-0.3942400237234462 +-0.1305878520197631 +0.2736908773165471 +-0.1647558952335791 +-0.3849137937337497 +0.2552438928694989 +-0.1560521868008589 +-0.2182912605981933 +-0.2837023460481002 +-0.0147639997138909 +-0.4942359501582613 +0.2268004045533238 +0.0205619338920122 +0.1343918397825450 +-0.3162411164131054 +-0.2895920511643746 +-0.3927951866592362 +-0.4604052942997366 +0.4330220583897403 +-0.4599790021838766 +-0.4218122443696336 +-0.2023241662994112 +0.1604415374454923 +0.4521082225628823 +-0.4944456743058304 +-0.3133126302725496 +-0.2886786467450638 +0.2358651200871347 +-0.0833628955831775 +-0.3638902563584553 +-0.2510873682778300 +0.4090931683964897 +0.3804237290693118 +-0.0395207703411175 +0.4114630717835008 +0.0769636562652027 +-0.2877802814971613 +0.3616704275858206 +-0.3127503952945747 +0.3767687582692533 +-0.4716506428643454 +-0.4720330596816746 +-0.4988260230282281 +0.3816612565392817 +-0.2412548769633587 +-0.3133804407583247 +0.1134283988672150 +0.2633503369248252 +0.2960136720771441 +-0.2849253058048737 +-0.0582787256482433 +-0.3660358699691801 +-0.1461809634767224 +0.2161428864829403 +-0.0179172575798043 +-0.3634978533276221 +0.2270079301991990 +0.0001932391978972 +0.0540293780631791 +0.3470236345937937 +0.1844720529281880 +-0.0529377750459163 +0.2395825773469121 +0.2140811894103265 +-0.3310132127070771 +-0.4872347824539688 +0.2390011771948182 +-0.1123333872790593 +-0.1110445339856662 +0.4958895038034786 +-0.4841256184695004 +-0.4073541274428264 +-0.2205438687703470 +0.4676672240567189 +0.0488249778351199 +-0.1263637161327006 +0.4939879360511114 +-0.4511177050569862 +-0.1734078231838102 +-0.0923634331518932 +0.2380059200028429 +-0.0396819093157483 +-0.2313340153970950 +-0.2126833236098514 +-0.4859698132486294 +-0.0634415727534071 +-0.4654923693716655 +0.0850196896009423 +0.2098586658566393 +0.4590813817633715 +0.3804033136216555 +0.4980595552286854 +-0.3688748177606722 +0.1068136140773602 +-0.3261730297988851 +0.2043815368917442 +0.4467849911595574 +-0.3025484033325654 +-0.4364834494473191 +0.1575472564589070 +0.3045666146925562 +0.4454611044982865 +0.0500252055448300 +0.0747363779881197 +-0.2039149871541449 +-0.2805080216377352 +-0.1208320642388377 +0.0763745454924379 +-0.1681320594813393 +0.2153851752905834 +-0.3616629728333928 +0.3911010718686341 +0.4622471231685127 +0.0206280483477259 +-0.4991790764182467 +-0.3498779321350975 +-0.2141017413002280 +-0.1187698186266340 +0.4627033012525220 +-0.4536751690391235 +0.0536461903980735 +-0.0745096219355385 +-0.4796081504707792 +-0.0026505804498236 +-0.2326479307838658 +-0.0718645269558240 +-0.1412707761147158 +-0.3857084871564056 +-0.4906065234502298 +-0.4195354592551352 +-0.4715260005538310 +-0.0626484439185320 +0.0054042027492341 +-0.2417731084345569 +0.3181935096212357 +0.2683934478079263 +0.0459306504169178 +-0.4233101118908806 +0.4984011518683296 +0.3463122892926332 +-0.0211075065001768 +-0.3892833278728403 +0.4047358057561707 +0.0840612962298976 +0.1958031753814037 +0.3557126220464411 +-0.4173286655349843 +-0.0161998322631577 +-0.2550924807967374 +-0.4378983659674207 +-0.0667580447286460 +-0.3689764259434322 +0.2481090411770011 +-0.1223881112061108 +-0.1662563789637592 +-0.1469539187727416 +-0.3711888520628850 +-0.0850783325879982 +-0.3606574890634132 +-0.2935540877202770 +-0.1305640981914484 +0.3343916891700796 +-0.2838113722389391 +-0.4067224935148778 +-0.4131710459376970 +-0.2268829807740080 +-0.2190339086777073 +-0.1643771282542945 +0.1834390896658262 +-0.1732036709982290 +0.1599492802927122 +-0.4564318595081348 +-0.4296423714468526 +0.2228303690021292 +0.3851721422324230 +-0.2892092039442250 +-0.4215840983779657 +0.4615694238266003 +0.1775815611931443 +0.4326414560282523 +0.3723857873635551 +0.4394618799882867 +-0.1557612571170512 +-0.3235222623452370 +0.2488398469947676 +-0.1267211787262273 +0.1865869483303326 +-0.0999264077294221 +0.0721400649461029 +-0.3879690630096511 +0.0113942038836549 +-0.4488899756809432 +0.2175259320021290 +0.3575182783261570 +0.0784878853002242 +-0.3650345281090092 +-0.3807074035848537 +0.4723092959416103 +-0.1271735488546777 +0.3067179481103881 +-0.1675519720790701 +-0.0342546247924635 +0.2348138089866270 +0.3214647023258758 +0.4113418227917187 +0.1642716262994925 +-0.4866441267738971 +-0.2075041819978040 +-0.4555665620304329 +0.4396144243758447 +0.2655890089284283 +0.1692048055281263 +0.3380837128929514 +-0.0445429505963802 +0.1909078386850797 +-0.4845982697862139 +0.3479124776327206 +0.4462209557130911 +0.2677202200246880 +0.4279331770197743 +0.0153327254961750 +0.3926116198429296 +0.3930457828966226 +0.4844385803033128 +0.1018790515210961 +0.3235301034352464 +-0.4334279597090318 +-0.3828337480793631 +0.0962448507692394 +0.4738432213333370 +-0.1607409095875120 +-0.3297198030533876 +-0.3887142750684691 +0.4700813330218533 +0.0367884989765819 +-0.1568677459888738 +0.4916240181373843 +-0.1478191929796749 +0.3331481345246642 +0.1456496860574097 +-0.2005338521492583 +-0.4921667901511427 +0.3627726556183214 +-0.2219278768811533 +0.1182353827040976 +0.4308493287741327 +0.1149876265111006 +-0.1608972324213513 +-0.1468206346908512 +0.1387221774977941 +0.0143005186400568 +-0.3612331974922356 +0.0926468898446244 +-0.1806620180651851 +-0.1350975174641287 +-0.2061152239101472 +0.0343363005946771 +-0.1239536825112321 +0.0725036130122593 +-0.3457446566948479 +-0.1825924281810625 +0.1639159037834084 +-0.1248201730568153 +-0.1435063821976743 +0.1578860801973966 +-0.0121865425308288 +0.4332728824329765 +-0.4654572324560072 +-0.3853554479501864 +0.0848943772682992 +-0.3337760289276275 +-0.4306218351332900 +0.3694019864172604 +-0.2808635067980068 +0.2499672365062569 +-0.2238887584326801 +0.2271363734624335 +-0.2559714756241751 +0.4430020624479579 +-0.3559749307222960 +-0.0867175577329177 +0.2614656056422392 +-0.0162636381774767 +0.4809620066037130 +-0.0328290728456520 +0.4348033021342805 +-0.0462785360879371 +0.2552137859210596 +0.2954668379373012 +0.1065311722051752 +-0.2561345002400937 +0.0503350398133949 +-0.0580539237193625 +0.1275061460415338 +0.1777206266673230 +-0.4888527662390532 +0.4957734162654772 +-0.3753687111790384 +-0.2519199156624293 +-0.0768538548420890 +-0.3719596029587999 +0.1484414922888584 +-0.1355331136662321 +-0.2662077818093960 +0.4616873414436868 +0.1779685516426726 +-0.3131291250685143 +0.3782741573686651 +0.1930411666732398 +0.1177010100415349 +0.0780037143603487 +-0.2060145553049437 +0.0608423882500977 +0.3761871775505162 +0.1441989655644730 +-0.3189928788522666 +0.4713249811202351 +0.3720289503655566 +-0.0705609833713766 +-0.2467188774292551 +0.3969774741365252 +0.1100117892988954 +-0.3039300368507231 +0.4301354739598914 +0.2224530353170772 +0.0191027833281141 +-0.3731910049583889 +-0.3568293055427258 +0.4397683680282519 +-0.3291431202416266 +0.0315018323429732 +0.1242359909565518 +-0.2745113812953391 +0.4782736794109049 +-0.4570858857378175 +0.4891683505866096 +-0.2975282314385369 +-0.4803173919340203 +0.1910933955316909 +-0.2231706647713617 +0.2314732999603543 +-0.4231691138708310 +-0.3448906126280958 +0.1270659160444320 +0.1743060895480667 +-0.1852610534577455 +-0.0443459811672999 +0.0336071033488232 +-0.0567563166619426 +-0.4879462003817732 +0.0606860679844500 +0.0307654724048916 +0.1319108687982481 +0.0153605911637142 +-0.4883296930019565 +0.2528566241924224 +-0.2677547591448682 +0.2033589194426896 +-0.1463137667636638 +-0.1790803352935189 +-0.3841677304969567 +-0.0589956804897118 +0.4634522939857088 +-0.4888260135379952 +0.3487323055999937 +-0.2136973220320399 +-0.0646500689373055 +-0.2316899081695245 +0.1302969530620972 +-0.2020172636568747 +-0.3725911434553185 +-0.1278147126574397 +-0.2546989284992839 +-0.3366334314738296 +0.2126333281485220 +0.1533281645944697 +0.0808262573450925 +-0.2156545687146595 +0.0096368273743479 +0.4051319563159713 +-0.0093117130745885 +0.0983082899373767 +0.1495880834323012 +0.0757792223158209 +-0.4766876678257311 +-0.2307096653279399 +-0.4958530189441677 +0.1096013896981760 +0.3805597089399800 +-0.4098974229560589 +-0.2981292885634203 +-0.0365949752574233 +-0.1620685423769300 +0.1204605185689965 +-0.0246252744190811 +0.0112592424386806 +0.1616274253970083 +-0.0062334579670482 +-0.1802682345018164 +-0.0304282964865724 +-0.2125944188906359 +0.4097122918366112 +-0.4301837140954285 +-0.1798358599253799 +0.0185972464080254 +0.4905173479273656 +-0.1287609220333040 +-0.4943629658149382 +-0.4604477401272858 +-0.1078465022415436 +0.3522029796288904 +-0.1653805436920495 +0.1429233013492220 +0.1360433801365077 +-0.3283956865435840 +0.0201155310158935 +-0.4754139221074740 +-0.0637980180507835 +-0.3807320176402167 +-0.1190801378239638 +-0.2748876837484138 +0.0670535082271564 +-0.2721372960593756 +-0.4470546769072676 +0.1021001931781610 +0.1790772399224166 +0.2716493715297760 +-0.2131372391927652 +0.2086536443199765 +0.4392660254042972 +0.1378488996151952 +0.0753465166316099 +0.4778896639349272 +0.1541005362632644 +0.1175561601799165 +-0.2182444159515629 +-0.3561887609035662 +0.1612642174687781 +0.0655215638728978 +0.4423159385445181 +0.3964914023258709 +0.4174747407529212 +-0.0070196813379808 +0.4779240481377166 +-0.1818952015182471 +-0.2013107586779426 +-0.2428237714101003 +-0.3083999235833962 +0.0341139182822019 +0.2468217076566656 +-0.0518929157531087 +0.0936366233299584 +0.2442557099061952 +0.0410113779987784 +-0.4244544962537485 +-0.4251054591709491 +-0.4118263364405886 +-0.1604847039014783 +0.3292182561831798 +0.2470779072815197 +-0.0297098431721208 +-0.1838979798732799 +-0.1827834587037483 +0.2374536219431782 +0.0192743623627130 +-0.2194520827291850 +-0.4360335708684468 +0.2130278376509701 +0.2885729748132124 +0.3459418603364357 +0.3739453984594142 +0.2522291563308318 +-0.2955254017000808 +0.2673406794115867 +0.2544967854617538 +0.4791920811987473 +0.1899486205135590 +-0.3876166317167910 +0.4665559358594927 +0.0471981463946101 +-0.3057388327923435 +-0.4566215003245068 +-0.2928569666604133 +0.2831913287613563 +-0.2348475389393580 +-0.3274035892995367 +0.1428563324162907 +0.3671010177349522 +0.1081367216327236 +0.1393078646525761 +-0.0761041531717987 +-0.1689118157922286 +0.2672532189318672 +0.0352403136965146 +0.4786971502709926 +0.2661294193430825 +-0.4829199747243004 +0.4244074576810648 +0.0413752736159771 +-0.4712057783314763 +-0.0117199906987154 +0.1707214734656840 +0.0664635732064296 +-0.3251378804127907 +-0.0464674331091142 +-0.2726137188341013 +-0.0815955674110387 +-0.2006756657558489 +0.4097756987185860 +-0.3231947536329276 +-0.0233381317450996 +-0.0174770366547908 +0.4760491135221880 +-0.4777848370300005 +0.1888504370810208 +-0.3760486927002152 +0.0485435178768772 +-0.2012386441837110 +0.0561370316148891 +-0.3620857399276918 +-0.4905333596730310 +-0.1559623915924550 +-0.1639380271883155 +-0.0626352303999349 +-0.0395651660572124 +0.3535612938381643 +0.4134297132560247 +-0.3284579103727986 +0.4908922097051105 +-0.0250722712613756 +-0.3748049587968345 +-0.3800929051849321 +0.0663664606143862 +0.3089862728472129 +-0.4054599516059783 +-0.3558548026743467 +-0.0374802506329061 +-0.0707229303580408 +0.3639195447432346 +0.0211270487544926 +-0.4960737200480522 +-0.4988241083599644 +0.1833368379014721 +0.2007083090818177 +0.2422283452747417 +0.0281931199838487 +-0.1632206856001426 +0.2671373984849126 +0.0412184398424924 +0.1021015440913253 +-0.1238765157264030 +0.3912456482822858 +0.3815788022034485 +0.2899403302123719 +0.1074823902030668 +0.1772490738704474 +-0.0222292494748768 +-0.0291143123669266 +0.4635916031584622 +-0.3236015524904109 +-0.2272497698703543 +-0.3536399337188967 +-0.3266546170430762 +-0.4834050314647113 +0.3644986842700396 +0.1068381808285457 +0.4691780174692244 +-0.1775348474848827 +-0.2117371890615509 +0.0148486338006011 +0.1786791865359718 +0.3463707450685359 +0.3478671149035980 +-0.2842142317894001 +-0.0464923055750226 +-0.0824505570444379 +-0.3359901315590229 +-0.1220864111431413 +-0.0926797878198044 +-0.3043695882175977 +0.0009583692983397 +-0.2328855098976569 +0.4463817489661509 +-0.2021075859682978 +-0.4038646077673675 +-0.3208446935868647 +-0.3001776556132351 +-0.3398882076184980 +0.2008862334619737 +-0.0563296739477587 +-0.2118797950763722 +-0.0645100989571497 +-0.1541462938186119 +-0.0136355397020084 +-0.2885485552009600 +-0.4544345000320064 +-0.4351473860747795 +0.4061800810138900 +0.3359259337698395 +0.2274221170832363 +0.2136411968729466 +0.4082424735107425 +0.3839727629895447 +-0.3602813918581743 +-0.0514003390978262 +0.3710584598934502 +-0.0873214681401171 +0.1569208507280179 +-0.3697766863224000 +0.4408021142124381 +0.1566698732369666 +0.3543062414871980 +0.2658415354209089 +0.1782227444037920 +-0.4308525614158961 +0.4034898824859597 +0.0299372100597235 +-0.0504515366432433 +0.3072030763876551 +-0.2777476125105593 +0.2386502398203574 +-0.1862190874447932 +0.3163976724866837 +0.1478283781152648 +0.4099590634362089 +-0.0834917634153718 +-0.3920420684969622 +-0.4639966197754294 +-0.3782661397491274 +-0.3781456618322441 +0.3398682867388026 +0.0108797423897457 +-0.4472120079916480 +0.0180611700108055 +0.3411987867709243 +0.1056074920261487 +0.0329342173929354 +0.3779639279963387 +-0.4480611534306774 +0.4471242759165983 +0.3361373832400553 +-0.4175251541259085 +0.1360358915176915 +0.3674863090505956 +0.2620059555978824 +0.2868870903622686 +0.2335875744925811 +-0.1912875527342539 +0.2068483685535193 +0.0009663253734257 +0.3204346828900280 +-0.3713152543476050 +-0.2593098432900162 +0.3405951440090710 +-0.1880623838183043 +0.3737823046846828 +0.3188672952427822 +0.0714577591226613 +-0.4430130072817536 +-0.1836209842472274 +0.3160735672225893 +0.2294478876193773 +-0.3037998451182470 +0.2828848822471060 +0.1846908215984758 +0.4947426877569866 +-0.4750806146216494 +0.1268310698491563 +0.0050224922572938 +0.4471211534578475 +0.3070765288638290 +-0.2756155779792343 +0.4050568111880135 +0.3573988054285285 +0.0962573669748086 +-0.2063560005559369 +-0.3935890247926935 +0.1987905411296418 +0.3717233586021045 +0.4507698943631454 +0.2111238873247069 +-0.2722615474373775 +0.3958953958961852 +-0.4016803045942222 +-0.4875142658147224 +-0.3841211141132619 +-0.1278128421938630 +-0.1056308741147430 +-0.3381694228076228 +0.1522812929588194 +0.2515039566733900 +0.4323529611324425 +0.2107271696811842 +-0.2494202274321973 +-0.2663187148515335 +0.4463081170472853 +-0.3541843526819543 +0.1972081938469031 +0.4620985323087055 +-0.2782840390090770 +0.3275964656273100 +-0.4841381415242085 +-0.3809232636431132 +0.2992336160031288 +0.4233858731422754 +-0.0083129112590409 +0.0322410813615738 +-0.0796777548425894 +-0.4014459681895960 +-0.0045699835330214 +0.3424411570469573 +-0.0927432818056100 +-0.4333506969348666 +0.4436149636721938 +0.0341925877342263 +-0.3884441233515794 +0.0394414482514946 +-0.2866222455231500 +0.3742698174359415 +-0.0073105270423860 +0.2370734913518688 +-0.2711135740960690 +-0.4358389938188152 +0.4233105307500995 +0.2294092153878285 +0.0522443624207825 +-0.1786724013274328 +0.2804758780629942 +-0.3641062440617989 +0.3577533254670533 +0.0447052195538291 +0.0175537145011389 +-0.3353759948053296 +0.2458849304738195 +-0.3840926554523950 +-0.0299401873612057 +0.0472078151545781 +0.2256984927494721 +0.2913238484821290 +-0.0053538756918966 +-0.2454552432284356 +0.0928752445277561 +0.0902198217476829 +-0.3564057358043053 +0.1180104514739206 +-0.0469371183355498 +-0.2320281843752258 +0.2303585087668238 +0.1567257066434474 +0.1771458036224584 +-0.0231911518287829 +0.4821343857747540 +0.3438998411194075 +-0.4671928878665996 +0.3018278899795357 +-0.3814352739482734 +0.2121966511487732 +0.3226081939044526 +0.4440082058646051 +0.3158652049794541 +-0.1096961750154836 +0.3828048367094834 +0.1657680925264067 +0.1291305933887741 +0.4707962023941167 +-0.4131780346983889 +0.4758816432468408 +-0.2261480660985081 +0.0180344881975328 +0.2144746575303565 +-0.0409698653247559 +-0.0988521623762341 +0.0790243849919570 +0.0007377866913673 +0.4827581127256924 +-0.2711351964433964 +0.2580890772895353 +-0.0381790858994019 +-0.4717346992107175 +-0.0574178227705913 +-0.0257733450186697 +0.3664060965744277 +0.0206714623709152 +0.4349865168431754 +-0.4119637476515009 +0.1358704096466863 +0.4441696695392323 +-0.4991607572010814 +-0.0845055448759695 +-0.3888356934934705 +-0.0145604074528872 +0.0246200509372015 +0.0980708329728217 +-0.3645717471009275 +-0.3485269217182321 +%% +-0.4255090723593751 +0.1003959811473946 +-0.4689488359679755 +-0.0861351386554342 +-0.1238052084181676 +0.0214294374618673 +-0.4782738570506119 +0.0357899328102427 +-0.0050516231208556 +-0.3873395038266786 +-0.4026067705327956 +-0.1021138728280805 +-0.2018688453951114 +-0.3427899037321795 +-0.0916429638334615 +0.4684761870036048 +0.4868219940278903 +-0.2176210284877310 +0.0543595302377633 +0.2350302037352653 +0.3069034553160739 +-0.2773422602343341 +0.2665658438032671 +-0.2853794488024611 +-0.0030700960320754 +0.2368134024381822 +0.3434804973005380 +0.1851977195850656 +0.2665036069247364 +-0.2098005112047476 +-0.1717583672154881 +-0.2515968421265548 +-0.2850573672077777 +0.3406937400471280 +-0.2181781304136906 +0.2330257783888604 +-0.4038128860632997 +0.1786698842197517 +0.0579491260907850 +-0.2891685954243224 +0.0867774049443926 +0.4729048073557747 +-0.4118239986661651 +-0.3691366940780287 +0.4878358065870914 +0.3793668353727628 +-0.3938673144238445 +-0.1150770712095397 +0.2271613020145520 +-0.3059611235794877 +0.0798325617779146 +-0.3317250849777341 +-0.3844940337239898 +0.2803041144613144 +0.1973883104954021 +0.2925818205728924 +0.0049354722387228 +0.1160000615567424 +0.1508972709054981 +0.1645809359455023 +0.4006534219964644 +0.1374354155824379 +0.4605391610546545 +-0.2100743207241344 +-0.3328350549085921 +0.0242963335351867 +-0.3335224302709433 +-0.3215756123366900 +-0.0919231793962709 +-0.2521321696389437 +0.3477853400387060 +0.1137636967201309 +-0.0500344044752766 +-0.3840024759811601 +-0.4744575141790550 +-0.0807942718726190 +0.3505854782984940 +0.1103248712962920 +-0.0363568201574119 +0.1050614699403944 +0.3918284279836336 +0.1385246389661129 +-0.0143315355115351 +0.2328477801951783 +-0.3340141405940164 +-0.3557091719747834 +-0.4761176160934216 +-0.2685438134460073 +0.2994671317638116 +0.1455315357936088 +-0.1248567087175954 +-0.4963776107417993 +-0.1195772615503566 +-0.4109394362242381 +0.3413148607509543 +0.1577781560016939 +0.1506283850297021 +0.0651268147351131 +0.4766834855366925 +0.0703656983239329 +-0.2808737254746189 +0.0241197109565234 +-0.4751077789547709 +-0.4071183805961237 +-0.2768354419617666 +0.0691972941463214 +0.2404604855597532 +0.3203219486093015 +0.4355345620434551 +-0.2039022821760770 +-0.3346210332831707 +-0.0034327122782467 +-0.3940603061692576 +-0.2732046009932630 +-0.4979955250859886 +-0.3383525793938942 +-0.0867861998739187 +-0.2631640774758708 +-0.1687075152204641 +0.3386880802324272 +0.1492165403032210 +-0.0695660252079736 +-0.2554891682825243 +0.3145921244355058 +-0.2828338044524316 +-0.2073910147747918 +-0.4880958645774497 +-0.0412062469733514 +0.3799274836463801 +0.4834880148784035 +-0.3302152804859725 +-0.2908204577749324 +0.3799610104744855 +0.3352278251817872 +0.3029777980474817 +-0.4424512328703730 +0.2691105305599997 +-0.1372673108494503 +0.3614010915991184 +0.1041543996670723 +-0.3650954245303380 +-0.4759282908062925 +-0.3960840524452206 +-0.0432777204858155 +0.3460187964385510 +-0.0812129157112322 +-0.1916997226779459 +0.0690436201072602 +-0.2587999648484113 +-0.1163693454646004 +0.1655076815675369 +0.2612922517768207 +0.2731655682148677 +0.0830063635525695 +-0.1660752773471267 +0.2915574263840475 +0.1582442922969689 +-0.0824740438513034 +0.0215653744435931 +-0.2134990632112336 +-0.1432694034104859 +-0.0060896680130152 +-0.2018937959145522 +-0.2967829595289834 +-0.1166097630771184 +0.3525061025761500 +0.1969715537271688 +0.2470551056895179 +0.1615875892135347 +0.3704712147963954 +-0.2878357548373608 +0.1021654256915009 +0.1571424956786973 +0.1238331380559238 +0.0146580817967552 +-0.2144144438696086 +-0.2257425049145310 +0.1225569675320149 +-0.4466161725654178 +-0.2064444277035670 +-0.1578883216809876 +0.4589648176738705 +-0.0653791976670439 +0.4601991287755726 +0.4428593202287435 +0.0852953296215396 +0.3746535554914753 +0.1340552231766458 +-0.2212961084613924 +0.1093081552867891 +-0.4392370289842559 +0.3201434308862593 +0.3000948050982155 +0.4967785368852289 +0.1696032733350000 +-0.2664534605892918 +-0.3808935427193602 +0.1133704666150794 +-0.2286281046082509 +-0.0095967027659690 +0.4754531978352212 +-0.3513370385466512 +-0.2444981606451092 +0.3344672104592319 +-0.1843187271733366 +0.4135908892417143 +-0.4621244849182822 +0.2375622842785539 +0.4773316421998351 +0.0897558904109929 +-0.0963590423167363 +-0.3901246393316624 +0.0324200478158887 +0.4272881333662260 +-0.2774323764380677 +0.1750529795155394 +0.3308367730086326 +0.3462439715445221 +-0.3455430043745000 +-0.2302178607330306 +-0.4023126548717288 +0.2935084333473916 +-0.3645718379554271 +0.3943474250522346 +-0.0317582389763088 +-0.2523303771979291 +-0.0887886907802015 +-0.1404932028167463 +0.3283636157802693 +0.3828856110778583 +-0.2645514955955298 +0.1013691126210915 +0.0138595908016150 +0.4341383640410316 +0.0212459531899646 +-0.0360603148501825 +-0.0625379101895616 +0.3290389292699053 +-0.2102470293090341 +0.4429304352276578 +0.2560560479391087 +0.3081843415934805 +-0.1555526615304355 +-0.2131257285910379 +-0.2898289716569352 +0.1535422941066777 +-0.3086815123274038 +0.1023122114508395 +-0.4805296645475966 +-0.2776322620696433 +0.3244829999712530 +0.1361442691922778 +0.2004725373098700 +-0.1017562822378076 +0.3548257075248383 +0.0200912939619448 +0.2272569630111225 +0.2748887228869331 +-0.1569737335536837 +-0.3131005664319053 +-0.4456336887906811 +0.3514212268643726 +0.3584713279607648 +-0.1756020934436479 +0.2237250361599911 +-0.0086791758256654 +0.1861199156789359 +-0.4761633123522584 +0.0769331828313227 +-0.3219013369578988 +0.3880877406289909 +0.3175212786729061 +0.1817980021300837 +0.4890372316210527 +0.2181124881078564 +-0.1271210594133028 +0.4474077459051521 +0.1985932887801443 +-0.3330685847437559 +-0.1647643447455322 +0.2977844154557096 +-0.1416416412221208 +0.3776813456744198 +-0.0533779225184460 +-0.1382243189379419 +-0.4926254038853709 +0.4250877956455573 +0.1395481290571057 +0.2853559941128757 +0.0310219901165730 +-0.3926986064627654 +0.2821001015015184 +0.0154524213956178 +-0.2314796261575497 +0.2705336169182980 +-0.3561784705322066 +0.2455632462415369 +0.0978443760279027 +0.1858314418579472 +0.4795823619109548 +-0.3548017951482357 +-0.1862310371935130 +0.4769921914533929 +-0.1785861532401479 +-0.2292558916348896 +0.3115559552087143 +-0.1307622198103772 +-0.2687113641987993 +0.2895927671791430 +0.3212584584657652 +0.1419221159474837 +0.4204949582089900 +0.2595767306201764 +-0.4464865157999142 +0.2091781136952096 +0.4994410687255284 +-0.1643832620743962 +0.1078550477689345 +-0.4037469618613579 +0.2973926779009489 +0.4345988394413669 +0.0062876995415149 +-0.1141510528526780 +0.3106786658315915 +-0.4638492053026932 +-0.4421574010157170 +-0.0143372473160140 +0.0827079546553868 +-0.3107948105374752 +-0.4567962845188361 +-0.0424280795716891 +0.0040317224858045 +-0.2635312312935990 +0.4355691016054981 +-0.1975604855047992 +-0.2653151408385018 +-0.0763020140529326 +0.0349390666455331 +0.0712537893453448 +0.4174472475955017 +-0.4256140161566364 +0.4493137647333125 +0.1992511255983868 +-0.0246594501923323 +-0.2856556596570600 +-0.3896023124545396 +-0.2442272125193450 +0.2558087927388618 +0.1020575222876966 +-0.1429052739677298 +0.4329008633467030 +0.3038972094324570 +-0.0408735050266513 +-0.1420359762027082 +-0.3683579495257514 +0.2760442284305953 +-0.3165881751821467 +-0.1189483846788862 +0.3616452724482049 +-0.3024253659595039 +-0.0065784847304118 +0.3492999204369951 +0.2063222135519909 +0.1765546499587541 +0.3890629485443693 +-0.3334161177753148 +-0.1621599692541564 +-0.3877214871089283 +0.3999166805341422 +-0.2068060752399670 +0.1545776790901677 +0.2919951366782531 +-0.2075639019509861 +-0.4999417595786729 +0.0331525361872268 +0.3365080694915067 +0.3521209023427115 +-0.2796362014414009 +0.0028403366193390 +0.1121296532474468 +-0.3035780271348576 +-0.2367038869086623 +0.4007642452958530 +-0.4832714219986664 +-0.2646854755751173 +0.2681799354590529 +0.3739339865772545 +-0.1421939569139613 +-0.2641819183386234 +-0.2492399591800156 +-0.4946733324772418 +0.0213115453088991 +-0.4754975191523917 +-0.1413107747433475 +-0.0434510865555090 +0.1067751293117634 +-0.2028599398518821 +0.4444632137746499 +-0.1537081361585703 +0.4554219865588455 +-0.1825168707356839 +0.0440689530350660 +-0.3977526589981213 +-0.3090299199749790 +0.1345702753207734 +-0.3906193395232840 +0.2986179739274762 +0.2921633027842446 +-0.4112449912797428 +-0.3549705125080705 +0.0395607076593224 +-0.3528014946390928 +0.0027804701398525 +-0.4159687601710462 +0.4545712661808851 +-0.4845881221550302 +-0.3688353910889700 +-0.0886190165729167 +-0.1183160448066756 +-0.1590816736531951 +-0.4712659463050025 +0.3245251809130726 +0.4741228417106041 +0.1855985912090038 +0.3881115817590194 +-0.2265954031955404 +0.4443051692007695 +0.2470573345824032 +-0.1026702654981710 +0.2955318051569673 +-0.2564844261147170 +-0.4901872445752008 +-0.3347897196595097 +0.1683780880410551 +-0.1756857753810658 +-0.3044774601743537 +0.3630564791046341 +-0.1233802273353323 +0.2427364645761575 +-0.4608952619628449 +0.2628397127536366 +-0.2218512728370456 +-0.2232245841393982 +-0.3635308215092293 +-0.4461076881262581 +-0.2149278497248581 +-0.3126301978793254 +-0.4671026396166628 +-0.0886682200196695 +0.1688384792981219 +-0.3038065754041668 +-0.0818887389728553 +0.4159060981202446 +-0.3041820836807616 +0.3137254244255523 +0.4487291300060424 +-0.0094358182623596 +-0.1922345435757832 +-0.3266450517875994 +0.2734300984283474 +0.0895471919253229 +0.1001396078131837 +-0.4528659498206145 +0.3288257992036374 +0.4186568804660693 +-0.4401553119465749 +-0.2779956424839672 +-0.4958143544299751 +0.3392061621265459 +0.4894728358865287 +-0.0924631376930299 +-0.4735467582287070 +0.3249215210109830 +-0.0195772765064874 +0.4296441921715146 +-0.4790677681657042 +0.2625185210257652 +0.4079223600125221 +0.0646893167247345 +0.4942765238896506 +0.1062559916719461 +0.0695570360172535 +0.2733470603381122 +0.2908262776651667 +-0.1418665792978568 +0.4298491328745901 +-0.2474131403369176 +-0.2791058467669325 +0.3030837979013034 +-0.0820954182111406 +0.4078980508746070 +0.1575322667894352 +-0.4786842382295082 +0.3683361463991330 +0.1198872241946154 +-0.4160725444254833 +0.1982054377522401 +0.0310017743192919 +0.4125352939114136 +0.0588325296668758 +0.3662395645424570 +-0.4209536289509150 +-0.0035698996405750 +0.2141867336772016 +-0.0410545342456773 +-0.0339799662515006 +0.4729557362505116 +0.2912064169318891 +-0.0238312357959553 +0.3692844841966102 +-0.2084005110291311 +0.0698923882269467 +-0.3917293669015471 +-0.3142426127051665 +-0.2323991868282546 +0.0555595117353874 +-0.0489851971769353 +-0.4725586631660704 +-0.0789775526879053 +-0.3521561117230048 +-0.3451023937120519 +-0.0977220439666612 +0.3710345719788597 +0.3310386550646565 +-0.2032790087007529 +-0.3044975830132695 +0.3860973384349545 +0.3105401474647648 +-0.3971346293795207 +-0.1820069987656431 +0.4112527657530287 +-0.4354399081706529 +0.3316115232944399 +-0.2178924778453901 +0.2876503979181846 +0.3126411863275826 +0.0703146078114243 +-0.3041501346775546 +0.2668035869923945 +-0.1582617128966424 +0.4765830388028187 +0.0429096178775660 +-0.4364945075275874 +-0.4415069146321890 +0.0053664034118617 +-0.0681596553754197 +-0.3332022861558708 +-0.1599855283378981 +0.4084464933427940 +0.4163287579962210 +0.2396569990701948 +0.1570576629613014 +0.3901329413650267 +-0.0487281917358803 +-0.3717877922646380 +0.4918900189591481 +-0.0719589311768924 +-0.0874127672341757 +-0.1453269146349982 +-0.1931834711052506 +0.1740117202355542 +-0.1082906090437903 +0.1993058676596479 +-0.1788104936280354 +-0.3991279468686342 +-0.1208860206903545 +-0.3344798257400328 +-0.1879954912767468 +-0.3321392127019693 +-0.3169537755306527 +-0.1501139175759302 +0.0714279559387955 +0.1979183623465720 +-0.2567017969791019 +-0.2027772333040576 +-0.1380775642344329 +-0.3628665760986090 +0.2380736063012061 +-0.0304950213860875 +0.4969313795461562 +0.3856335695096561 +0.0796349622748407 +-0.4578363610997398 +0.2489459668531810 +0.1171453064703414 +0.2253672276173816 +0.3408735929295654 +0.0964103996236462 +-0.4178836215267064 +-0.2603344583684249 +0.1958031307930189 +-0.4206445433509665 +0.1798926151186255 +-0.1933227996703715 +0.1338000423355364 +0.0463786145232832 +-0.0657569139682876 +-0.4631581618467455 +-0.2523986251836135 +0.4528706490181399 +-0.3475273004176209 +0.1710863315232413 +0.3910536354990762 +-0.2497499377997582 +-0.0692880018424428 +-0.0045379360361797 +0.4065538585311617 +-0.2904472866923348 +-0.2197508356458270 +-0.0030691302915014 +0.3519531607780675 +-0.0369656637503438 +-0.3690827478885939 +0.2156447186913564 +0.0223657172611972 +0.4234436793840297 +0.0940340561115732 +-0.3143605141401378 +-0.1528007476397824 +-0.1099063147164728 +0.3553387616652556 +0.1562750780860392 +0.1768882381811585 +0.1782481697309971 +0.0180580908117607 +-0.4088387767859851 +-0.1535808070973409 +-0.3493997289454418 +-0.3465887743470220 +-0.0945755623438165 +-0.4583367412473300 +-0.0848259261218550 +0.3032127017104451 +0.4276398938602863 +-0.0043891600691200 +0.1659787134123577 +-0.0672978241735432 +0.4664801684939164 +-0.1952760005767408 +-0.1884717445545285 +-0.1514026015111198 +0.1794787234586774 +0.1992259055414151 +-0.2960738770707301 +0.4250438169849708 +0.0261577562343004 +0.2898209042260892 +0.3031207979755999 +0.1802180037968130 +0.1089336135656924 +-0.2032868030508413 +0.2589013122320359 +-0.2279651671507480 +-0.1747828779662171 +-0.0001281299628972 +-0.2101681636934892 +0.4163578329533125 +0.2628518731394488 +-0.3155665901876991 +-0.3791994032732934 +-0.4553672086089963 +-0.0773913746799568 +0.3986315754794177 +-0.0357915543816312 +0.4565339328231259 +0.1308854486034864 +0.0917358349016343 +-0.3126990445083965 +-0.1960698566090326 +0.1745428364676211 +0.0032089054635454 +-0.1978356071046575 +-0.4901563076524408 +0.1945713970307663 +-0.2709381474077141 +-0.2877717201389621 +0.4941160211092916 +-0.0890080529653536 +0.3018469588895006 +-0.2207663298626160 +-0.0484267852105372 +0.1547910278041879 +0.3513496134842463 +-0.2959463423760071 +-0.4329816338294687 +0.3670961185862694 +0.1178567164242852 +0.3436951669448575 +-0.0817047427558449 +0.2947723365945589 +0.0383931272117743 +0.2520419119893480 +0.3023733482266281 +0.2868348879649741 +0.0417656241717650 +-0.2417270195502089 +0.3788865026335969 +0.3551167038829224 +0.4290448072784062 +-0.1434878709664368 +0.3280212198734908 +-0.3011698408460673 +0.2615164777749828 +-0.3746438932487531 +-0.1350344295895434 +-0.1727574688655070 +0.4861748858550504 +-0.3461404032456101 +0.4590151332996334 +-0.3966894839883848 +0.2884061132262163 +-0.1256002829487831 +-0.4761827492713307 +0.1153147887679208 +-0.4711942537331983 +0.1675935686067275 +0.2563025130758088 +0.3367262623602036 +0.1327250271593858 +0.1291700812098902 +0.1647564006738251 +-0.4418992518859073 +-0.4596831067676220 +0.0781984136712619 +-0.4148908797616879 +-0.2005995652097239 +0.2131062167973624 +-0.2899552241133224 +0.3266676506818488 +-0.1556660123292346 +0.4699554487883290 +-0.4711500061937274 +0.3566660020465017 +-0.1524977815857696 +-0.3326291909084194 +0.2603928954830640 +-0.0064592643476413 +0.0794945515381902 +-0.2416351833085404 +0.0742942870031563 +-0.3404028529370847 +-0.4119200398832188 +-0.2383781414560103 +-0.3683996489324869 +-0.3434857364107109 +-0.2327448619236049 +-0.1695287117073517 +-0.0840056119804609 +0.4311919539307059 +0.0989595178839436 +-0.3762692836691224 +-0.2920371084116319 +0.3449149809933604 +0.2947277676573256 +-0.1999435991290554 +0.2012523488967064 +-0.3791867730420872 +-0.1868240855829836 +0.3551890471212074 +0.4430180194210784 +-0.4386510314613087 +0.3093026915237201 +0.2006205445868144 +0.2638995751704638 +-0.3259468996567456 +0.4863321525652662 +0.2732481261159894 +-0.0996988224727077 +0.2749930699273819 +0.0293987821876242 +0.4868025567899982 +-0.4300556156011600 +0.2757411308234101 +-0.1865891850786027 +-0.3112558077415336 +0.2679636839503412 +-0.4259983440629705 +-0.2934999163254666 +-0.2118046283410177 +0.0092162007580897 +0.0678458093960356 +-0.1449662705534768 +-0.0711133898482330 +-0.2374262347503782 +-0.4329482101738551 +-0.1417791561311365 +-0.0368809852157354 +0.4962482615397005 +-0.2006642862553110 +0.2136425903233395 +0.4724694844095528 +0.4873002903568326 +-0.2659854327022925 +0.2940620208707384 +-0.2047929761110818 +-0.3080036421645519 +-0.3965851979611493 +0.1051337418560589 +-0.2400306256878894 +-0.2866349310994887 +-0.3016376899252590 +0.4788801647903563 +0.2891247745270171 +-0.0981760080638797 +-0.3634531588792091 +0.4855890087001478 +-0.3295584898384982 +0.3940523377283587 +-0.1204699603454411 +-0.1654648207473312 +0.2872552286992399 +0.4332820447600124 +0.1761356879505004 +0.0065539962732061 +0.0746224709379114 +0.4850765452102191 +-0.2400350677305381 +0.0451311385903999 +-0.0534916036659242 +0.1739192120991860 +-0.3227769885831676 +0.3995240635621277 +0.3958712439541665 +0.0550385370458792 +0.1755852294955170 +-0.1014367130474490 +-0.4575259595783679 +0.4486246686280224 +-0.1525024749533986 +-0.1036175377548729 +-0.2212708889037122 +-0.4076378070846181 +-0.3735689771426314 +0.4129165705540221 +-0.1969566992315818 +-0.2525466588351062 +0.1167934317373043 +-0.4092118503962894 +0.4774138579905517 +0.0333879332631586 +0.2922540390432117 +-0.4175981324710875 +0.4754042035037350 +-0.2558064403470208 +-0.2062701936358803 +0.0602324445708283 +-0.4506386597290676 +-0.2968915499603670 +-0.2868558682319098 +-0.1604154542965113 +0.2118006990276875 +0.3651871658783690 +-0.3073754221949826 +-0.3090047136432903 +-0.4434037650679785 +-0.2204127260357860 +-0.3916304343008095 +0.3312696340084913 +-0.1766346427670981 +0.2787417059599778 +0.1883633369417523 +-0.4550632839256317 +0.3142820788077080 +-0.0307626402584527 +-0.0291404262546423 +-0.3591339564064505 +0.4574256940403741 +-0.0921369003354278 +0.3577722569424684 +0.4620032624635270 +-0.4609570612410916 +-0.2633388870436346 +0.1485406197671680 +0.0014567508919666 +-0.2713884820332363 +-0.4018211885983058 +-0.2494879158628080 +-0.3193676458453973 +-0.0320520343586925 +-0.0099391189745789 +-0.0196039583333424 +-0.2742195203318637 +0.1427271305126666 +0.1635944289309471 +-0.3701132146975377 +0.0115215380743492 +-0.2706188613620836 +-0.0339404399190864 +-0.3054742953392650 +0.0893662854201182 +0.0737600072544007 +-0.2787484284056631 +0.4456753829298495 +-0.4109906550214793 +-0.2085959931270034 +0.4642799094591201 +-0.4148229468146037 +0.0725258426375218 +0.2512162357048413 +-0.2192358091372803 +0.4114283912185644 +0.4622855547195419 +-0.3915060805428096 +0.1132306130320873 +-0.4659202779685317 +-0.3528735145220741 +0.1686522970980507 +0.0576803869075215 +-0.3093846009860949 +0.0224653336349999 +-0.1725220507610166 +-0.0646782297985295 +-0.2483114114963449 +-0.2878396780560339 +-0.4227036712124743 +0.0072724887865836 +0.3935280009426281 +-0.1335390047617512 +0.1201968041430754 +-0.1378976811600937 +0.1029673627910744 +-0.4431524209355144 +-0.2736936345223980 +0.1277682176611352 +-0.4578817121970431 +-0.3195284554103407 +-0.4864307258443977 +0.0440077939177549 +-0.1483692981689299 +0.1382937479031150 +-0.1924152894166841 +-0.3136984697408589 +0.0301877412643056 +-0.0260438792126801 +-0.1389004383534706 +0.4198099739242492 +-0.4067168462490519 +-0.0537741718521305 +0.0333126231650014 +-0.1219698398954562 +0.3783698621094786 +-0.3583132630566097 +-0.0418807451674287 +-0.1793478376858096 +0.1692522865725606 +0.3805001012584773 +-0.1143467090717057 +0.4963772804791737 +0.1141582130483899 +-0.0382143396616139 +0.2281831720947005 +0.1395592546966653 +-0.3051155385030830 +-0.2700563787504387 +-0.0056357723875318 +0.0523120968280731 +-0.4215953667816130 +-0.4609652487116805 +-0.0654577740622312 +0.4754607130246790 +-0.2599845483645021 +0.1098647799232504 +0.3126312836129430 +-0.4988080248809535 +-0.4957929013324795 +-0.2257841183976223 +0.2770597741058617 +-0.4870380495489126 +-0.3698738073903939 +0.2112811891677699 +0.4201150257154005 +0.3748053417175690 +-0.4849892111102490 +0.2771672829000217 +0.3096920536489608 +0.3636747421080946 +-0.0307735954427291 +-0.2991795928850844 +0.1698343981997922 +-0.3329068137156169 +-0.0374625707280042 +0.4930516449781763 +0.4620387146985410 +-0.2704518643344654 +0.3815344945317943 +-0.0380373817569530 +-0.1960024536927036 +-0.2283626413922086 +-0.3367437355326450 +-0.0225565555968907 +0.1693371407177068 +-0.3445435502470268 +-0.4744700312331829 +0.0801407455126777 +0.3262515235259924 +0.4251803686711203 +0.3290796078644540 +0.0870197311906299 +0.0251654865487730 +-0.0573920588111271 +-0.3230737973792854 +0.3193189482072215 +-0.0853470143593533 +0.4469464587102370 +0.1257710753225278 +0.1456911458242299 +0.0385762819453994 +0.1790549569637353 +-0.1532578989046000 +-0.0450302813228192 +-0.3196429461587652 +0.2432000533939859 +-0.4937144509909998 +-0.0012526034437227 +-0.3368554470960478 +-0.4784793408173584 +-0.0047603688451114 +-0.0760087363694773 +-0.3292763432423976 +-0.1201331224525718 +0.4432265054633366 +0.0902707500336405 +0.2188326227851898 +-0.0382773156191029 +-0.1561428872347789 +0.3270521721189605 +0.2995944476081212 +-0.0201499580702042 +-0.3667460019131806 +-0.1468915711019119 +-0.4309572751530362 +-0.0872095111923956 +0.4524527209180689 +-0.1020187688188058 +-0.1311197595046087 +-0.4366251949950471 +-0.0419598540529593 +0.4628699220321748 +0.2170697644292721 +-0.2191235379899427 +-0.3213082666703314 +0.2951747844806449 +-0.1768347471444371 +0.1440324052030922 +-0.4367301792138978 +0.3268915145821329 +-0.2658250856620586 +0.1776694233399565 +-0.0868949616981855 +0.2476721154021942 +-0.2048370134600700 +0.2913956135491885 +-0.2426672312325016 +-0.0561962388436086 +0.0130724364261614 +-0.3105937905933783 +-0.3410372830511527 +0.1742821959559429 +-0.3180725590413640 +-0.4248037680846656 +-0.1394161797285672 +-0.0828253273367456 +0.0440325678864545 +0.3028094818238460 +0.4090988849041570 +0.0741540631774584 +0.4379179733105221 +-0.2880413815183988 +-0.4858935652692800 +0.2002240855906146 +0.3508626122118714 +0.0915092902196697 +0.3167047819570149 +-0.0911149071975534 +-0.2376079878866779 +-0.1108533505160195 +-0.0504819876889767 +-0.0549386314200302 +0.1073459575540703 +0.3605063273274033 +0.3055352308781114 +0.2619769015116673 +-0.4172518243194930 +-0.0890208511881834 +0.1495691246737028 +0.1995209428283368 +0.4557837386834148 +0.2927465224293798 +-0.0260084762624220 +0.3783821906590518 +-0.0771247934734971 +0.2324899106003891 +-0.1135378933398929 +0.4787996433785298 +0.0216681823333275 +-0.2756066288496325 +0.0101372326813385 +-0.1603132927543430 +0.4282979463152260 +0.4706742302917581 +-0.3065598379490672 +-0.0773302440039379 +-0.0592100047057939 +-0.0946143421328034 +0.2970175752643954 +-0.0700151093005041 +-0.2522905671073907 +-0.4804461949057355 +-0.0299092972922549 +-0.0117553941600592 +-0.3819766645025224 +-0.4949664056387490 +0.3422914801798748 +0.1184150514021836 +-0.3468236556284318 +0.2436742538352471 +0.4784896365217246 +0.4760423311005739 +0.1142847292421334 +-0.0190209748074465 +0.2350009968521926 +0.3281110640624487 +-0.3440154644492788 +-0.0706631189214096 +0.1408397957395198 +0.2447513040531746 +0.3871901348808436 +-0.1341592917245787 +0.4853156529299215 +0.4347167863565927 +-0.2956708290041965 +0.0756712042417134 +0.1791988294404089 +0.3907119866888689 +-0.3262541587805049 +0.0040296297570688 +0.0556855949910641 +-0.4568651692197556 +-0.3337760166086617 +0.4924178790289504 +0.4252958993331035 +-0.3617992748634123 +0.3815207942410712 +0.1552489912530833 +0.4207020404321706 +-0.1971815875549870 +0.4462893018422216 +0.1008649706098884 +-0.0084102138738131 +-0.2612268538583085 +-0.4467545741118660 +0.1260593296138161 +0.0767564764496971 +-0.0589337944344277 +-0.0004776749221558 +-0.1401945370680155 +0.0741762963226479 +-0.3726832340930339 +-0.2027776882976704 +0.0659734413179224 +-0.2630593135661488 +-0.2422888605422999 +-0.3294668161170133 +0.2920323294835268 +-0.2455409973179684 +-0.2915631759804381 +0.0933356553889287 +-0.1285193214057547 +0.2557815104974221 +-0.3394308268195025 +0.2308638669478563 +0.3915152147589399 +-0.2836623042489431 +0.1678945841165947 +-0.2413308768573562 +0.4620524271442882 +0.2553707339814911 +0.0115421986130528 +0.2346471788703769 +0.1740783028295261 +0.1851996707269928 +0.0062493706921459 +0.4561268831958318 +0.3663526052435616 +-0.3223713731896781 +0.2023252651270384 +-0.2909361203312733 +0.2311501233259725 +0.4208621583771288 +-0.3120123608654393 +0.3812732646074325 +0.3349081475459735 +0.4508210687765537 +-0.0760065688620091 +0.0758670702821425 +0.4729107465553655 +0.4854571787699822 +0.0253140884030542 +0.0933509225601570 +0.2153643647990499 +0.1604902179373257 +0.3097557908319570 +0.0584042648968202 +-0.0718800737030441 +-0.3270420270610405 +-0.4663917511817657 +0.1564298508926651 +0.1422743193895412 +0.0830955438100045 +0.3664740396054412 +-0.3488497872365681 +0.3499016976167587 +0.3334491162950335 +0.3662031678458075 +0.3390160418908958 +0.3633948653851446 +0.1805358424067183 +0.1966065053518696 +0.3917235509170629 +-0.0558094087758562 +-0.4420185662000893 +-0.0413002734207329 +0.1969147789487629 +0.1832300586376354 +0.4731396352692780 +-0.0547479493140659 +0.4648309337183751 +0.4743019876856285 +-0.0519868509346841 +-0.3027330153590254 +0.1360570365851460 +-0.1000546536306328 +-0.0084365350499516 +0.3716341794734965 +0.0743495417164315 +0.4392526345490593 +-0.4493146865386340 +-0.0921829804963915 +0.4193717203491890 +-0.0022419829424323 +0.2636754938798417 +0.2313521221776285 +0.0903386060266718 +-0.0291998301118389 +0.3494671255286941 +0.4015858890087439 +-0.4260410093815734 +0.0776283281676070 +-0.3100391172583402 +0.0261645780094363 +-0.2461228054809785 +-0.3126638082620505 +0.0549114767506421 +-0.1816317059549148 +-0.3487736965989881 +-0.1973628527965532 +-0.0295491517056307 +0.2027122454964163 +-0.3860402189351145 +0.3741308605412854 +-0.4918695876612668 +0.2477014851329072 +-0.1785847122641053 +-0.1121411766825073 +0.0058998597255967 +-0.3769334323125212 +-0.4975944936425068 +0.4611162062905568 +0.2229172036806094 +0.1429508714803907 +0.0087455328763326 +0.1805755179400397 +0.4655936820644072 +0.3076469660038721 +0.3051010575907215 +0.2863769563783374 +-0.0356534991077747 +0.3299917104581902 +-0.4525600929883776 +0.0172410717492845 +0.2421226355354282 +-0.4971142418300936 +-0.1370940491496752 +-0.1716275163580891 +0.3925092177115014 +0.0974215880908222 +-0.1811746224601154 +-0.1362480343851982 +0.2615894499929026 +-0.4374151134299634 +0.2860659345794263 +-0.2443193166475958 +-0.0725846655940459 +-0.3685011749174585 +0.2506546481352957 +0.1778174568471043 +0.0117001905727838 +-0.0407282438851466 +-0.1857659747232822 +-0.3904173256192295 +0.3396564812580460 +0.1278432281397783 +0.0533553856894283 +0.0778926120439918 +-0.4878725573462271 +-0.4653938466768332 +0.0099600179554283 +0.4414436233758671 +0.0515822970467751 +0.3471078173912678 +-0.0582102860744377 +0.4634648427650838 +-0.1900983837852611 +0.3538593907713599 +-0.0079375970660326 +0.0063024252317282 +0.0445581611344861 +-0.2318089137106757 +-0.0783558165789583 +-0.4203183095263281 +0.3777206587586367 +-0.2546523764979448 +-0.3504835286626477 +-0.0337763432071690 +-0.3168265485038352 +-0.3041624405770896 +0.1802851933301981 +0.3709268322544527 +0.2650830052557893 +0.3136249764817466 +0.4975923957784105 +0.3474832589931299 +0.4918251862171550 +0.4035519050886631 +-0.0778144861412657 +-0.4774808287305085 +-0.4506808919561686 +0.2239348250432245 +-0.4092072738359679 +0.1867304281273064 +-0.0243904143334698 +-0.4907132028854639 +0.4296772780500112 +0.1020711038665827 +-0.1446595777740715 +0.4179843861724638 +0.4298325596427710 +-0.4589814557753420 +0.0203209861606916 +-0.3177647363154442 +0.4814207600255722 +0.4248575843794211 +-0.2602689980020420 +0.0211236717730604 +0.2668891880528556 +-0.0489272499249959 +0.3258388168740718 +-0.0482541042203550 +-0.1249251513521674 +-0.4065632127699033 +0.0810905371543164 +0.2508691477534293 +0.3283499836237471 +0.0284026626017644 +0.1595210877066515 +0.3393702879550945 +0.2348804125761836 +-0.2561932079647536 +0.4582625853614675 +0.3723163609094619 +-0.2043894258262982 +0.4840383455310787 +-0.4550713369664986 +0.3348651951871527 +-0.4118321136808951 +-0.0518591594345329 +0.0128654175628093 +-0.1097811065271048 +0.2286789583500690 +-0.3983340231967688 +0.2746266141732618 +0.4351170132324814 +-0.0089972740891835 +0.1397757941767460 +0.4582726479591426 +-0.1704093182931758 +-0.4544220413797422 +0.0093636227100334 +-0.2488320063642603 +0.1457594030228846 +0.0950106288387715 +-0.3136984455561740 +-0.0906185697128507 +0.0200665306897020 +0.2920920765654557 +0.2870726376723480 +-0.0192342454153215 +0.4127192797753966 +-0.4355995778711420 +0.0470721740315405 +-0.1395550181078941 +0.3926302690050050 +-0.4850427051884241 +0.1363389096463550 +-0.0427794327525683 +0.4601333950642523 +0.1500070579303660 +-0.1293806158247377 +0.0149312986602372 +0.4588389973018461 +0.2259681538845659 +-0.2722779591168171 +-0.2192971207683066 +0.2180470078127240 +0.0678912487231295 +0.3065194462333201 +-0.1972653913552573 +0.4110964726918016 +0.1027504146555527 +0.2426402847535993 +0.2888812709724224 +0.4851873494269756 +-0.2904173266909751 +0.0045404384800642 +0.3710406122099337 +0.1033470114508762 +0.1144933973046902 +0.0053048950620602 +0.1731327025888862 +-0.3178293756547292 +-0.0339100740305970 +0.0095071520576512 +0.2593567503491224 +-0.0121671874766029 +-0.2368538436356002 +0.4004596327773445 +0.0907286543078356 +0.4618410414328150 +-0.1691494458475810 +-0.1931319568043460 +0.0902161819117852 +0.0046274913296918 +0.2655084118527854 +-0.0827970310445270 +-0.0212200571159724 +0.2670397251756738 +-0.0739224860924054 +0.4332966518291168 +0.3520342917015215 +0.1485564972476571 +0.3609163564587169 +0.0811943828247736 +0.1285247522380816 +-0.3511271554357021 +0.3873855914095965 +-0.1677925787019057 +0.3773130229728554 +0.0400555704376303 +0.3474816953396310 +0.2031863415243131 +0.1632538077450801 +0.2669549772950260 +-0.2508354933608134 +0.3886009739428576 +0.2028640101614491 +-0.4453354058192597 +-0.0964800420612517 +-0.3081991112429104 +0.4960145295541215 +-0.1705537251040386 +0.4511958635802541 +-0.4576498326789545 +-0.0065582066045147 +-0.1397130726255796 +0.4612731335633516 +0.0260462169293489 +-0.0460286356268922 +-0.2089705350273450 +-0.2164851826197906 +-0.1979715437506523 +-0.1700408686096661 +0.2709643464233488 +0.4469219869534339 +0.2074300137165597 +0.0569633761950359 +-0.0832551429853636 +0.2783086704975904 +0.0473605115913461 +-0.1242060283715367 +0.1787282889941261 +0.1320330796016872 +-0.1888030780952452 +-0.3424951996889841 +-0.2940449601168061 +0.3603209340999428 +0.4670512607244869 +-0.3895505288849240 +-0.3613277345743873 +-0.1684197193118873 +-0.0075366466453431 +0.4830823457733846 +0.3819242532885108 +0.1138286519048827 +-0.0944719465369956 +-0.3531453593227883 +0.1593833689876296 +0.0303673577178163 +0.2084295652762030 +-0.2857945641717490 +-0.2990175012258933 +-0.1843722471935431 +-0.0973442118196181 +-0.3831865238947681 +0.3570163548169257 +0.3641601000909435 +0.2412595616728223 +0.2412505756449894 +0.3451211357601036 +0.3929930420712373 +0.1078952659525060 +-0.4629019525843306 +-0.3082530468821215 +-0.4166767434438314 +-0.1979864534642113 +-0.0408472434677022 +0.2302113291255181 +-0.3394701744929408 +-0.3392830216144848 +0.1159411041058860 +-0.1295173024666015 +-0.0014669184687050 +-0.0436980136393824 +0.0368497894993722 +-0.0395521449794152 +0.4390437945276464 +-0.2169974513392033 +0.2732347078126135 +-0.1277909936183627 +-0.4264532308676795 +0.2950662064217235 +0.0964050836719743 +-0.1651639796865274 +-0.3524230780326537 +-0.4105313255404825 +0.3936978238715337 +-0.1868559755585005 +0.2244259915012240 +0.1844497001816023 +-0.4272700546982442 +-0.2679479766769896 +0.3719649899180534 +-0.4369307870628188 +0.0787769379783843 +-0.0144361716476124 +-0.2620381151236575 +-0.0034776762798654 +-0.1652667654187325 +0.4982592694182569 +-0.0159435105989573 +0.4336370556795063 +0.1254147522265978 +-0.0234655344598736 +0.4692483998140925 +0.1204062808188641 +-0.2336675704238158 +0.1409336170248937 +0.3840743805053830 +-0.3576267623953776 +0.4454549465199087 +0.2218417997981040 +-0.0739925983373006 +-0.4748051130968577 +0.4392846118081410 +-0.0090970547082826 +0.0612562105372151 +0.0315158170434265 +0.2183808978110240 +0.1792714176240864 +-0.3189319200369253 +-0.2214082951514270 +0.3836901232350469 +0.4892130481716161 +-0.0693302397748872 +-0.4281291271115049 +0.2479959824325308 +-0.3894788576516310 +0.1017788602363955 +-0.2523536914010258 +0.0838778581038879 +-0.4122296169639324 +0.0444577643784778 +-0.1072824375859879 +0.2257594794702550 +0.0194937068661596 +-0.2589233139223043 +-0.2870179271029538 +-0.4306010189111720 +0.0116859464372664 +-0.2187540310097443 +0.4701954086706548 +-0.3273127766201634 +0.4233588265617964 +-0.1764514218270419 +-0.1797042988567902 +0.4284452397436733 +0.2791746019144454 +-0.3376036918981146 +0.4209934033719811 +-0.1891988632901320 +0.4055937012421273 +-0.2413640790925139 +0.0325132251968094 +0.3384687836703300 +-0.1671367739599596 +-0.1949959194167430 +0.1879271306239299 +-0.1381618650398887 +0.1402844764267249 +0.3529214888669500 +-0.1204896405861191 +-0.4805515304225400 +-0.4895544642120636 +-0.3445956500531121 +0.3645202597223570 +0.2219812672161211 +0.4665086486985087 +-0.1987721051560153 +0.3585639967066960 +0.1242162002445819 +0.0896684881948212 +-0.3212413921038877 +-0.0806160452692989 +-0.0387510898562915 +0.3493300328385999 +-0.1132240772333016 +-0.2852086778208445 +0.4396384644903751 +-0.2821654465036949 +-0.1494630459620355 +0.4592739581968029 +-0.4580137863993413 +0.3079379395659060 +0.1557909085470451 +-0.1514415758575728 +-0.0443692034085568 +0.2876367022679963 +-0.1285591899416346 +0.1571206096210505 +-0.4707740864663340 +-0.2257995966189498 +-0.1780508710700668 +0.2844973503336494 +0.0613785988789820 +0.4215009178567896 +-0.1467559706829554 +-0.1326071115597091 +0.0413331599498716 +-0.2305514835570054 +0.3243836253257907 +0.3477599036677013 +0.1604627578446109 +-0.4802266173334269 +0.0634758937599540 +0.4508153113715531 +-0.2628762097191263 +-0.3261944962277298 +-0.0408137589201065 +-0.0712904092567792 +0.4690754325088510 +-0.4599266886111848 +-0.2860940360977872 +-0.1512296079343814 +-0.2675946984108707 +-0.4740425356337087 +0.0623895344973615 +-0.0631407051832624 +0.3850335964550572 +-0.3312470964920075 +0.2415716132615051 +-0.4740957276869945 +-0.1094013835815875 +-0.4280413127757188 +-0.0526438030042961 +0.1430274491897451 +-0.2525440943465354 +-0.4885958311010957 +-0.2549388888408129 +-0.4224188605541958 +0.0634591813883659 +0.4223172893733803 +-0.1324660348534268 +0.1718885396626793 +-0.2530512226701890 +0.0199939983391061 +-0.4444981400084239 +-0.4173361454581449 +0.3996384466974866 +0.2146037669691063 +0.3429674019404689 +0.3175022559802654 +0.3171247585099440 +-0.0410235886454540 +-0.0206758707376040 +0.4610839736700799 +0.3590187260507717 +-0.2296440886576563 +0.2181106557075176 +0.3896222515317803 +-0.0034462890922229 +0.0026845150159609 +-0.3331445131985527 +-0.4618529304232026 +0.2120082978814256 +-0.2282574537601963 +-0.3638908200343151 +-0.0961446169167847 +-0.0972631228573287 +0.2970668453594278 +0.0097822805293074 +-0.2669014203986524 +0.3967054930297859 +-0.1417326990727067 +-0.4322896829455632 +0.0517150582761918 +0.1034582654963560 +0.1598581014187268 +0.1550736247566969 +-0.2781115381000635 +-0.3707263102857027 +0.1396709043830325 +0.1930984835338998 +-0.2519605473021898 +0.4452985705440307 +0.2595500832590132 +-0.3587317484011167 +-0.1072264313671772 +0.4203816951581538 +0.0754941526394404 +0.1083561055364055 +-0.1876592905326931 +0.0628747621692389 +-0.4784315640083314 +0.2602851804696842 +-0.0703307320350081 +-0.1839089880043034 +0.1831645084459348 +-0.1344664613512680 +0.4170702241972314 +0.1296483223578682 +-0.3121332581885407 +-0.3065398549371099 +0.4102305328613657 +0.3179122459218160 +-0.1591586513311862 +-0.4509661355907972 +0.2026429254335277 +-0.4528470511174271 +-0.3241116797755597 +-0.1195045593656276 +0.2841527065942911 +0.2166828189201992 +0.3871619722542370 +-0.3554830694775037 +-0.0594355860782816 +-0.1170902644229228 +0.3621191632112634 +0.1315580068239689 +0.1800467610385879 +-0.2664550170247301 +0.4553649143590983 +0.3040712545961126 +0.3912267606498364 +0.3776686154844410 +0.1900608695698048 +-0.4770604110206815 +-0.2429990708590731 +-0.1026533503234278 +-0.3044890528870334 +0.3436000809166979 +-0.4728738999975883 +0.2958470057543354 +0.1517197906162637 +-0.2219477124012824 +0.4305352719464305 +0.2468560547340364 +-0.4787700756449051 +-0.1489761480996349 +0.1395854929880482 +0.1175971436108465 +-0.1684686643307631 +-0.1059665135507237 +0.4255905733332066 +0.1877464519208845 +-0.4100265266915680 +0.3984910975528118 +-0.3959242520733623 +-0.2315042056987456 +-0.3605663743379239 +0.4433321864632048 +0.1090159635682290 +-0.0098745384760696 +-0.2401222306829229 +0.3473004971556561 +0.4611367026643435 +-0.2069452609005971 +-0.2234274680143626 +-0.4859862421886992 +0.1778858688433568 +0.0308095920948962 +-0.1858769747113911 +0.0733962430222072 +-0.4796452100550001 +0.0561864159889069 +-0.4904182152505963 +-0.4249961616824973 +-0.4389362092015235 +0.3003035313042662 +0.0526652945738433 +0.1195414012134963 +0.2147416224628306 +0.4910842494238157 +-0.0343783183238923 +0.2091449492244239 +-0.0453053378702248 +0.4731754448739771 +-0.0969645116079498 +0.1847267734240555 +-0.1131814313127187 +0.3590727910065618 +0.3009164149131514 +-0.2656272627615924 +0.1594529835275775 +0.2034661540715051 +0.2518138273803485 +-0.3935743133887898 +0.3836259797670921 +0.4382879863100901 +-0.1342805299486466 +0.4592566943512906 +0.4775612212299545 +-0.2005680257703404 +0.4229481884182147 +-0.0690619438392172 +-0.2752972738569338 +-0.2234237364536392 +0.3225957546037668 +-0.4499434051330815 +0.4660192468670252 +-0.2173597902810998 +-0.0816793735089736 +0.1799558557909341 +-0.3319185427481687 +-0.4655650329066818 +-0.0362607453758184 +-0.0055152505720849 +-0.1690545221344200 +0.1577952977569871 +-0.2552671282577391 +-0.1044971387081303 +0.3376171715612460 +-0.2558985423551537 +-0.2952287416655664 +-0.2584182116485574 +0.3277759639768222 +0.3540628125496926 +0.0144552987413169 +0.4682754154320869 +-0.2515835465034463 +0.2787056157160520 +0.1897256734773605 +-0.1011837036656635 +0.1580908583538513 +-0.2590253336556503 +0.3879918301005744 +-0.1728949314135593 +-0.2327885834990452 +0.2183544960822831 +0.1347878489451315 +-0.0258987928955379 +0.0274753092267366 +-0.3036989165560330 +0.2218235212939345 +-0.1195162851609002 +0.3095640610314773 +0.4255769055986287 +-0.1093710401372386 +0.2682160439406055 +-0.4554209690879023 +0.2754160115251729 +0.3092999013602296 +-0.2745017982053621 +-0.0197610545666616 +-0.3407596295667393 +0.2521930350435397 +-0.4582665126086272 +-0.2452574686387798 +-0.4873696658531423 +0.4291760722080621 +0.1507229436840348 +-0.1916209991648402 +-0.2682920945507234 +0.0671369577507618 +-0.0414055363987332 +0.3056249972073503 +0.0301768198669289 +0.4259937055166781 +-0.1080250133058122 +-0.4891458656349194 +-0.2359605378098157 +0.4995096890250954 +0.3826151599381713 +-0.4531532232816617 +0.2448260047904357 +-0.3984063547524235 +0.1968131092901025 +0.1244921261511849 +-0.0121836626892970 +0.0610149259685449 +0.0309621289984101 +-0.3102583193860977 +-0.0372659578806905 +-0.4293964367853187 +0.1983257143316665 +0.3954138902763091 +0.4720186799758442 +0.3520072965491357 +0.3324308318947888 +0.4566347385595937 +0.3699490023657372 +-0.0212379925915514 +-0.4042237981103363 +-0.3827945063421118 +0.0776281924552997 +0.0351143889040114 +-0.1884298205310298 +-0.3847777333669258 +0.4971950340969689 +-0.2077537818551769 +0.0130857110175624 +-0.1799166273225930 +0.0234793169055783 +-0.3818645473132604 +-0.3992121612547627 +-0.2595424551249114 +0.3804488531243910 +0.0415909901854883 +0.4347985059363554 +-0.1788610940087778 +-0.1853475160304074 +-0.1489536703732937 +0.3300606525813007 +0.2746324488118888 +-0.1072645538376242 +0.4986030947566680 +0.4820830106767154 +-0.4581404841057425 +0.4149605321903987 +-0.4860212838824652 +0.3126715781600673 +-0.1124092404103457 +0.2018064616960138 +0.2530389086716179 +-0.3873608078380025 +0.0941317089184823 +-0.4138613746162850 +-0.3404374572353506 +0.3658002209892777 +-0.0805867333871684 +-0.1754049020909580 +0.1563692272464169 +-0.1061400730378977 +0.2790335494772769 +-0.0651160173082299 +0.3956786136783697 +-0.2875789717913764 +0.4515107168427686 +-0.2701544170289120 +0.4677560237200764 +0.1055511425403319 +0.1229528862708318 +0.4222468653910245 +0.1895320519652769 +0.2820123292480046 +-0.4526985182345418 +-0.0156452143716201 +-0.0151207598093613 +0.1897116034068658 +-0.4139743885499950 +-0.0967808233527452 +-0.3768435611213266 +-0.4678284216556274 +-0.4350826219002245 +0.1000587665795133 +0.1530233085976481 +-0.0717012965926609 +-0.2570014552160749 +0.3745485049376570 +-0.1635212790614199 +-0.4232098165779810 +0.1459399067910920 +-0.4106439510327995 +-0.1796235310069877 +-0.3649133523799168 +0.1990693047823500 +0.4693953608763296 +-0.0658676854286479 +-0.2201095898187939 +0.1563422059892272 +0.2703273223936905 +-0.2826612028644623 +0.2764131659013896 +0.4637952866773769 +-0.3457681596460316 +0.1607275980470636 +-0.3179777482638881 +-0.4203530756559409 +-0.0782900143642210 +-0.0520715588305089 +0.4831573290620735 +0.0415876254192639 +0.1717182621594086 +0.1557567534066947 +0.3180800199550459 +0.3340148838324034 +-0.2278466835960880 +-0.3077723418382570 +0.0170262633435022 +-0.0923572275534677 +0.3112589660218131 +-0.1466993174185708 +-0.2112844239157851 +0.0981341136279571 +0.4924844103214874 +-0.2446620085628220 +-0.1675811788258528 +-0.3080532984688945 +0.2009501970004657 +0.4294979370271899 +-0.3889209406634851 +0.0744078435073761 +0.1875013197897945 +-0.2201712884775230 +0.3114741873564465 +0.3338315974978148 +-0.3038467308820358 +-0.0103888453975555 +0.4749041757349296 +-0.2796481404594490 +0.0029472684330377 +-0.2049650097831062 +0.4938476870707592 +0.0329113050349750 +-0.4214269108859823 +-0.3442220426157114 +0.1873582052961151 +-0.1841558417737084 +-0.0450263584284616 +-0.1564682699879510 +0.4584584294520418 +-0.4498739705364747 +-0.4505306898998637 +0.0708653611593014 +0.3499211733766552 +0.3115657322046125 +0.3075483551213346 +-0.3871383198403190 +-0.4815528451927251 +0.4481083901226166 +0.1205550966495932 +0.4731976148322251 +-0.2633990578768425 +-0.2137254899781094 +-0.2969050778812585 +0.2679103932822915 +0.0981159311129930 +-0.2015284878712170 +0.4522309466890955 +-0.0036067116147065 +-0.4833271515872905 +0.4894080736664661 +-0.1263993358505572 +-0.4505444434972684 +0.1548186088671466 +-0.1297637376524516 +-0.3846602375919929 +0.0174465377145300 +-0.4838573225859013 +0.2664428139096473 +-0.0203467587940128 +0.3421790808778825 +0.3827293521920049 +-0.1386937038999072 +0.3042240778717331 +-0.4695940130417383 +0.2621198835650267 +0.3163494961351256 +0.2561972650978945 +-0.4933503807200439 +-0.2204849142181053 +-0.0646060310494821 +0.0361401046257658 +0.1164955456506980 +0.0598196025166333 +-0.1322327123569922 +0.3729179719433231 +0.1058981686330663 +-0.3045595747280236 +0.3482330837866502 +-0.2985899047515319 +0.3508228913740034 +-0.3895319703030992 +-0.4579392356254698 +0.1312021971134438 +-0.1983021489764713 +0.3984380320481528 +-0.2938429706088562 +-0.4559702430454192 +-0.0105286812773983 +0.2524714184058229 +0.3947067781885739 +-0.4332237703382099 +-0.0025600167217459 +0.0837452107390664 +-0.2439415767349182 +-0.1373896165481311 +-0.1454759496867410 +-0.3167765720790888 +-0.4502354949295551 +0.4312597340937907 +-0.1350617543714367 +-0.1769900240287285 +0.0781017928703784 +0.0139531123073339 +-0.2406014951198120 +0.2239110847414717 +-0.2426945145033071 +-0.3218818884465034 +0.3411345508500866 +-0.4468263793041861 +-0.3326498146788874 +-0.2888527588980962 +-0.2301370631708656 +0.3554210263875838 +-0.4885318842946137 +-0.2884976028477592 +0.0425356489234545 +-0.4193749594595760 +0.4124050823057182 +-0.0274830285996873 +-0.1756561689992673 +-0.1497408739052138 +-0.4555608587644544 +-0.0727782598684804 +-0.2145195078895559 +-0.3713813660777310 +0.4713481381612467 +0.4632715087890527 +-0.3506971741861689 +-0.4275602310117601 +0.4376220915546207 +0.1206533508540893 +0.0160480009443225 +0.0033159949065573 +0.2575753428651201 +0.0440038790650273 +-0.0607565920618249 +0.3533566586590772 +0.3641895135928856 +-0.0934365481774994 +0.1048116800155845 +0.2359402951365357 +0.3517577489309491 +0.3935902947640075 +-0.4318945179429630 +0.1271628117198540 +-0.1492683916737624 +0.1937750821248603 +0.4048422929448370 +-0.0621771968211369 +-0.2545543865469884 +-0.1849309247759351 +-0.3311446010304392 +0.0351090949263548 +-0.4074114086020411 +-0.4449211004991809 +0.1156297430830749 +-0.0971556772725785 +0.0117834588197085 +0.2500785123281940 +0.0927523492918186 +-0.3164251853105556 +0.4284291380830760 +0.1631130400133519 +-0.0704016795543740 +-0.1069400922482917 +0.2005624337148904 +0.0789793152605277 +-0.4316907155953695 +0.0181536051716817 +0.0042668834271299 +-0.4222847426589549 +0.2823365651784885 +-0.1798021520888318 +0.2913493504668692 +-0.0728987233955076 +0.2143029247109636 +0.1186072368458863 +-0.0018928021569089 +0.4718373694239282 +0.0904419032047712 +-0.0879382295524547 +-0.3903095935830276 +-0.3656649469072160 +-0.2798473243498468 +-0.4018319671014896 +-0.3416648725109651 +-0.3550329352410775 +0.3978992567846610 +0.2202036281776740 +-0.0465329035897054 +0.3657837591220954 +-0.1614612193956636 +0.0739259319905322 +0.3593305478788553 +0.4684378632421182 +0.1829161334968287 +-0.3213211565913712 +0.4477761586191684 +-0.1314335162818021 +0.2326863964439103 +-0.0378789724879977 +-0.1282579134575670 +0.4113413159246286 +0.1865041726173859 +0.1321175130127841 +-0.2742079442941028 +0.2914041217826194 +-0.2846878634326179 +0.3760256234789781 +0.2081949833336886 +-0.3724352748782152 +-0.1180729641773872 +0.4080878193335128 +-0.3517175511715985 +-0.0330682073970739 +0.3397461173564810 +0.2914136221941976 +0.0095795900424288 +-0.0067995442497815 +0.4533439251481428 +-0.1892858118423166 +-0.4968806565557777 +-0.2348751085147845 +-0.3164809579789876 +-0.4684125996872162 +-0.2873340349799924 +-0.3961973124220778 +0.2026535406262844 +-0.3338786026890186 +-0.4073663658162600 +0.3433570087297781 +0.3983485289172923 +0.1137293818564650 +-0.1415495861089882 +0.1062688300359890 +0.0226308085286762 +-0.1540909483464298 +-0.1526103956381348 +0.3681016381393473 +-0.1672319844981608 +-0.2814182848713142 +-0.2220602093977568 +-0.4745896376442882 +0.3690825544212326 +-0.1669414177141581 +-0.0620795477669385 +0.1333724579092227 +0.1588062234418051 +-0.3171832739352278 +-0.4154024285129868 +0.4364749563297090 +-0.4573142809830220 +0.0351399185442015 +-0.0573161489580016 +-0.0477343845760353 +0.1385115281333987 +0.0488383900509531 +-0.4531838596331297 +-0.0494596335666561 +-0.1820354926139353 +0.3441586420094294 +-0.2479086992852735 +0.0946679726769909 +-0.3689633495384014 +0.1048383618269364 +0.3406932627872690 +-0.3744469277712154 +0.2062852925711428 +-0.2945785309391921 +0.3117694859180328 +0.3873205341178325 +-0.2455295319084962 +0.0293648890946622 +0.0028047000489703 +0.1161451029523104 +0.4758845426614957 +0.1257937922945630 +-0.1223751394864797 +0.1973808131344044 +-0.3439858001611533 +-0.0499659281101203 +-0.0634701930635383 +-0.0762411838098020 +0.3740165912993504 +-0.0014049251291687 +0.1249453573075638 +-0.2963536847229872 +-0.1415396630179158 +0.0796498805904450 +0.0812052635912771 +-0.1930542679694088 +0.2064391204933703 +0.4711626382480357 +-0.2409029834367889 +0.3500902205586187 +0.4616261270243925 +0.1838247528203829 +0.2371200538040362 +0.4338919869706606 +0.3760180277757790 +0.3668772608741793 +-0.2522085689460006 +0.3369330502737017 +-0.0403575040532638 +0.1829785045106866 +-0.3002046280951375 +-0.1185928963439358 +-0.3974937251757280 +-0.1925925743287406 +-0.2871342739208778 +-0.2029869637752418 +0.4537716668849801 +-0.1537242525181400 +-0.1749843423906750 +0.2216251441224336 +-0.2573041031882513 +-0.0735278261916414 +0.1371153835140172 +-0.3048217820551720 +0.4842940491864728 +0.1786001800269478 +0.0338854397695886 +0.2493399851200931 +0.2107330495915096 +-0.3800825538827054 +0.0615951156497201 +-0.1604139561966977 +-0.0025074410600683 +-0.2547843816487918 +-0.3751391295307390 +-0.0502655826288299 +-0.4346521794383315 +-0.3918297455253141 +-0.0004627799267180 +0.4651306539304539 +0.4166056415751752 +-0.0998601755913763 +0.0604306335633519 +-0.4609350983264237 +0.3638570115317078 +0.0415676047643138 +-0.4309581809002342 +0.4656460908526844 +0.2590143505888518 +0.3483282485572319 +-0.3511143327613414 +-0.1373592592784033 +-0.2713080891447260 +0.0341096433434886 +0.4232449990816181 +0.1951170005033274 +-0.0194791780472351 +-0.2958146127887227 +0.2179963295659471 +-0.3435837201843419 +-0.3513107378296499 +-0.1640831902866943 +-0.0796721702794263 +-0.3101140996237767 +0.0190996974631388 +0.4563465319530173 +-0.2903120985455314 +-0.4722386827470190 +0.3925270420925629 +0.4982600663501350 +-0.3016431145261369 +-0.0842775917004224 +-0.4983874641823509 +0.1182273126311373 +0.4881801548783509 +-0.2090798374531330 +-0.3680118396012176 +0.1982531188203482 +0.4360905385012720 +-0.2072806830683222 +0.3310210136280922 +0.3448323082519557 +-0.0639244033113391 +-0.3215884024413116 +-0.4205595015863035 +-0.3437422798966939 +-0.2751886730745102 +0.0267206742332438 +-0.2974805852508653 +-0.1276214927678188 +-0.4636675973555714 +0.1016901688760332 +-0.1076160618835225 +-0.1605114995520215 +0.2766632656102206 +-0.1318254648874798 +0.4173689276496617 +-0.0183342378229612 +0.1504967858451154 +0.1502388817243625 +0.1068946954502972 +-0.1255751909069481 +0.4659888371945107 +-0.3002553937158871 +0.0690692313924823 +-0.4361275252659055 +-0.3008780661909759 +0.3944272924420821 +0.2108295824508500 +0.0776952722405957 +0.1970606269690431 +-0.1759231817951001 +0.4649042244467533 +-0.1036312810050493 +0.0618734107635087 +-0.3486917947107156 +0.2311277757280892 +-0.4001078385784809 +-0.1472218482717204 +-0.1212395733008031 +0.3191464096957458 +-0.1856318782023451 +0.1858132156912087 +-0.1961428340627643 +-0.1426594296194985 +-0.0840162529656192 +-0.1146660233967503 +0.1917031638508321 +0.3102174856585140 +-0.1688894698278248 +-0.0096375470525828 +0.0117238036549624 +-0.2576206715082874 +-0.0741001066704420 +-0.0565220209407337 +-0.4117910342337957 +-0.2199507964129045 +0.1716496731626198 +0.0821730245457386 +0.2008114320946870 +0.2804142279797868 +0.1821833198039549 +0.2166911594708220 +-0.0032730254217621 +-0.2333931707180003 +0.0003053041133251 +-0.1286616279028472 +0.1379709856420225 +-0.4319770993714961 +0.1731442287387129 +-0.0737044830824748 +-0.0137848651460723 +0.4892175858714144 +-0.1583776132618211 +-0.0664719084206389 +-0.2412239773569415 +-0.4176439893730439 +0.2627344444442377 +0.2670735542380446 +0.1728133703785900 +0.3202882149578634 +0.4606667244229609 +0.4114414573051591 +-0.3762903411102803 +0.4439149093249251 +0.3392952352398773 +0.3020672803295404 +0.3563222755941469 +-0.3489872341383594 +0.2762249703620516 +0.1819584785461428 +0.0425143845399832 +-0.4822543027390059 +-0.2282423660300380 +-0.4322718397877725 +-0.2482847092519872 +-0.3315130379777745 +-0.0226843822478253 +0.3801085341366714 +0.2514482723755929 +0.0266360815497825 +-0.3465297403661930 +-0.1759365776109955 +0.4169168939908613 +-0.2416566506548328 +0.3638469106160196 +0.0552886782383709 +0.0787792644706513 +-0.4971271679966670 +-0.1692141639918081 +-0.2438546285069219 +0.2824021365813203 +-0.3243695788277793 +-0.1937894096349483 +0.2927598776722965 +0.3717805652851589 +0.2407312200833395 +0.4486876133946452 +0.1577896151185617 +0.2237043838747773 +-0.4784694642632875 +-0.3614312577810642 +-0.3416143084607844 +-0.3192490888602239 +-0.2695120242757400 +0.4539850727360514 +0.4861086250863013 +-0.4127017052060745 +0.4022317622920208 +-0.2810007139184149 +0.4395066438928235 +0.3225351417970397 +0.2858749917959041 +0.2739365262781076 +0.2872547942492210 +-0.2425310671749453 +-0.3703850034185129 +-0.1245550954791428 +-0.2987587814744521 +-0.0223543827516288 +0.0976058508472814 +-0.3369475453060993 +0.2983280453108142 +-0.2851192019872330 +-0.1668940647399420 +0.2625596369762973 +0.3688069511171967 +-0.4177762762622788 +-0.1373282195679689 +-0.1926723284845047 +0.2630185250512496 +0.4871380016781808 +0.4448369216702093 +0.3250967554042705 +0.3927858127970022 +-0.4000338606131574 +0.0196630832232656 +-0.3623430526956173 +0.2400979199890309 +-0.4542416338285171 +-0.2575375981747525 +0.0522329465479632 +-0.1628316197026658 +-0.2681697180669880 +-0.1159291151671349 +-0.4709367430337416 +-0.2753230945478456 +-0.2425883576179200 +-0.4321293581581389 +-0.0940305742447638 +-0.3876197643674484 +-0.3841598591381289 +0.1998075135450743 +-0.1011517720060907 +0.1949245762243059 +0.2509809561979029 +-0.3724524420611583 +-0.4891368009517427 +0.0919798260770579 +-0.1386055230096506 +0.4667346689505580 +-0.2384529838968993 +0.2274768031650555 +-0.0200762125703722 +-0.2643543528039806 +-0.1396272700172896 +-0.2239558766855778 +-0.1577003235248132 +-0.0646972621314122 +0.0481917944401783 +0.0896858784646944 +-0.2961398675676081 +0.1660646890608888 +0.3094027057821973 +-0.1463099797877268 +-0.3172787848350541 +0.0836296582623269 +-0.3634750723011637 +0.3487296204131421 +0.3757159076768996 +-0.4733785736054175 +0.1316576915510255 +-0.3116519077178607 +-0.3191727836610300 +-0.3067666966709073 +-0.0361336290170957 +0.1090000382146201 +-0.1723477986563194 +0.4125268695002923 +-0.1501566891987505 +-0.0156193000342971 +0.3699340189586838 +-0.1615922672835236 +0.0501614310987493 +-0.4271233620112566 +-0.2824327275299224 +-0.0067651254644212 +-0.4171704570822804 +-0.0704582390160879 +0.3537933194761173 +-0.1334477730857881 +0.0429338068337091 +0.4496307630822044 +-0.1240811867487076 +0.3070069141532575 +-0.2470113008871851 +-0.3589329382725289 +0.3700258729923230 +0.0049755016580028 +-0.0321512746481366 +-0.1004729314227670 +-0.0569632841816360 +-0.2423242329665688 +-0.3385155682322863 +-0.4668992343494671 +-0.0397933097454057 +0.0419223146351337 +0.0659671443397306 +0.4828015631932735 +-0.3267102002804075 +-0.2525856624742715 +0.2084429063772016 +-0.2201839958342063 +0.4015098432616030 +-0.0460954680448646 +0.3990608206583623 +0.1713641663858049 +-0.0336153037800066 +0.1191971169652316 +-0.2046255821329570 +0.1324322066047796 +0.0808326926108186 +0.4385249342522616 +0.1620077369430641 +0.4809966755016950 +-0.3595431179424030 +-0.3998920958123238 +-0.0981832447199092 +-0.3584669143861107 +-0.2817957898958143 +-0.3295511160633223 +0.3419265962087658 +-0.1118514094034570 +0.2753723189514359 +-0.2064500058751176 +-0.2400876724162516 +-0.3879994188083142 +-0.0914378656638214 +0.0914879323108095 +-0.0047689837243712 +0.3765235178597197 +0.4218017740657179 +-0.2728037605214317 +-0.1785791288565680 +0.1161754863290158 +-0.2029637446915075 +-0.0235823442803223 +0.3093369938562239 +0.2056085159691604 +-0.2763576418307229 +-0.3503354562715444 +-0.3037819155794770 +0.2058634873540515 +0.0222790193985309 +0.4355089490367021 +-0.2102016357342963 +-0.2214398649027420 +-0.1764801124205392 +-0.3996471580161135 +-0.3498357683433808 +-0.2738574406121193 +0.2329791004933724 +-0.0032968848510493 +0.0269268209963717 +-0.4433335461431470 +0.3884726443338818 +0.4159277316054119 +0.0331019024080771 +-0.1077046139190976 +0.3556821087233278 +-0.0516497014761326 +0.4966697522329172 +0.4124681416233108 +0.3763591276416762 +0.1718031407877725 +-0.1228131189431350 +-0.0183365571943497 +0.3959516080163772 +0.2061227517611068 +-0.4165504864038574 +-0.3126316470067845 +0.1613885168380074 +-0.1830595130756056 +-0.1142293145904458 +-0.4089390447549842 +-0.3246821794723317 +-0.2050179702187085 +-0.2789861698586028 +-0.4754346027547920 +-0.3371789623398469 +-0.0858858071239426 +-0.3883010350441738 +0.3185350103409462 +0.4739080371852294 +-0.0363532651793125 +-0.0360551650802911 +0.1289251174784207 +-0.2643188073949746 +0.1869857659841480 +-0.2849624588983679 +0.0964122412216316 +0.1615601386496218 +-0.0381161023897445 +-0.4013436895577949 +0.2359986342556086 +-0.0687637312378236 +0.3051806030752703 +0.3769004361142536 +-0.3293939076545381 +-0.0612910794822332 +0.4482913628610325 +-0.4361574213797844 +-0.0190612458498812 +-0.0324719824935532 +0.3579969297238123 +-0.2467376599349140 +0.4968685829068644 +-0.2959647873312169 +-0.4052142456767938 +-0.3499621982801413 +0.4287967257651502 +-0.0304930289744405 +-0.4414313357860502 +-0.3548687315954288 +0.1695867268859137 +-0.0380834383809096 +-0.3063791826315745 +0.1932778818573035 +-0.4740919167192021 +0.3284612419454459 +-0.3036950407778339 +-0.0692323499133536 +0.4536030970765107 +0.0817029665391599 +-0.0813461893255588 +-0.2654661580543227 +-0.0453993330996847 +0.4132989263023193 +-0.4218313514157851 +-0.1696976286084597 +0.1534944031709503 +-0.3681890419714606 +0.1433527421047117 +0.1104587340542236 +-0.0278773391291608 +-0.1226913954096978 +-0.0277905268799588 +-0.1651167479485530 +0.3946639929385878 +0.3941672268783825 +0.2557253174510878 +0.1961655370302464 +0.4654927884521087 +-0.3716962870530864 +-0.1402592685221015 +-0.3125584152385503 +0.4799811185141807 +0.4984746006755881 +0.2607680901727522 +-0.1260707917116369 +0.1508613178756906 +-0.3188441861703393 +-0.2563366435955052 +0.0433947482439856 +0.3925608164716374 +0.2636143526014230 +0.0919963182484672 +-0.1691347628894099 +0.2111540657638707 +0.2854766307881149 +-0.3259919105670652 +-0.3622841031471549 +-0.4644097564494216 +0.2361785266879094 +0.1079107078295621 +-0.0515375987475202 +0.2214647631957276 +0.2525682199880136 +-0.2044637315796557 +0.3778834033319801 +-0.0437038655476890 +0.0739656453912447 +-0.3978585317474109 +-0.2296217257984325 +0.2065259216680965 +0.0496408367525180 +0.1222726095579222 +-0.1226746016325889 +0.2988079862222858 +0.2145347405949672 +0.4618378826488166 +0.1278240088893512 +0.1333816246201256 +-0.4318048058208639 +0.4331191849755162 +-0.2509654721948248 +-0.1897338852691615 +-0.3889856052792319 +-0.1124492850031220 +-0.4927195319065489 +-0.0501383757532834 +-0.2464352081377029 +0.3894861406466421 +-0.0599812548201860 +-0.2756514689725840 +-0.4123438172461188 +-0.2292377571580740 +-0.3741169126185883 +-0.0213030853201447 +-0.3842737917387242 +0.4846251447247807 +-0.1119180699724967 +0.0729761491506550 +0.0335171278208106 +0.3513888062996343 +0.1158991593179487 +0.4132168187018416 +-0.3267172263513575 +-0.2227437414270068 +-0.3318753951678163 +-0.2992030508890131 +-0.3659974838891821 +0.2721790667651092 +0.2031521299567874 +0.2797739521900092 +-0.4028415256916675 +0.0401140573140070 +-0.4699949513168687 +0.2634158161949297 +-0.1350732084907793 +0.1366050729945988 +-0.4869223733572439 +-0.4229636708708563 +-0.0750998275567979 +-0.0278331853043547 +0.1019313321533512 +-0.0313567623358822 +0.2186360933609287 +0.1968911564583339 +0.1488337051878523 +-0.0774861528473942 +0.4424361971463059 +-0.2008353298610545 +0.0312026324414025 +0.2099622684953939 +0.1947402907600092 +-0.3109518315530672 +0.4114088601168154 +0.0430008637584348 +0.2372945608638083 +0.4171931156991225 +0.1105102322452791 +0.0872694907499869 +-0.4857127742895959 +0.2584472802012305 +0.1527208539322490 +-0.0773910217299774 +0.4248092645715644 +0.4294961108168333 +-0.1386313028094592 +-0.0456679113292368 +-0.4417713849514669 +-0.4176589491071612 +0.3920581585924597 +-0.3241285129202985 +0.2528897655058325 +0.4153472698235159 +-0.1208095647610597 +0.3393921070525052 +-0.1452417183558620 +-0.0775767749818176 +-0.2010144857086268 +-0.3222373802324127 +0.0325665763508927 +-0.4580113111754600 +0.3478105322016664 +0.3262135835404802 +-0.3083649403568951 +0.0052004520770992 +-0.2669608936622497 +-0.2362726092708365 +-0.0044586693508615 +0.4440946973564522 +-0.0260736446030827 +0.4229891394437990 +-0.2303682876833956 +0.4894965857068228 +-0.1451344820101125 +-0.3870161741635697 +0.4972689878532153 +-0.2438489925442214 +0.2315628879784852 +0.2875380908210652 +0.2555054055941167 +0.1319777168903906 +0.0290409772018628 +0.1617064324814188 +0.2216369183637000 +-0.2133346219239666 +-0.1645276677620996 +0.3660328782465921 +-0.0937759570749577 +0.2916314662378321 +0.4600177423123862 +0.0969386861976854 +0.2951070021790079 +0.3843213689630884 +0.2300534830218630 +0.1730165711165048 +-0.0820934687831719 +-0.1934841880856805 +-0.1451916794207243 +0.1557112141528549 +-0.0182851367631838 +-0.3108114356661039 +-0.2797119587741339 +0.4306619264648888 +0.3208896366972340 +-0.3122530096529544 +-0.2430519426653737 +-0.4665664540102792 +-0.3072006594051900 +0.2582239608908194 +-0.1483110143230615 +0.2483979351883965 +0.0271483990200734 +0.2911550121426927 +-0.1833236936614320 +0.4501843543802572 +-0.1631659847125564 +-0.2277064541314576 +0.3300913006788359 +0.1007415948786937 +-0.0216702452764587 +-0.1098450923481315 +0.1447091328486032 +0.4763755612054245 +0.4143849738132728 +-0.4630060299750508 +-0.2170600192543606 +0.0323729445506774 +-0.4826890740831877 +0.2856730916404367 +0.3010846556102031 +-0.1502719156314073 +0.1006423400404350 +0.1387814536537902 +-0.4793668223257929 +0.1792836778919811 +0.4587941158748166 +0.1541452667514743 +0.3786368989358860 +-0.3430851525528436 +-0.4783159455804744 +-0.0509629419018366 +-0.3418586646799774 +0.1120169481812407 +0.3511382079742316 +-0.0708066469031438 +0.4901287840301416 +0.3849982720438981 +-0.3522877077061871 +0.2790553412783163 +0.4421060197508584 +-0.4668361531124308 +-0.0711733898978202 +-0.3784359543164704 +-0.2291288607921692 +0.1412051548983529 +-0.0610416485925342 +-0.3057260505730226 +-0.1119476976986058 +0.1193798821139512 +0.1566710831631445 +-0.0412227692653748 +0.3731898664352326 +-0.1742586962322357 +-0.1215589902270303 +0.2588046323386585 +0.1739046995742594 +-0.3962406472332981 +0.1660579854044060 +0.3321320812847075 +0.4515528307448153 +0.0608472276986062 +0.0581520126879149 +0.0760265944119405 +0.1616279084364836 +0.1073082243118895 +0.0336893468386074 +-0.2006650941428089 +-0.0118249846312944 +0.2678174345784632 +-0.4408724593298392 +0.1197024503169893 +0.0035240527300738 +-0.4168897596078310 +-0.1707485341885855 +-0.3326892591157818 +0.4460662446965842 +-0.2503787003084629 +-0.4175743922322104 +0.4957936244241495 +-0.4602155069341408 +0.4023690064795112 +-0.2858241226921484 +-0.1582208549742152 +-0.4027469828919600 +-0.2867459587850438 +0.2155563522537424 +-0.2251882249835503 +-0.4476240640025108 +-0.4419292077935507 +0.1571597137015464 +-0.4697996507721821 +0.1706978383926298 +0.4353036575742548 +0.1892940129140753 +-0.4295084985848316 +-0.3473989545880677 +0.4435622151044095 +0.0941624590142602 +-0.3849578685420871 +0.2389024276979497 +0.2943208010593020 +-0.0362274809434541 +0.4243679720473754 +-0.3762359264311218 +0.3180606145619777 +0.2713166019315632 +0.2693368208868272 +0.0086402753997981 +0.4269028270471269 +-0.3733190290947260 +-0.4283938230962953 +-0.2589789628838844 +-0.3625481389797206 +0.0329062562106652 +-0.2200035981235383 +-0.0604602511155288 +-0.1249554104499918 +-0.1146313072064898 +-0.3747061947846126 +0.0036346266256724 +-0.1363195582438110 +-0.4084030337026803 +-0.0083124963996906 +0.2281448369661329 +0.0734618587685328 +0.1514800805777704 +-0.3966075986473552 +0.3775381572115346 +-0.4952433549280794 +-0.0683859089864315 +0.1829888108652479 +-0.1368110628152865 +0.4759443974204535 +0.2151688867875271 +-0.1366323799288338 +0.0940818450263510 +0.2362900598063589 +0.4109860592102107 +0.0509065377926534 +-0.0743723457294480 +0.4917593780234876 +-0.0292292647156981 +0.1278834045356503 +0.0160759693229782 +-0.3446206593955159 +-0.1047391945810695 +0.1025802475252517 +-0.2743771003190849 +0.2556594391164060 +0.1427779480317762 +0.2723281635324477 +-0.3866985346315779 +-0.2975800258738863 +-0.1381610582231360 +0.1365184884751295 +0.0333639380432589 +-0.3598776604777396 +-0.1560661370148217 +0.4204158061945104 +0.4462037966591541 +0.3409760855592519 +-0.0265579958755900 +-0.0969011024134634 +0.2077669265743015 +-0.4202836143360921 +0.1514308911963711 +-0.2720466660767268 +0.4147729697958245 +0.3685041370249280 +0.1562831521905720 +0.4924199481463124 +0.2750481858557561 +-0.2077563528472477 +0.0801169513594883 +-0.4667818237685556 +-0.3442161854339085 +-0.3663308421537118 +-0.4056120215395324 +-0.2197738586663258 +-0.4340958990906375 +-0.1976202540505025 +-0.3734141694677519 +-0.1712126989967889 +-0.3872108223855507 +0.2921060249068855 +0.0016331756516540 +0.4225916883513958 +0.0829314173719836 +0.2850993153812060 +-0.3407524341001152 +0.3474991423452118 +0.0518405515941514 +-0.3932904551543951 +-0.0528627103829610 +0.3458985887255326 +-0.2005735712984086 +0.1846225021968605 +0.2679838996087345 +0.4036181463180440 +-0.3058238112435574 +0.2224748697753093 +0.0024237737982008 +-0.1657539657459794 +0.0423905138817627 +-0.3826754918623411 +-0.0766441636743460 +0.1984498386545128 +0.3216863253210320 +0.0433877135872228 +-0.0394888413799331 +-0.3014974690970604 +-0.2157242508606816 +0.1371900354379039 +0.0201139486845655 +0.2097815171508399 +0.0906529106561965 +0.1208031849535145 +0.0322266724125800 +0.2263305328814040 +0.4796232969732901 +0.4182174066146056 +-0.1210700348771113 +0.0467990157951281 +0.4515777656724279 +0.3799271016679129 +0.1301423159062844 +-0.0666456972515111 +0.0085161643884144 +0.4580083734844091 +-0.1037290880063436 +0.3639409539357322 +-0.2551715633187774 +0.1617163541433831 +-0.2830115390145049 +-0.3831534859787588 +0.4671660744477497 +0.1817131992600645 +0.2771691654767080 +-0.2566546646269845 +-0.3044250942663178 +-0.0355357187702476 +-0.0233012002049663 +0.3020966184045929 +0.1471249988487286 +0.3663983141380835 +0.0224521055057686 +-0.3262177543536375 +-0.2025811086680487 +0.0194094901570069 +-0.3295235855627400 +-0.4830697372231995 +0.3225604160846552 +-0.3563438104812592 +-0.3535387946156782 +0.1106929247383819 +-0.4621819366063335 +-0.2381327751477958 +-0.1394128400089257 +-0.2811350452538460 +0.3374171988407302 +0.4947507742070121 +-0.4641927132141134 +-0.3689748566839546 +0.4286134144445969 +0.4455554493610040 +-0.2135052795995507 +-0.4303840920305815 +-0.4141018016257020 +-0.2859723033331789 +0.1275053335535775 +0.0554124526262427 +-0.4457125131069371 +-0.2362932511110156 +0.1115599284274751 +-0.4088844702714243 +-0.3595125073535387 +-0.3338719060312667 +0.0781485380672087 +0.0011615243934917 +-0.0482485326709674 +-0.3899007964720745 +-0.1994624301598982 +-0.3587412724750556 +0.2830976284121697 +-0.4004248391025228 +-0.4085047738631087 +-0.2372939147236015 +-0.4384441388468897 +0.1342966168815523 +-0.0187572589928789 +0.1768336652904491 +0.3246954036196973 +0.4748301440095153 +0.1162488256119552 +-0.2707675314887505 +0.0363941137243149 +-0.0991128650149371 +0.3335741639950196 +0.0974652718577376 +-0.2751592461142888 +-0.1177307523155047 +-0.3216021489936504 +-0.4242855760561516 +-0.0105613450758945 +-0.1822100541387832 +0.1691797748538200 +-0.0470452169709437 +0.4530654309254941 +0.1201183259245497 +0.2215054773692434 +-0.0312490104361182 +-0.2815690247688076 +0.2270959939771672 +-0.4464443454140060 +0.2013305336049380 +0.2355760360172161 +-0.2522296588774658 +0.2125801045464030 +0.0262581730027912 +-0.3870773049939188 +-0.3223534074780701 +0.1408617863326520 +0.3700935582670346 +-0.4911928083730346 +0.3389953518944439 +-0.3247301955746712 +-0.2803213224101195 +-0.1373941493197870 +0.1202520310464685 +0.4016036414746993 +0.0516537147578645 +0.1571182115476382 +0.1087754021366627 +-0.1420605012287051 +0.3936780350076884 +-0.1018204620885700 +0.2827779522304362 +0.2076655520278619 +-0.3241347278048842 +0.3332922762430486 +-0.0027710837816300 +-0.2859033599495868 +0.1059529357580395 +-0.3959615229369786 +0.2130301811159451 +0.4174875249780529 +0.3596385375734888 +-0.4545327421338034 +0.1391932981098963 +-0.0548607839074013 +0.0887081588545566 +0.3236264176964948 +0.3936721566251852 +-0.1011969301797096 +0.2183373966652044 +0.3395602189883247 +-0.1771937469909062 +0.2481806329108371 +-0.1292088202978652 +0.3574185863863462 +0.2364208881589807 +-0.2139877429029657 +-0.0683780530449812 +-0.4694735586870622 +-0.1427305621993463 +0.4338321511764129 +-0.1861824499442675 +0.3036336251119043 +0.1244081383965628 +-0.2462794542327109 +0.3759615692583863 +0.2467760023225934 +0.4365154468413415 +-0.3421919529442710 +0.2433043281225773 +-0.1616315819336877 +-0.0943163723501597 +-0.1775509489251817 +0.1443499358660489 +0.4849482703201532 +-0.2793960661255655 +0.2312367091178014 +0.1508569030236597 +0.2368807769143340 +0.3555644826246532 +-0.0136193811648678 +0.1325750545992908 +-0.2601624331799502 +0.4868097318323660 +0.4591328031569991 +-0.0364812330561533 +-0.2783704924079011 +0.0657400050310177 +-0.4008635082624054 +-0.3842344499675913 +0.3714047585491038 +-0.3836140154826781 +-0.1586695908059816 +-0.2616150386513377 +0.2807428201494574 +0.0405867679807470 +-0.1978785471749618 +-0.4315974006762459 +0.4356803899649662 +-0.2150146632468576 +-0.1522338086036579 +-0.4370740001105605 +0.3636399601628809 +-0.3074340064107270 +-0.3572783917605894 +-0.2346957125608959 +-0.2165577343439199 +0.4314489567745914 +0.1917184074705158 +-0.0052795350138906 +-0.1671798559933533 +-0.1879463790169059 +0.2396908833404031 +-0.2150302416914255 +-0.2689249792375412 +-0.2891304846897935 +0.0471572842826460 +0.0511080661030812 +-0.2992138237320177 +0.3429663839534144 +0.0644453013140681 +0.4777554581731687 +0.1950295201953028 +-0.0751509747435608 +0.4540885663630770 +-0.2521104988800208 +0.1519522809975965 +-0.3159046441247709 +-0.0049032759080591 +-0.1941569503852993 +-0.2348569609268105 +0.1353552250362883 +0.3741147374505847 +-0.0616898460133917 +0.4103227120311351 +-0.2661887722010378 +-0.4611225258769961 +-0.4788016118464881 +0.3868674067062638 +-0.4287538753040726 +-0.2658510379249059 +-0.2886008647518910 +0.2113791822048114 +0.2949031811022533 +0.4333814718543431 +-0.1194599802537953 +-0.4473567075136158 +0.2186323016644206 +0.0704057448364516 +0.4065632633526954 +-0.0066222831544424 +-0.1623445101879138 +0.2963478160414786 +-0.0289538877672985 +0.1208651035944479 +-0.2086710985553251 +0.2434253395852687 +-0.1496866455309616 +-0.3309084102393562 +-0.3090370970575732 +-0.3236507543349179 +-0.3431266161650089 +0.0373669639085051 +0.0487271279048312 +-0.2347814430511391 +0.0003409308398880 +-0.0948575133132504 +-0.1868817998096974 +0.2334378461610146 +-0.1132194903030753 +0.1795598344672715 +0.4781644910262695 +-0.2132802249596376 +0.4840747966364163 +-0.1995226540484819 +-0.2728684010263941 +-0.0683660560871115 +-0.3056700654715547 +-0.3928713112804722 +0.2312787032966112 +0.4065616633026685 +-0.4577984164715846 +-0.2074663924441895 +0.0117771636821119 +-0.1803779905532236 +0.0750782535910294 +0.0977879637143374 +-0.4969217263121035 +0.4090507465255502 +0.3027050213017932 +0.2621094165019628 +-0.4512012036017278 +0.0752129355599445 +0.2309757066843222 +0.0151936338318472 +0.1983215724339001 +0.3569968051534240 +-0.2675462186599891 +-0.4939956606335023 +-0.3960304144828217 +0.4177033757494512 +-0.2161810931406475 +-0.3242936891258599 +0.2169576664367757 +-0.3079105349464426 +0.4507119858036748 +0.1157831106300466 +0.1497863167843734 +-0.0120465341627563 +0.0492045539913952 +0.3515889159049316 +0.2367940167798390 +0.4158253212817329 +-0.2567478659939294 +-0.3887837861522414 +0.1368982022979823 +0.2503890052810741 +-0.1889466113661377 +-0.2643251913588168 +-0.1112490853832396 +-0.1474317361447890 +-0.4185081188107830 +0.2949357521091615 +0.0911303526141637 +-0.2800793942203103 +0.4118206940962326 +-0.2694118579405658 +0.0462907006195745 +-0.1346753533825695 +-0.4429389765732479 +-0.0746281580236391 +-0.1712780071041897 +0.4698785749347818 +-0.1162074183856586 +-0.2547114125628080 +-0.2543902604230590 +0.3673643140724830 +-0.1159281585019165 +-0.4321981467693463 +-0.4783168645961738 +-0.1158340809032593 +-0.4676553151642508 +0.0342526995960374 +-0.2863946783944503 +0.2632283545440813 +-0.2484313647639370 +-0.0429399839706212 +-0.0452324947532393 +0.3187620498115149 +0.2560601768748735 +-0.2320339711518779 +-0.3848862010521598 +0.3468344627314129 +-0.0540092598832213 +0.3688504092517723 +0.0219318646141409 +0.2514234218646944 +0.3850646288602388 +-0.4206413982660715 +-0.1386737455853392 +0.2649439307266134 +-0.1975611786747351 +-0.1778768946284623 +-0.1349062715380707 +0.0534746993708656 +-0.3040230224036560 +-0.0908712730237720 +-0.3108819293608925 +-0.2048997028597171 +0.1989587519988958 +0.1767580998888071 +-0.1218870820609192 +0.0315781944165791 +-0.2879014033797035 +0.2552514208858222 +0.4112108675884004 +0.1325913019945780 +-0.1192696123960677 +-0.1128538106763275 +-0.0862928304869174 +-0.2823504557534515 +-0.3106856156601071 +0.3701401944692417 +0.4804922842088835 +-0.1317740693908821 +-0.3875229837775134 +-0.0289117122338689 +-0.0504767270198700 +-0.3917830542619591 +-0.4621242786390752 +0.0642354607384407 +-0.3899251993228969 +-0.1928799919972490 +-0.4139267328402906 +-0.3864168190215051 +0.3919560013964665 +-0.4204819930794194 +-0.3577599406465073 +-0.1954982008499052 +-0.3869741623973425 +-0.3623552823786942 +0.1620428427348600 +0.0964690557344714 +0.2738180212483589 +-0.1926665489763223 +0.2836370348227916 +-0.0686220763562526 +0.2587208043621751 +0.3054369474129578 +0.3263215448898816 +-0.0294117095923658 +-0.0409073633070362 +-0.3492312253550861 +-0.3385674618303157 +-0.0007258165968307 +-0.0387175159709815 +0.3463728936385136 +-0.2273332414838325 +-0.4526259484271105 +0.1152661946112064 +-0.3282176680825865 +0.0319054128048194 +-0.3925703175177694 +-0.2747572247464545 +0.0302022314656027 +0.3547473335356496 +-0.4336718095436818 +-0.1048117626913340 +0.3206052904185863 +0.0464726243951982 +-0.0712013189292148 +0.2965737207573602 +0.4316986343613594 +-0.1831579827621662 +-0.4660269541301890 +0.0202801818738064 +0.2721639704206783 +0.0682557715571042 +0.2419171665956227 +0.3774815375558623 +-0.3559210743535234 +0.3052271462196303 +0.2843537697962057 +-0.3054724122310946 +0.3810282730610096 +-0.2406721892066236 +-0.2751501480276526 +0.1551292650217213 +-0.1450604482873880 +-0.1471357400419280 +-0.3316088013487590 +0.3855659442826312 +0.0739601400580372 +-0.3554201508848819 +0.3016055346951138 +0.1189029157849091 +0.1099384329779106 +0.4889907441601455 +-0.1294563354905829 +-0.2440159832634806 +-0.4487209799474252 +0.0384930923201144 +0.4887132170712494 +0.1833376951851492 +-0.0588598328518872 +-0.4303303346487646 +0.0166026298104477 +-0.0551570871819967 +0.2951406300369281 +-0.1380804812322015 +0.3765851009557281 +-0.3886467579749300 +-0.2242282154961425 +-0.1302006170981579 +0.4707343379153335 +-0.3432201614063657 +0.1046666810083280 +-0.0143995841154274 +-0.4294696723533258 +-0.3871230573985818 +0.1462683629778959 +-0.0899528083064828 +0.1632335331080468 +-0.1721876321986491 +-0.2466370874643446 +-0.0749077857875635 +0.1520964389011924 +0.0740273989848887 +0.0177930063468691 +-0.1820428389393938 +-0.3821849010817293 +-0.0770347789606405 +0.2961101489724633 +0.2574623391410822 +-0.1646251020195443 +0.0151610804490614 +-0.1163036819868593 +-0.1260165489006794 +-0.2751302176979241 +0.1263529613883547 +-0.0374911823411238 +-0.4201272333541782 +0.1824024621899156 +0.2609281543135803 +-0.0499627193978517 +0.0462209965445174 +-0.2226639606888842 +0.1772834811991795 +-0.4951869680419059 +0.1005647333963041 +-0.4455717684427073 +-0.2429360088861878 +0.0266361569783869 +-0.4328098218086536 +0.0514970159081751 +0.2010966386414133 +0.3174246124868261 +0.0576750142468556 +-0.3808841930798244 +-0.3626210249389882 +0.0113842574218206 +-0.0708073688113485 +-0.2334846259948825 +0.0644731100830583 +-0.4962754586790022 +-0.3014879862640236 +0.0404675276027460 +0.1927687735794372 +-0.4312594809053712 +-0.0221795960687550 +-0.4080304931612909 +0.3091134056683726 +0.2085513024009341 +0.3551032424473254 +0.0673222894587168 +-0.3081898268514418 +-0.4827552715548252 +-0.4421017414589613 +-0.2305200671592371 +0.3224736662414506 +0.2652483664245864 +0.1339196902098865 +0.4913718067353091 +0.0285597730759886 +0.2960542799143854 +0.0237926112567608 +-0.0741622218588289 +0.1067592486433189 +0.0478856868260973 +-0.2990253645426337 +-0.1206627870515029 +-0.3770920224735826 +0.1545023965888795 +-0.2261804489262936 +-0.0853595054199847 +0.2736301405510647 +-0.4100168921931841 +-0.1353702995445527 +-0.3345069637189724 +-0.3070521131208309 +0.3830895043926623 +0.1389453593425197 +0.4215794277907529 +-0.4525391923770191 +0.2455061199050282 +0.0210058420620016 +-0.4688232160143532 +-0.2324185142139046 +0.4401526371359209 +0.1715867465043378 +0.3456367133200753 +0.2276366647480302 +-0.0857545648552666 +0.4733471450877078 +-0.0161954842171216 +-0.0016127607867356 +-0.1814528307030844 +0.4795425713308116 +0.0053445870942752 +-0.0682648823090537 +-0.0155799922053039 +0.3590440628148251 +-0.3010705915132975 +-0.0265685403911404 +-0.4801639898520393 +-0.2289315449945785 +0.2185908131632434 +-0.4381078046512047 +-0.0202698792005505 +0.4589351639402076 +-0.0215946951451810 +-0.4484607392450827 +0.3252434521546315 +0.0710601888403317 +0.0505283898619004 +0.0170961713529671 +0.1841624088685818 +-0.0660755478983623 +0.1988317011636084 +-0.4943588791248809 +0.3521421897637346 +-0.1936186102162476 +-0.1152194124344932 +0.1819402715359614 +-0.2805732983061807 +-0.1494850969229413 +-0.4157160403608867 +-0.0874651222729859 +0.0333086267694065 +0.0735243338777470 +-0.3866990981710499 +0.4332310901554849 +0.3061500981860513 +-0.2890419329190420 +-0.0442478914143224 +0.4280769351248651 +-0.0856330554557438 +0.1687123751575741 +0.3171475244049123 +-0.1817694898597245 +-0.4690988751739362 +-0.0024038728340956 +0.0908830058211804 +0.0019821861036969 +-0.0033436927159523 +0.4573041051037562 +-0.4001353843485093 +0.0193393604564319 +0.3676924601836843 +0.3121058203288879 +-0.1509538378362947 +0.1744443527716226 +-0.1663926008176522 +-0.2680071683219820 +0.0053176385845938 +0.3635313509861434 +-0.1364040977288854 +0.4791890548707380 +0.1459105675950397 +0.3912425192676844 +0.4884931551177264 +0.3013408494620968 +0.3536138674096286 +0.3889397105245140 +-0.3574513387776364 +-0.3765728361914334 +-0.0168925344595141 +0.0830906262606326 +-0.4823934875669550 +0.3172092060278197 +-0.4782924439431943 +0.0907902108743418 +0.2262824450769664 +-0.3288139352453789 +-0.3158415742996868 +0.3399519785253313 +-0.3077426901150742 +0.3235526438421128 +-0.4916840745322115 +0.4624080780819501 +-0.4093785088024213 +-0.3470269412649954 +0.1196217377588924 +0.1034092686039084 +0.4281557018093158 +-0.4613200827698101 +-0.3125895221879508 +0.0331682941563185 +0.2728147629612755 +0.2013829239251173 +-0.3568824475121682 +0.4427655219765450 +0.1075805199118314 +-0.0887261971772026 +-0.1976801334254903 +0.4249215412365197 +0.0543501751816330 +-0.2543107759740960 +0.2054845944352374 +0.4166348024173846 +0.1491040354029248 +-0.0252239791271985 +-0.0527472478459782 +0.4270209830962918 +-0.4209453718496108 +0.4260177581212643 +0.4945862779919972 +-0.2664995190658262 +0.2024832766041549 +0.4270794780794804 +0.0043815013282165 +-0.0420103480722319 +-0.2333304221805867 +-0.3863158240823028 +0.0821317568109406 +0.2871453397436495 +-0.0976559797126318 +-0.0571732102747963 +-0.3656118209470124 +-0.0059559417449464 +0.2057471414686156 +-0.3236860257886535 +0.4198845205211597 +-0.2441480344244123 +-0.0644753339036661 +-0.1063159466850181 +-0.1084052321106442 +-0.4959690791827641 +0.1203803527627844 +0.0448165062970943 +-0.2467679669866670 +0.0669367909899098 +0.3811378513299315 +-0.0669798232882459 +0.1987403457043178 +0.3147036442375436 +0.0209460001940921 +-0.2706189632967875 +-0.0893974361682933 +0.1489986250100064 +-0.1523647386562447 +0.0168873650912207 +0.3564286048224697 +0.0537887083181703 +0.3379673700601790 +-0.2202398383023608 +-0.0067764121664250 +-0.1363448232854130 +-0.3732019048707316 +-0.4532042163510592 +0.3152869288360616 +0.4130874770529670 +0.3686486839863338 +-0.3087810187325165 +-0.4689491097910194 +0.4886810948139901 +-0.1436301166356249 +-0.2993774259533292 +0.4903495800666862 +-0.3224661572536315 +-0.1222204785471483 +-0.3520811928619835 +-0.3557551677075167 +-0.3827971297784715 +0.2159120163062261 +-0.3757989831186341 +0.1187324641381081 +-0.4774447491819109 +-0.2532476173635345 +0.0662809660732754 +0.2833987603870364 +0.3841867719282607 +-0.2446725881592685 +0.2312814900058969 +-0.1668304810686829 +-0.1468120325602759 +-0.1739471012685497 +0.0966015458058689 +0.1368506101417425 +0.3829711590945659 +-0.0847059343136057 +-0.0486555775398850 +0.4783904337742555 +0.4694889832741199 +-0.2667074430564769 +0.0927488133727438 +0.3282129395436600 +-0.1603950722626222 +-0.1888886456719570 +0.1608279907803493 +0.4464043478454933 +-0.4634781529592545 +0.1823421375829853 +0.3265872160788240 +0.1999953378434149 +0.4231239195956772 +0.4941508220421779 +0.0064960709934986 +0.2565047011678470 +-0.0071474557178479 +-0.4557508341799158 +-0.0702457413793418 +-0.1868995593664259 +0.1297086926082467 +0.0088797193230705 +-0.0328371936750843 +0.3409949230379481 +-0.0560407582752276 +0.0215291401622927 +0.1563127939154818 +0.3823927816616770 +-0.2450619678916387 +-0.4699395516259589 +-0.0626642456856548 +0.2797094915289946 +-0.3946874602831404 +-0.1342870030665137 +-0.3107167419147843 +0.4503706660576682 +0.3327291367651705 +-0.4063712614867171 +-0.4828194558138840 +0.2159985676327357 +0.3458747167591856 +-0.0529652701466476 +-0.1384946122682338 +-0.0525882763352304 +0.3847306874768228 +-0.2926296431222244 +-0.4162058544415663 +0.3291133748880026 +-0.0960758045904644 +0.2432185189274925 +0.2771752795863403 +0.0218212522234045 +0.2500550862503530 +0.2899087966956031 +-0.0921005164883466 +0.1346962728221569 +0.0120729922348450 +-0.4843740229983498 +0.4194100343389090 +0.0853981144987728 +0.3996544058361938 +-0.3211144692344047 +0.1428103386684728 +0.1126774948031649 +0.0903832248078932 +0.3002779813035363 +0.4570889133549190 +0.2037896313012244 +-0.1023594263097453 +0.3589500509450789 +-0.3158557932545621 +0.1837025169031509 +-0.3463596172185131 +0.1524092842833663 +0.0811038261335163 +0.4410789309881914 +0.3124670166318528 +0.2013940507051653 +0.2959604402893791 +0.3436763287788025 +-0.3136364139962965 +-0.0422268330974836 +0.3230339146314990 +-0.1128813272652142 +-0.3067284974279785 +-0.2912831967215727 +-0.3410966845961976 +0.0204756790057550 +-0.0846121656333283 +-0.2551576901347578 +0.1653147788198980 +0.4407139644152347 +-0.0781310817919282 +0.3925266866600758 +0.4082212586799744 +0.0877846240752774 +-0.2671359748932426 +0.2924289067657115 +0.3719032215409300 +-0.2431288268789565 +-0.4065713748848975 +-0.0935991526426760 +0.1066404880243841 +0.4705823744403960 +-0.1821934575530327 +0.4333125683385073 +0.2607008219582292 +0.1712158729877038 +-0.2250234921963281 +0.1732464282052617 +-0.2900567323674962 +-0.2564189074285982 +0.4518052411502533 +0.4875142339286425 +-0.0390097332278979 +-0.2167081837947541 +0.2837124396582826 +0.4684492166337187 +0.2674223862020693 +0.3387905318540074 +0.0888467219924421 +0.4194311755271211 +0.3126388688622690 +-0.4342140339796026 +-0.0506300225634757 +-0.3603888956783676 +-0.0766855635746546 +-0.1971818741324591 +0.4437320247524976 +0.2375552110648771 +-0.4420067276655968 +-0.3436928676039010 +0.4380430619146506 +-0.2613207043655760 +-0.2873541942011500 +0.2921877217664572 +0.1817661149813998 +-0.2652108971920739 +-0.2060485893026989 +0.2793071332804931 +0.0365928973307806 +-0.4566574903891764 +0.2175931043331778 +0.1461816064514923 +-0.4270636152426459 +0.2087168408145493 +-0.2509618006543571 +-0.2875539891372548 +0.3031535205004233 +0.1834367747901853 +-0.2290778836678564 +-0.2183558448387539 +-0.2455451712764919 +-0.4206708578105904 +0.3026203239782833 +0.3992176612790532 +-0.0354942126684751 +0.4392763092663072 +0.4669160818624946 +0.0935205488093617 +-0.1336231807530487 +-0.4817217555402956 +0.0090179159053722 +0.4527630269629872 +0.1342528026015917 +0.2855845936565192 +-0.0832946442698100 +0.3457755732829202 +-0.4868739726986103 +%% +-0.3650586543330441 +-0.3664034276058044 +-0.1271288268182236 +-0.4434263887263493 +0.2989221107485351 +-0.1321378338692395 +0.0596867981485875 +-0.1608663684151057 +-0.0723150053030882 +-0.1838841864219721 +0.3167200945874217 +0.1950153805643957 +-0.3134044087631319 +0.2708527769210990 +0.2123625803619320 +0.4465444467715145 +-0.3548431126025964 +-0.3359298821722262 +0.0288132468691444 +-0.1771603019322202 +0.3219452765005371 +-0.3490556756018220 +-0.4901954771475220 +-0.1363943955031026 +0.0973491303248710 +-0.2433640836346648 +-0.1085284408867746 +0.2818900887180683 +0.0298681767425926 +-0.3622460785701020 +0.4610707955758955 +-0.1865009625632182 +0.4454116237527719 +-0.1356516653830057 +-0.2443233733490621 +-0.3312968022834062 +-0.0301937509264607 +-0.4356828210114319 +-0.3486448572525362 +-0.1013849904852857 +-0.4979658329259206 +0.0941725085253207 +0.0966337362181545 +-0.1163705502225409 +-0.3883622501104271 +-0.0689836888320066 +-0.2796908676600912 +0.0247427016501139 +-0.2934052366698738 +0.3590294415175803 +-0.2384165134578513 +-0.1580076584608232 +0.0209871378571608 +0.4348498544076438 +-0.1066667508167890 +0.2132359809966036 +-0.1433933368106075 +-0.0387853986691839 +0.0263137966551262 +-0.1984528781498981 +-0.0655292860339033 +0.3336964842995791 +-0.3198984730257013 +-0.0348884391556283 +-0.2225207486315399 +-0.4545239745789881 +-0.3903698179150650 +-0.0740510154223525 +0.4718693382273154 +-0.4651552074141979 +-0.3412538277682801 +-0.0405460836505530 +0.3833284512513764 +-0.4586643005105567 +-0.4417389853256207 +0.3443737279198956 +0.1595105119647875 +0.4795255015059384 +0.2565594789920754 +-0.4830018895850911 +0.3790070548675091 +-0.0363520754427318 +0.3782231039893145 +-0.1197162568961840 +0.2505001429700476 +-0.4059657462891421 +-0.3356351441852829 +0.4639061331548464 +0.0669749743309493 +-0.0749402546461475 +0.2942929511686594 +-0.0633342871903941 +-0.0753140864609409 +-0.1506445250572720 +0.0741268824764744 +-0.3534739304508657 +-0.2866837106881783 +0.2559996990333637 +-0.2321088569165660 +-0.2118576037308617 +0.4663886564524881 +-0.2690198858483315 +-0.2604437511992906 +0.1253820411138985 +-0.4775436578374944 +0.2063739692951070 +0.2998560918519819 +0.1907846497843610 +0.3728563048159124 +-0.1257405452175639 +-0.3544563648467552 +0.0209748956267971 +0.4341216806281327 +-0.1532627832685441 +0.1348891468293104 +0.4909977643861146 +-0.2012397112300117 +-0.1747709887435976 +0.1055281390803471 +0.0766850627114333 +0.2982353372346244 +-0.3903493567734755 +-0.1981440331908960 +0.4489051570040348 +-0.1047670977509940 +-0.0620972638976901 +0.3229215645715848 +-0.0287817434060051 +-0.4736849631115087 +-0.3223248787509880 +0.3867268786789304 +0.3746632720559925 +0.0276407836792805 +0.2776122145396586 +0.1745477304047895 +0.1407529042328762 +0.0321276724555907 +-0.2140203007124491 +0.4952957506752927 +0.3397568231652707 +0.1744534476112900 +0.4304769045913656 +0.3971287821261218 +0.3619972040947571 +-0.1296339871071451 +-0.1036484022424820 +0.3371610078340121 +-0.1586499348644620 +0.4427879336018888 +0.4504104889706287 +0.3987708678194404 +-0.3874286306199949 +0.1569529557604826 +0.0891623618704200 +0.4838170509330592 +-0.0571940200227610 +0.2222354864571913 +0.4540138088113749 +-0.4608121789687296 +-0.3940314658125069 +0.4851941046941377 +0.3069672260726064 +0.4643057110532074 +0.4821093211259458 +-0.4022668362193804 +0.1952749356319133 +-0.2001559608049782 +0.3228700129758153 +-0.2271341415553032 +0.0079498373702066 +0.0063604703084774 +0.3774925207788475 +-0.2178900999809292 +-0.2910962287395601 +-0.3886664739604453 +0.0731522994264293 +-0.2945401904544105 +-0.4002918389447455 +0.2257623628462186 +0.3679363667684028 +-0.1373369352240156 +-0.4946453243883288 +0.2004999264396903 +0.1056923348629711 +0.1400599336706774 +0.4520627800773355 +0.2822415818591221 +0.0165893167899723 +0.1490671972015787 +0.3767661013059145 +-0.1558383631059452 +0.0249828995804126 +%% +0.4424363035310214 +-0.3605759487709181 +-0.1800804113238152 +0.4475482605076305 +0.2529110407603758 +0.3259778697714617 +0.1041960938460277 +-0.3466372089684309 +-0.4374503127993276 +-0.2281378578606078 +0.3910031103464617 +-0.2609256571893643 +-0.3656339831086683 +-0.0760290607040628 +-0.4588373423614888 +0.1558368046570618 +-0.4260280767489409 +-0.3310268633360521 +0.1745415400933488 +0.4498751132286368 +0.4881621738418157 +0.0313833738408521 +-0.4142881870143837 +-0.4180541016388725 +-0.4090825437945552 +-0.1823128861843338 +0.3540602042025437 +0.2407499552981331 +-0.1762710858978620 +-0.3181977088755831 +0.4777618767773157 +-0.1697810446803184 +-0.1277685203163738 +0.2106161585006977 +-0.0305131733315050 +0.1941567759021646 +0.3048778866473214 +0.3283480626632970 +0.1271064708267968 +-0.2605382691901943 +-0.2469335535560673 +0.3442516418428533 +-0.2040267231318595 +-0.2349864396056356 +-0.2486839337156490 +-0.4886791911472256 +-0.0954413719884893 +-0.1880860549218849 +-0.3163815120248741 +-0.1337204990829230 +0.0448823001034440 +0.3426420791249377 +-0.4847168752144872 +0.2111538644205979 +0.0186839142357113 +0.4633349231714418 +-0.1635130463889623 +-0.4267011441212951 +0.3890460572072034 +-0.4895743890109852 +0.3582108485013409 +-0.3946298923342171 +0.2541208441520265 +0.4900634686483679 +%% +-0.2722149411801414 +-0.2699376595163692 +-0.0372122866449914 +-0.2177302149422325 +0.0758078305226627 +-0.3003439709999060 +-0.0336690138983059 +0.4943792719896820 +-0.0377358665829968 +-0.0567221705202945 +0.3850230123909625 +-0.1633989954455181 +0.4392228653340066 +-0.0955531329799825 +0.2520228015470677 +0.1898141941820103 +-0.3549664995255828 +0.1651371873253121 +-0.1033679785704608 +-0.1685862876823516 +-0.0293505404485405 +0.3706532146734764 +-0.3613170078817656 +0.4824061432643633 +0.1896187478927254 +-0.2126776293049475 +-0.0126461838884445 +0.4762124378489822 +0.2875500687587406 +0.0590929455073977 +-0.4168680512126123 +-0.1379107292489044 +0.3501585460851093 +0.1764219799533058 +-0.3415926674238837 +-0.3543808637615671 +0.0024131357778179 +-0.4831774217728143 +-0.3226722772300620 +0.4459783015865997 +-0.3708246347329506 +0.0387690605084077 +0.4859995805692675 +0.0392077948673361 +-0.4220665459792927 +-0.1786287752939952 +-0.2017590557592976 +-0.1009765225174292 +-0.0620079468218391 +0.4786199296286078 +0.4082284253198464 +-0.2924035215148357 +0.3675676014797002 +-0.4693943384086119 +0.1829641993410900 +-0.0970780986023042 +-0.0616482142287308 +0.3033711009282011 +0.0942964367596129 +-0.4828301141714391 +0.0490046368042139 +-0.2022200533180573 +0.4035212962460917 +-0.2903405773022628 +%% +0.2550651691246478 +0.0181829230044624 +-0.3539280210774066 +%% +13.2399997711181641 +2.5899999141693115 +2.8699998855590820 +21.0000000000000000 +118.0000000000000000 +2.7999999523162842 +2.6900000572204590 +0.3899999856948853 +1.8200000524520874 +4.3200001716613770 +1.0399999618530273 +2.9300000667572021 +735.0000000000000000 +13.4799995422363281 +1.8099999427795410 +2.4100000858306885 +20.5000000000000000 +100.0000000000000000 +2.7000000476837158 +2.9800000190734863 +0.2599999904632568 +1.8600000143051147 +5.0999999046325684 +1.0399999618530273 +3.4700000286102295 +920.0000000000000000 +12.3299999237060547 +0.9900000095367432 +1.9500000476837158 +14.8000001907348633 +136.0000000000000000 +1.8999999761581421 +1.8500000238418579 +0.3499999940395355 +2.7599999904632568 +3.4000000953674316 +1.0599999427795410 +2.3099999427795410 +750.0000000000000000 +12.1999998092651367 +3.0299999713897705 +2.3199999332427979 +19.0000000000000000 +96.0000000000000000 +1.2500000000000000 +0.4900000095367432 +0.4000000059604645 +0.7300000190734863 +5.5000000000000000 +0.6600000262260437 +1.8300000429153442 +510.0000000000000000 +13.6800003051757812 +1.8300000429153442 +2.3599998950958252 +17.2000007629394531 +104.0000000000000000 +2.4200000762939453 +2.6900000572204590 +0.4199999868869781 +1.9700000286102295 +3.8399999141693115 +1.2300000190734863 +2.8699998855590820 +990.0000000000000000 +13.4499998092651367 +3.7000000476837158 +2.5999999046325684 +23.0000000000000000 +111.0000000000000000 +1.7000000476837158 +0.9200000166893005 +0.4300000071525574 +1.4600000381469727 +10.6800003051757812 +0.8500000238418579 +1.5599999427795410 +695.0000000000000000 +13.4099998474121094 +3.8399999141693115 +2.1199998855590820 +18.7999992370605469 +90.0000000000000000 +2.4500000476837158 +2.6800000667572021 +0.2700000107288361 +1.4800000190734863 +4.2800002098083496 +0.9100000262260437 +3.0000000000000000 +1035.0000000000000000 +12.8500003814697266 +1.6000000238418579 +2.5199999809265137 +17.7999992370605469 +95.0000000000000000 +2.4800000190734863 +2.3699998855590820 +0.2599999904632568 +1.4600000381469727 +3.9300000667572021 +1.0900000333786011 +3.6300001144409180 +1015.0000000000000000 +13.7299995422363281 +4.3600001335144043 +2.2599999904632568 +22.5000000000000000 +88.0000000000000000 +1.2799999713897705 +0.4699999988079071 +0.5199999809265137 +1.1499999761581421 +6.6199998855590820 +0.7799999713897705 +1.7500000000000000 +520.0000000000000000 +11.9600000381469727 +1.0900000333786011 +2.2999999523162842 +21.0000000000000000 +101.0000000000000000 +3.3800001144409180 +2.1400001049041748 +0.1299999952316284 +1.6499999761581421 +3.2100000381469727 +0.9900000095367432 +3.1300001144409180 +886.0000000000000000 +11.8699998855590820 +4.3099999427795410 +2.3900001049041748 +21.0000000000000000 +82.0000000000000000 +2.8599998950958252 +3.0299999713897705 +0.2099999934434891 +2.9100000858306885 +2.7999999523162842 +0.7500000000000000 +3.6400001049041748 +380.0000000000000000 +12.0699996948242188 +2.1600000858306885 +2.1700000762939453 +21.0000000000000000 +85.0000000000000000 +2.5999999046325684 +2.6500000953674316 +0.3700000047683716 +1.3500000238418579 +2.7599999904632568 +0.8600000143051147 +3.2799999713897705 +378.0000000000000000 +14.3900003433227539 +1.8700000047683716 +2.4500000476837158 +14.6000003814697266 +96.0000000000000000 +2.5000000000000000 +2.5199999809265137 +0.3000000119209290 +1.9800000190734863 +5.2500000000000000 +1.0199999809265137 +3.5799999237060547 +1290.0000000000000000 +13.6300001144409180 +1.8099999427795410 +2.7000000476837158 +17.2000007629394531 +112.0000000000000000 +2.8499999046325684 +2.9100000858306885 +0.3000000119209290 +1.4600000381469727 +7.3000001907348633 +1.2799999713897705 +2.8800001144409180 +1310.0000000000000000 +13.1700000762939453 +5.1900000572204590 +2.3199999332427979 +22.0000000000000000 +93.0000000000000000 +1.7400000095367432 +0.6299999952316284 +0.6100000143051147 +1.5499999523162842 +7.9000000953674316 +0.6000000238418579 +1.4800000190734863 +725.0000000000000000 +12.0799999237060547 +1.8300000429153442 +2.3199999332427979 +18.5000000000000000 +81.0000000000000000 +1.6000000238418579 +1.5000000000000000 +0.5199999809265137 +1.6399999856948853 +2.4000000953674316 +1.0800000429153442 +2.2699999809265137 +480.0000000000000000 +12.8100004196166992 +2.3099999427795410 +2.4000000953674316 +24.0000000000000000 +98.0000000000000000 +1.1499999761581421 +1.0900000333786011 +0.2700000107288361 +0.8299999833106995 +5.6999998092651367 +0.6600000262260437 +1.3600000143051147 +560.0000000000000000 +13.5600004196166992 +1.7100000381469727 +2.3099999427795410 +16.2000007629394531 +117.0000000000000000 +3.1500000953674316 +3.2899999618530273 +0.3400000035762787 +2.3399999141693115 +6.1300001144409180 +0.9499999880790710 +3.3800001144409180 +795.0000000000000000 +12.5299997329711914 +5.5100002288818359 +2.6400001049041748 +25.0000000000000000 +96.0000000000000000 +1.7899999618530273 +0.6000000238418579 +0.6299999952316284 +1.1000000238418579 +5.0000000000000000 +0.8199999928474426 +1.6900000572204590 +515.0000000000000000 +14.0200004577636719 +1.6799999475479126 +2.2100000381469727 +16.0000000000000000 +96.0000000000000000 +2.6500000953674316 +2.3299999237060547 +0.2599999904632568 +1.9800000190734863 +4.6999998092651367 +1.0399999618530273 +3.5899999141693115 +1035.0000000000000000 +11.8400001525878906 +2.8900001049041748 +2.2300000190734863 +18.0000000000000000 +112.0000000000000000 +1.7200000286102295 +1.3200000524520874 +0.4300000071525574 +0.9499999880790710 +2.6500000953674316 +0.9599999785423279 +2.5199999809265137 +500.0000000000000000 +14.2200002670288086 +3.9900000095367432 +2.5099999904632568 +13.1999998092651367 +128.0000000000000000 +3.0000000000000000 +3.0399999618530273 +0.2000000029802322 +2.0799999237060547 +5.0999999046325684 +0.8899999856948853 +3.5299999713897705 +760.0000000000000000 +13.8299999237060547 +1.5700000524520874 +2.6199998855590820 +20.0000000000000000 +115.0000000000000000 +2.9500000476837158 +3.4000000953674316 +0.4000000059604645 +1.7200000286102295 +6.5999999046325684 +1.1299999952316284 +2.5699999332427979 +1130.0000000000000000 +12.2500000000000000 +1.7300000190734863 +2.1199998855590820 +19.0000000000000000 +80.0000000000000000 +1.6499999761581421 +2.0299999713897705 +0.3700000047683716 +1.6299999952316284 +3.4000000953674316 +1.0000000000000000 +3.1700000762939453 +510.0000000000000000 +12.2500000000000000 +4.7199997901916504 +2.5399999618530273 +21.0000000000000000 +89.0000000000000000 +1.3799999952316284 +0.4699999988079071 +0.5299999713897705 +0.8000000119209290 +3.8499999046325684 +0.7500000000000000 +1.2699999809265137 +720.0000000000000000 +12.3699998855590820 +1.2100000381469727 +2.5599999427795410 +18.1000003814697266 +98.0000000000000000 +2.4200000762939453 +2.6500000953674316 +0.3700000047683716 +2.0799999237060547 +4.5999999046325684 +1.1900000572204590 +2.2999999523162842 +678.0000000000000000 +12.6700000762939453 +0.9800000190734863 +2.2400000095367432 +18.0000000000000000 +99.0000000000000000 +2.2000000476837158 +1.9400000572204590 +0.3000000119209290 +1.4600000381469727 +2.6199998855590820 +1.2300000190734863 +3.1600000858306885 +450.0000000000000000 +13.5000000000000000 +1.8099999427795410 +2.6099998950958252 +20.0000000000000000 +96.0000000000000000 +2.5299999713897705 +2.6099998950958252 +0.2800000011920929 +1.6599999666213989 +3.5199999809265137 +1.1200000047683716 +3.8199999332427979 +845.0000000000000000 +11.6499996185302734 +1.6699999570846558 +2.6199998855590820 +26.0000000000000000 +88.0000000000000000 +1.9199999570846558 +1.6100000143051147 +0.4000000059604645 +1.3400000333786011 +2.5999999046325684 +1.3600000143051147 +3.2100000381469727 +562.0000000000000000 +13.0699996948242188 +1.5000000000000000 +2.0999999046325684 +15.5000000000000000 +98.0000000000000000 +2.4000000953674316 +2.6400001049041748 +0.2800000011920929 +1.3700000047683716 +3.7000000476837158 +1.1799999475479126 +2.6900000572204590 +1020.0000000000000000 +14.7500000000000000 +1.7300000190734863 +2.3900001049041748 +11.3999996185302734 +91.0000000000000000 +3.0999999046325684 +3.6900000572204590 +0.4300000071525574 +2.8099999427795410 +5.4000000953674316 +1.2500000000000000 +2.7300000190734863 +1150.0000000000000000 +11.4600000381469727 +3.7400000095367432 +1.8200000524520874 +19.5000000000000000 +107.0000000000000000 +3.1800000667572021 +2.5799999237060547 +0.2399999946355820 +3.5799999237060547 +2.9000000953674316 +0.7500000000000000 +2.8099999427795410 +562.0000000000000000 +13.2700004577636719 +4.2800002098083496 +2.2599999904632568 +20.0000000000000000 +120.0000000000000000 +1.5900000333786011 +0.6899999976158142 +0.4300000071525574 +1.3500000238418579 +10.1999998092651367 +0.5899999737739563 +1.5599999427795410 +835.0000000000000000 +12.2899999618530273 +3.1700000762939453 +2.2100000381469727 +18.0000000000000000 +88.0000000000000000 +2.8499999046325684 +2.9900000095367432 +0.4499999880790710 +2.8099999427795410 +2.2999999523162842 +1.4199999570846558 +2.8299999237060547 +406.0000000000000000 +13.8999996185302734 +1.6799999475479126 +2.1199998855590820 +16.0000000000000000 +101.0000000000000000 +3.0999999046325684 +3.3900001049041748 +0.2099999934434891 +2.1400001049041748 +6.0999999046325684 +0.9100000262260437 +3.3299999237060547 +985.0000000000000000 +12.4200000762939453 +2.5499999523162842 +2.2699999809265137 +22.0000000000000000 +90.0000000000000000 +1.6799999475479126 +1.8400000333786011 +0.6600000262260437 +1.4199999570846558 +2.7000000476837158 +0.8600000143051147 +3.2999999523162842 +315.0000000000000000 +13.4899997711181641 +3.5899999141693115 +2.1900000572204590 +19.5000000000000000 +88.0000000000000000 +1.6200000047683716 +0.4799999892711639 +0.5799999833106995 +0.8799999952316284 +5.6999998092651367 +0.8100000023841858 +1.8200000524520874 +580.0000000000000000 +14.3800001144409180 +1.8700000047683716 +2.3800001144409180 +12.0000000000000000 +102.0000000000000000 +3.2999999523162842 +3.6400001049041748 +0.2899999916553497 +2.9600000381469727 +7.5000000000000000 +1.2000000476837158 +3.0000000000000000 +1547.0000000000000000 +14.8299999237060547 +1.6399999856948853 +2.1700000762939453 +14.0000000000000000 +97.0000000000000000 +2.7999999523162842 +2.9800000190734863 +0.2899999916553497 +1.9800000190734863 +5.1999998092651367 +1.0800000429153442 +2.8499999046325684 +1045.0000000000000000 +12.3699998855590820 +0.9399999976158142 +1.3600000143051147 +10.6000003814697266 +88.0000000000000000 +1.9800000190734863 +0.5699999928474426 +0.2800000011920929 +0.4199999868869781 +1.9500000476837158 +1.0499999523162842 +1.8200000524520874 +520.0000000000000000 +13.3400001525878906 +0.9399999976158142 +2.3599998950958252 +17.0000000000000000 +110.0000000000000000 +2.5299999713897705 +1.2999999523162842 +0.5500000119209290 +0.4199999868869781 +3.1700000762939453 +1.0199999809265137 +1.9299999475479126 +750.0000000000000000 +12.6000003814697266 +1.3400000333786011 +1.8999999761581421 +18.5000000000000000 +88.0000000000000000 +1.4500000476837158 +1.3600000143051147 +0.2899999916553497 +1.3500000238418579 +2.4500000476837158 +1.0399999618530273 +2.7699999809265137 +562.0000000000000000 +14.0600004196166992 +2.1500000953674316 +2.6099998950958252 +17.6000003814697266 +121.0000000000000000 +2.5999999046325684 +2.5099999904632568 +0.3100000023841858 +1.2500000000000000 +5.0500001907348633 +1.0599999427795410 +3.5799999237060547 +1295.0000000000000000 +14.1599998474121094 +2.5099999904632568 +2.4800000190734863 +20.0000000000000000 +91.0000000000000000 +1.6799999475479126 +0.6999999880790710 +0.4399999976158142 +1.2400000095367432 +9.6999998092651367 +0.6200000047683716 +1.7100000381469727 +660.0000000000000000 +12.3699998855590820 +1.1699999570846558 +1.9199999570846558 +19.6000003814697266 +78.0000000000000000 +2.1099998950958252 +2.0000000000000000 +0.2700000107288361 +1.0399999618530273 +4.6799998283386230 +1.1200000047683716 +3.4800000190734863 +510.0000000000000000 +13.8699998855590820 +1.8999999761581421 +2.7999999523162842 +19.3999996185302734 +107.0000000000000000 +2.9500000476837158 +2.9700000286102295 +0.3700000047683716 +1.7599999904632568 +4.5000000000000000 +1.2500000000000000 +3.4000000953674316 +915.0000000000000000 +14.3000001907348633 +1.9199999570846558 +2.7200000286102295 +20.0000000000000000 +120.0000000000000000 +2.7999999523162842 +3.1400001049041748 +0.3300000131130219 +1.9700000286102295 +6.1999998092651367 +1.0700000524520874 +2.6500000953674316 +1280.0000000000000000 +12.5100002288818359 +1.2400000095367432 +2.2500000000000000 +17.5000000000000000 +85.0000000000000000 +2.0000000000000000 +0.5799999833106995 +0.6000000238418579 +1.2500000000000000 +5.4499998092651367 +0.7500000000000000 +1.5099999904632568 +650.0000000000000000 +13.0500001907348633 +1.7699999809265137 +2.0999999046325684 +17.0000000000000000 +107.0000000000000000 +3.0000000000000000 +3.0000000000000000 +0.2800000011920929 +2.0299999713897705 +5.0399999618530273 +0.8799999952316284 +3.3499999046325684 +885.0000000000000000 +13.1599998474121094 +3.5699999332427979 +2.1500000953674316 +21.0000000000000000 +102.0000000000000000 +1.5000000000000000 +0.5500000119209290 +0.4300000071525574 +1.2999999523162842 +4.0000000000000000 +0.6000000238418579 +1.6799999475479126 +830.0000000000000000 +13.7500000000000000 +1.7300000190734863 +2.4100000858306885 +16.0000000000000000 +89.0000000000000000 +2.5999999046325684 +2.7599999904632568 +0.2899999916553497 +1.8099999427795410 +5.5999999046325684 +1.1499999761581421 +2.9000000953674316 +1320.0000000000000000 +12.7899999618530273 +2.6700000762939453 +2.4800000190734863 +22.0000000000000000 +112.0000000000000000 +1.4800000190734863 +1.3600000143051147 +0.2399999946355820 +1.2599999904632568 +10.8000001907348633 +0.4799999892711639 +1.4700000286102295 +480.0000000000000000 +12.5100002288818359 +1.7300000190734863 +1.9800000190734863 +20.5000000000000000 +85.0000000000000000 +2.2000000476837158 +1.9199999570846558 +0.3199999928474426 +1.4800000190734863 +2.9400000572204590 +1.0399999618530273 +3.5699999332427979 +672.0000000000000000 +13.6899995803833008 +3.2599999904632568 +2.5399999618530273 +20.0000000000000000 +107.0000000000000000 +1.8300000429153442 +0.5600000023841858 +0.5000000000000000 +0.8000000119209290 +5.8800001144409180 +0.9599999785423279 +1.8200000524520874 +680.0000000000000000 +13.7100000381469727 +1.8600000143051147 +2.3599998950958252 +16.6000003814697266 +101.0000000000000000 +2.6099998950958252 +2.8800001144409180 +0.2700000107288361 +1.6900000572204590 +3.7999999523162842 +1.1100000143051147 +4.0000000000000000 +1035.0000000000000000 +14.1300001144409180 +4.0999999046325684 +2.7400000095367432 +24.5000000000000000 +96.0000000000000000 +2.0499999523162842 +0.7599999904632568 +0.5600000023841858 +1.3500000238418579 +9.1999998092651367 +0.6100000143051147 +1.6000000238418579 +560.0000000000000000 +12.0799999237060547 +2.0799999237060547 +1.7000000476837158 +17.5000000000000000 +97.0000000000000000 +2.2300000190734863 +2.1700000762939453 +0.2599999904632568 +1.3999999761581421 +3.2999999523162842 +1.2699999809265137 +2.9600000381469727 +710.0000000000000000 +12.0799999237060547 +1.1299999952316284 +2.5099999904632568 +24.0000000000000000 +78.0000000000000000 +2.0000000000000000 +1.5800000429153442 +0.4000000059604645 +1.3999999761581421 +2.2000000476837158 +1.3099999427795410 +2.7200000286102295 +630.0000000000000000 +12.9300003051757812 +3.7999999523162842 +2.6500000953674316 +18.6000003814697266 +102.0000000000000000 +2.4100000858306885 +2.4100000858306885 +0.2500000000000000 +1.9800000190734863 +4.5000000000000000 +1.0299999713897705 +3.5199999809265137 +770.0000000000000000 +12.9600000381469727 +3.4500000476837158 +2.3499999046325684 +18.5000000000000000 +106.0000000000000000 +1.3899999856948853 +0.6999999880790710 +0.4000000059604645 +0.9399999976158142 +5.2800002098083496 +0.6800000071525574 +1.7500000000000000 +675.0000000000000000 +12.5200004577636719 +2.4300000667572021 +2.1700000762939453 +21.0000000000000000 +88.0000000000000000 +2.5499999523162842 +2.2699999809265137 +0.2599999904632568 +1.2200000286102295 +2.0000000000000000 +0.8999999761581421 +2.7799999713897705 +325.0000000000000000 +11.8199996948242188 +1.4700000286102295 +1.9900000095367432 +20.7999992370605469 +86.0000000000000000 +1.9800000190734863 +1.6000000238418579 +0.3000000119209290 +1.5299999713897705 +1.9500000476837158 +0.9499999880790710 +3.3299999237060547 +495.0000000000000000 +13.7399997711181641 +1.6699999570846558 +2.2500000000000000 +16.3999996185302734 +118.0000000000000000 +2.5999999046325684 +2.9000000953674316 +0.2099999934434891 +1.6200000047683716 +5.8499999046325684 +0.9200000166893005 +3.2000000476837158 +1060.0000000000000000 +13.3000001907348633 +1.7200000286102295 +2.1400001049041748 +17.0000000000000000 +94.0000000000000000 +2.4000000953674316 +2.1900000572204590 +0.2700000107288361 +1.3500000238418579 +3.9500000476837158 +1.0199999809265137 +2.7699999809265137 +1285.0000000000000000 +13.5000000000000000 +3.1199998855590820 +2.6199998855590820 +24.0000000000000000 +123.0000000000000000 +1.3999999761581421 +1.5700000524520874 +0.2199999988079071 +1.2500000000000000 +8.6000003814697266 +0.5899999737739563 +1.2999999523162842 +500.0000000000000000 +12.9899997711181641 +1.6699999570846558 +2.5999999046325684 +30.0000000000000000 +139.0000000000000000 +3.2999999523162842 +2.8900001049041748 +0.2099999934434891 +1.9600000381469727 +3.3499999046325684 +1.3099999427795410 +3.5000000000000000 +985.0000000000000000 +13.8800001144409180 +5.0399999618530273 +2.2300000190734863 +20.0000000000000000 +80.0000000000000000 +0.9800000190734863 +0.3400000035762787 +0.4000000059604645 +0.6800000071525574 +4.9000000953674316 +0.5799999833106995 +1.3300000429153442 +415.0000000000000000 +12.6000003814697266 +2.4600000381469727 +2.2000000476837158 +18.5000000000000000 +94.0000000000000000 +1.6200000047683716 +0.6600000262260437 +0.6299999952316284 +0.9399999976158142 +7.0999999046325684 +0.7300000190734863 +1.5800000429153442 +695.0000000000000000 +14.3699998855590820 +1.9500000476837158 +2.5000000000000000 +16.7999992370605469 +113.0000000000000000 +3.8499999046325684 +3.4900000095367432 +0.2399999946355820 +2.1800000667572021 +7.8000001907348633 +0.8600000143051147 +3.4500000476837158 +1480.0000000000000000 +13.0799999237060547 +3.9000000953674316 +2.3599998950958252 +21.5000000000000000 +113.0000000000000000 +1.4099999666213989 +1.3899999856948853 +0.3400000035762787 +1.1399999856948853 +9.3999996185302734 +0.5699999928474426 +1.3300000429153442 +550.0000000000000000 +13.6700000762939453 +1.2500000000000000 +1.9199999570846558 +18.0000000000000000 +94.0000000000000000 +2.0999999046325684 +1.7899999618530273 +0.3199999928474426 +0.7300000190734863 +3.7999999523162842 +1.2300000190734863 +2.4600000381469727 +630.0000000000000000 +12.2100000381469727 +1.1900000572204590 +1.7500000000000000 +16.7999992370605469 +151.0000000000000000 +1.8500000238418579 +1.2799999713897705 +0.1400000005960464 +2.5000000000000000 +2.8499999046325684 +1.2799999713897705 +3.0699999332427979 +718.0000000000000000 +12.3400001525878906 +2.4500000476837158 +2.4600000381469727 +21.0000000000000000 +98.0000000000000000 +2.5599999427795410 +2.1099998950958252 +0.3400000035762787 +1.3099999427795410 +2.7999999523162842 +0.8000000119209290 +3.3800001144409180 +438.0000000000000000 +12.3599996566772461 +3.8299999237060547 +2.3800001144409180 +21.0000000000000000 +88.0000000000000000 +2.2999999523162842 +0.9200000166893005 +0.5000000000000000 +1.0399999618530273 +7.6500000953674316 +0.5600000023841858 +1.5800000429153442 +520.0000000000000000 +12.9300003051757812 +2.8099999427795410 +2.7000000476837158 +21.0000000000000000 +96.0000000000000000 +1.5399999618530273 +0.5000000000000000 +0.5299999713897705 +0.7500000000000000 +4.5999999046325684 +0.7699999809265137 +2.3099999427795410 +600.0000000000000000 +13.3199996948242188 +3.2400000095367432 +2.3800001144409180 +21.5000000000000000 +92.0000000000000000 +1.9299999475479126 +0.7599999904632568 +0.4499999880790710 +1.2500000000000000 +8.4200000762939453 +0.5500000119209290 +1.6200000047683716 +650.0000000000000000 +13.5600004196166992 +1.7300000190734863 +2.4600000381469727 +20.5000000000000000 +116.0000000000000000 +2.9600000381469727 +2.7799999713897705 +0.2000000029802322 +2.4500000476837158 +6.2500000000000000 +0.9800000190734863 +3.0299999713897705 +1120.0000000000000000 +12.7700004577636719 +3.4300000667572021 +1.9800000190734863 +16.0000000000000000 +80.0000000000000000 +1.6299999952316284 +1.2500000000000000 +0.4300000071525574 +0.8299999833106995 +3.4000000953674316 +0.6999999880790710 +2.1199998855590820 +372.0000000000000000 +12.8800001144409180 +2.9900000095367432 +2.4000000953674316 +20.0000000000000000 +104.0000000000000000 +1.2999999523162842 +1.2200000286102295 +0.2399999946355820 +0.8299999833106995 +5.4000000953674316 +0.7400000095367432 +1.4199999570846558 +530.0000000000000000 +14.1999998092651367 +1.7599999904632568 +2.4500000476837158 +15.1999998092651367 +112.0000000000000000 +3.2699999809265137 +3.3900001049041748 +0.3400000035762787 +1.9700000286102295 +6.7500000000000000 +1.0499999523162842 +2.8499999046325684 +1450.0000000000000000 +14.1199998855590820 +1.4800000190734863 +2.3199999332427979 +16.7999992370605469 +95.0000000000000000 +2.2000000476837158 +2.4300000667572021 +0.2599999904632568 +1.5700000524520874 +5.0000000000000000 +1.1699999570846558 +2.8199999332427979 +1280.0000000000000000 +13.8800001144409180 +1.8899999856948853 +2.5899999141693115 +15.0000000000000000 +101.0000000000000000 +3.2500000000000000 +3.5599999427795410 +0.1700000017881393 +1.7000000476837158 +5.4299998283386230 +0.8799999952316284 +3.5599999427795410 +1095.0000000000000000 +13.0500001907348633 +1.7300000190734863 +2.0399999618530273 +12.3999996185302734 +92.0000000000000000 +2.7200000286102295 +3.2699999809265137 +0.1700000017881393 +2.9100000858306885 +7.1999998092651367 +1.1200000047683716 +2.9100000858306885 +1150.0000000000000000 +12.8500003814697266 +3.2699999809265137 +2.5799999237060547 +22.0000000000000000 +106.0000000000000000 +1.6499999761581421 +0.6000000238418579 +0.6000000238418579 +0.9599999785423279 +5.5799999237060547 +0.8700000047683716 +2.1099998950958252 +570.0000000000000000 +12.0799999237060547 +1.3300000429153442 +2.2999999523162842 +23.6000003814697266 +70.0000000000000000 +2.2000000476837158 +1.5900000333786011 +0.4199999868869781 +1.3799999952316284 +1.7400000095367432 +1.0700000524520874 +3.2100000381469727 +625.0000000000000000 +12.4499998092651367 +3.0299999713897705 +2.6400001049041748 +27.0000000000000000 +97.0000000000000000 +1.8999999761581421 +0.5799999833106995 +0.6299999952316284 +1.1399999856948853 +7.5000000000000000 +0.6700000166893005 +1.7300000190734863 +880.0000000000000000 +13.9399995803833008 +1.7300000190734863 +2.2699999809265137 +17.3999996185302734 +108.0000000000000000 +2.8800001144409180 +3.5399999618530273 +0.3199999928474426 +2.0799999237060547 +8.8999996185302734 +1.1200000047683716 +3.0999999046325684 +1260.0000000000000000 +13.2299995422363281 +3.2999999523162842 +2.2799999713897705 +18.5000000000000000 +98.0000000000000000 +1.7999999523162842 +0.8299999833106995 +0.6100000143051147 +1.8700000047683716 +10.5200004577636719 +0.5600000023841858 +1.5099999904632568 +675.0000000000000000 +13.0500001907348633 +5.8000001907348633 +2.1300001144409180 +21.5000000000000000 +86.0000000000000000 +2.6199998855590820 +2.6500000953674316 +0.3000000119209290 +2.0099999904632568 +2.5999999046325684 +0.7300000190734863 +3.0999999046325684 +380.0000000000000000 +11.6599998474121094 +1.8799999952316284 +1.9199999570846558 +16.0000000000000000 +97.0000000000000000 +1.6100000143051147 +1.5700000524520874 +0.3400000035762787 +1.1499999761581421 +3.7999999523162842 +1.2300000190734863 +2.1400001049041748 +428.0000000000000000 +13.3900003433227539 +1.7699999809265137 +2.6199998855590820 +16.1000003814697266 +93.0000000000000000 +2.8499999046325684 +2.9400000572204590 +0.3400000035762787 +1.4500000476837158 +4.8000001907348633 +0.9200000166893005 +3.2200000286102295 +1195.0000000000000000 +12.0399999618530273 +4.3000001907348633 +2.3800001144409180 +22.0000000000000000 +80.0000000000000000 +2.0999999046325684 +1.7500000000000000 +0.4199999868869781 +1.3500000238418579 +2.5999999046325684 +0.7900000214576721 +2.5699999332427979 +580.0000000000000000 +13.1599998474121094 +2.3599998950958252 +2.6700000762939453 +18.6000003814697266 +101.0000000000000000 +2.7999999523162842 +3.2400000095367432 +0.3000000119209290 +2.8099999427795410 +5.6799998283386230 +1.0299999713897705 +3.1700000762939453 +1185.0000000000000000 +13.4799995422363281 +1.6699999570846558 +2.6400001049041748 +22.5000000000000000 +89.0000000000000000 +2.5999999046325684 +1.1000000238418579 +0.5199999809265137 +2.2899999618530273 +11.7500000000000000 +0.5699999928474426 +1.7799999713897705 +620.0000000000000000 +13.6400003433227539 +3.0999999046325684 +2.5599999427795410 +15.1999998092651367 +116.0000000000000000 +2.7000000476837158 +3.0299999713897705 +0.1700000017881393 +1.6599999666213989 +5.0999999046325684 +0.9599999785423279 +3.3599998950958252 +845.0000000000000000 +12.4700002670288086 +1.5199999809265137 +2.2000000476837158 +19.0000000000000000 +162.0000000000000000 +2.5000000000000000 +2.2699999809265137 +0.3199999928474426 +3.2799999713897705 +2.5999999046325684 +1.1599999666213989 +2.6300001144409180 +937.0000000000000000 +13.1999998092651367 +1.7799999713897705 +2.1400001049041748 +11.1999998092651367 +100.0000000000000000 +2.6500000953674316 +2.7599999904632568 +0.2599999904632568 +1.2799999713897705 +4.3800001144409180 +1.0499999523162842 +3.4000000953674316 +1050.0000000000000000 +12.8699998855590820 +4.6100001335144043 +2.4800000190734863 +21.5000000000000000 +86.0000000000000000 +1.7000000476837158 +0.6499999761581421 +0.4699999988079071 +0.8600000143051147 +7.6500000953674316 +0.5400000214576721 +1.8600000143051147 +625.0000000000000000 +13.0500001907348633 +1.6499999761581421 +2.5499999523162842 +18.0000000000000000 +98.0000000000000000 +2.4500000476837158 +2.4300000667572021 +0.2899999916553497 +1.4400000572204590 +4.2500000000000000 +1.1200000047683716 +2.5099999904632568 +1105.0000000000000000 +12.2899999618530273 +1.6100000143051147 +2.2100000381469727 +20.3999996185302734 +103.0000000000000000 +1.1000000238418579 +1.0199999809265137 +0.3700000047683716 +1.4600000381469727 +3.0499999523162842 +0.9060000181198120 +1.8200000524520874 +870.0000000000000000 +13.7200002670288086 +1.4299999475479126 +2.5000000000000000 +16.7000007629394531 +108.0000000000000000 +3.4000000953674316 +3.6700000762939453 +0.1899999976158142 +2.0399999618530273 +6.8000001907348633 +0.8899999856948853 +2.8699998855590820 +1285.0000000000000000 +12.3699998855590820 +1.1299999952316284 +2.1600000858306885 +19.0000000000000000 +87.0000000000000000 +3.5000000000000000 +3.0999999046325684 +0.1899999976158142 +1.8700000047683716 +4.4499998092651367 +1.2200000286102295 +2.8699998855590820 +420.0000000000000000 +13.0500001907348633 +2.0499999523162842 +3.2200000286102295 +25.0000000000000000 +124.0000000000000000 +2.6300001144409180 +2.6800000667572021 +0.4699999988079071 +1.9199999570846558 +3.5799999237060547 +1.1299999952316284 +3.2000000476837158 +830.0000000000000000 +12.8400001525878906 +2.9600000381469727 +2.6099998950958252 +24.0000000000000000 +101.0000000000000000 +2.3199999332427979 +0.6000000238418579 +0.5299999713897705 +0.8100000023841858 +4.9200000762939453 +0.8899999856948853 +2.1500000953674316 +590.0000000000000000 +13.3599996566772461 +2.5599999427795410 +2.3499999046325684 +20.0000000000000000 +89.0000000000000000 +1.3999999761581421 +0.5000000000000000 +0.3700000047683716 +0.6399999856948853 +5.5999999046325684 +0.6999999880790710 +2.4700000286102295 +780.0000000000000000 +11.8100004196166992 +2.1199998855590820 +2.7400000095367432 +21.5000000000000000 +134.0000000000000000 +1.6000000238418579 +0.9900000095367432 +0.1400000005960464 +1.5599999427795410 +2.5000000000000000 +0.9499999880790710 +2.2599999904632568 +625.0000000000000000 +11.0299997329711914 +1.5099999904632568 +2.2000000476837158 +21.5000000000000000 +85.0000000000000000 +2.4600000381469727 +2.1700000762939453 +0.5199999809265137 +2.0099999904632568 +1.8999999761581421 +1.7100000381469727 +2.8699998855590820 +407.0000000000000000 +11.4099998474121094 +0.7400000095367432 +2.5000000000000000 +21.0000000000000000 +88.0000000000000000 +2.4800000190734863 +2.0099999904632568 +0.4199999868869781 +1.4400000572204590 +3.0799999237060547 +1.1000000238418579 +2.3099999427795410 +434.0000000000000000 +12.6999998092651367 +3.8699998855590820 +2.4000000953674316 +23.0000000000000000 +101.0000000000000000 +2.8299999237060547 +2.5499999523162842 +0.4300000071525574 +1.9500000476837158 +2.5699999332427979 +1.1900000572204590 +3.1300001144409180 +463.0000000000000000 +14.3400001525878906 +1.6799999475479126 +2.7000000476837158 +25.0000000000000000 +98.0000000000000000 +2.7999999523162842 +1.3099999427795410 +0.5299999713897705 +2.7000000476837158 +13.0000000000000000 +0.5699999928474426 +1.9600000381469727 +660.0000000000000000 +13.5799999237060547 +1.6599999666213989 +2.3599998950958252 +19.1000003814697266 +106.0000000000000000 +2.8599998950958252 +3.1900000572204590 +0.2199999988079071 +1.9500000476837158 +6.9000000953674316 +1.0900000333786011 +2.8800001144409180 +1515.0000000000000000 +12.3299999237060547 +1.1000000238418579 +2.2799999713897705 +16.0000000000000000 +101.0000000000000000 +2.0499999523162842 +1.0900000333786011 +0.6299999952316284 +0.4099999964237213 +3.2699999809265137 +1.2500000000000000 +1.6699999570846558 +680.0000000000000000 +11.5600004196166992 +2.0499999523162842 +3.2300000190734863 +28.5000000000000000 +119.0000000000000000 +3.1800000667572021 +5.0799999237060547 +0.4699999988079071 +1.8700000047683716 +6.0000000000000000 +0.9300000071525574 +3.6900000572204590 +465.0000000000000000 +12.3699998855590820 +1.0700000524520874 +2.0999999046325684 +18.5000000000000000 +88.0000000000000000 +3.5199999809265137 +3.7500000000000000 +0.2399999946355820 +1.9500000476837158 +4.5000000000000000 +1.0399999618530273 +2.7699999809265137 +660.0000000000000000 +11.6400003433227539 +2.0599999427795410 +2.4600000381469727 +21.6000003814697266 +84.0000000000000000 +1.9500000476837158 +1.6900000572204590 +0.4799999892711639 +1.3500000238418579 +2.7999999523162842 +1.0000000000000000 +2.7500000000000000 +680.0000000000000000 +12.1599998474121094 +1.6100000143051147 +2.3099999427795410 +22.7999992370605469 +90.0000000000000000 +1.7799999713897705 +1.6900000572204590 +0.4300000071525574 +1.5599999427795410 +2.4500000476837158 +1.3300000429153442 +2.2599999904632568 +495.0000000000000000 +13.6199998855590820 +4.9499998092651367 +2.3499999046325684 +20.0000000000000000 +92.0000000000000000 +2.0000000000000000 +0.8000000119209290 +0.4699999988079071 +1.0199999809265137 +4.4000000953674316 +0.9100000262260437 +2.0499999523162842 +550.0000000000000000 +11.4499998092651367 +2.4000000953674316 +2.4200000762939453 +20.0000000000000000 +96.0000000000000000 +2.9000000953674316 +2.7899999618530273 +0.3199999928474426 +1.8300000429153442 +3.2500000000000000 +0.8000000119209290 +3.3900001049041748 +625.0000000000000000 +13.2799997329711914 +1.6399999856948853 +2.8399999141693115 +15.5000000000000000 +110.0000000000000000 +2.5999999046325684 +2.6800000667572021 +0.3400000035762787 +1.3600000143051147 +4.5999999046325684 +1.0900000333786011 +2.7799999713897705 +880.0000000000000000 +12.8599996566772461 +1.3500000238418579 +2.3199999332427979 +18.0000000000000000 +122.0000000000000000 +1.5099999904632568 +1.2500000000000000 +0.2099999934434891 +0.9399999976158142 +4.0999999046325684 +0.7599999904632568 +1.2899999618530273 +630.0000000000000000 +12.6400003433227539 +1.3600000143051147 +2.0199999809265137 +16.7999992370605469 +100.0000000000000000 +2.0199999809265137 +1.4099999666213989 +0.5299999713897705 +0.6200000047683716 +5.7500000000000000 +0.9800000190734863 +1.5900000333786011 +450.0000000000000000 +12.5799999237060547 +1.2899999618530273 +2.0999999046325684 +20.0000000000000000 +103.0000000000000000 +1.4800000190734863 +0.5799999833106995 +0.5299999713897705 +1.3999999761581421 +7.5999999046325684 +0.5799999833106995 +1.5499999523162842 +640.0000000000000000 +13.0299997329711914 +0.8999999761581421 +1.7100000381469727 +16.0000000000000000 +86.0000000000000000 +1.9500000476837158 +2.0299999713897705 +0.2399999946355820 +1.4600000381469727 +4.5999999046325684 +1.1900000572204590 +2.4800000190734863 +392.0000000000000000 +13.2399997711181641 +3.9800000190734863 +2.2899999618530273 +17.5000000000000000 +103.0000000000000000 +2.6400001049041748 +2.6300001144409180 +0.3199999928474426 +1.6599999666213989 +4.3600001335144043 +0.8199999928474426 +3.0000000000000000 +680.0000000000000000 +12.4200000762939453 +1.6100000143051147 +2.1900000572204590 +22.5000000000000000 +108.0000000000000000 +2.0000000000000000 +2.0899999141693115 +0.3400000035762787 +1.6100000143051147 +2.0599999427795410 +1.0599999427795410 +2.9600000381469727 +345.0000000000000000 +13.3999996185302734 +4.5999999046325684 +2.8599998950958252 +25.0000000000000000 +112.0000000000000000 +1.9800000190734863 +0.9599999785423279 +0.2700000107288361 +1.1100000143051147 +8.5000000000000000 +0.6700000166893005 +1.9199999570846558 +630.0000000000000000 +14.2299995422363281 +1.7100000381469727 +2.4300000667572021 +15.6000003814697266 +127.0000000000000000 +2.7999999523162842 +3.0599999427795410 +0.2800000011920929 +2.2899999618530273 +5.6399998664855957 +1.0399999618530273 +3.9200000762939453 +1065.0000000000000000 +13.7600002288818359 +1.5299999713897705 +2.7000000476837158 +19.5000000000000000 +132.0000000000000000 +2.9500000476837158 +2.7400000095367432 +0.5000000000000000 +1.3500000238418579 +5.4000000953674316 +1.2500000000000000 +3.0000000000000000 +1235.0000000000000000 +11.6099996566772461 +1.3500000238418579 +2.7000000476837158 +20.0000000000000000 +94.0000000000000000 +2.7400000095367432 +2.9200000762939453 +0.2899999916553497 +2.4900000095367432 +2.6500000953674316 +0.9599999785423279 +3.2599999904632568 +680.0000000000000000 +13.7700004577636719 +1.8999999761581421 +2.6800000667572021 +17.1000003814697266 +115.0000000000000000 +3.0000000000000000 +2.7899999618530273 +0.3899999856948853 +1.6799999475479126 +6.3000001907348633 +1.1299999952316284 +2.9300000667572021 +1375.0000000000000000 +11.7899999618530273 +2.1300001144409180 +2.7799999713897705 +28.5000000000000000 +92.0000000000000000 +2.1300001144409180 +2.2400000095367432 +0.5799999833106995 +1.7599999904632568 +3.0000000000000000 +0.9700000286102295 +2.4400000572204590 +466.0000000000000000 +12.2899999618530273 +2.8299999237060547 +2.2200000286102295 +18.0000000000000000 +88.0000000000000000 +2.4500000476837158 +2.2500000000000000 +0.2500000000000000 +1.9900000095367432 +2.1500000953674316 +1.1499999761581421 +3.2999999523162842 +290.0000000000000000 +12.4300003051757812 +1.5299999713897705 +2.2899999618530273 +21.5000000000000000 +86.0000000000000000 +2.7400000095367432 +3.1500000953674316 +0.3899999856948853 +1.7699999809265137 +3.9400000572204590 +0.6899999976158142 +2.8399999141693115 +352.0000000000000000 +12.7700004577636719 +2.3900001049041748 +2.2799999713897705 +19.5000000000000000 +86.0000000000000000 +1.3899999856948853 +0.5099999904632568 +0.4799999892711639 +0.6399999856948853 +9.8999986648559570 +0.5699999928474426 +1.6299999952316284 +470.0000000000000000 +11.7600002288818359 +2.6800000667572021 +2.9200000762939453 +20.0000000000000000 +103.0000000000000000 +1.7500000000000000 +2.0299999713897705 +0.6000000238418579 +1.0499999523162842 +3.7999999523162842 +1.2300000190734863 +2.5000000000000000 +607.0000000000000000 +13.1099996566772461 +1.0099999904632568 +1.7000000476837158 +15.0000000000000000 +78.0000000000000000 +2.9800000190734863 +3.1800000667572021 +0.2599999904632568 +2.2799999713897705 +5.3000001907348633 +1.1200000047683716 +3.1800000667572021 +502.0000000000000000 +12.6899995803833008 +1.5299999713897705 +2.2599999904632568 +20.7000007629394531 +80.0000000000000000 +1.3799999952316284 +1.4600000381469727 +0.5799999833106995 +1.6200000047683716 +3.0499999523162842 +0.9599999785423279 +2.0599999427795410 +495.0000000000000000 +12.2899999618530273 +1.4099999666213989 +1.9800000190734863 +16.0000000000000000 +85.0000000000000000 +2.5499999523162842 +2.5000000000000000 +0.2899999916553497 +1.7699999809265137 +2.9000000953674316 +1.2300000190734863 +2.7400000095367432 +428.0000000000000000 +13.7100000381469727 +5.6500000953674316 +2.4500000476837158 +20.5000000000000000 +95.0000000000000000 +1.6799999475479126 +0.6100000143051147 +0.5199999809265137 +1.0599999427795410 +7.6999998092651367 +0.6399999856948853 +1.7400000095367432 +740.0000000000000000 +12.8199996948242188 +3.3699998855590820 +2.2999999523162842 +19.5000000000000000 +88.0000000000000000 +1.4800000190734863 +0.6600000262260437 +0.4000000059604645 +0.9700000286102295 +10.2600002288818359 +0.7200000286102295 +1.7500000000000000 +685.0000000000000000 +12.3699998855590820 +1.6299999952316284 +2.2999999523162842 +24.5000000000000000 +88.0000000000000000 +2.2200000286102295 +2.4500000476837158 +0.4000000059604645 +1.8999999761581421 +2.1199998855590820 +0.8899999856948853 +2.7799999713897705 +342.0000000000000000 +14.0600004196166992 +1.6299999952316284 +2.2799999713897705 +16.0000000000000000 +126.0000000000000000 +3.0000000000000000 +3.1700000762939453 +0.2399999946355820 +2.0999999046325684 +5.6500000953674316 +1.0900000333786011 +3.7100000381469727 +780.0000000000000000 +13.5200004577636719 +3.1700000762939453 +2.7200000286102295 +23.5000000000000000 +97.0000000000000000 +1.5499999523162842 +0.5199999809265137 +0.5000000000000000 +0.5500000119209290 +4.3499999046325684 +0.8899999856948853 +2.0599999427795410 +520.0000000000000000 +14.2200002670288086 +1.7000000476837158 +2.2999999523162842 +16.2999992370605469 +118.0000000000000000 +3.2000000476837158 +3.0000000000000000 +0.2599999904632568 +2.0299999713897705 +6.3800001144409180 +0.9399999976158142 +3.3099999427795410 +970.0000000000000000 +12.6999998092651367 +3.5499999523162842 +2.3599998950958252 +21.5000000000000000 +106.0000000000000000 +1.7000000476837158 +1.2000000476837158 +0.1700000017881393 +0.8399999737739563 +5.0000000000000000 +0.7799999713897705 +1.2899999618530273 +600.0000000000000000 +12.1700000762939453 +1.4500000476837158 +2.5299999713897705 +19.0000000000000000 +104.0000000000000000 +1.8899999856948853 +1.7500000000000000 +0.4499999880790710 +1.0299999713897705 +2.9500000476837158 +1.4500000476837158 +2.2300000190734863 +355.0000000000000000 +13.8299999237060547 +1.6499999761581421 +2.5999999046325684 +17.2000007629394531 +94.0000000000000000 +2.4500000476837158 +2.9900000095367432 +0.2199999988079071 +2.2899999618530273 +5.5999999046325684 +1.2400000095367432 +3.3699998855590820 +1265.0000000000000000 +13.1700000762939453 +2.5899999141693115 +2.3699998855590820 +20.0000000000000000 +120.0000000000000000 +1.6499999761581421 +0.6800000071525574 +0.5299999713897705 +1.4600000381469727 +9.3000001907348633 +0.6000000238418579 +1.6200000047683716 +840.0000000000000000 +13.4899997711181641 +1.6599999666213989 +2.2400000095367432 +24.0000000000000000 +87.0000000000000000 +1.8799999952316284 +1.8400000333786011 +0.2700000107288361 +1.0299999713897705 +3.7400000095367432 +0.9800000190734863 +2.7799999713897705 +472.0000000000000000 +13.0500001907348633 +3.8599998950958252 +2.3199999332427979 +22.5000000000000000 +85.0000000000000000 +1.6499999761581421 +1.5900000333786011 +0.6100000143051147 +1.6200000047683716 +4.8000001907348633 +0.8399999737739563 +2.0099999904632568 +515.0000000000000000 +13.5799999237060547 +2.5799999237060547 +2.6900000572204590 +24.5000000000000000 +105.0000000000000000 +1.5499999523162842 +0.8399999737739563 +0.3899999856948853 +1.5399999618530273 +8.6599998474121094 +0.7400000095367432 +1.7999999523162842 +750.0000000000000000 +11.8400001525878906 +0.8899999856948853 +2.5799999237060547 +18.0000000000000000 +94.0000000000000000 +2.2000000476837158 +2.2100000381469727 +0.2199999988079071 +2.3499999046325684 +3.0499999523162842 +0.7900000214576721 +3.0799999237060547 +520.0000000000000000 +12.4200000762939453 +4.4299998283386230 +2.7300000190734863 +26.5000000000000000 +102.0000000000000000 +2.2000000476837158 +2.1300001144409180 +0.4300000071525574 +1.7100000381469727 +2.0799999237060547 +0.9200000166893005 +3.1199998855590820 +365.0000000000000000 +12.0000000000000000 +1.5099999904632568 +2.4200000762939453 +22.0000000000000000 +86.0000000000000000 +1.4500000476837158 +1.2500000000000000 +0.5000000000000000 +1.6299999952316284 +3.5999999046325684 +1.0499999523162842 +2.6500000953674316 +450.0000000000000000 +12.7200002670288086 +1.8099999427795410 +2.2000000476837158 +18.7999992370605469 +86.0000000000000000 +2.2000000476837158 +2.5299999713897705 +0.2599999904632568 +1.7699999809265137 +3.9000000953674316 +1.1599999666213989 +3.1400001049041748 +714.0000000000000000 +13.1099996566772461 +1.8999999761581421 +2.7500000000000000 +25.5000000000000000 +116.0000000000000000 +2.2000000476837158 +1.2799999713897705 +0.2599999904632568 +1.5599999427795410 +7.0999999046325684 +0.6100000143051147 +1.3300000429153442 +425.0000000000000000 +12.0000000000000000 +0.9200000166893005 +2.0000000000000000 +19.0000000000000000 +86.0000000000000000 +2.4200000762939453 +2.2599999904632568 +0.3000000119209290 +1.4299999475479126 +2.5000000000000000 +1.3799999952316284 +3.1199998855590820 +278.0000000000000000 +13.3999996185302734 +3.9100000858306885 +2.4800000190734863 +23.0000000000000000 +102.0000000000000000 +1.7999999523162842 +0.7500000000000000 +0.4300000071525574 +1.4099999666213989 +7.3000001907348633 +0.6999999880790710 +1.5599999427795410 +750.0000000000000000 +13.8400001525878906 +4.1199998855590820 +2.3800001144409180 +19.5000000000000000 +89.0000000000000000 +1.7999999523162842 +0.8299999833106995 +0.4799999892711639 +1.5599999427795410 +9.0100002288818359 +0.5699999928474426 +1.6399999856948853 +480.0000000000000000 +14.3800001144409180 +3.5899999141693115 +2.2799999713897705 +16.0000000000000000 +102.0000000000000000 +3.2500000000000000 +3.1700000762939453 +0.2700000107288361 +2.1900000572204590 +4.9000000953674316 +1.0399999618530273 +3.4400000572204590 +1065.0000000000000000 +13.7299995422363281 +1.5000000000000000 +2.7000000476837158 +22.5000000000000000 +101.0000000000000000 +3.0000000000000000 +3.2500000000000000 +0.2899999916553497 +2.3800001144409180 +5.6999998092651367 +1.1900000572204590 +2.7100000381469727 +1285.0000000000000000 +13.2899999618530273 +1.9700000286102295 +2.6800000667572021 +16.7999992370605469 +102.0000000000000000 +3.0000000000000000 +3.2300000190734863 +0.3100000023841858 +1.6599999666213989 +6.0000000000000000 +1.0700000524520874 +2.8399999141693115 +1270.0000000000000000 +13.8199996948242188 +1.7500000000000000 +2.4200000762939453 +14.0000000000000000 +111.0000000000000000 +3.8800001144409180 +3.7400000095367432 +0.3199999928474426 +1.8700000047683716 +7.0500001907348633 +1.0099999904632568 +3.2599999904632568 +1190.0000000000000000 +%% +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.0000000000000000 \ No newline at end of file diff --git a/examples/machsuite/backprop/run_test.py b/examples/machsuite/backprop/run_test.py new file mode 100644 index 0000000000..c203d317c9 --- /dev/null +++ b/examples/machsuite/backprop/run_test.py @@ -0,0 +1,46 @@ +import allo +import numpy as np +from backprop import backprop + +def parse_data(file_name): + data_arrays = [] + current_array = [] + + with open(file_name, 'r') as f: + for line in f: + if line.strip() == '%%': + if current_array: + data_arrays.append(current_array) + current_array = [] + else: + num = float(line.strip()) + current_array.append(num) + + data_arrays.append(current_array) + + return data_arrays + +if __name__ == "__main__": + input_data = parse_data("input.data") + check_data = parse_data("check.data") + + np_input = [np.asarray(lst) for lst in input_data] + np_check = [np.asarray(lst) for lst in check_data] + + [weights1, weights2, weights3, biases1, biases2, biases3, training_data, training_targets] = np_input + [weights1_check, weights2_check, weights3_check, biases1_check, biases2_check, biases3_check] = np_check + + s = allo.customize(backprop) + mod = s.build(target="llvm") + + mod(weights1, weights2, weights3, biases1, biases2, biases3, training_data, training_targets) + + # TODO: Machsuite's benchmark for backprop does not match check.data either + # Allo's backprop matches output for Machsuite's backprop + + # np.testing.assert_allclose(weights1, weights1_check, rtol=1e-5, atol=1e-5) + # np.testing.assert_allclose(weights2, weights2_check, rtol=1e-5, atol=1e-5) + # np.testing.assert_allclose(weights3, weights3_check, rtol=1e-5, atol=1e-5) + # np.testing.assert_allclose(biases1, biases1_check, rtol=1e-5, atol=1e-5) + # np.testing.assert_allclose(biases2, biases2_check, rtol=1e-5, atol=1e-5) + # np.testing.assert_allclose(biases3, biases3_check, rtol=1e-5, atol=1e-5) \ No newline at end of file diff --git a/examples/machsuite/bfs/bfs_bulk_allo.py b/examples/machsuite/bfs/bfs_bulk_allo.py new file mode 100644 index 0000000000..62320d61cd --- /dev/null +++ b/examples/machsuite/bfs/bfs_bulk_allo.py @@ -0,0 +1,66 @@ +import allo +from allo.ir.types import int32 +import numpy as np +from support import read_data_from_file, write_data_to_file, write_data_to_file_2 +from generate import generate_random_graph +from bfs_bulk_python import bfs_bulk_test + +N_NODES:int32 = 256 +N_NODES_2:int32 = 512 +N_EDGES:int32 = 4096 +N_LEVELS:int32 = 10 +MAX_LEVEL:int32 = 999999 + + +def bfs_bulk(nodes: int32[N_NODES_2], edges: int32[N_EDGES], starting_node: int32) -> (int32[N_NODES], int32[N_LEVELS]): + level: int32[N_NODES] = MAX_LEVEL + level_counts: int32[N_LEVELS] = 0 + level[starting_node] = 0 + level_counts[0] = 1 + + for horizon in range(N_LEVELS): + cnt: int32 = 0 + for n in range(N_NODES): + if level[n] == horizon: + tmp_begin: int32 = nodes[2 * n] + tmp_end: int32 = nodes[2 * n + 1] + for e in range(tmp_begin, tmp_end): + tmp_dst:int32 = edges[e] + tmp_level:int32 = level[tmp_dst] + + if tmp_level == MAX_LEVEL: + level[tmp_dst] = horizon + 1 + cnt += 1 + + if cnt != 0: + level_counts[horizon + 1] = cnt + + return level, level_counts + + + +s = allo.customize(bfs_bulk) +mod = s.build(target="llvm") + +#Prepare Input Data +# generated_data = generate_random_graph() +# write_data_to_file(generated_data) +input_data = read_data_from_file("input.data") + +np_A = np.array(input_data['nodes'],np.int32) +np_B = np.array(input_data['edges'],np.int32) +np_C = input_data['starting_node'][0] + +(D, F)= mod(np_A, np_B, np_C) + +write_data_to_file_2(F,"check.data") + +(golden_D, golden_F) = bfs_bulk_test(np_A, np_B, np_C) + + +print(F) +print(golden_F) + +np.testing.assert_allclose(D, golden_D, rtol=1e-5, atol=1e-5) +np.testing.assert_allclose(F, golden_F, rtol=1e-5, atol=1e-5) + diff --git a/examples/machsuite/bfs/bfs_bulk_python.py b/examples/machsuite/bfs/bfs_bulk_python.py new file mode 100644 index 0000000000..4f7eeeb740 --- /dev/null +++ b/examples/machsuite/bfs/bfs_bulk_python.py @@ -0,0 +1,57 @@ + +N_NODES = 256 +N_EDGES = 4096 +N_LEVELS = 10 +MAX_LEVEL = 999999 + +def bfs_bulk_test(nodes, edges, starting_node): + level = [MAX_LEVEL] * N_NODES + level_counts = [0] * N_LEVELS + + level[starting_node] = 0 + level_counts[0] = 1 + + for horizon in range(N_LEVELS): + cnt = 0 + # Add unmarked neighbors of the current horizon to the next horizon + for n in range(N_NODES): + if level[n] == horizon: + tmp_begin = nodes[2 * n] + tmp_end = nodes[2 * n + 1] + for e in range(tmp_begin, tmp_end): + tmp_dst = edges[e] + tmp_level = level[tmp_dst] + + if tmp_level == MAX_LEVEL: # Unmarked + level[tmp_dst] = horizon + 1 + cnt += 1 + + if cnt == 0: + break + else: + level_counts[horizon + 1] = cnt + + return level, level_counts + +# 0 +# / \ +# 1 2 +# / \ / \ +# 3 4 5 +# \ / \ / \ +# 6 7 8 + +# Define nodes and edges for the example graph +# nodes = [ 0,2,2,4,4,6,6,7,7,9,9,11,11,11,11,11,11,11] +# edges = [ 1,2,3,4,4,5,6,6,7,7,8] + +# Run BFS starting from node 0 +# level, level_counts = bfs_bulk_test(nodes, edges, 0) + + +# Print the results +# print("Node Levels:", level) +# print("Level Counts:", level_counts) + + + diff --git a/examples/machsuite/bfs/bfs_queue_allo.py b/examples/machsuite/bfs/bfs_queue_allo.py new file mode 100644 index 0000000000..997ba45c79 --- /dev/null +++ b/examples/machsuite/bfs/bfs_queue_allo.py @@ -0,0 +1,71 @@ +import allo +from allo.ir.types import int32 +import numpy as np +from support import read_data_from_file, write_data_to_file, write_data_to_file_2 +from generate import generate_random_graph +from bfs_queue_python import bfs_queue_test + +N_NODES:int32 = 256 +N_NODES_2:int32 = 512 +N_EDGES:int32 = 4096 +N_LEVELS:int32 = 10 +MAX_LEVEL:int32 = 999999 + + + +def bfs_queue(nodes: int32[N_NODES_2], edges: int32[N_EDGES], starting_node: int32) -> (int32[N_NODES], int32[N_LEVELS]): + level: int32[N_NODES] = MAX_LEVEL + level_counts: int32[N_LEVELS] = 0 + queue: int32[N_NODES] = 0 + front: int32 = 0 + rear: int32 = 0 + + level[starting_node] = 0 + level_counts[0] = 1 + queue[rear] = starting_node + rear = (rear + 1) % N_NODES + + + while front != rear: + n: int32 = queue[front] + front = (front + 1) % N_NODES + tmp_begin: int32 = nodes[2 * n] + tmp_end: int32 = nodes[2 * n + 1] + for e in range(tmp_begin, tmp_end): + tmp_dst: int32 = edges[e] + tmp_level: int32 = level[tmp_dst] + + if tmp_level == MAX_LEVEL: + tmp_level = level[n] + 1 + level[tmp_dst] = tmp_level + level_counts[tmp_level] += 1 + queue[rear] = tmp_dst + rear = (rear + 1) % N_NODES + + return level, level_counts + +s = allo.customize(bfs_queue) +mod = s.build(target="llvm") + +#Prepare Input Data +# generated_data = generate_random_graph() +# write_data_to_file(generated_data) +input_data = read_data_from_file("input.data") + +np_A = np.array(input_data['nodes'],np.int32) +np_B = np.array(input_data['edges'],np.int32) +np_C = input_data['starting_node'][0] + +(D, F)= mod(np_A, np_B, np_C) + +#Write output to a file +write_data_to_file_2(F,"check2.data") + +(golden_D, golden_F) = bfs_queue_test(np_A, np_B, np_C) + + +print(F) +print(golden_F) + +np.testing.assert_allclose(D, golden_D, rtol=1e-5, atol=1e-5) +np.testing.assert_allclose(F, golden_F, rtol=1e-5, atol=1e-5) diff --git a/examples/machsuite/bfs/bfs_queue_python.py b/examples/machsuite/bfs/bfs_queue_python.py new file mode 100644 index 0000000000..f8e92bae05 --- /dev/null +++ b/examples/machsuite/bfs/bfs_queue_python.py @@ -0,0 +1,57 @@ + +N_NODES = 256 +N_EDGES = 4096 +N_LEVELS = 10 +MAX_LEVEL = 999999 + +def bfs_queue_test(nodes, edges, starting_node): + level = [MAX_LEVEL] * N_NODES + level_counts = [0] * N_LEVELS + queue = [0] * N_NODES + front = 0 + rear = 0 + + level[starting_node] = 0 + level_counts[0] = 1 + queue[rear] = starting_node + rear = (rear + 1) % N_NODES + + + while front != rear: + n = queue[front] + front = (front + 1) % N_NODES + tmp_begin = nodes[2 * n] + tmp_end = nodes[2 * n + 1] + for e in range(tmp_begin, tmp_end): + tmp_dst = edges[e] + tmp_level = level[tmp_dst] + + if tmp_level == MAX_LEVEL: + tmp_level = level[n] + 1 + level[tmp_dst] = tmp_level + level_counts[tmp_level] += 1 + queue[rear] = tmp_dst + rear = (rear + 1) % N_NODES + + return level, level_counts + +# 0 +# / \ +# 1 2 +# / \ / \ +# 3 4 5 +# \ / \ / \ +# 6 7 8 + +# Define nodes and edges for the example graph +# nodes = [ 0,2,2,4,4,6,6,7,7,9,9,11,11,11,11,11,11,11] +# edges = [ 1,2,3,4,4,5,6,6,7,7,8] + + +# Run BFS starting from node 0 +# level, level_counts = bfs_queue_test(nodes, edges, 0) + +# Print the results +# print("Node Levels:", level) +# print("Level Counts:", level_counts) + diff --git a/examples/machsuite/bfs/check.data b/examples/machsuite/bfs/check.data new file mode 100644 index 0000000000..b8f932203e --- /dev/null +++ b/examples/machsuite/bfs/check.data @@ -0,0 +1,11 @@ +%% +1 +2 +39 +177 +12 +0 +0 +0 +0 +0 diff --git a/examples/machsuite/bfs/check2.data b/examples/machsuite/bfs/check2.data new file mode 100644 index 0000000000..b8f932203e --- /dev/null +++ b/examples/machsuite/bfs/check2.data @@ -0,0 +1,11 @@ +%% +1 +2 +39 +177 +12 +0 +0 +0 +0 +0 diff --git a/examples/machsuite/bfs/generate.py b/examples/machsuite/bfs/generate.py new file mode 100644 index 0000000000..b1ede40131 --- /dev/null +++ b/examples/machsuite/bfs/generate.py @@ -0,0 +1,82 @@ +import random +from support import write_data_to_file +# Constants +A = 57 +B = 19 +C = 19 +D = 5 + + +N_NODES = 256 # Adjust the size of the graph +N_EDGES = 4096 +SCALE = 8 +MAX_WEIGHT = 10 +MIN_WEIGHT = 1 + +class Node: + def __init__(self): + self.edge_begin = 0 + self.edge_end = 0 + +class Edge: + def __init__(self, dst): + self.dst = dst + + +def generate_random_graph(): + adjmat = [[0] * N_NODES for _ in range(N_NODES)] + + e = 0 + while e < (N_EDGES // 2): + r, c = 0, 0 + for scale in range(SCALE, 0, -1): + rint = random.randint(0, 99) + if rint >= (A + B): + r += (1 << (scale - 1)) + if ((rint >= A) and (rint < (A + B))) or (rint >= (A + B + C)): + c += (1 << (scale - 1)) + + if (adjmat[r][c] == 0) and (r != c): + adjmat[r][c] = 1 + adjmat[c][r] = 1 + e += 1 + + + # Shuffle matrix + for s in range(N_NODES): + rint = random.randint(0, N_NODES - 1) + # Swap row s with row rint + adjmat[s], adjmat[rint] = adjmat[rint], adjmat[s] + # Swap col s with col rint + for r in range(N_NODES): + adjmat[r][s], adjmat[r][rint] = adjmat[r][rint], adjmat[r][s] + + + data = {'nodes': [Node() for _ in range(N_NODES)], 'edges': []} + # Scan rows for edge list lengths, and fill edges while we're at it + e = 0 + for r in range(N_NODES): + data['nodes'][r].edge_begin = 0 + data['nodes'][r].edge_end = 0 + for c in range(N_NODES): + if adjmat[r][c]: + data['nodes'][r].edge_end += 1 + data['edges'].append(Edge(dst=c)) + e += 1 + + for r in range(1, N_NODES): + data['nodes'][r].edge_begin = data['nodes'][r - 1].edge_end + data['nodes'][r].edge_end += data['nodes'][r - 1].edge_end + + # Pick Starting Node + starting_node = random.randint(0, N_NODES - 1) + while data['nodes'][starting_node].edge_end - data['nodes'][starting_node].edge_begin < 2: + starting_node = random.randint(0, N_NODES - 1) + data['starting_node'] = starting_node + + return data + + +if __name__ == "__main__": + generated_data = generate_random_graph() + write_data_to_file(generated_data) diff --git a/examples/machsuite/bfs/input.data b/examples/machsuite/bfs/input.data new file mode 100644 index 0000000000..97890ba214 --- /dev/null +++ b/examples/machsuite/bfs/input.data @@ -0,0 +1,4612 @@ +%% +87 +%% +0 +14 +14 +63 +63 +117 +117 +164 +164 +164 +164 +166 +166 +169 +169 +169 +169 +176 +176 +176 +176 +201 +201 +220 +220 +228 +228 +278 +278 +334 +334 +341 +341 +345 +345 +388 +388 +414 +414 +460 +460 +464 +464 +516 +516 +517 +517 +521 +521 +536 +536 +563 +563 +567 +567 +573 +573 +580 +580 +580 +580 +598 +598 +598 +598 +605 +605 +704 +704 +709 +709 +736 +736 +779 +779 +781 +781 +789 +789 +798 +798 +820 +820 +823 +823 +845 +845 +852 +852 +858 +858 +871 +871 +873 +873 +876 +876 +895 +895 +1044 +1044 +1052 +1052 +1055 +1055 +1068 +1068 +1069 +1069 +1072 +1072 +1123 +1123 +1124 +1124 +1130 +1130 +1151 +1151 +1154 +1154 +1159 +1159 +1159 +1159 +1163 +1163 +1213 +1213 +1229 +1229 +1238 +1238 +1244 +1244 +1245 +1245 +1248 +1248 +1289 +1289 +1289 +1289 +1317 +1317 +1320 +1320 +1335 +1335 +1336 +1336 +1359 +1359 +1383 +1383 +1383 +1383 +1433 +1433 +1440 +1440 +1447 +1447 +1453 +1453 +1480 +1480 +1483 +1483 +1578 +1578 +1586 +1586 +1611 +1611 +1613 +1613 +1711 +1711 +1762 +1762 +1782 +1782 +1782 +1782 +1802 +1802 +1805 +1805 +1829 +1829 +1835 +1835 +1848 +1848 +1854 +1854 +1864 +1864 +1873 +1873 +1873 +1873 +1879 +1879 +1887 +1887 +1889 +1889 +1893 +1893 +1900 +1900 +1900 +1900 +1943 +1943 +1953 +1953 +1953 +1953 +1960 +1960 +1971 +1971 +1978 +1978 +1989 +1989 +2007 +2007 +2015 +2015 +2062 +2062 +2078 +2078 +2097 +2097 +2143 +2143 +2164 +2164 +2194 +2194 +2279 +2279 +2280 +2280 +2281 +2281 +2283 +2283 +2288 +2288 +2294 +2294 +2297 +2297 +2298 +2298 +2301 +2301 +2304 +2304 +2305 +2305 +2351 +2351 +2352 +2352 +2373 +2373 +2376 +2376 +2378 +2378 +2468 +2468 +2484 +2484 +2490 +2490 +2592 +2592 +2608 +2608 +2618 +2618 +2657 +2657 +2749 +2749 +2756 +2756 +2778 +2778 +2787 +2787 +2790 +2790 +2790 +2790 +2812 +2812 +2818 +2818 +2825 +2825 +2825 +2825 +2836 +2836 +2838 +2838 +2846 +2846 +2852 +2852 +2853 +2853 +2875 +2875 +2878 +2878 +2880 +2880 +2882 +2882 +2883 +2883 +2883 +2883 +2884 +2884 +2884 +2884 +2894 +2894 +2898 +2898 +2899 +2899 +2905 +2905 +2911 +2911 +2919 +2919 +2941 +2941 +2950 +2950 +2968 +2968 +2968 +2968 +3067 +3067 +3088 +3088 +3109 +3109 +3109 +3109 +3157 +3157 +3181 +3181 +3182 +3182 +3183 +3183 +3201 +3201 +3222 +3222 +3240 +3240 +3248 +3248 +3252 +3252 +3270 +3270 +3278 +3278 +3296 +3296 +3339 +3339 +3339 +3339 +3339 +3339 +3339 +3339 +3340 +3340 +3345 +3345 +3369 +3369 +3372 +3372 +3376 +3376 +3377 +3377 +3378 +3378 +3382 +3382 +3384 +3384 +3401 +3401 +3426 +3426 +3429 +3429 +3448 +3448 +3457 +3457 +3458 +3458 +3464 +3464 +3475 +3475 +3491 +3491 +3515 +3515 +3524 +3524 +3575 +3575 +3627 +3627 +3672 +3672 +3676 +3676 +3694 +3694 +3701 +3701 +3744 +3744 +3753 +3753 +3772 +3772 +3781 +3781 +3789 +3789 +3791 +3791 +3845 +3845 +3863 +3863 +3871 +3871 +3871 +3871 +3872 +3872 +3872 +3872 +3882 +3882 +3921 +3921 +3923 +3923 +3925 +3925 +3926 +3926 +3926 +3926 +3933 +3933 +3946 +3946 +3959 +3959 +3960 +3960 +3993 +3993 +3996 +3996 +3996 +3996 +4003 +4003 +4013 +4013 +4017 +4017 +4065 +4065 +4071 +4071 +4077 +4077 +4096 +%% +14 +19 +49 +75 +84 +88 +101 +122 +133 +138 +178 +187 +230 +255 +2 +3 +11 +13 +17 +18 +19 +21 +27 +33 +35 +36 +40 +45 +49 +55 +58 +69 +73 +78 +84 +88 +92 +99 +107 +112 +117 +119 +121 +122 +135 +138 +139 +141 +145 +169 +173 +174 +178 +187 +189 +193 +194 +210 +211 +218 +219 +230 +231 +1 +18 +33 +36 +45 +48 +49 +55 +63 +69 +73 +75 +76 +78 +82 +86 +88 +89 +94 +107 +115 +116 +117 +119 +120 +122 +126 +131 +133 +138 +141 +142 +144 +145 +178 +182 +187 +191 +192 +194 +200 +213 +216 +218 +220 +224 +226 +230 +231 +236 +237 +242 +244 +252 +1 +14 +17 +21 +33 +35 +36 +38 +49 +55 +65 +66 +69 +71 +78 +79 +84 +88 +89 +96 +103 +114 +119 +120 +121 +122 +126 +128 +130 +133 +138 +141 +144 +145 +148 +178 +186 +219 +220 +224 +227 +230 +231 +237 +250 +252 +254 +182 +216 +49 +145 +178 +36 +55 +88 +141 +219 +222 +226 +13 +14 +17 +19 +24 +33 +35 +40 +49 +58 +63 +78 +84 +88 +107 +116 +118 +119 +122 +133 +138 +145 +160 +178 +219 +1 +18 +21 +33 +49 +84 +86 +88 +94 +114 +116 +117 +119 +120 +122 +151 +160 +193 +214 +24 +33 +69 +76 +84 +118 +141 +218 +1 +10 +14 +17 +19 +21 +24 +33 +35 +36 +42 +48 +49 +52 +55 +63 +71 +78 +82 +84 +88 +89 +94 +104 +107 +111 +114 +116 +122 +133 +138 +142 +144 +145 +151 +178 +180 +182 +183 +187 +193 +203 +214 +219 +222 +224 +236 +243 +246 +252 +0 +3 +10 +13 +17 +21 +24 +33 +35 +36 +40 +48 +49 +50 +55 +58 +63 +64 +69 +73 +75 +78 +84 +88 +107 +108 +114 +115 +117 +118 +122 +133 +138 +141 +142 +144 +145 +147 +149 +175 +178 +187 +188 +191 +194 +207 +208 +214 +215 +218 +220 +226 +227 +231 +246 +255 +21 +49 +96 +122 +141 +230 +246 +189 +224 +230 +246 +1 +3 +10 +13 +14 +25 +27 +30 +33 +36 +39 +49 +55 +63 +75 +78 +83 +84 +86 +88 +89 +96 +107 +117 +122 +135 +138 +141 +144 +145 +174 +178 +189 +193 +194 +200 +218 +219 +221 +228 +230 +252 +254 +1 +2 +11 +21 +24 +25 +33 +49 +69 +82 +84 +88 +89 +98 +116 +117 +119 +122 +133 +138 +141 +144 +158 +220 +230 +244 +0 +1 +10 +13 +21 +33 +34 +36 +40 +48 +49 +55 +69 +76 +78 +80 +84 +86 +88 +95 +108 +112 +118 +121 +122 +133 +138 +141 +144 +145 +147 +158 +172 +178 +180 +182 +193 +194 +200 +218 +220 +224 +228 +236 +237 +252 +49 +84 +94 +218 +1 +3 +11 +13 +14 +15 +18 +19 +26 +30 +33 +34 +43 +49 +52 +55 +58 +64 +69 +78 +84 +89 +97 +107 +110 +116 +119 +121 +122 +135 +139 +141 +142 +144 +145 +148 +152 +178 +180 +182 +186 +190 +218 +219 +220 +224 +230 +237 +246 +249 +252 +253 +145 +49 +78 +113 +219 +10 +12 +13 +14 +18 +49 +88 +107 +113 +145 +162 +178 +179 +188 +255 +17 +18 +27 +33 +41 +49 +69 +75 +83 +84 +88 +99 +102 +122 +133 +138 +141 +161 +173 +174 +178 +182 +183 +218 +224 +246 +252 +21 +49 +88 +219 +1 +17 +25 +49 +84 +216 +78 +88 +89 +107 +145 +182 +230 +17 +21 +33 +36 +49 +55 +63 +84 +90 +94 +113 +120 +122 +141 +155 +158 +224 +230 +49 +63 +98 +133 +141 +188 +220 +1 +2 +3 +10 +11 +12 +13 +14 +17 +18 +19 +21 +25 +30 +35 +36 +42 +45 +49 +52 +54 +55 +60 +63 +64 +68 +69 +71 +75 +76 +78 +79 +82 +84 +86 +88 +89 +92 +93 +94 +96 +98 +99 +102 +107 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +133 +135 +138 +139 +140 +141 +142 +144 +145 +147 +152 +153 +160 +174 +178 +179 +180 +182 +183 +187 +188 +194 +200 +207 +210 +214 +216 +217 +218 +219 +220 +223 +224 +227 +230 +231 +237 +242 +244 +246 +252 +254 +19 +21 +63 +88 +207 +1 +3 +10 +13 +14 +33 +42 +49 +75 +76 +78 +80 +84 +89 +112 +122 +138 +144 +145 +158 +178 +191 +199 +200 +213 +218 +224 +1 +2 +3 +8 +13 +14 +17 +19 +30 +33 +48 +49 +55 +63 +75 +76 +84 +85 +86 +88 +89 +110 +116 +118 +119 +122 +133 +138 +141 +145 +146 +171 +175 +178 +182 +194 +206 +208 +218 +224 +230 +246 +252 +49 +138 +3 +49 +120 +138 +141 +178 +210 +218 +17 +49 +76 +82 +84 +141 +145 +178 +224 +1 +10 +14 +19 +42 +49 +63 +71 +84 +88 +116 +119 +122 +127 +141 +155 +178 +183 +188 +219 +224 +246 +25 +84 +141 +13 +33 +35 +40 +49 +69 +75 +84 +90 +107 +115 +120 +122 +141 +145 +146 +147 +178 +224 +237 +251 +252 +21 +49 +89 +122 +178 +183 +217 +71 +84 +122 +138 +144 +188 +1 +2 +33 +49 +92 +122 +138 +144 +145 +178 +194 +200 +230 +49 +178 +49 +69 +224 +2 +13 +14 +19 +36 +49 +78 +81 +88 +89 +122 +127 +138 +145 +180 +219 +230 +246 +252 +0 +1 +2 +3 +6 +10 +11 +13 +14 +15 +17 +18 +19 +20 +21 +23 +24 +25 +26 +27 +30 +32 +33 +35 +36 +37 +38 +39 +40 +42 +43 +45 +46 +47 +48 +52 +55 +56 +57 +58 +63 +64 +65 +69 +71 +73 +78 +79 +80 +82 +84 +85 +86 +88 +89 +90 +92 +93 +94 +95 +101 +105 +107 +108 +111 +113 +114 +116 +117 +118 +119 +120 +121 +122 +128 +130 +133 +135 +136 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +151 +153 +155 +157 +160 +168 +172 +173 +174 +175 +178 +179 +180 +182 +183 +186 +187 +188 +190 +191 +193 +194 +199 +200 +201 +207 +208 +209 +210 +211 +215 +216 +218 +219 +220 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +237 +243 +244 +246 +247 +249 +250 +251 +252 +253 +254 +255 +14 +63 +88 +107 +113 +133 +145 +182 +73 +135 +138 +13 +21 +33 +49 +89 +110 +117 +141 +145 +160 +188 +220 +224 +144 +33 +88 +220 +1 +2 +3 +8 +13 +14 +17 +19 +21 +30 +33 +36 +49 +63 +71 +84 +88 +89 +98 +114 +116 +117 +119 +122 +133 +138 +139 +141 +142 +143 +151 +176 +178 +179 +182 +186 +187 +188 +194 +207 +208 +214 +218 +219 +220 +230 +236 +247 +250 +252 +255 +49 +49 +88 +111 +135 +141 +178 +1 +10 +14 +21 +49 +71 +78 +84 +89 +97 +116 +117 +119 +141 +178 +179 +182 +191 +194 +208 +246 +119 +160 +182 +33 +64 +171 +174 +182 +190 +237 +242 +246 +2 +10 +13 +14 +17 +30 +32 +33 +34 +36 +40 +49 +50 +55 +69 +71 +75 +76 +78 +84 +88 +89 +94 +101 +114 +118 +121 +122 +141 +144 +145 +171 +172 +178 +179 +182 +186 +187 +194 +200 +205 +208 +216 +218 +220 +230 +243 +246 +252 +255 +14 +21 +33 +49 +60 +75 +78 +138 +145 +178 +179 +218 +219 +224 +249 +252 +3 +49 +71 +73 +144 +145 +178 +220 +236 +3 +120 +186 +194 +222 +246 +94 +33 +88 +252 +1 +2 +3 +12 +14 +18 +19 +21 +25 +33 +42 +47 +49 +63 +78 +84 +86 +88 +99 +107 +119 +120 +122 +135 +138 +139 +144 +145 +155 +174 +178 +182 +191 +193 +200 +208 +224 +226 +231 +246 +252 +3 +13 +33 +40 +44 +49 +55 +58 +63 +65 +73 +89 +90 +116 +122 +138 +141 +145 +151 +182 +194 +202 +207 +208 +219 +230 +231 +249 +145 +207 +219 +1 +2 +14 +49 +51 +65 +71 +78 +138 +145 +151 +178 +194 +217 +220 +147 +0 +2 +14 +17 +25 +33 +35 +36 +42 +63 +64 +76 +84 +94 +119 +141 +168 +180 +216 +218 +226 +231 +237 +2 +12 +19 +33 +35 +36 +39 +63 +75 +84 +86 +88 +96 +138 +139 +141 +148 +156 +178 +194 +211 +218 +251 +255 +1 +2 +3 +10 +13 +14 +17 +19 +21 +23 +28 +33 +35 +48 +49 +58 +63 +64 +69 +73 +82 +84 +85 +88 +89 +92 +94 +98 +107 +116 +119 +122 +133 +138 +139 +141 +144 +145 +169 +176 +178 +180 +187 +194 +200 +208 +224 +230 +251 +252 +3 +33 +49 +88 +143 +145 +236 +19 +35 +49 +84 +121 +182 +186 +48 +116 +118 +138 +145 +160 +2 +13 +18 +33 +39 +49 +78 +84 +88 +92 +113 +116 +118 +122 +133 +138 +141 +142 +145 +178 +187 +194 +219 +226 +227 +237 +252 +17 +25 +194 +0 +1 +3 +10 +11 +12 +13 +14 +17 +18 +19 +20 +21 +25 +27 +30 +33 +35 +36 +39 +40 +41 +42 +44 +49 +55 +58 +63 +69 +75 +76 +78 +80 +82 +86 +88 +89 +92 +94 +96 +97 +99 +103 +107 +114 +116 +117 +119 +120 +121 +122 +133 +138 +141 +142 +144 +145 +148 +160 +171 +173 +174 +176 +178 +179 +180 +182 +183 +186 +187 +188 +189 +191 +194 +199 +200 +207 +208 +210 +216 +218 +219 +220 +222 +223 +224 +225 +226 +230 +232 +237 +243 +244 +249 +252 +36 +49 +78 +107 +118 +138 +174 +218 +2 +11 +17 +19 +33 +36 +49 +69 +76 +84 +88 +98 +112 +116 +122 +136 +144 +145 +178 +194 +209 +218 +219 +236 +237 +92 +121 +0 +1 +2 +3 +8 +10 +11 +13 +14 +17 +18 +19 +24 +25 +26 +28 +33 +34 +36 +40 +48 +49 +50 +54 +55 +57 +63 +68 +69 +76 +78 +79 +82 +84 +86 +89 +90 +92 +94 +99 +104 +107 +108 +112 +115 +116 +119 +120 +121 +122 +126 +135 +138 +139 +140 +141 +143 +144 +145 +147 +151 +160 +171 +174 +175 +176 +178 +179 +182 +183 +186 +187 +190 +191 +192 +193 +194 +200 +207 +208 +210 +214 +215 +216 +217 +218 +219 +220 +223 +224 +225 +226 +230 +231 +232 +237 +246 +252 +2 +3 +13 +17 +18 +21 +28 +33 +35 +36 +43 +48 +49 +52 +55 +58 +63 +71 +78 +84 +88 +90 +92 +107 +121 +122 +133 +135 +138 +140 +141 +142 +144 +145 +146 +157 +182 +183 +191 +194 +200 +205 +208 +214 +215 +218 +220 +222 +230 +237 +252 +30 +42 +49 +71 +88 +89 +96 +107 +108 +121 +138 +141 +147 +178 +182 +191 +219 +225 +230 +239 +1 +33 +45 +49 +78 +82 +84 +87 +88 +89 +94 +98 +122 +128 +138 +141 +144 +218 +224 +226 +33 +49 +155 +2 +11 +13 +20 +30 +33 +49 +63 +67 +75 +78 +84 +88 +92 +102 +105 +107 +138 +141 +145 +191 +211 +220 +237 +19 +49 +127 +194 +215 +218 +3 +15 +17 +33 +76 +84 +90 +119 +133 +141 +145 +174 +178 +21 +58 +84 +175 +176 +237 +18 +32 +33 +55 +78 +86 +92 +145 +151 +182 +1 +25 +33 +69 +84 +88 +138 +141 +208 +0 +49 +63 +138 +141 +244 +25 +33 +94 +107 +121 +141 +219 +230 +3 +84 +13 +88 +144 +216 +49 +94 +133 +178 +183 +224 +230 +1 +2 +10 +13 +14 +17 +21 +24 +28 +33 +42 +49 +50 +69 +78 +84 +85 +88 +89 +90 +94 +102 +114 +116 +119 +120 +122 +133 +138 +141 +143 +145 +160 +170 +175 +176 +178 +179 +216 +218 +220 +230 +253 +14 +19 +49 +88 +90 +145 +166 +183 +200 +219 +21 +36 +52 +138 +141 +178 +192 +13 +33 +49 +57 +119 +122 +141 +178 +183 +194 +220 +1 +19 +33 +35 +86 +88 +141 +23 +24 +30 +33 +49 +50 +82 +138 +145 +178 +219 +3 +11 +13 +14 +33 +49 +55 +63 +84 +107 +122 +133 +138 +141 +145 +168 +237 +239 +2 +14 +33 +42 +88 +141 +219 +220 +2 +10 +11 +13 +18 +21 +33 +36 +40 +49 +55 +58 +71 +78 +81 +82 +84 +86 +88 +107 +122 +133 +135 +138 +141 +144 +145 +152 +153 +155 +157 +178 +182 +183 +184 +186 +189 +194 +200 +201 +210 +216 +219 +221 +224 +238 +252 +1 +2 +11 +14 +17 +18 +33 +49 +52 +55 +58 +84 +122 +138 +178 +179 +10 +12 +14 +19 +33 +36 +49 +63 +81 +82 +85 +119 +138 +178 +188 +219 +220 +222 +255 +1 +2 +3 +10 +11 +18 +21 +33 +36 +40 +49 +55 +58 +59 +69 +75 +78 +84 +88 +96 +107 +111 +118 +120 +121 +122 +133 +136 +138 +141 +163 +178 +179 +182 +183 +193 +194 +207 +217 +218 +220 +230 +231 +237 +243 +246 +2 +3 +11 +30 +33 +38 +42 +49 +66 +69 +84 +88 +107 +119 +121 +176 +178 +182 +237 +252 +253 +1 +3 +19 +21 +33 +49 +63 +80 +84 +87 +88 +89 +90 +102 +119 +120 +133 +138 +141 +145 +147 +178 +188 +220 +222 +226 +230 +240 +252 +255 +0 +1 +2 +3 +10 +11 +13 +14 +15 +17 +18 +19 +21 +25 +30 +33 +35 +36 +40 +42 +43 +44 +45 +48 +49 +55 +63 +69 +71 +78 +82 +84 +86 +88 +89 +92 +107 +111 +114 +116 +117 +119 +127 +133 +137 +138 +141 +142 +144 +145 +146 +147 +151 +152 +157 +160 +163 +168 +169 +176 +178 +179 +180 +182 +185 +186 +192 +193 +204 +206 +208 +212 +218 +219 +220 +222 +223 +224 +225 +227 +228 +230 +237 +252 +255 +138 +237 +147 +182 +2 +3 +88 +141 +220 +40 +48 +95 +122 +141 +178 +3 +49 +92 +250 +3 +49 +141 +2 +178 +219 +220 +0 +2 +3 +10 +13 +14 +18 +19 +25 +32 +33 +36 +49 +50 +55 +78 +82 +84 +89 +96 +105 +107 +114 +116 +119 +121 +122 +138 +141 +142 +144 +145 +160 +162 +168 +178 +182 +188 +208 +214 +218 +219 +224 +230 +243 +250 +244 +1 +17 +21 +33 +49 +51 +57 +69 +88 +89 +116 +141 +145 +155 +160 +178 +186 +194 +237 +252 +255 +49 +86 +119 +122 +246 +0 +1 +2 +3 +10 +13 +14 +17 +18 +19 +25 +33 +35 +36 +37 +38 +44 +45 +48 +49 +51 +55 +64 +69 +71 +73 +76 +78 +81 +82 +84 +85 +88 +89 +90 +92 +94 +99 +101 +107 +110 +113 +114 +116 +117 +118 +119 +121 +122 +123 +133 +141 +142 +144 +145 +147 +151 +157 +160 +173 +174 +176 +178 +179 +180 +182 +183 +187 +191 +192 +193 +194 +199 +205 +207 +208 +210 +216 +217 +218 +219 +220 +224 +226 +230 +236 +237 +246 +252 +255 +1 +21 +33 +49 +55 +69 +76 +78 +88 +141 +145 +146 +186 +188 +210 +226 +33 +49 +88 +89 +145 +194 +1 +2 +3 +8 +12 +14 +15 +17 +18 +19 +21 +25 +30 +32 +33 +36 +38 +39 +40 +41 +42 +49 +52 +55 +57 +58 +63 +71 +75 +76 +78 +82 +84 +88 +89 +90 +92 +94 +96 +99 +101 +102 +107 +110 +111 +112 +114 +115 +116 +119 +121 +122 +126 +127 +130 +133 +135 +138 +139 +142 +143 +144 +145 +147 +148 +152 +155 +168 +169 +174 +176 +178 +179 +180 +182 +183 +186 +188 +191 +194 +199 +200 +207 +210 +214 +215 +216 +218 +219 +220 +222 +224 +225 +228 +229 +230 +237 +244 +245 +246 +252 +255 +2 +13 +14 +21 +33 +49 +55 +82 +84 +89 +122 +133 +138 +141 +213 +219 +49 +55 +79 +88 +107 +141 +145 +178 +219 +252 +2 +3 +13 +14 +17 +18 +19 +21 +33 +35 +44 +45 +49 +53 +63 +65 +69 +78 +84 +86 +88 +89 +92 +104 +116 +122 +133 +138 +141 +145 +160 +174 +178 +193 +200 +218 +230 +236 +237 +1 +2 +3 +6 +10 +13 +14 +17 +19 +21 +22 +24 +28 +33 +35 +36 +39 +42 +45 +48 +49 +50 +52 +63 +64 +65 +69 +71 +72 +73 +78 +79 +81 +82 +84 +86 +88 +89 +94 +96 +98 +107 +108 +113 +114 +116 +121 +122 +133 +135 +138 +139 +140 +141 +143 +144 +146 +147 +151 +153 +155 +158 +168 +172 +174 +178 +182 +187 +189 +191 +192 +193 +194 +200 +210 +211 +215 +216 +218 +219 +220 +224 +228 +230 +232 +237 +243 +244 +246 +250 +252 +255 +36 +42 +49 +89 +122 +139 +145 +14 +19 +33 +42 +49 +74 +88 +90 +121 +122 +125 +138 +141 +145 +155 +176 +178 +210 +220 +226 +227 +252 +3 +21 +49 +76 +84 +141 +151 +211 +232 +14 +49 +226 +11 +13 +49 +55 +71 +73 +88 +98 +122 +138 +145 +148 +164 +174 +180 +186 +218 +219 +220 +224 +230 +252 +21 +33 +116 +122 +141 +180 +33 +49 +116 +145 +183 +218 +242 +30 +40 +49 +69 +93 +116 +135 +141 +145 +147 +230 +76 +175 +49 +89 +116 +122 +138 +176 +178 +187 +18 +19 +30 +35 +145 +178 +178 +10 +11 +33 +49 +52 +59 +81 +84 +88 +107 +122 +133 +135 +138 +144 +178 +187 +194 +208 +216 +218 +230 +25 +218 +244 +24 +133 +119 +122 +151 +108 +49 +75 +114 +122 +133 +141 +145 +182 +215 +216 +1 +78 +122 +141 +107 +36 +60 +63 +84 +88 +216 +19 +49 +63 +145 +213 +250 +1 +25 +49 +84 +138 +178 +208 +231 +1 +17 +25 +33 +49 +60 +69 +84 +85 +88 +96 +138 +141 +144 +145 +151 +178 +188 +211 +223 +225 +237 +14 +36 +49 +88 +97 +107 +156 +219 +237 +55 +78 +84 +88 +97 +107 +120 +122 +138 +141 +147 +157 +178 +200 +219 +224 +237 +246 +0 +1 +2 +3 +6 +10 +13 +14 +17 +19 +21 +24 +25 +33 +35 +36 +38 +39 +40 +42 +43 +45 +46 +49 +55 +57 +58 +63 +64 +65 +69 +73 +76 +78 +82 +84 +86 +88 +90 +96 +105 +107 +110 +111 +113 +116 +117 +118 +119 +120 +121 +122 +127 +131 +133 +135 +138 +141 +143 +144 +145 +147 +157 +158 +159 +160 +173 +174 +176 +179 +182 +183 +191 +193 +194 +198 +200 +205 +207 +208 +209 +213 +214 +216 +217 +218 +219 +220 +222 +224 +226 +227 +230 +237 +243 +244 +249 +250 +252 +24 +33 +49 +55 +58 +63 +64 +84 +88 +107 +117 +119 +122 +138 +141 +178 +210 +215 +231 +242 +246 +13 +19 +21 +33 +48 +49 +75 +78 +84 +122 +138 +141 +151 +152 +183 +207 +208 +215 +230 +237 +252 +2 +5 +13 +19 +21 +25 +28 +33 +36 +49 +50 +55 +58 +59 +60 +63 +69 +71 +80 +84 +88 +89 +90 +98 +116 +119 +120 +122 +125 +133 +138 +141 +145 +168 +178 +194 +210 +215 +220 +224 +226 +230 +232 +237 +243 +252 +253 +255 +13 +25 +33 +40 +43 +49 +84 +88 +89 +105 +108 +111 +116 +119 +138 +141 +153 +178 +180 +208 +215 +220 +232 +252 +116 +122 +3 +21 +49 +55 +63 +66 +80 +84 +88 +116 +122 +135 +139 +141 +151 +218 +226 +255 +0 +1 +2 +13 +14 +33 +49 +55 +63 +78 +82 +84 +88 +138 +145 +157 +160 +219 +220 +222 +224 +14 +24 +32 +33 +40 +44 +49 +52 +55 +84 +118 +121 +133 +139 +141 +174 +194 +202 +1 +16 +17 +84 +116 +145 +222 +230 +21 +49 +62 +88 +2 +14 +35 +49 +58 +69 +84 +88 +89 +90 +94 +138 +141 +145 +178 +200 +219 +244 +2 +88 +110 +122 +138 +145 +211 +219 +1 +11 +13 +17 +19 +49 +69 +88 +119 +122 +138 +144 +145 +178 +219 +224 +231 +250 +1 +2 +14 +17 +19 +33 +36 +45 +49 +55 +58 +63 +66 +71 +73 +76 +78 +82 +83 +84 +86 +88 +89 +95 +111 +116 +119 +135 +138 +140 +141 +145 +160 +178 +182 +188 +200 +215 +224 +230 +231 +246 +247 +178 +35 +49 +84 +138 +141 +2 +17 +19 +33 +35 +45 +49 +63 +69 +78 +84 +88 +89 +108 +116 +141 +144 +145 +176 +178 +191 +194 +216 +218 +49 +116 +255 +71 +188 +218 +219 +13 +122 +63 +89 +138 +178 +36 +122 +14 +33 +34 +49 +55 +71 +72 +84 +88 +119 +138 +141 +178 +180 +210 +225 +252 +14 +36 +49 +55 +58 +63 +69 +71 +78 +84 +88 +89 +99 +122 +133 +138 +160 +173 +178 +180 +183 +210 +220 +228 +246 +49 +86 +178 +1 +33 +38 +49 +84 +88 +116 +138 +139 +141 +145 +147 +179 +182 +207 +208 +223 +230 +252 +1 +49 +76 +94 +145 +148 +174 +192 +243 +122 +2 +35 +142 +172 +178 +237 +11 +13 +14 +33 +55 +88 +89 +133 +141 +178 +230 +14 +49 +88 +89 +95 +141 +145 +168 +179 +180 +182 +183 +194 +230 +244 +252 +2 +5 +27 +33 +49 +63 +75 +84 +88 +104 +107 +116 +138 +141 +145 +160 +168 +171 +178 +200 +220 +224 +246 +254 +33 +43 +73 +88 +119 +138 +178 +218 +252 +1 +2 +12 +14 +17 +19 +20 +21 +25 +33 +35 +36 +38 +49 +55 +63 +64 +75 +76 +84 +85 +86 +88 +89 +92 +95 +107 +119 +122 +133 +138 +141 +144 +145 +151 +153 +160 +161 +178 +186 +200 +202 +217 +219 +224 +234 +237 +242 +243 +249 +252 +1 +3 +8 +10 +13 +17 +21 +23 +26 +33 +40 +48 +49 +55 +64 +71 +72 +82 +84 +86 +88 +90 +102 +108 +113 +115 +116 +118 +122 +131 +133 +138 +141 +142 +143 +145 +151 +175 +176 +178 +187 +191 +192 +193 +202 +218 +220 +224 +230 +237 +246 +252 +2 +3 +14 +18 +19 +21 +32 +33 +49 +52 +54 +55 +63 +65 +73 +84 +88 +89 +94 +107 +111 +115 +118 +119 +121 +122 +126 +132 +138 +141 +145 +147 +151 +178 +182 +183 +187 +208 +216 +219 +222 +230 +231 +246 +255 +17 +116 +230 +252 +8 +13 +49 +66 +84 +89 +118 +121 +122 +141 +178 +187 +189 +220 +232 +238 +243 +250 +33 +49 +84 +88 +122 +174 +210 +2 +3 +13 +16 +19 +21 +25 +30 +33 +35 +36 +39 +40 +42 +47 +49 +52 +64 +69 +78 +84 +88 +92 +105 +116 +122 +133 +138 +141 +145 +151 +176 +178 +182 +187 +193 +194 +216 +218 +219 +230 +237 +255 +49 +84 +88 +90 +122 +141 +174 +207 +243 +2 +8 +14 +49 +69 +75 +82 +84 +88 +92 +121 +138 +139 +147 +149 +178 +182 +186 +242 +3 +14 +33 +49 +82 +122 +147 +178 +237 +17 +19 +49 +122 +141 +145 +208 +230 +49 +141 +0 +1 +2 +3 +15 +16 +17 +18 +21 +28 +30 +33 +36 +45 +48 +49 +55 +63 +71 +78 +84 +88 +89 +90 +102 +105 +107 +119 +121 +122 +133 +138 +141 +144 +145 +151 +155 +160 +178 +180 +182 +189 +194 +210 +214 +215 +219 +220 +221 +224 +228 +231 +246 +252 +1 +2 +3 +14 +33 +49 +69 +71 +75 +88 +119 +173 +179 +193 +194 +220 +230 +252 +49 +84 +88 +145 +148 +182 +183 +222 +218 +2 +13 +19 +55 +65 +79 +86 +138 +144 +254 +2 +3 +19 +21 +33 +42 +49 +62 +75 +82 +84 +86 +88 +89 +94 +97 +114 +119 +120 +122 +124 +135 +138 +141 +144 +145 +174 +175 +176 +178 +180 +182 +213 +218 +219 +224 +227 +246 +252 +116 +222 +90 +114 +121 +2 +33 +62 +153 +179 +218 +226 +13 +49 +63 +84 +119 +133 +145 +178 +182 +211 +218 +222 +225 +2 +18 +33 +49 +84 +101 +134 +141 +145 +161 +178 +191 +215 +141 +13 +14 +15 +16 +21 +25 +33 +36 +40 +48 +49 +58 +62 +63 +66 +69 +88 +119 +137 +138 +141 +145 +176 +179 +194 +208 +216 +219 +220 +230 +237 +252 +253 +49 +55 +194 +21 +49 +64 +71 +84 +178 +218 +3 +49 +55 +129 +133 +145 +172 +178 +193 +222 +42 +49 +76 +78 +2 +3 +13 +17 +19 +21 +25 +33 +36 +42 +48 +49 +55 +63 +64 +68 +69 +78 +82 +84 +88 +89 +116 +120 +121 +122 +135 +138 +141 +143 +145 +147 +151 +178 +180 +182 +183 +207 +210 +215 +217 +218 +219 +221 +230 +231 +237 +246 +21 +49 +107 +120 +182 +246 +3 +17 +33 +49 +216 +236 +0 +14 +24 +49 +55 +63 +76 +118 +121 +122 +135 +138 +141 +145 +182 +186 +201 +220 +224 diff --git a/examples/machsuite/bfs/support.py b/examples/machsuite/bfs/support.py new file mode 100644 index 0000000000..9193fc5657 --- /dev/null +++ b/examples/machsuite/bfs/support.py @@ -0,0 +1,35 @@ +def write_data_to_file(data, filename="input.data"): + with open(filename, 'w') as f: + f.write(f"%%\n{data['starting_node']}\n") + f.write(f"%%\n") + for node in data['nodes']: + f.write(f"{node.edge_begin}\n{node.edge_end}\n") + f.write(f"%%\n") + for edge in data['edges']: + f.write(f"{edge.dst}\n") + +def write_data_to_file_2(data, filename="check.data"): + with open(filename, 'w') as f: + f.write(f"%%\n") + for item in data: + f.write(f"{item}\n") + + +def read_data_from_file(filename="input.data"): + data = {'nodes': [], 'edges': [], 'starting_node':[]} + count = 0 + + with open(filename, 'r') as f: + for line in f: + line = line.strip() + + if line.startswith("%"): + count += 1 + elif count == 1: + data['starting_node'].append(int(line)) + elif count == 2: + data['nodes'].append(int(line)) + elif count == 3: + data['edges'].append(int(line)) + + return data diff --git a/examples/machsuite/check.data b/examples/machsuite/check.data new file mode 100644 index 0000000000..d720516150 --- /dev/null +++ b/examples/machsuite/check.data @@ -0,0 +1,2049 @@ +%% +2133347 +3755034 +3757680 +5114060 +6748351 +11497565 +13360332 +14464969 +14535786 +15264621 +16570194 +16921963 +16959813 +19892644 +20193475 +20865036 +21389248 +22768866 +25100496 +25776468 +25869575 +27666284 +27675825 +28990799 +29381863 +29653602 +30894415 +32011475 +32283582 +32495326 +33287680 +33423244 +33797863 +33967896 +34606601 +34794482 +36491596 +36513003 +37313539 +37577570 +37600544 +37958120 +39484517 +40140980 +41705353 +42383451 +43902811 +44125235 +47621339 +47866257 +48905545 +51198210 +51245290 +55100470 +58572672 +59206569 +60974523 +62624058 +62830115 +63917942 +65375150 +65864705 +66411149 +67176562 +67874428 +68604017 +69122538 +69969612 +70599058 +71478587 +72158627 +72460518 +73066829 +76115669 +76700937 +78410211 +80693604 +80818357 +81692302 +82876636 +83314681 +84370399 +85297387 +85901251 +87087128 +87248777 +87270835 +88325323 +89650033 +90635783 +92766339 +93482676 +93987402 +95454661 +95598889 +96657364 +98319525 +99479956 +100077314 +100936390 +101347165 +101884596 +102673761 +105234290 +105724135 +105877669 +106828160 +109081969 +110019408 +111155111 +111436477 +111756298 +111885734 +113221775 +114342047 +116727282 +118360318 +119602863 +120372826 +121774000 +122470461 +123620487 +127031658 +127386675 +127839099 +128191180 +128199623 +128894687 +128928023 +128952447 +132957322 +133709002 +134086399 +134097471 +135356844 +136883456 +137991365 +139185907 +139309844 +139783465 +144522435 +145125081 +145181215 +146301892 +146480651 +147666338 +148366910 +149065532 +150020171 +150337966 +150901144 +151035803 +151333492 +151499496 +152600286 +153048093 +153207158 +154698022 +155477576 +155859496 +156300070 +156543006 +156692706 +156960811 +160415738 +161717562 +163522198 +164019660 +165337021 +165449550 +165757953 +166148387 +168634616 +169996838 +170250664 +170391257 +170463985 +171333890 +172081653 +172179489 +174384850 +175276916 +176394620 +177133202 +177548100 +177623586 +177771287 +179816643 +180988319 +181874898 +182069082 +183070972 +184954528 +185259225 +185589616 +186545648 +186735955 +187577258 +187757211 +189071296 +189324225 +189486773 +190068440 +190526577 +191656740 +191855552 +192699922 +194033189 +194304077 +194961368 +195485565 +195575558 +195791553 +196570489 +198128026 +198515425 +199018542 +200930301 +201967992 +203588067 +206702553 +207237193 +208236790 +208753405 +212096210 +212764022 +213296204 +213358112 +215084709 +216451246 +216730162 +217581202 +217859346 +218079139 +220029168 +222764447 +222774002 +224370131 +225640914 +225891607 +227234597 +228193101 +228756043 +230054271 +230116054 +231968216 +232320438 +234368065 +236157269 +238322615 +239056365 +240134265 +240505305 +242255706 +243261054 +243305723 +244437562 +246048882 +247483746 +247597272 +248943784 +248987466 +249178659 +250211688 +250544064 +253359016 +254388947 +255055848 +256610514 +257004501 +257911218 +258103701 +260995967 +261522116 +261653045 +263877273 +264114698 +265158106 +265255716 +265337843 +266261552 +267592551 +267898534 +269286404 +269570899 +269644648 +270842593 +271001503 +271321916 +271463051 +274284400 +275490071 +277528908 +278812137 +278846449 +279972861 +280371522 +281450081 +284387350 +285571409 +286532441 +286665591 +286841615 +287756628 +288148609 +289705845 +291409102 +293433174 +294813100 +295984014 +297554450 +297823665 +297869098 +299389274 +299898902 +300761205 +302354825 +302652346 +303590601 +304511300 +305434839 +306233773 +306822213 +307203772 +308134579 +308994026 +309212434 +310302420 +310662211 +310665455 +311356082 +312251881 +314315478 +315948592 +320253652 +320990176 +321993998 +325031938 +325290524 +325464775 +328655625 +329738404 +330737581 +330792297 +332327337 +333247645 +334543417 +334880253 +334977553 +335715992 +336541300 +337601622 +338856656 +342063486 +342070919 +344296193 +349919910 +350127017 +351873178 +352228300 +353885535 +355079864 +355535304 +355560126 +355663123 +355827223 +356093208 +356194072 +358187431 +361261943 +362170271 +368123457 +370000419 +370391868 +370406316 +371167247 +371943766 +375078779 +377206183 +379721750 +379897203 +380400361 +380681534 +381891319 +382115769 +382894292 +384805441 +385862243 +392336178 +392961592 +394042623 +394189989 +394664535 +396095779 +396375367 +397615021 +400859314 +403111108 +403955460 +404866075 +407019027 +407338232 +407394234 +408591603 +409435661 +410327491 +413733332 +413952789 +415406505 +417049677 +417112292 +417730805 +418518584 +419218001 +420033603 +421766723 +422151624 +423694845 +424635729 +426239114 +426368885 +426858731 +427310717 +427731302 +429639342 +429741617 +429882966 +433157790 +433315813 +434370628 +434550013 +436827523 +439115595 +439420872 +439666194 +440638102 +440797705 +441400426 +442054749 +442247466 +443973176 +444128215 +444869164 +445929743 +446035477 +446582461 +446669555 +448651778 +449325307 +450180092 +453173852 +456679784 +460964936 +461038923 +461186368 +461386911 +462324490 +463015512 +466353018 +466890649 +467485606 +469191954 +469606255 +470747628 +470920964 +471437709 +472147699 +472376887 +474042834 +475239808 +477793157 +477796026 +477837560 +477994546 +479378426 +480093923 +480755265 +481430369 +483764857 +484374348 +485470119 +488305458 +488787171 +491184830 +494700070 +495965166 +495999182 +496276526 +496705994 +498204267 +498679396 +502743441 +503395919 +503974112 +505236584 +505318934 +505651416 +507333260 +509043494 +510319326 +510490837 +512010901 +512735686 +514380753 +515229764 +517175601 +520630890 +522708374 +524037430 +524157971 +524589729 +525189582 +526857678 +527155034 +527747622 +529333204 +530630168 +532918727 +532974825 +533206101 +533566406 +534440455 +535153458 +536145871 +537126833 +540184876 +541468179 +543322263 +543473278 +544807927 +544833283 +545094225 +545325403 +546700911 +549024074 +550021592 +553748629 +553810021 +555271126 +555566939 +556662332 +560186184 +561622493 +561858461 +563554428 +563762887 +565681876 +565800731 +566064689 +566225790 +566948716 +567355160 +568740973 +569091874 +569866125 +570351679 +571532202 +571692111 +571913873 +572148025 +572382664 +573024774 +573553042 +574107939 +574110884 +574493348 +575072672 +575225045 +575410850 +576622031 +576793022 +577928774 +578934327 +580950754 +581839897 +581929050 +582040172 +582241926 +582856665 +584977769 +585230318 +586080090 +587037925 +587655589 +587767534 +587916663 +588200933 +589330536 +589994150 +590784521 +590956460 +591164384 +593608013 +594786342 +597276011 +599711002 +600033258 +600477902 +601273025 +602854601 +603437841 +604513972 +606824780 +612383828 +613268233 +613529359 +615255022 +615396429 +615465251 +617601891 +619028234 +619433493 +619600306 +619670720 +620801916 +622945444 +623522623 +624009478 +625175432 +625384414 +626485281 +627008650 +629196542 +631585224 +632426210 +632657984 +633725180 +633950703 +634966326 +635151053 +636440904 +637126175 +638126241 +638785636 +640042407 +641476730 +642497135 +642811328 +644816858 +645644963 +645888076 +647202043 +647566861 +648920224 +649418674 +649968691 +650800084 +650896432 +651856529 +653182226 +653548551 +654040018 +654196693 +654528262 +654953859 +655371791 +656216426 +656363920 +657058228 +659854392 +661211720 +662099942 +663304095 +663507254 +664661815 +667549624 +669470941 +669729404 +670730778 +671092095 +673553453 +673939191 +674185448 +675168495 +675626112 +676159587 +677596581 +679338690 +680154439 +680538897 +682966620 +683533351 +683562227 +684312237 +684786026 +685518568 +686696903 +686712154 +686806421 +687976188 +688030609 +688349205 +688409711 +688458885 +689731123 +690139864 +690340275 +691710619 +693156114 +695452877 +697034874 +697126989 +698372168 +698735397 +699187511 +699663017 +700320492 +705207687 +708933711 +710833831 +712594424 +712973066 +712981076 +712997872 +714517701 +715522899 +715553437 +715902510 +716307040 +717117315 +719448316 +720006110 +722929758 +725038219 +725273676 +725776724 +730203072 +730675129 +730808830 +733476653 +733984101 +734093500 +735891214 +736956260 +738685536 +738881659 +739660204 +741025494 +741418432 +743345365 +744237267 +744357234 +744811305 +745378755 +746394489 +746617994 +747237852 +747629642 +747957429 +748843663 +750880416 +752732815 +757693590 +757956417 +758036067 +758299180 +758309245 +758747878 +760832339 +761135150 +761990740 +764040994 +767231266 +767356740 +767456013 +768137467 +769562455 +771445491 +772232460 +772564030 +775053198 +775345665 +775464769 +778720014 +778793566 +781720704 +782100758 +782182721 +783463990 +791279994 +791876198 +792265037 +794289828 +796271435 +796629791 +796806456 +797661895 +798120086 +798742964 +800065723 +803122230 +804293100 +807198688 +807487382 +807650229 +808500002 +808577261 +808830103 +809073182 +809264055 +809276456 +810284694 +811952156 +812433900 +813759669 +817956649 +818949154 +819592305 +820782732 +822154166 +822605154 +824100101 +825072193 +826107839 +827043256 +827249544 +828922529 +831110648 +831460600 +831989131 +832280789 +832694119 +833364330 +833850611 +834541135 +838266613 +839107675 +839148521 +840691116 +842556374 +844180205 +844692692 +845612054 +845863361 +846697057 +846871207 +848683553 +850405899 +850784234 +851123424 +852197140 +855502120 +855586245 +855668781 +855675633 +855879190 +855957287 +856117299 +856163730 +857924069 +859068360 +861414954 +862220124 +862884446 +864712182 +868199677 +869562959 +869731817 +870211055 +874435881 +877005609 +878151227 +878431464 +878975232 +880060227 +880325991 +880407103 +881467599 +883528647 +884061622 +884238878 +884886315 +885339106 +885938485 +886705747 +887832138 +887851153 +888016505 +888378984 +889041242 +889558597 +890214205 +890996604 +891002766 +892456149 +895203452 +895333635 +899241182 +899521529 +901869777 +903776433 +904117025 +904844916 +905578736 +906203575 +906811784 +906812863 +911439955 +913039220 +913210060 +913408239 +913546305 +915003592 +915056003 +915682031 +919030930 +919061917 +920120429 +921374992 +922348435 +923023429 +923477393 +923510154 +924717512 +925823612 +926141078 +928060762 +929515894 +929610229 +929774247 +930810656 +931278473 +932779695 +933376004 +935575241 +937167562 +937219425 +938525317 +938531752 +939110988 +940359383 +940414037 +943290983 +945732052 +948235397 +948583912 +948660600 +949308911 +949738733 +950017849 +950546871 +952105334 +953346621 +953389511 +957614860 +958114106 +958204191 +958475713 +959114025 +959591760 +959767948 +959847712 +960509540 +963616547 +964714143 +965216452 +966500528 +966540065 +966656346 +968134515 +969142497 +970035152 +970890193 +971012069 +972380635 +972432201 +972720185 +973272863 +973421597 +974146282 +974611758 +975595750 +976556402 +978797663 +978889362 +979882348 +982559445 +982971994 +983027648 +983036142 +983326361 +983769777 +984775739 +985667224 +986185740 +987100826 +988389331 +988814076 +989310069 +989780742 +990148370 +990510471 +998034057 +998574805 +1002103818 +1002382477 +1002781191 +1006476475 +1007073583 +1007413192 +1008080182 +1008917238 +1009562350 +1011126259 +1011426922 +1011465638 +1011728700 +1012978043 +1013596633 +1015486081 +1017605774 +1019123948 +1020998191 +1025378896 +1025539030 +1027145810 +1027218802 +1028402758 +1028943287 +1029044046 +1029473878 +1030745371 +1030891483 +1031661611 +1035063037 +1036163211 +1036324244 +1038024060 +1038079141 +1039609563 +1041291898 +1043514001 +1043671504 +1043748460 +1043799665 +1043813904 +1044906031 +1045155143 +1049227491 +1049335247 +1049728079 +1049845316 +1050330236 +1050997197 +1051457277 +1052821998 +1055687629 +1056661716 +1057862950 +1059798558 +1059806210 +1060288813 +1060696357 +1061518049 +1061892401 +1062922841 +1066649388 +1066972125 +1068053540 +1070355746 +1071401003 +1073048018 +1074097729 +1074286241 +1074300668 +1074483465 +1076063081 +1076611070 +1077160981 +1081087911 +1081585836 +1082854026 +1082946820 +1084899449 +1086035569 +1086200684 +1087460587 +1088190640 +1088812321 +1089642825 +1090531306 +1090974754 +1092306234 +1092710391 +1092953187 +1093221553 +1095075549 +1095541326 +1098270690 +1099260427 +1099741236 +1103884228 +1104249874 +1104858395 +1107290731 +1108017302 +1108811950 +1109418933 +1109622328 +1109855432 +1110626951 +1112932854 +1114555094 +1114901368 +1116883499 +1117756527 +1117811582 +1118528663 +1121395876 +1121418962 +1125116660 +1126356873 +1128584764 +1132845513 +1133750821 +1133774721 +1133824038 +1135598074 +1135620094 +1136933701 +1138038366 +1139318757 +1139540709 +1140779057 +1140871300 +1141337493 +1141625008 +1143906286 +1144962169 +1146517530 +1147868582 +1150608565 +1150685699 +1152561826 +1152658053 +1152870612 +1153411159 +1153831208 +1155746337 +1156777289 +1157339335 +1157521215 +1159311377 +1160173737 +1160512943 +1161042045 +1161314948 +1163243317 +1164236034 +1164772417 +1167644629 +1169503075 +1169798951 +1170087820 +1172837198 +1174834475 +1175335789 +1175852528 +1177950017 +1179092924 +1180171844 +1180885064 +1181139571 +1181417357 +1183706182 +1185682885 +1185794840 +1185820321 +1186424475 +1186749668 +1188795072 +1188961944 +1189752626 +1190803319 +1190905355 +1194156988 +1195126377 +1196073904 +1196102277 +1197836840 +1199917825 +1200831126 +1200952768 +1201701021 +1202350460 +1203533423 +1203560793 +1204015278 +1204603742 +1205290644 +1205463274 +1205578490 +1206155886 +1206390092 +1206963419 +1207379225 +1208131300 +1209892037 +1211066244 +1215426612 +1216726543 +1217295379 +1217890510 +1218550582 +1220333667 +1220504126 +1225723697 +1225936051 +1227145464 +1227250292 +1227437587 +1228449626 +1230989666 +1234319084 +1234818297 +1235930752 +1237457277 +1237975020 +1238195981 +1239022902 +1241008979 +1241623934 +1242283544 +1243363704 +1243702427 +1245554671 +1246420553 +1247105271 +1248644863 +1252662158 +1252894316 +1255682160 +1257913932 +1258401652 +1258466362 +1259656278 +1261553536 +1262117610 +1263325058 +1267194477 +1268173144 +1268605809 +1269116464 +1269130261 +1270135577 +1271224717 +1273404932 +1275248869 +1277243675 +1277321980 +1280088237 +1280377319 +1283366129 +1283452965 +1288300668 +1288593639 +1288963009 +1289143959 +1289636648 +1289710990 +1291395605 +1292482679 +1293750767 +1296097952 +1300663257 +1300801411 +1300975567 +1304926989 +1307929928 +1308135181 +1308199630 +1308827711 +1310389367 +1314346640 +1314379214 +1314761427 +1315274444 +1318176443 +1318724530 +1318788757 +1320744276 +1322378188 +1322899191 +1322903332 +1323635552 +1325636480 +1327244745 +1327717577 +1328483569 +1329163456 +1330148002 +1330356158 +1330750916 +1331213739 +1334292065 +1335953484 +1336095842 +1337023357 +1338304372 +1339916712 +1340913190 +1344001400 +1347420787 +1348885486 +1349015110 +1349960247 +1350773514 +1351690990 +1352022878 +1353432239 +1354578859 +1355355406 +1356742879 +1357124699 +1357126034 +1357403688 +1358323379 +1358767116 +1359635656 +1360170634 +1360482924 +1362144698 +1362843647 +1362978041 +1363477108 +1366155872 +1366534343 +1366540379 +1370274737 +1370612980 +1371516301 +1372082487 +1375376180 +1375996180 +1376179498 +1376525530 +1376862374 +1377121447 +1378231989 +1378629143 +1379034746 +1379702275 +1380501622 +1382222743 +1382277369 +1386167239 +1386353267 +1388546716 +1388983728 +1389889911 +1391960827 +1395863973 +1396295365 +1396645840 +1401333919 +1402247546 +1404491762 +1405497708 +1405789849 +1406437932 +1409507697 +1409829600 +1410156639 +1410552188 +1410765040 +1413994924 +1414207923 +1414423038 +1414528615 +1417951513 +1422027837 +1422585722 +1422685798 +1423639214 +1424215948 +1424752169 +1426697691 +1427718200 +1429354919 +1430036275 +1430365678 +1432518129 +1435813687 +1436648428 +1436803764 +1436923733 +1436925357 +1437804740 +1441967717 +1442696964 +1444528980 +1446109254 +1447146831 +1447529023 +1447639092 +1452760991 +1452949634 +1454208590 +1455007941 +1455129140 +1455163933 +1456500105 +1457477494 +1458969496 +1459936822 +1464154677 +1466255376 +1466647222 +1467133816 +1469672015 +1471685662 +1475644449 +1476113587 +1477040484 +1477125634 +1477958868 +1478052781 +1478231675 +1479091917 +1480023781 +1481426509 +1481673943 +1481954328 +1485761527 +1486010819 +1490088251 +1490293414 +1490551067 +1490855871 +1490993762 +1492372309 +1495513018 +1496403843 +1496856968 +1498584073 +1500513730 +1502453831 +1502970603 +1504889936 +1505342868 +1507596870 +1507828443 +1507871622 +1508081018 +1508414985 +1508415400 +1508479159 +1508784989 +1508899123 +1509102120 +1509239253 +1509423999 +1511282393 +1511471584 +1511975455 +1512337459 +1512366409 +1514185138 +1517833798 +1517889260 +1518491148 +1519303354 +1519638970 +1520134395 +1520682189 +1521269681 +1521856552 +1521977514 +1523490095 +1524089052 +1524439365 +1525501767 +1526049370 +1526083639 +1526265741 +1527380174 +1527421456 +1529439264 +1529777199 +1530083358 +1530120543 +1532297134 +1534366741 +1534846639 +1537880576 +1538159254 +1538229015 +1539989091 +1540741826 +1541002096 +1541074474 +1541111920 +1541721121 +1544221168 +1545737076 +1546967413 +1548221944 +1548399784 +1549529019 +1549733557 +1550538745 +1551165877 +1552449187 +1554873250 +1555063811 +1555839117 +1557213329 +1558931031 +1559662372 +1561025502 +1562199863 +1563098806 +1564028159 +1566921788 +1567582626 +1567885971 +1568409342 +1569699514 +1570568754 +1570682769 +1571401088 +1571615945 +1573197253 +1573306030 +1574199191 +1574664725 +1575838288 +1577296486 +1578225787 +1578615594 +1578783094 +1579943353 +1580519681 +1581562042 +1583299513 +1584569620 +1585435999 +1591980305 +1594259114 +1596482838 +1596566478 +1596781798 +1598145122 +1598474177 +1598702022 +1598880106 +1601476259 +1604608585 +1605673665 +1606094474 +1607153388 +1608483043 +1609576996 +1609966836 +1610106089 +1610212241 +1612961280 +1614633814 +1615301359 +1615396489 +1615586521 +1615644249 +1617349948 +1619540398 +1622220773 +1622566196 +1622672547 +1622858086 +1624464501 +1624469284 +1625624387 +1626442863 +1626561260 +1626835703 +1627131223 +1628704410 +1629979228 +1631921401 +1632359870 +1632447212 +1633900703 +1634092629 +1634849629 +1634970761 +1635095625 +1638858151 +1639101257 +1639266374 +1639375178 +1643044260 +1643477270 +1643600058 +1646270397 +1647081533 +1648638369 +1649158032 +1651359165 +1651757254 +1652676409 +1653666869 +1654496076 +1655987401 +1658941557 +1660130224 +1660399521 +1660648751 +1663738178 +1664461865 +1664938017 +1665344106 +1666581461 +1667198857 +1668027402 +1668301266 +1669934750 +1670756727 +1671375771 +1672057153 +1673714908 +1674101664 +1675299198 +1677345411 +1678071040 +1678802734 +1679356962 +1680245394 +1681992484 +1682345589 +1682795575 +1683700383 +1684298076 +1684591040 +1686133874 +1686201683 +1693046234 +1696623877 +1698620703 +1700597509 +1702429773 +1703593893 +1705151327 +1706381830 +1706621285 +1708884929 +1712530333 +1714271246 +1716268655 +1717303496 +1717619409 +1717771501 +1717784670 +1717898129 +1720162062 +1721413076 +1722060509 +1723393945 +1724525858 +1725179668 +1726223739 +1730973465 +1731352982 +1734614399 +1735003835 +1736059900 +1739031566 +1739709739 +1742200000 +1743060669 +1743156388 +1743560317 +1744091564 +1747034742 +1748920694 +1749360430 +1750705322 +1751012237 +1751481862 +1751706861 +1752801464 +1753942928 +1754206178 +1755190221 +1757516351 +1758303713 +1761029936 +1761115959 +1762325188 +1762541667 +1763803382 +1763962871 +1766708683 +1767102385 +1767385714 +1767960493 +1770782659 +1773889298 +1775413870 +1775824841 +1776748374 +1776907376 +1777087870 +1777687620 +1777860200 +1778540681 +1781370922 +1781463861 +1782981879 +1783108894 +1785165035 +1787046589 +1787727134 +1787922118 +1789130811 +1791501057 +1794023617 +1794658020 +1795509528 +1795907770 +1796184127 +1796300787 +1797062632 +1798205555 +1802694996 +1802842080 +1804722203 +1804991596 +1805045931 +1808063237 +1808277272 +1808409362 +1809053399 +1809816412 +1811254570 +1812653640 +1813623839 +1815633090 +1818417574 +1820141525 +1820537604 +1822410595 +1823946607 +1824181053 +1824488320 +1825081759 +1826954830 +1828731468 +1830311501 +1830732408 +1831135391 +1832175712 +1832407011 +1832970857 +1834168494 +1835805781 +1838108796 +1838410053 +1838522490 +1838585137 +1838827365 +1842721649 +1842753670 +1844269578 +1844561354 +1845237492 +1847931834 +1847955003 +1849441842 +1849930260 +1851144058 +1851394246 +1851918902 +1852864695 +1853098254 +1855992217 +1857013270 +1860452983 +1862173806 +1862290036 +1862424942 +1862516074 +1863090771 +1869118844 +1870686501 +1871737210 +1871930841 +1873231157 +1873342560 +1873437237 +1873914717 +1874050798 +1874446752 +1877665128 +1878336665 +1878457419 +1878652257 +1879212775 +1882195988 +1883277337 +1883661820 +1884372854 +1884757001 +1884958763 +1886068611 +1886163330 +1886436552 +1887274953 +1887487879 +1888071966 +1888220505 +1889248804 +1890353495 +1891793940 +1896019661 +1896476627 +1896647369 +1897820551 +1902153909 +1902254400 +1902339426 +1904253857 +1907078094 +1907538605 +1907580398 +1907807070 +1907911431 +1909053670 +1909718144 +1911249842 +1915352982 +1915682127 +1916020202 +1916094303 +1916259885 +1916308447 +1916828746 +1916908871 +1916993507 +1918376468 +1918632021 +1919583369 +1920728646 +1922036040 +1922614328 +1923924460 +1924416135 +1924633218 +1925056591 +1925082982 +1927651160 +1929621642 +1929913575 +1931573183 +1932716859 +1934613289 +1935068243 +1936377891 +1938115516 +1940511093 +1942290066 +1945580778 +1946213519 +1947409049 +1948715918 +1949700165 +1950213303 +1950273149 +1951327492 +1951377854 +1953285454 +1953576625 +1955039518 +1955293159 +1956068826 +1956126820 +1956991390 +1957012319 +1957602825 +1958219970 +1959287271 +1959338304 +1959775221 +1961650964 +1963473417 +1963770886 +1965873054 +1966615493 +1967364101 +1967458050 +1967928355 +1968849511 +1970429577 +1973194763 +1973998991 +1974957533 +1976452159 +1976830581 +1977247419 +1980953401 +1982013299 +1982165897 +1982312774 +1985493594 +1985953656 +1988645768 +1989365107 +1989677061 +1991495774 +1992004640 +1992319864 +1992886662 +1994105611 +1994425709 +1995915674 +1996070097 +1996684564 +1996730701 +1997162113 +1997623469 +1998377219 +1999127721 +2001200452 +2005054881 +2005811631 +2006160299 +2006982087 +2009652075 +2009798832 +2010057298 +2013001410 +2017315325 +2019357220 +2019932464 +2021770828 +2023037910 +2023613712 +2024107971 +2024945956 +2027242748 +2027485539 +2028513672 +2029183499 +2029656846 +2029866940 +2033017829 +2033754513 +2035115070 +2035742309 +2035752357 +2038696287 +2040229806 +2040360225 +2040914781 +2041430432 +2041922925 +2042693768 +2042892557 +2043808773 +2044732291 +2044819044 +2045928996 +2047175855 +2049075599 +2049884625 +2051581527 +2052223638 +2052476522 +2053285680 +2057529922 +2061783685 +2063389035 +2065420671 +2065468078 +2066152872 +2066161218 +2066209600 +2066451533 +2067955182 +2068587877 +2071142127 +2072291183 +2073205469 +2073575906 +2075304330 +2076257739 +2077984882 +2078244571 +2078387171 +2078588264 +2078809135 +2079506846 +2079856010 +2080912538 +2081640854 +2083692784 +2083830786 +2084230463 +2084376878 +2084381027 +2084804186 +2086945996 +2086956417 +2087272360 +2089096067 +2089420814 +2091020153 +2096925230 +2097234590 +2098333903 +2100035316 +2101153676 +2102342705 +2102759154 +2107573499 +2107879177 +2108631302 +2112022026 +2112321593 +2113258941 +2113307749 +2113939165 +2114483017 +2115926688 +2116358856 +2116500429 +2116642867 +2118036408 +2118454202 +2118918951 +2119234197 +2123456246 +2123781138 +2125209562 +2126242116 +2126524027 +2126751739 +2127559558 +2128021970 +2128389497 +2132256492 +2133026663 +2133146643 +2137312385 +2142772926 +2143582251 +2143642374 +2144650720 +2146276546 +2147208091 diff --git a/examples/machsuite/fft/strided/check_strided.data b/examples/machsuite/fft/strided/check_strided.data new file mode 100644 index 0000000000..62fefd789a --- /dev/null +++ b/examples/machsuite/fft/strided/check_strided.data @@ -0,0 +1,2050 @@ +%% +499.6815828018352477 +-3.5965481374096271 +-8.6091733537799833 +2.0596425161174237 +-2.6860348462437180 +18.3618185668513654 +-17.4940266628799534 +19.6766609993246249 +-0.3267842152172840 +6.6167017745735244 +3.7154986060204038 +-3.1633285176205961 +7.9196631052383220 +-13.2702817218792006 +8.3850247810499248 +21.7441677218203147 +13.7154911239726047 +2.5549465578157919 +-0.4893785097528318 +7.3473220933959560 +14.1079822142617246 +11.5001153586105147 +-1.7873841170319331 +-3.5310602688490063 +-3.7397517201992967 +2.0295638448133211 +7.7513922709537191 +0.4987486091518538 +9.1653121515586626 +-1.9172781406374746 +-1.5062605698068181 +-1.4745832653717967 +5.5923213879946072 +7.4814817381057459 +-6.9288677272366792 +9.7647998933324480 +-11.2018221786393575 +0.2248954017189471 +-5.9059469792883172 +12.2942260015566198 +-17.8998097226953199 +1.8672568987443050 +-3.1286613869244899 +9.3851031264659994 +9.7999782984125510 +9.4534296860522993 +-10.3692620838118579 +10.8012659215335667 +2.9372059549506266 +0.4042729210070926 +7.9295238490130986 +6.3552424619673102 +-9.1192802916008198 +-1.6440965202725577 +-11.2580652771583729 +10.0835009133181899 +14.3928571040740465 +-0.9463071782463643 +-3.6272927119441212 +-2.4687295235906141 +3.7667783426427532 +-1.2713719952639964 +4.7352691016227473 +1.6080230234052093 +14.6608699632429875 +5.0425261032654163 +-8.1078383775986591 +12.2694669952056490 +-5.3447561750360073 +-8.6775571687577475 +17.3551671128764227 +-10.0085668359087983 +-8.1949326495607355 +-6.8714315834345019 +-2.2670624052816439 +-16.8481926428680850 +21.3359931305202224 +16.6692598326072954 +1.0484366364485034 +5.0033779458475802 +1.8455482808793580 +-17.1299436766020463 +8.0793516362854163 +-1.2632947313631648 +-11.1335517105674278 +-10.1510027301746177 +11.0380161949925935 +5.9371398972511100 +-14.6275883160768672 +5.2260098304055411 +-15.7669630936730396 +3.8685177117507035 +10.6192770565881709 +-12.5132686257084522 +-0.4307709774361430 +5.2227319536262726 +5.3400735490690607 +-3.6318625905697144 +22.0133492043055909 +-7.6139154825554645 +18.8033894770888885 +-4.6247792813002526 +2.3676451286687197 +3.9364513626749718 +23.7926837294793643 +-0.6810408560820012 +-6.0955904362312578 +4.4471636955315441 +15.4991375841504428 +5.3112521265310484 +3.6529779009522247 +-6.3663607209918922 +-3.0314448060097137 +-2.6034210752852083 +0.5483579356658133 +-1.0694236056584552 +-4.6420890041187484 +21.8035164062587121 +0.0437598030564410 +-4.2812536029278725 +15.3356084681333105 +6.6511615304321392 +-4.8383608504312390 +-2.4329720555247150 +6.1548042489158430 +-6.0278230019681285 +-7.5317817322014804 +-1.7067998171618233 +4.6603181107989542 +10.3964107742856466 +-5.8815794057954882 +6.0068631166585984 +14.9185147174948334 +-2.3249463599017375 +11.5219011652679288 +9.9064781787410627 +-3.3160381025739705 +-3.8936160158345361 +9.9356895579989448 +-13.8541995522526555 +-15.3954208729566293 +12.0750591667925828 +8.7670065222319629 +-2.0170574068938629 +-8.5423235897480332 +18.6653825592386902 +6.7850006885556953 +-16.7766436365048364 +-2.6846418474966391 +6.2036809221112783 +-13.2944663604972408 +-6.4255866364562610 +-8.0198265000105238 +8.1867111251998992 +-4.6332072434797915 +9.1431223905949235 +5.1806331702432793 +-10.9465225142992324 +0.6371248524423032 +-4.4278729335773281 +-0.9959523524723330 +7.7260365997319873 +13.8783711701864476 +-0.0549042452099924 +-4.0775835361903239 +9.2194026945605891 +2.0058650397648892 +15.0263791982142472 +15.5774664399838159 +-2.5356019524979514 +9.7830370264034272 +6.5215957666850954 +-4.3364798585062427 +8.1029798511886799 +-5.4446154371148889 +20.7562553273625312 +6.6084760865289640 +-9.0151188624933383 +16.8169699063819387 +2.2462234715144405 +8.7187895194567027 +5.2359553793883213 +-6.3949932019458107 +-5.4065048823380106 +0.9459619118405946 +-5.8680729350673477 +10.3262012079088006 +8.9925339752796791 +6.6127188603107321 +-1.2182716681634416 +5.9416782291888559 +12.7737205084300527 +-9.5575658456062715 +-12.2743202847618615 +-0.4703051110191795 +0.2676437400260172 +-8.1620813442002369 +-10.1295570487141280 +-3.9161777356910732 +-3.9693530924911093 +25.2829529734855996 +0.6561847803898875 +7.6144345755790255 +7.4189198091877735 +2.8932833886494400 +-24.4599473355233670 +15.8355068429527126 +0.4878587255004678 +-7.5193339544879194 +9.3691158650649449 +-0.6455625029206953 +-11.5994675740207303 +16.6254585596720368 +-1.6167232626850447 +1.2938622693602189 +-4.9882464037077821 +-3.6487642620103600 +-8.1753673153976703 +11.0347167835034199 +-0.2138367913715111 +15.7671569973381480 +-0.5332694577262558 +-12.3607514892000037 +-0.9202695784353185 +-0.1938544715407602 +1.0267245597104830 +-3.3324229247602712 +13.5229215264544234 +-13.0698466226096688 +2.1750021701459357 +-5.4159626838472033 +0.2956643639490983 +-13.0671491105392494 +6.7257359043570855 +3.1580019040780973 +3.4629838397898238 +12.8485848329235939 +13.6439895968306129 +7.8776855355855755 +-17.7372135152678325 +7.5147220545510569 +12.2793554552792585 +-2.3686601318464957 +-11.1423234427946554 +-15.4299277070759473 +0.6239861866319325 +-9.2255080788920587 +-9.5684339256697193 +11.4525711108549721 +-0.7158179047329867 +11.6269178551383394 +-0.5765873367396228 +3.9431195199651623 +-3.0649088164581433 +18.3191405162708634 +4.9451372132728579 +-8.1898535392718710 +10.2467565993362317 +-6.7799684079464901 +11.7531282338894698 +-3.0739048326698653 +-5.3594911909522329 +8.8299694638789603 +5.1370782311875223 +-4.0711491872413523 +-13.9014229594921090 +-1.2868041488011617 +20.6772922481535701 +2.2881617144113475 +-12.2583705107904493 +0.6037616571241866 +3.0415995706908681 +-3.2222794589857489 +4.0685367850084777 +-1.5583699501152646 +11.5045361172903071 +-14.9091624323900636 +6.9209435086483371 +-5.7772364316360836 +-1.9898534234014815 +4.1971072780761958 +-0.2404311924943312 +1.9396310332806896 +15.9881414759067937 +3.1711513621823229 +-10.2168840355642399 +-9.5922126071070810 +-2.5675592945577370 +13.7860796280553775 +-5.6310386948729114 +18.5677405082493472 +4.4102800381136085 +5.7009855259138762 +1.7310457505455623 +-6.8530985754364036 +4.8268101018432752 +5.0660048717934174 +8.6394234773658187 +5.4927177140309205 +14.0853645746294980 +8.9176082793246518 +3.4619009245431740 +-1.0610049802469090 +7.1310874892518781 +5.2698772592827989 +4.3955178888810185 +-9.4383709775289493 +13.0658789831991360 +1.6630952624330644 +-4.7159267414646138 +11.4724824383638300 +12.8559572447452624 +-0.9566890796764351 +-9.9703785723925282 +-6.6248594767665114 +8.8788399136990019 +18.4822551394064121 +-7.7033714181267765 +-10.9425419164617956 +-17.4744144511672168 +-12.8021956492376816 +-22.2305329454613698 +1.0805046805538490 +-0.2841140965979549 +-8.2149259054194630 +-4.9986544084140334 +6.9044650220722801 +9.7815317920423190 +-13.5574716011577205 +-3.3781476618665973 +-6.4823296496743072 +-2.7014291231586629 +-12.4229610314693240 +-2.8507945453289443 +-5.7401524151982795 +-3.5626003621113616 +7.4171632680127351 +0.0001323617795421 +3.0880282068257214 +6.3299127559933348 +3.0393666063102494 +-9.8441294353611504 +1.4820288092437535 +-8.1577236252529630 +-8.1104121518223380 +11.7074507502663856 +4.4863496106814456 +0.0163395157960351 +17.4534824536090412 +14.0472713144210779 +-10.5520409460421973 +-6.7639836649713523 +-1.0054775756356440 +-13.2095681433803733 +-0.2610932599217488 +-9.2135564977933484 +-2.4955897340692372 +-0.6878565241090697 +-3.2330797988811781 +0.8626944057415387 +-2.8911225664442783 +-8.7784061080520068 +2.4943612182913348 +2.9559035983644879 +7.8267385360351680 +0.1993076871138557 +-16.1603637102725841 +11.1463967200483562 +8.8284599893462001 +4.9211927873182297 +4.4308934175744588 +-9.0632511931262734 +-9.3015460944874491 +-3.8043691780946700 +4.1296260256885020 +20.4950898659289891 +-2.0271764273643491 +-10.2260154730118842 +-7.6023640053008466 +-1.0169257885710001 +6.0743887552227855 +10.7787246249407218 +-7.6133506661572925 +9.6678144560853809 +-5.4409074169220908 +12.7833535268658096 +-7.1840316364005439 +7.1265569438991960 +-10.3576284337027058 +-4.1069741794163583 +2.6786711738435356 +1.7972770863380232 +20.9542098269569692 +7.1529604453721038 +-1.5930249299444155 +6.4432797866790130 +15.7562901314255992 +8.4458650100657113 +-13.5751139930782116 +15.8626252946529078 +-2.2748030796579943 +-21.4590298522777800 +6.7291621825759069 +-13.6370846444190494 +-4.7428670092394940 +-2.0790641202386650 +9.9399981044320072 +-2.2151205751804586 +-0.7855180774520325 +2.0119334852585653 +-3.6222259053929449 +-1.1834509697794628 +-3.7801625142190165 +0.4292442373939558 +5.0194533647852433 +-11.1584640943231008 +-3.6089375286729686 +6.6301168293498245 +-18.1652367222728373 +-13.1236366664579407 +10.2789696069274825 +-25.8211869624063226 +-3.5708150347427994 +-12.5763670629021647 +-14.4570400059158644 +9.1072537512879492 +11.0477317834839361 +-4.1085221584928222 +-21.7121542102498672 +-0.9387542101401607 +-13.7627263025602140 +-4.7487365538562747 +-8.1145683043782242 +-0.3648969144529888 +-4.1570710878251642 +-1.6962382539923153 +4.9849627238602592 +-2.2976132126174438 +5.7622968534395058 +9.6340436048268732 +-6.2476250861411380 +-17.5720028408384472 +3.8759021771182316 +3.6135851688070075 +3.3295037545388508 +-6.7427946835834325 +1.0070528503237899 +-16.9286687999753767 +-4.0824450111309076 +-5.9057160617505389 +0.8261415130776246 +1.1251746360001587 +6.3155318051509042 +8.3383429011570307 +-23.2702428142640763 +2.4713411476263758 +-10.1187743528522951 +4.9724407753038564 +7.1397012239502864 +0.3532507589480214 +23.3620533313098022 +10.8420997322771111 +4.9467319409616080 +6.4083782384278019 +-9.8851770602604034 +-14.9542553213673415 +6.7692312241974877 +-3.4168263846258595 +-4.3425391691472717 +-0.8630148239227704 +-3.3722781236096306 +6.9975091839139640 +1.9751292906487170 +0.2422652660267040 +4.2342620149515477 +6.2914427101701405 +0.1610369468926542 +10.5575511590376792 +-26.5045519288861051 +8.6816559473880481 +-20.2554729896783492 +1.5787540535398996 +-3.4384860970074564 +6.4577575259534958 +-3.8978962656034506 +6.1963894732138263 +-5.8210536928039200 +-12.7241415883490863 +16.8871312292416960 +6.7699499252214892 +2.5371741722920236 +-6.5121552144552366 +-0.4946506603590208 +3.1421292758999684 +11.1852203167073156 +14.0678044979882095 +2.1587210919684683 +-7.7726722698481971 +-17.4599021007772954 +3.6620459295200112 +19.1338007596331288 +-9.3216381466651548 +-6.1479851424503904 +-5.6100963880082348 +12.9577993762765296 +0.1585528884087992 +11.2173492519944489 +-7.1295409559102332 +9.1372748054128774 +5.9934591943967135 +6.1406441515322410 +8.5770434577813823 +-4.2590942019659508 +-2.0367473747654561 +8.9367149442751206 +8.2413285359376651 +10.8670226115231401 +-1.7035336979620990 +5.4634720215949208 +4.5403553621144166 +10.2036845149121991 +0.0875880406603002 +5.8331997166210128 +-14.4991466556419475 +19.1957528113826399 +-3.1948677609472789 +-0.0070932026365339 +1.2926829954782710 +-11.7266544172142311 +16.6238282575182268 +-17.2755939443606366 +-6.8384589211947011 +3.7498267059318913 +4.3988874617383757 +-13.0637692288105445 +5.8942208094270772 +2.8270502345570732 +-2.1543268139909539 +-12.1314587504938771 +-0.5990616940282019 +7.7450148051264076 +-18.2585736619789785 +10.9657333712173433 +-8.8325987855642865 +-0.8019118037644581 +-10.2002685398219217 +9.1524002806953284 +23.5299847290090192 +-1.2931801795128735 +-0.8320921735381805 +16.9306637300521921 +0.0812098738650739 +-6.9207306195325957 +-9.5842410738273536 +-2.6283680901585686 +-7.5508250644709189 +6.4130079470147567 +-4.1324479284614792 +5.2957258709096262 +-6.4386842846010879 +-5.4376413694246200 +-5.5834365549301150 +2.8632418308759422 +-1.3599264960383235 +7.8984481879394899 +-9.3812449649695502 +-4.5600364173210926 +-7.8828236315881641 +7.3168441216696189 +-0.2199833561809941 +17.0090719300577931 +6.1937856648846887 +3.4836310773952879 +-10.5727877396828696 +5.8775148362456706 +-1.6405598080377661 +17.9570848201736837 +-17.7682617993456873 +2.5929736483557821 +-3.1335816460122929 +-7.9516490143447278 +-4.7205535818996474 +-5.7674506274526021 +-11.9316961258303582 +2.7886044111211903 +4.3352115669935376 +2.1768620947390778 +9.8270733315270533 +8.3952715912352573 +-3.5811484258998432 +5.0691134491696914 +1.9668840457964261 +3.6374855288933201 +-27.6247585727328939 +9.5920972395105508 +6.3300707181950315 +0.1992609004678334 +7.0022759562615304 +-7.3299794426330873 +1.3534296414420517 +-5.1445324637163461 +-9.7969166003199355 +1.9929344381006922 +-2.5655924358959443 +-2.1992759525407868 +-5.0117492043680967 +-1.3482865692675410 +-4.1155776677270133 +4.6482668279675252 +24.6716241865667740 +-6.9755379983381900 +8.9010171424790698 +16.1069182230158567 +7.7204333509476593 +3.8072029739535744 +11.1070686586798733 +-9.9834803461662123 +8.3681359405896441 +-1.1335829296854492 +15.1744826053315336 +-4.8269722252462524 +6.6006992911747906 +6.7377842139830841 +0.0662985634822659 +5.6748859014131945 +5.9702479140741325 +4.7843564233245663 +2.3616941026196026 +3.4416531946715931 +0.8494283857542000 +7.9308022803972458 +-4.6749846252542246 +6.2470255600435891 +-11.5691226892695340 +-0.1394317930575180 +4.1493850813858195 +9.5684693104237333 +2.2343634695334629 +-8.2356198816886046 +11.3177394505238151 +-15.4799249423262637 +15.3759390131685834 +-7.4206052761453973 +-4.7772483269282420 +11.3383018521168992 +4.9254439428655070 +-2.2624701279061563 +3.5638454368858081 +0.9527909059776176 +1.7097600179168042 +-11.0628849386227905 +-17.9282191210254602 +-10.4094990570033037 +3.5862787894796351 +1.5474801391245394 +2.5020328835897407 +-1.3066877422131165 +1.9643990347242366 +0.6419405020159576 +10.5650397489502748 +8.9799248397728650 +3.9701358114759309 +9.0024280779550185 +-6.0507377772526958 +15.4665922253664796 +-4.4151289293897236 +5.2466041151176226 +-2.2055575732700117 +7.3689570992294620 +2.3364140530194852 +7.0962176476071352 +-15.2203389264000020 +-5.9092619378653826 +-5.9599718408378077 +10.4943181108915251 +7.3365091309559798 +-10.0104615730382580 +7.8104907093238589 +-14.5385304704638649 +7.6060869599275920 +11.9579995491107525 +-14.3267461188118865 +-12.7298610902622986 +8.4942121072728316 +15.4055379421196967 +5.7740135541335276 +16.5901117572974783 +-0.2580583274057329 +2.9145953692884632 +-10.4319696802810675 +-17.8142436825248147 +-17.6596549715583144 +-1.8721716198742282 +7.1002695346950375 +-9.4555247343243831 +-15.1613045408764311 +-16.8817685165568534 +0.3648454743007381 +-8.0706165125763718 +7.4297963290601370 +-2.8236974184657813 +-12.1610647651385335 +22.8845167694437421 +3.8771659675807673 +-1.4627740239314950 +-3.8045752858250252 +10.8958631403264832 +-2.7653237554911536 +-16.0993367135496044 +12.0385932889819944 +-13.7920608492889887 +7.4631833183500671 +4.6448697645166499 +-13.6476392574700647 +-0.2004320823239354 +-16.7368408406938549 +-2.1962232437142206 +0.2374383263178497 +-5.3550219949738107 +12.1516605520316219 +-10.1397416329570724 +1.1428970978069124 +6.7239227838974873 +9.3605399124623165 +-6.3203202114260302 +10.9574241818925451 +11.7234530338272549 +6.6814939290682105 +-10.2031480756173529 +2.6794364176049426 +-8.0471717999082522 +-11.3880346018653498 +0.5134175967727419 +10.9080756203700027 +-17.9385088554622385 +-15.5928608022694561 +9.0825811737046784 +-16.3160389919420759 +5.8025791703609260 +-4.2605065307130650 +5.1894553109548491 +5.7824155656848832 +1.6759330561374082 +-7.7457904803312587 +0.9169218673320216 +-28.6854287578779683 +16.9155536590423559 +20.7675434357734652 +8.4573348531086943 +-1.3090977548793914 +-5.7813229605828171 +-0.6663583353499751 +1.7378765752536438 +-2.1757846948683071 +6.1433423747632290 +14.3831842035350022 +-2.7565559023484187 +8.9792030909607412 +10.5560863911582494 +13.6482828178448621 +6.4234629507071812 +-16.2902979411082498 +-9.7414951881106759 +5.1253275180054718 +-15.3473965641601815 +1.5402155284481083 +14.7803618971838890 +17.3699422088607953 +7.8499945296466302 +5.4379479418484680 +-6.6591786436031253 +-26.9147586023641594 +-2.2743384805422444 +13.5791698580203981 +25.7051195906365919 +-15.1361058637111512 +11.1997386720764087 +2.7044357915472208 +-13.2487055569884618 +6.4869054408316664 +10.8099473563841197 +3.8298695009674915 +3.5190996702116415 +0.2980069761416335 +0.8745975638965735 +-8.4976633073548395 +-2.2975704501136516 +-0.3186783440563925 +-12.0802976061054821 +-10.6181665716557703 +8.1862288312029321 +4.8284303691105057 +1.2253476097622515 +-11.6124150598310010 +-2.1881254748736803 +-14.2339451925993359 +6.1712985487966971 +2.5287716124231370 +-2.9214196852192429 +3.9926851947538098 +4.1897284346592532 +-14.3946922888329549 +-17.5423608090120950 +13.4560428487981465 +-11.1747459755545488 +-5.8420199220963855 +-4.9733319827090403 +-11.1843372737421234 +-2.7266781396405233 +-10.5763838729175159 +-1.7221296775359738 +10.2008198838216479 +7.2631754828749182 +3.4464975427254716 +11.2690400948215945 +6.1829729673271379 +-10.0515690614552859 +-1.3383105718194210 +-2.4353351059132056 +2.4977502280955690 +-17.3324732860211874 +-18.5342376632378141 +-11.6756649216517392 +18.5819296108340026 +16.7763608899043675 +-11.7550720850186661 +-5.1664668369370563 +-3.9267501627309094 +9.0260497136628182 +-11.3013482840684745 +-0.7526838893564087 +-3.6108208939624515 +-8.1295679919507204 +-7.6265290344270191 +11.4398823780502727 +-0.5436314732322352 +1.8974129030873570 +4.0335916051987653 +-0.5169641361195412 +-3.8656966006826154 +0.2707387533518517 +-12.5569633571821289 +-4.4387150775993218 +-7.7956642871991280 +-5.1999068074983636 +1.5372027867934195 +-8.1161239983570717 +17.0930021276602133 +-6.6514162203133544 +-4.2826959320699576 +12.9483321134470692 +-6.8071213371086197 +-3.2764269312567773 +12.8980023921631837 +10.4719409123034612 +-11.5437921756238051 +5.3346734748447266 +-2.4176257992438499 +1.0866961036944360 +-5.6497825829972328 +-2.6515651916096710 +-5.9911081823148917 +4.8811756777744222 +-6.2677263939136356 +-4.8359913231089990 +15.3107335957283439 +-18.1184471512029432 +-0.9332647728601788 +-7.4591661932122815 +11.2753006048426254 +-11.9563256694213393 +8.5180232938542062 +-19.4329050359259696 +0.7697326201175034 +-13.7800115143015169 +8.8552213223051623 +0.4517694049725192 +5.4135065562981728 +11.9860939926570111 +-6.5358474866501224 +8.0089878690253578 +20.2193776110777925 +6.0766138523451909 +-8.5534631885967016 +15.8234801847316682 +-4.9825948344112554 +-3.9997310516197420 +10.0899294833612085 +6.7811191513193378 +-4.2795846156127837 +-8.6487548527333651 +-18.0496419825926502 +-4.4015535814599129 +11.6647187471709994 +13.8571930115533775 +21.9919081268032031 +-16.5606955859210387 +-15.8469600979042866 +-7.0445152234296184 +-1.5986909779570504 +8.5737311145512773 +-11.2563221359219003 +2.1246277586268443 +4.8876674069164796 +-5.5954622751070460 +5.6356711777776312 +-6.1788436545738312 +-4.5153369757587436 +8.5642834789141435 +11.8384280804072173 +-7.7895512561012126 +21.8032266744273073 +3.8281825294899723 +4.1471525837937318 +-0.6312415000184710 +-2.8141478731359566 +18.9971433120930548 +-6.6011685550637615 +4.3272057442526721 +3.4646151490004944 +-2.2120623628086857 +19.3608928344886948 +-1.1999772462264708 +-9.8048442797984610 +-2.4249124682744929 +-0.0745360560988972 +3.8363519700484749 +-1.9409759668786712 +-12.1705206829627848 +-10.6902606830150262 +6.5009439334759040 +-4.8644499314437848 +12.4469826209516743 +-11.2334538775593220 +-1.8599988851340834 +6.8984007799384530 +-14.8957518980226098 +-3.6032704617316469 +-9.5763645200035796 +3.6955828544301941 +11.5587370729329404 +9.7732268499520618 +3.1949060990274809 +-6.2577941987982673 +8.4158963284543997 +-6.3391702944626278 +-13.2995123418193995 +-14.9116034671478364 +6.2282785464570685 +-3.8226578106215117 +6.7719494793928616 +-12.2628945427405931 +-11.5823449816504898 +-15.6078475891691504 +-12.0403779920255598 +12.8948765946093555 +-11.0144000475442496 +3.6092314178386582 +-4.9084241779031306 +8.3149947205506187 +-13.7866049093040601 +0.5147077789258887 +0.2427165586053164 +-13.1103514243831896 +-6.4670185545911689 +-0.3358480556109029 +0.0342616371854118 +-1.7649796149940573 +-2.7233118354004326 +-3.3818105327333954 +8.1220590751180914 +5.4796621489107089 +-0.0702616693056153 +-5.6776776876589210 +10.8510075686747740 +-2.3506433956191666 +-2.6277879146878114 +-8.4381558394318432 +-2.7812573856151603 +-10.4846825969828821 +0.1658046930753057 +-4.1010881682340798 +14.0738182177162940 +-6.4428719312500169 +-6.6328710538571016 +-1.1445153709605509 +-7.6719623825446579 +6.0234658834644978 +-11.0210582573619931 +11.3256830420907519 +-12.7249330256583271 +13.3449782203469631 +17.7925856629203629 +4.4579363574975268 +-7.4844542366127520 +6.0562648289782697 +-1.8743604846402167 +-4.5851520740373406 +5.8980355715772497 +-4.5254555186843977 +-4.8302135799192349 +6.9883523772335590 +-7.1190665409134333 +9.7952737385887616 +4.8971989763278403 +10.4447848736600193 +8.9624907837488887 +-5.1492099971134841 +-4.1433440368690908 +6.6821403709619167 +11.8956704209165647 +19.0194101586387383 +-4.5234807106811328 +-7.2884490970378835 +0.2036927498181782 +-2.6823090234396529 +2.7256244136251322 +7.9181674111214235 +3.5699109733761745 +1.4739355809851400 +3.9447802767997002 +-3.1812445597692234 +-6.2957699694126728 +-9.0643520225084337 +%% +509.4771675150243482 +-1.0691225265986475 +-11.3634668751500918 +-3.6789775171668611 +17.0636835199097092 +-18.7509283378856964 +6.7388623228171811 +7.0781711015274391 +-2.5422806978521826 +6.7059234168084316 +11.8263762158053911 +-14.2198451240484882 +2.1911127534884196 +-9.3293778591769616 +-2.7972591881344275 +3.8420300885011294 +-8.7997280535391731 +-8.7573610607115313 +-4.8212991503841067 +8.8803675170459595 +-5.5716798851954454 +-15.2956694846945727 +-14.8866511470937031 +11.0940483909365053 +-13.4191555664679125 +-2.7659936287430380 +2.8539526614813862 +-1.4416709622857167 +-6.4766534191766159 +-4.0248743754053056 +2.5658220680680452 +0.1482989677481079 +10.0928812108262047 +0.1013606600962103 +11.1958417952159870 +-0.2922602760294701 +-10.1985410562259720 +-11.3628816243901891 +3.0318103362543836 +-6.8583258952089041 +8.0262223360448566 +2.9394321406324155 +-18.9895584275153162 +-17.7712798647424641 +1.0180176168459791 +-3.2690354731511473 +-0.3210824224393942 +17.3300319024931397 +6.1106973497115931 +5.7594023160431291 +-4.1614537309297237 +-13.8453242759752388 +-1.9441261078987675 +-4.4347660681341399 +-0.6620395514264165 +-1.5029425874423410 +22.3930426935769162 +-8.0693399693491461 +1.7488733651852812 +4.3915402678647375 +1.5798456088986379 +11.1857993248495049 +-3.7310621974946150 +0.6411475618575402 +4.2544837081615823 +-3.4601503984961433 +-5.3118338694598997 +0.3746928565680476 +-6.9780513959593797 +6.1677483452598132 +3.6514642086999944 +9.6125000329085566 +14.7302193339243441 +-1.8714663761929575 +-1.7783501589564819 +9.1749607529304438 +3.3645428069722243 +-7.1498608438045004 +-10.1384146010999743 +0.8688814099243922 +-1.1221539244810534 +-4.8024883785444290 +-2.4835369565425740 +-13.0282102074963166 +-9.1268402590866309 +19.5051905967708272 +-1.2010531672041698 +-0.9211815404621315 +-7.7851249978809918 +-12.2017454294857330 +-4.1513617466189796 +14.8188083568208366 +5.7471408063266658 +6.0851704403543607 +-2.8411614257438629 +0.3143952713614544 +-8.6297536720629608 +1.3300942963555049 +18.3981457331160669 +-1.3733252774255860 +-8.6201764791243161 +-9.3834971947254129 +-13.9137481089358594 +2.6562027185159183 +-4.3352455983379148 +-12.8944352463270757 +2.2628194117432652 +6.6825784069272434 +-1.3083179354105408 +12.0454584827153734 +-3.7468608888625741 +-0.9555598299614503 +10.6739301980337817 +10.1410417816037128 +-13.3501368221749033 +-7.6905357948560997 +-7.4001059571756382 +-5.4365205878205884 +-1.7030053680790180 +-10.4188377759008297 +16.0156819551168574 +-2.2860761715999374 +8.1364406067414965 +-2.5877839748977389 +14.1196145151357744 +-7.2436319082656428 +-6.4035887716626405 +1.6586479263787317 +2.3483314499941166 +-5.2095358516512551 +12.5436015259344149 +7.3499063122824477 +7.7535076006317682 +-4.3684593668897156 +16.1752749968461167 +-1.7621479870413728 +2.5671383045057574 +-7.7313359511570656 +5.2707831492498096 +-12.1015303805099741 +16.1345450774474877 +3.0746661232453212 +13.6262399020934097 +6.6354725390866589 +-17.7856649327247673 +-1.3681692225209012 +-1.2648702003139873 +4.5531844185092503 +11.9169980150154657 +10.2829452720621148 +19.1623546254488986 +14.2363097495115571 +-5.9118724736752410 +-11.4442215303375612 +-10.7533962688808540 +-5.8165425920009302 +9.8374368600768065 +4.1324993737134443 +-4.2081155168057629 +6.6581417589014924 +7.4795450110598498 +-1.4506884413457453 +-5.2855619002203529 +-6.6028292583288195 +1.1580353012498206 +-1.0577110519715163 +3.3187115115984915 +-7.4629545678824183 +-6.1807835517475738 +-1.1986052890972960 +17.0517488385248157 +-1.7227940484143209 +7.7894729316916900 +-1.4156432667798002 +0.9506429380860895 +6.9851981560935883 +-4.7463093510144354 +0.0535899196913605 +4.1755541684588842 +-7.1599042939044324 +22.4542442729043117 +5.2253548765448041 +18.5118572750815886 +-2.1850077051829988 +9.3403210141522877 +-5.7677934680605061 +-3.9786570969601911 +-25.1133020868369385 +-6.8724745546086030 +-6.5620110885394691 +11.7963442311315969 +-6.9457696370629822 +13.4232434598899566 +-6.0502081404623773 +-17.3306563723519140 +-16.9817264519591795 +-2.7345033427778382 +11.6820662560497102 +-3.9465711850423708 +9.8423256267765051 +17.4457387587225732 +9.7408839882869103 +14.1572414984139705 +13.5476092033881983 +6.1407598190128976 +-1.0311791181555510 +-8.5430433948226217 +-0.4818144627232668 +20.5624399059404439 +9.7598502627550872 +-4.5525173619368786 +4.3016628470978606 +0.2472520922414312 +3.9632277310609965 +1.3220187299371124 +-12.8561878421817433 +10.2085617957268191 +-2.8584533753950048 +-6.5606591011014324 +-4.8743745518918971 +8.3426584051497077 +-11.1336787804023825 +-2.1938852431307199 +2.1821113428448653 +6.4042060110350674 +-3.2633003388584969 +-11.1840539255335720 +3.3087005865383885 +0.3610661912534709 +-15.4362465187227365 +-18.8612381110388299 +-11.3123737042298025 +9.9929082498193154 +10.7964268220570503 +-2.4732821747456795 +-10.3708913632761828 +-12.9831799966106942 +3.6564083552979012 +6.5391167874333664 +25.7402882743062804 +12.7127881222585177 +-18.6329649048722175 +-15.9581386485720245 +-1.5645082160435182 +2.2182475205550789 +12.5851460652380531 +-5.9077398784521673 +1.8559758161089053 +14.4832818928857971 +13.5137851727556733 +-0.3285142942301205 +-14.4631082565510880 +4.1028325030146675 +3.4662603782168318 +-0.1089977759973166 +2.7822013488195827 +-5.3846756885247125 +-1.6126909487049161 +-6.9298103284356420 +-7.0021288930746737 +12.2389579717314803 +3.3677929694750839 +-8.6504455170572037 +-7.9295073739328901 +15.2498867890426837 +13.4201620419092542 +3.7710829656027380 +-8.4857273423860953 +-8.9964315651655919 +-9.5138801860125088 +-6.9188108454401060 +-4.0934906785118610 +-1.8606241856150865 +10.7446602402078639 +-6.0764475494166845 +-8.2826642548493012 +-4.5712770305809904 +7.8503307423744424 +-9.2340219563677675 +-0.4498456743743642 +-12.5294491594631108 +8.9301767051937606 +8.5339356517939340 +-4.8644737781991143 +5.1209513552616395 +-3.2544989584165416 +5.8752589574209395 +-4.3895209142044234 +-0.3472910621288499 +19.7301661282085483 +-6.0622880597696884 +-7.0740884975155627 +-18.0693921993985640 +-12.0430819456038094 +-3.7298508819985701 +6.4111013912061123 +-2.9611872612594539 +-6.9617648256237086 +-6.0448116888534145 +1.1541892510429896 +5.0966847305254834 +-1.0601478654966168 +2.7012479828800910 +-1.4460619339275751 +-1.1860268129948786 +-13.1600554454112508 +2.1586888292295345 +6.3890050226192265 +-4.1065017782073419 +4.4544450450995026 +3.0959333328024030 +-9.5106126591418931 +2.8271406996342079 +-2.2292932414834294 +8.9654622529184795 +1.4551274373046801 +1.0058753274951591 +7.2222789085632986 +2.6252312035666328 +-3.5370366713692722 +-1.9872485429674098 +5.9593709525429812 +11.9245370516917770 +-6.2558857522387878 +-8.2169749017536695 +9.6660831181695457 +-17.7224722467668201 +4.2662315151350416 +4.0362590639067033 +-5.4957542616934436 +-12.1834255563933986 +6.3456730995168300 +8.1522162695041871 +4.7640406178469705 +0.1622119544062954 +-23.5230687288005562 +6.7407264180116719 +8.2089341051787024 +-2.2876055716194115 +-9.3583304947415691 +-13.0761753294997689 +3.4844378560336589 +9.8053559749602108 +2.3521071609199193 +3.0213839744496811 +-10.5809697128241602 +-20.5916171434338970 +19.9961187807572038 +-5.6578348758392796 +4.7823976779135311 +6.2455928096053892 +-6.9554298698634263 +3.5537944670096806 +-5.3554197646490174 +-17.9688055081900409 +-10.2874356820655990 +9.2789553587600828 +2.5261580639168346 +8.3425615663248838 +-2.5607869600170932 +8.0622363831248176 +18.6501950139748232 +5.2883843632964425 +-19.6464291834517084 +6.9158647203750032 +11.2295251369818292 +2.1781654016346512 +-1.8223199890328190 +-5.6573249796250096 +-0.3800245110555971 +3.1094117819113265 +19.0022410881677004 +0.4040530787965562 +6.2233457070012452 +6.2360974787504384 +21.1933153868538966 +0.1007736265180630 +-0.7471272213770361 +-6.8975061513383444 +4.2843307340097194 +-1.2755448385290089 +-2.9058663904896376 +9.1368218492617856 +11.8316161411440532 +0.3306969429405626 +14.5926321065440838 +-6.0804059934370187 +-7.0793244640592405 +-6.4382000795648402 +20.9240986898050529 +10.2755071239025675 +1.2755292202931470 +-13.4092532318034490 +2.7234311107211635 +4.9694925335937565 +-3.1146658843459796 +-1.6571439574345472 +7.0093213444142464 +-6.5297733190729499 +10.7489945265772793 +11.6991134344005765 +2.7742378400838987 +5.4038815670923785 +-1.9164325164809584 +-11.8792434157374505 +-9.6672193739614389 +4.8776389983341257 +10.7752178463106585 +-2.6671460721261422 +5.2056634422608266 +0.6386170373082333 +1.7759576172400928 +4.2618607582373720 +0.8175205968451045 +8.3009038312281440 +9.3549301291563047 +0.3467208343820389 +-0.4003067259586452 +4.2490122632864527 +-21.7048209571422426 +-27.2444092568215055 +2.1878828302292330 +2.3018798237476403 +25.2891206334118586 +-0.6073212197461109 +-8.2852719417593867 +-6.0630291681448227 +-2.3974185864668982 +7.8524145149202589 +2.8749796098034146 +-11.8799865324303600 +-10.3771881797819230 +-5.2226636353773728 +-6.9836354216765635 +5.2708328867956702 +-4.4541946355781903 +1.6134265054867942 +-9.5962707007439345 +-11.4898273773143185 +10.1838370479910783 +-0.1727296291112257 +20.3640384784467159 +-1.0162443948216744 +6.6103434322971859 +4.9291347858288317 +-2.0433669355016901 +6.9113546503490140 +6.0078034249413408 +6.6402096273131868 +-4.2078143715970988 +-0.9118169634474933 +-8.8183114640586773 +3.7578610769979597 +-4.3545088404925441 +-3.4393961562000634 +-7.8453128793158147 +0.3177149497117517 +2.6169959408685024 +-5.0625004389532631 +2.7589352810803884 +7.8794196258193185 +-9.1958657812288234 +6.8357133812348643 +-15.9013562806333724 +2.3309898082344822 +3.2148028068139598 +18.0782796973334960 +1.9142464693548646 +16.5294602080613267 +10.6092310690253520 +2.2515078594369387 +1.8137253555528821 +-6.3680756392584037 +-8.4483908339879612 +7.6717554291679892 +5.4930767215326330 +-10.6265297157860026 +1.8818981263750034 +21.3149150234563578 +3.8593471710994880 +-3.5831066561031801 +-3.8454186359516789 +2.5814635800957140 +-15.3233262872611604 +-9.2783997525511239 +-1.8184703019583361 +-6.5872082135873669 +7.5453032928501482 +14.1301106838305390 +26.2209280542465422 +-3.5272558833221033 +-2.6999311738171614 +6.6776217256282839 +-5.1592051703564694 +7.6212220255768033 +9.9359203044114270 +-9.2205792541791318 +16.2212211451444155 +0.6513079650619749 +-2.1367218678175033 +7.0246136696178318 +-17.4308799044995943 +-21.3329948798568125 +27.6784239261190805 +-11.1978918168987605 +1.1661325979922772 +5.2830824627803619 +-9.2632826806818951 +-12.2890371914381085 +13.7414733985052244 +-1.1129477952326159 +8.6269894095243309 +-7.4528933204714338 +19.7159884607275870 +-7.5566791296049693 +8.8760520732270258 +2.5187149837510772 +-17.4202150463984715 +-2.3169591071778606 +5.5900015969946750 +-3.5787339868122858 +-5.8632314797174336 +0.5690990442439361 +-6.3458762011675258 +-10.4403969758066673 +-15.4620367050211875 +1.2137827258088199 +-0.1204939600232470 +-7.3108684626860274 +11.7822552566782015 +0.6147094877144608 +7.5283810710247110 +4.3412266489360336 +10.8822234920032663 +9.1766789528784756 +-0.9409781694630146 +5.2039643103181294 +4.9010983041280163 +-10.4196985823493957 +0.4960208234466705 +4.3254952546092014 +-19.6595703572169995 +5.8621074556264574 +-0.3967614525893759 +-10.4354489491222093 +5.3521075041296005 +-7.7149537718020724 +8.5205151723471353 +0.2020332197920542 +0.2045187161882158 +13.6577496941137895 +-11.0828350390502379 +2.1179025488957111 +3.6743436001724881 +-14.1201261177543707 +-6.4497958032414546 +2.3908811313469416 +-6.7945596278928280 +-21.6142746677860771 +0.0367472311021668 +-10.6817185893259392 +-16.3873524299427373 +-8.4056149252247430 +-6.5382039185743199 +-8.6238146390925969 +3.3956348532358378 +-2.9680469594706671 +-2.5226968153139713 +5.7769929125454844 +5.6956580870093134 +-6.8934727134167577 +8.9547109509959153 +-1.6462407800289740 +6.2632465223801148 +-5.4032700086591063 +-0.2892218698350137 +-7.2300905604303596 +16.0460264146495000 +13.6862279500495632 +6.1118898131814987 +-14.0265985405482532 +1.2616777434351398 +-4.2385750321063398 +6.1396221158300399 +-2.7398755919125337 +13.0298762157260235 +13.5894637685750475 +8.7751050298463689 +6.9124187840268565 +5.6991029192884444 +-6.6717567260029309 +-13.8039013269567032 +10.9575692673650522 +-6.0318501152700179 +-4.7087385907739030 +19.8646550213303570 +-8.3448230203874161 +0.8642640522358542 +21.0971995396229275 +9.5034918438059037 +-0.7083543090468183 +-8.7506773533144653 +7.0661158347372286 +-2.0284181776123629 +-25.9080762997937484 +-3.3549293384305408 +-3.7605046162476126 +-2.5120912581487072 +3.3433137277063492 +0.6168733546058367 +6.4016016152127380 +-6.3406133014327830 +9.3416007169517137 +6.2170264127619257 +-3.2438763301187334 +-12.6837910520096884 +4.6138106005109094 +2.7074399057531799 +8.8428102606074113 +-6.4164470840622370 +-4.7816435400129293 +-4.0524409628769309 +13.7050718276674708 +3.0115298623501827 +21.7905022518484195 +-17.5426573556294194 +-5.4653471681262147 +5.0799584363143904 +1.0001216450617951 +-15.1138971376091042 +-5.4616490098788457 +1.8233716310636656 +5.5433101282851549 +10.4257820700679638 +-4.4267190979415378 +-0.6437548161246869 +-16.2685602521426311 +-2.1683717127720286 +-3.2858365687863840 +-2.7471350707870554 +3.8104031979047259 +-6.6221653938041101 +-10.2052218611058532 +9.6748224729673762 +-5.1266155273860141 +-3.8472920675959896 +-4.2312791144003787 +-0.9742162918103769 +16.5020684682492700 +-9.4047713106687993 +-13.9872584884323086 +-25.2218767268031243 +16.1040137687211704 +14.0122856267984606 +-14.4738748850399030 +-7.8371549997165193 +1.9017210190585794 +7.6444805980305031 +15.0539612855198115 +7.2252916840651444 +10.4737994540279757 +-14.0346488127384745 +6.1394176769931601 +0.3296710964376692 +1.5006289077526445 +14.4666830975924796 +15.5965274068421138 +14.5087056860196597 +-0.1967826108769106 +-4.5282453792428718 +-5.3922855477053560 +-5.8366415470159048 +5.9393635582100490 +1.3179416414240923 +6.0556846053604279 +6.4345965426395857 +5.5414552428595822 +6.6264146215961581 +-2.0785069265199976 +-11.9084659771926198 +-5.4323998447931459 +3.2927202415336736 +-1.7265941237216262 +0.9847009675928504 +-15.7178903362299032 +5.8509896537988011 +-12.1694940034138490 +1.9963444601807598 +-1.9950947375230221 +11.7485719478380037 +12.8829090562355937 +2.6464413370067783 +-14.0156890745566791 +2.7300954288029580 +4.3114961741828690 +-11.2788700271375379 +-1.6348403941178224 +8.7364589407178102 +6.1878473599969084 +10.5041290421133660 +-1.6879936624921790 +-14.3034662167278253 +-6.4217034054841866 +1.3983521513265318 +-11.0234036031760692 +-8.7955404099508403 +-7.0408859769287027 +0.8161171583020885 +-16.5803277501859299 +-2.3462282641452381 +9.0659597596535306 +-9.3459643488172048 +10.6279974793896486 +-12.3088164383448166 +6.5465870410625602 +4.6452926697138928 +-14.0758940163192996 +0.0910023567400717 +-2.9764617129600657 +-4.3826507843458264 +14.8602398081994309 +-3.8150070767021296 +-8.6962564502391793 +15.5943953955318193 +-13.6995159533940871 +0.6522644521113028 +6.5680133322143712 +-15.8622425507430123 +7.0130764914807644 +3.8416847677490855 +-13.4646625707587440 +9.3786098521393342 +16.0396313063695075 +1.7050367370406647 +-16.9918560079411591 +17.6408618815236977 +-5.0084734495298893 +11.2850437624875486 +-5.3666703813428143 +3.0753644001620466 +-4.5141249968996577 +10.9851525243824639 +-15.5451753735674139 +3.5801666169834521 +12.5018119518393789 +10.7023396633520420 +-6.4359527720948719 +19.7657595893629363 +-2.9890803858030690 +4.9324479647832327 +7.8761479748795535 +-12.5817153113803215 +0.6665113254425505 +-7.8133850875187569 +6.1148500606014746 +-13.2817326160424916 +-7.7472175111625470 +13.2488205813645550 +2.5576684227576494 +0.2773072231094722 +14.1568491177038016 +0.7705658279071788 +18.0327845931980129 +-6.3872202262209292 +-3.1208080557597500 +0.4962345719463288 +-8.2559184504023850 +-2.4491593141169417 +-9.2235721738236123 +-2.4329692756437309 +0.3557483126741561 +6.0510006884238789 +-10.4657297062495900 +0.1062160983640608 +-3.4150834753971817 +-10.2321420824385356 +2.0078844061184000 +-10.5402727721117451 +-2.4934199729762145 +14.6447775052751563 +-1.1848589419236752 +-1.9849445331939428 +-5.1566823206800230 +5.1412758427412903 +9.8791300744399528 +-18.2127203809232903 +3.2606793742616009 +-12.1653454273564030 +6.5197897616185623 +12.5527576706433912 +-19.4073351788971884 +-21.5672060655233189 +-9.6297842467006909 +-10.8765625149764240 +-7.4320314102095892 +3.7591317407471774 +-28.4413872394029390 +1.1973946509181808 +23.3294295864010195 +-5.6521001217833291 +-19.1730981216763254 +11.6251992089266309 +14.0834623678193598 +-7.8423131977093039 +0.4891324588121075 +4.9406108675027767 +12.4502408064477521 +-3.5596005462160250 +1.6809730026194067 +-7.0208854109715464 +12.5670834507713440 +18.6860259778440962 +-12.8123568789836639 +4.4725328878969846 +1.3309153185426061 +-5.8171878616332968 +-11.0425214335134143 +-3.6798863009088398 +-5.7279851242150999 +3.6411522069007747 +10.1972771813481344 +10.1470659062439772 +-11.5834968007994821 +-5.7241993842909498 +-14.7908271549887491 +-3.3348023377863196 +-2.9058196692974936 +1.6130254111344677 +8.8112899638053346 +-12.2100804626353412 +-11.3512500429534473 +-18.2858193771618360 +-1.3161548952339337 +5.4845799899224446 +0.3959223781496539 +-7.9725364396941956 +-9.5366774158735481 +-1.0718579339731269 +-29.5368945700499950 +4.6311368608368042 +-8.4537354796477651 +4.8293866845415474 +-6.9900881837930555 +13.6710001445441023 +10.7616416112059987 +-3.6716238079154349 +-5.0047832388797415 +-8.9807209852098353 +11.9638348977301483 +-0.5032826639698529 +11.4659448332837037 +-3.0025989206635408 +14.1071418311894021 +9.1960960133877734 +7.0568792717423063 +5.1693823980143181 +-0.6340601795188729 +-5.9001368668518985 +1.7021884302436683 +5.7153794934610218 +-1.9495841151674795 +-5.3862879932648902 +2.9195957417867593 +9.8941867077563987 +-4.0122049696785647 +10.7323970554248369 +-7.4234549503426805 +-1.1957366136003231 +-15.1401573905432372 +7.5932518324509681 +3.3206078438855346 +-5.7455640964609174 +-3.3337740151409405 +9.4568789189403741 +-15.0236719288649230 +-3.5331675589746343 +-0.4174042766387167 +18.4519263330854315 +-13.7994216292489327 +-5.1364680829845319 +1.0104457416339505 +3.0413120887531528 +7.2144317765245054 +5.3390662941586848 +10.3706735312077498 +-6.0657466603357868 +-1.4558389371730485 +3.7714029521664374 +1.6099696059176951 +8.7744980653957434 +17.7165902240645750 +8.8418849059618125 +9.5733216231342091 +11.1093189569403599 +4.3100700095608619 +-20.6712109720362704 +1.1438386017551760 +-3.4562588619134047 +10.0903575132651699 +10.9417892877076195 +-12.1678456948027556 +3.9742245950007931 +15.6457352681923432 +-4.2027538951441485 +9.4016308665159531 +3.3663561196011411 +6.4282157829695254 +5.8610023436655947 +1.9535716592956343 +2.0354669525509115 +-8.5168440567162307 +10.8652403597146261 +-9.7786588320578378 +-4.2149049415666600 +-1.6954633715218130 +3.0356416357905451 +-3.2405757976408940 +-0.7889723913904363 +-9.4224532713531470 +7.3712425253753961 +17.5609549712799655 +-11.3884826363604308 +-1.5062755930138194 +8.5543273040935635 +4.1880146479471314 +-8.4671702764378658 +16.6320453805184805 +1.2202653063960520 +19.1776960663346330 +19.7211405836863847 +19.6147916876586983 +5.5121582544286154 +-10.4718429695257953 +6.8674750894910828 +1.4797661017251516 +4.4260794129565904 +3.0356372070541835 +-1.8150065757829821 +5.7072946598642940 +5.8468605816273520 +-8.0708405674265631 +-3.6391979073531449 +-0.8735999862443524 +1.4379228575183696 +4.2048465158538004 +2.6401634644961973 +-20.2066028012160892 +-13.9682141908105972 +-6.8229750575385442 +-7.4993418621411845 +4.1490431793053864 +4.6004404245646286 +6.5649201690707129 +-3.4656220139720970 +-2.3951932849991229 +2.4670216769521618 +-6.1938182077822255 +0.1808401848304779 +-10.6463952112669666 +-10.2707355422798621 +7.3490688681969205 +8.5002812829049468 +-2.0916565942543772 +9.4495885573451446 +4.3588016331743011 +-4.7342130513787177 +0.7939574160286655 +-3.9608210931515719 +-2.1954706568152984 +-12.0433394679589298 +-5.4856536445981865 +-5.8243652116099964 +-3.4593659391972578 +-1.8737020585699646 +-6.0942547871437149 +10.4582196178734748 +11.5016373230561015 +-6.8694267995163045 +3.4151144511188365 +-9.7582334131300001 +4.7477518587666889 +-26.5296930825118125 +-1.0723579821214768 +9.9205742329777244 +-9.2712699621504200 +2.7295180649220390 +-22.2174101025761104 +10.6862301489037037 +-0.6686556886390225 +-8.6492030066658838 +0.1533673325151987 +12.6976712647841445 +3.0929303728303985 +1.5078876375072010 +-7.5858100262868069 +-4.0315740139543754 +-7.5396759825634883 +10.1960128509418482 +12.8345104352118700 +12.4329179636536136 +-7.8527552257166757 +-7.0061057739156123 +-7.7417835006118532 +2.1425216679390866 +5.5711417177191400 +-3.4432382008601294 +10.1290912933752200 +16.0525072081791045 +1.6531054973363100 +-6.9875178207558433 +-4.4690676724606941 +14.2318326865154940 +4.6795085273592960 +9.1593374900810378 +3.3631009566892263 +7.3869696993764880 +10.4232642725430846 +0.9874474611711577 +6.6741824466910771 +6.9540033769317322 +6.5678038275788930 +2.8909228355561067 +0.5891315976107392 +-3.9498122374363480 \ No newline at end of file diff --git a/examples/machsuite/fft/strided/input_strided.data b/examples/machsuite/fft/strided/input_strided.data new file mode 100644 index 0000000000..7ec997bda7 --- /dev/null +++ b/examples/machsuite/fft/strided/input_strided.data @@ -0,0 +1,3076 @@ +%% +0.8483178396146527 +0.9316474009271629 +0.0749141099239747 +0.3243126095086337 +0.4889216894177568 +0.2003220013219365 +0.2465207945154783 +0.5009444841545747 +0.3833875674814791 +0.8638473264891788 +0.4270323830861616 +0.0263683207747022 +0.1798125277440863 +0.5388504032397917 +0.9782153590525915 +0.8309093043465101 +0.8577368190902865 +0.9543748287741737 +0.8490474371089849 +0.3694121479802369 +0.3352441047664209 +0.7552438928694989 +0.2817087394018067 +0.4852360002861091 +0.7268004045533238 +0.6343918397825450 +0.2104079488356254 +0.0395947057002634 +0.0400209978161234 +0.2976758337005888 +0.9521082225628823 +0.1866873697274503 +0.7358651200871347 +0.1361097436415447 +0.9090931683964897 +0.4604792296588825 +0.5769636562652027 +0.8616704275858206 +0.8767687582692533 +0.0279669403183254 +0.8816612565392817 +0.1866195592416753 +0.7633503369248252 +0.2150746941951263 +0.1339641300308199 +0.7161428864829403 +0.1365021466723779 +0.5001932391978972 +0.8470236345937937 +0.4470622249540837 +0.7140811894103265 +0.0127652175460312 +0.3876666127209407 +0.9958895038034786 +0.0926458725571736 +0.9676672240567189 +0.3736362838672994 +0.0488822949430138 +0.4076365668481068 +0.4603180906842517 +0.2873166763901486 +0.4365584272465929 +0.5850196896009423 +0.9590813817633715 +0.9980595552286854 +0.6068136140773602 +0.7043815368917442 +0.1974515966674346 +0.6575472564589070 +0.9454611044982865 +0.5747363779881197 +0.2194919783622648 +0.5763745454924379 +0.7153851752905834 +0.8911010718686341 +0.5206280483477259 +0.1501220678649025 +0.3812301813733660 +0.0463248309608765 +0.4254903780644615 +0.4973494195501764 +0.4281354730441760 +0.1142915128435944 +0.0804645407448647 +0.4373515560814680 +0.2582268915654431 +0.7683934478079263 +0.0766898881091194 +0.8463122892926332 +0.1107166721271598 +0.5840612962298976 +0.8557126220464411 +0.4838001677368423 +0.0621016340325793 +0.1310235740565679 +0.3776118887938892 +0.3530460812272584 +0.4149216674120018 +0.2064459122797230 +0.8343916891700796 +0.0932775064851222 +0.2731170192259920 +0.3356228717457055 +0.3267963290017710 +0.0435681404918652 +0.7228303690021292 +0.2107907960557750 +0.9615694238266003 +0.9326414560282523 +0.9394618799882867 +0.1764777376547630 +0.3732788212737727 +0.4000735922705779 +0.1120309369903489 +0.0511100243190568 +0.8575182783261570 +0.1349654718909908 +0.9723092959416103 +0.8067179481103881 +0.4657453752075365 +0.8214647023258758 +0.6642716262994925 +0.2924958180021960 +0.9396144243758447 +0.6692048055281263 +0.4554570494036198 +0.0154017302137861 +0.9462209557130911 +0.9279331770197743 +0.8926116198429296 +0.9844385803033128 +0.8235301034352464 +0.1171662519206369 +0.9738432213333370 +0.1702801969466125 +0.9700813330218533 +0.3431322540111262 +0.3521808070203251 +0.6456496860574097 +0.0078332098488572 +0.2780721231188467 +0.9308493287741327 +0.3391027675786487 +0.6387221774977941 +0.1387668025077644 +0.3193379819348149 +0.2938847760898528 +0.3760463174887679 +0.1542553433051521 +0.6639159037834084 +0.3564936178023257 +0.4878134574691712 +0.0345427675439928 +0.5848943772682992 +0.0693781648667100 +0.2191364932019932 +0.2761112415673199 +0.2440285243758249 +0.1440250692777039 +0.7614656056422392 +0.9809620066037130 +0.9348033021342805 +0.7552137859210596 +0.6065311722051752 +0.5503350398133949 +0.6275061460415338 +0.0111472337609468 +0.1246312888209616 +0.4231461451579110 +0.6484414922888584 +0.2337922181906040 +0.6779685516426726 +0.8782741573686651 +0.6177010100415349 +0.2939854446950563 +0.8761871775505162 +0.1810071211477334 +0.8720289503655566 +0.2532811225707449 +0.6100117892988954 +0.9301354739598914 +0.5191027833281141 +0.1431706944572742 +0.1708568797583734 +0.6242359909565518 +0.9782736794109049 +0.9891683505866096 +0.0196826080659797 +0.2768293352286383 +0.0768308861291690 +0.6270659160444320 +0.3147389465422545 +0.5336071033488232 +0.0120537996182269 +0.5307654724048916 +0.5153605911637142 +0.7528566241924224 +0.7033589194426896 +0.3209196647064811 +0.4410043195102882 +0.0111739864620048 +0.2863026779679601 +0.2683100918304755 +0.2979827363431253 +0.3721852873425603 +0.1633665685261703 +0.6533281645944697 +0.2843454312853405 +0.9051319563159713 +0.5983082899373767 +0.5757792223158209 +0.2692903346720601 +0.6096013896981760 +0.0901025770439411 +0.4634050247425767 +0.6204605185689965 +0.5112592424386806 +0.4937665420329518 +0.4695717035134276 +0.9097122918366112 +0.3201641400746201 +0.9905173479273656 +0.0056370341850618 +0.3921534977584564 +0.3346194563079505 +0.6360433801365077 +0.5201155310158935 +0.4362019819492165 +0.3809198621760362 +0.5670535082271564 +0.0529453230927324 +0.6790772399224166 +0.2868627608072348 +0.9392660254042972 +0.5753465166316099 +0.6541005362632644 +0.2817555840484371 +0.6612642174687781 +0.9423159385445181 +0.9174747407529212 +0.9779240481377166 +0.2986892413220574 +0.1916000764166038 +0.7468217076566656 +0.5936366233299584 +0.5410113779987784 +0.0748945408290509 +0.3395152960985217 +0.7470779072815197 +0.3161020201267201 +0.7374536219431782 +0.2805479172708150 +0.7130278376509701 +0.8459418603364357 +0.7522291563308318 +0.7673406794115867 +0.9791920811987473 +0.1123833682832090 +0.5471981463946101 +0.0433784996754932 +0.7831913287613563 +0.1725964107004632 +0.8671010177349522 +0.6393078646525761 +0.3310881842077714 +0.5352403136965146 +0.7661294193430825 +0.9244074576810648 +0.0287942216685237 +0.6707214734656840 +0.1748621195872093 +0.2273862811658987 +0.2993243342441511 +0.1768052463670724 +0.4825229633452092 +0.0222151629699995 +0.1239513072997847 +0.2987613558162890 +0.1379142600723082 +0.3440376084075450 +0.4373647696000651 +0.8535612938381643 +0.1715420896272014 +0.4749277287386244 +0.1199070948150680 +0.8089862728472129 +0.1441451973256533 +0.4292770696419592 +0.5211270487544926 +0.0011758916400356 +0.7007083090818177 +0.5281931199838487 +0.7671373984849126 +0.6021015440913253 +0.8912456482822858 +0.7899403302123719 +0.6772490738704474 +0.4708856876330734 +0.1763984475095891 +0.1463600662811033 +0.0165949685352888 +0.6068381808285457 +0.3224651525151173 +0.5148486338006011 +0.8463707450685359 +0.2157857682105999 +0.4175494429555621 +0.3779135888568587 +0.1956304117824023 +0.2671144901023431 +0.2978924140317022 +0.1791553064131353 +0.1601117923815020 +0.4436703260522413 +0.4354899010428503 +0.4863644602979916 +0.0455654999679936 +0.9061800810138900 +0.7274221170832363 +0.9082424735107425 +0.1397186081418257 +0.8710584598934502 +0.6569208507280179 +0.9408021142124381 +0.8543062414871980 +0.6782227444037920 +0.9034898824859597 +0.4495484633567567 +0.2222523874894407 +0.3137809125552068 +0.6478283781152648 +0.4165082365846282 +0.0360033802245706 +0.1218543381677559 +0.5108797423897457 +0.5180611700108055 +0.6056074920261487 +0.8779639279963387 +0.9471242759165983 +0.0824748458740915 +0.8674863090505956 +0.7868870903622686 +0.3087124472657461 +0.5009663253734257 +0.1286847456523950 +0.8405951440090710 +0.8737823046846828 +0.5714577591226613 +0.3163790157527726 +0.7294478876193773 +0.7828848822471060 +0.9947426877569866 +0.6268310698491563 +0.9471211534578475 +0.2243844220207657 +0.8573988054285285 +0.2936439994440631 +0.6987905411296418 +0.9507698943631454 +0.2277384525626225 +0.0983196954057779 +0.1158788858867381 +0.3943691258852570 +0.6522812929588194 +0.9323529611324425 +0.2505797725678027 +0.9463081170472853 +0.6972081938469031 +0.2217159609909230 +0.0158618584757915 +0.7992336160031288 +0.4916870887409591 +0.4203222451574106 +0.4954300164669786 +0.4072567181943900 +0.9436149636721938 +0.1115558766484206 +0.2133777544768501 +0.4926894729576140 +0.2288864259039310 +0.9233105307500995 +0.5522443624207825 +0.7804758780629942 +0.8577533254670533 +0.5175537145011389 +0.7458849304738195 +0.4700598126387943 +0.7256984927494721 +0.4946461243081034 +0.5928752445277561 +0.1435942641956947 +0.4530628816644502 +0.7303585087668238 +0.6771458036224584 +0.9821343857747540 +0.0328071121334004 +0.1185647260517267 +0.8226081939044526 +0.8158652049794541 +0.8828048367094834 +0.6291305933887741 +0.0868219653016111 +0.2738519339014919 +0.7144746575303565 +0.4011478376237659 +0.5007377866913673 +0.2288648035566036 +0.4618209141005981 +0.4425821772294087 +0.8664060965744277 +0.9349865168431754 +0.6358704096466863 +0.0008392427989186 +0.1111643065065295 +0.5246200509372015 +0.1354282528990725 +0.9424363035310214 +0.0744909276406249 +0.0310511640320245 +0.3761947915818324 +0.0217261429493881 +0.4949483768791444 +0.0973932294672044 +0.2981311546048886 +0.4083570361665385 +0.9868219940278903 +0.5543595302377633 +0.8069034553160739 +0.7665658438032671 +0.4969299039679246 +0.8434804973005380 +0.7665036069247364 +0.3282416327845119 +0.2149426327922223 +0.2818218695863094 +0.0961871139367003 +0.5579491260907850 +0.5867774049443926 +0.0881760013338349 +0.9878358065870914 +0.1061326855761554 +0.7271613020145520 +0.5798325617779146 +0.1155059662760101 +0.6973883104954021 +0.5049354722387228 +0.6508972709054981 +0.9006534219964644 +0.9605391610546545 +0.1394240512290819 +0.1671649450914079 +0.1664775697290567 +0.4080768206037291 +0.8477853400387060 +0.4499655955247234 +0.0255424858209450 +0.8505854782984940 +0.4636431798425881 +0.8918284279836336 +0.4856684644884649 +0.1659858594059837 +0.0238823839065784 +0.7994671317638116 +0.3751432912824046 +0.3804227384496434 +0.8413148607509543 +0.6506283850297021 +0.9766834855366925 +0.2191262745253812 +0.0248922210452291 +0.2231645580382334 +0.7404604855597532 +0.9355345620434551 +0.1653789667168293 +0.1059396938307424 +0.0020044749140114 +0.4132138001260813 +0.3312924847795359 +0.6492165403032210 +0.2445108317174756 +0.2171661955475684 +0.0119041354225503 +0.3199195886761848 +0.8799274836463801 +0.1697847195140275 +0.8799610104744855 +0.8029777980474817 +0.7691105305599997 +0.8614010915991184 +0.1349045754696620 +0.1039159475547794 +0.8460187964385510 +0.3083002773220541 +0.2412000351515887 +0.6655076815675369 +0.7731655682148677 +0.3339247226528733 +0.6582442922969689 +0.5215653744435931 +0.3567305965895141 +0.2981062040854478 +0.3833902369228816 +0.6969715537271688 +0.6615875892135347 +0.2121642451626392 +0.6571424956786973 +0.5146580817967552 +0.2742574950854690 +0.0533838274345822 +0.3421116783190124 +0.4346208023329561 +0.9428593202287435 +0.8746535554914753 +0.2787038915386076 +0.0607629710157441 +0.9475482605076305 +0.8000948050982155 +0.6696032733350000 +0.1191064572806398 +0.2713718953917491 +0.9754531978352212 +0.2555018393548908 +0.3156812728266634 +0.0378755150817178 +0.9773316421998351 +0.4036409576832637 +0.5324200478158887 +0.2225676235619323 +0.8308367730086326 +0.1544569956255000 +0.0976873451282712 +0.1354281620445729 +0.4682417610236912 +0.4112113092197985 +0.8283636157802693 +0.2354485044044702 +0.5138595908016150 +0.5212459531899646 +0.4374620898104384 +0.2897529706909659 +0.7560560479391087 +0.3444473384695645 +0.2101710283430648 +0.1913184876725962 +0.0194703354524034 +0.8244829999712530 +0.7004725373098700 +0.8548257075248383 +0.7529110407603758 +0.7272569630111225 +0.3430262664463163 +0.0543663112093189 +0.8584713279607648 +0.7237250361599911 +0.6861199156789359 +0.5769331828313227 +0.8880877406289909 +0.6817980021300837 +0.7181124881078564 +0.9474077459051521 +0.1669314152562441 +0.7977844154557096 +0.8776813456744198 +0.3617756810620581 +0.9250877956455573 +0.7853559941128757 +0.1073013935372346 +0.5154524213956178 +0.7705336169182980 +0.7455632462415369 +0.6858314418579472 +0.1451982048517642 +0.9769921914533929 +0.2707441083651104 +0.3692377801896228 +0.7895927671791430 +0.6419221159474837 +0.7595767306201764 +0.7091781136952096 +0.3356167379256038 +0.0962530381386420 +0.8259778697714617 +0.9345988394413669 +0.3858489471473220 +0.0361507946973068 +0.4856627526839860 +0.1892051894625248 +0.4575719204283109 +0.2364687687064010 +0.3024395144952008 +0.4236979859470674 +0.5712537893453448 +0.0743859838433636 +0.6992511255983868 +0.2143443403429400 +0.2557727874806550 +0.6020575222876966 +0.9329008633467030 +0.4591264949733487 +0.1316420504742486 +0.1834118248178533 +0.8616452724482049 +0.4934215152695882 +0.7063222135519909 +0.8890629485443693 +0.3378400307458436 +0.8999166805341422 +0.6545776790901677 +0.2924360980490139 +0.5331525361872268 +0.8521209023427115 +0.5028403366193390 +0.1964219728651424 +0.9007642452958530 +0.6041960938460277 +0.2353145244248827 +0.8739339865772545 +0.2358180816613767 +0.0053266675227582 +0.0245024808476083 +0.4565489134444910 +0.2971400601481179 +0.3462918638414297 +0.3174831292643161 +0.1022473410018786 +0.6345702753207734 +0.7986179739274762 +0.0887550087202571 +0.5395607076593224 +0.5027804701398525 +0.9545712661808851 +0.1311646089110300 +0.3816839551933244 +0.0287340536949976 +0.9741228417106041 +0.8881115817590194 +0.9443051692007695 +0.3973297345018290 +0.2435155738852830 +0.1652102803404903 +0.3243142246189342 +0.8630564791046341 +0.7427364645761575 +0.7628397127536366 +0.2767754158606018 +0.0538923118737419 +0.1873698021206745 +0.1533627910315691 +0.4113317799803305 +0.1961934245958332 +0.9159060981202446 +0.8137254244255523 +0.4905641817376404 +0.1733549482124006 +0.5895471919253229 +0.0471340501793856 +0.9186568804660693 +0.2220043575160327 +0.8392061621265459 +0.4075368623069701 +0.8249215210109830 +0.9296441921715146 +0.7625185210257652 +0.5646893167247345 +0.6062559916719461 +0.7733470603381122 +0.3581334207021432 +0.2525868596630824 +0.8030837979013034 +0.9078980508746070 +0.0213157617704918 +0.6198872241946154 +0.6982054377522401 +0.9125352939114136 +0.8662395645424570 +0.4964301003594250 +0.4589454657543227 +0.9729557362505116 +0.4761687642040447 +0.2915994889708689 +0.0625496872006724 +0.1082706330984529 +0.2676008131717454 +0.4510148028230647 +0.4210224473120947 +0.1548976062879481 +0.8710345719788597 +0.2967209912992471 +0.8860973384349545 +0.1028653706204793 +0.9112527657530287 +0.8316115232944399 +0.7876503979181846 +0.5703146078114243 +0.7668035869923945 +0.9765830388028187 +0.0635054924724125 +0.5053664034118617 +0.1667977138441292 +0.9084464933427940 +0.7396569990701948 +0.8901329413650267 +0.1282122077353620 +0.4280410688231076 +0.3546730853650018 +0.6740117202355542 +0.6993058676596479 +0.1008720531313658 +0.1655201742599672 +0.1678607872980307 +0.3498860824240698 +0.6979183623465720 +0.2972227666959424 +0.2718621421393922 +0.1371334239013910 +0.4695049786139125 +0.8856335695096561 +0.0421636389002602 +0.6171453064703414 +0.8408735929295654 +0.0821163784732936 +0.6958031307930189 +0.6798926151186255 +0.6338000423355364 +0.4342430860317124 +0.2476013748163865 +0.1524726995823791 +0.8910536354990762 +0.4307119981575572 +0.9065538585311617 +0.2802491643541730 +0.8519531607780675 +0.1309172521114062 +0.5223657172611972 +0.5940340561115732 +0.3471992523602176 +0.8553387616652556 +0.6768882381811585 +0.5180580908117607 +0.3464191929026591 +0.1534112256529780 +0.0416632587526700 +0.8032127017104451 +0.4956108399308800 +0.4327021758264568 +0.3047239994232592 +0.8910031103464617 +0.3485973984888802 +0.6992259055414151 +0.9250438169849708 +0.7898209042260892 +0.6802180037968130 +0.2967131969491587 +0.2720348328492520 +0.4998718700371028 +0.9163578329533125 +0.1844334098123010 +0.0446327913910037 +0.8986315754794177 +0.9565339328231259 +0.5917358349016343 +0.3039301433909674 +0.5032089054635454 +0.0098436923475592 +0.2290618525922859 +0.9941160211092916 +0.8018469588895006 +0.4515732147894628 +0.8513496134842463 +0.0670183661705313 +0.6178567164242852 +0.4182952572441551 +0.5383931272117743 +0.8023733482266281 +0.5417656241717650 +0.8788865026335969 +0.9290448072784062 +0.8280212198734908 +0.7615164777749828 +0.2390743428106357 +0.3649655704104566 +0.9861748858550504 +0.9590151332996334 +0.7884061132262163 +0.0238172507286693 +0.0288057462668017 +0.7563025130758088 +0.6327250271593858 +0.6647564006738251 +0.0403168932323779 +0.0851091202383121 +0.7131062167973624 +0.8266676506818488 +0.9699554487883290 +0.8566660020465017 +0.1673708090915806 +0.4935407356523587 +0.2583648166914596 +0.1595971470629153 +0.2616218585439897 +0.1565142635892891 +0.3304712882926483 +0.9311919539307059 +0.1237307163308776 +0.8449149809933604 +0.3000564008709446 +0.1208132269579128 +0.8551890471212074 +0.0613489685386913 +0.7006205445868144 +0.1740531003432544 +0.7732481261159894 +0.1343660168913316 +0.7749930699273819 +0.9868025567899982 +0.7757411308234101 +0.1887441922584664 +0.0740016559370295 +0.2881953716589823 +0.5678458093960356 +0.4288866101517670 +0.0670517898261449 +0.4631190147842646 +0.2993357137446890 +0.9724694844095528 +0.2340145672977075 +0.2952070238889182 +0.1034148020388507 +0.2599693743121106 +0.1983623100747410 +0.7891247745270171 +0.1365468411207909 +0.1704415101615018 +0.3795300396545589 +0.7872552286992399 +0.6761356879505004 +0.5746224709379114 +0.2599649322694619 +0.4465083963340758 +0.1772230114168324 +0.8958712439541665 +0.6755852294955170 +0.0424740404216321 +0.3474975250466014 +0.2787291110962878 +0.4239709392959372 +0.1264310228573687 +0.3030433007684182 +0.6167934317373043 +0.9774138579905517 +0.7922540390432117 +0.9754042035037350 +0.2937298063641197 +0.0493613402709324 +0.2131441317680902 +0.7118006990276875 +0.1926245778050174 +0.0565962349320215 +0.1083695656991906 +0.3233653572329019 +0.6883633369417523 +0.8142820788077080 +0.4708595737453577 +0.9574256940403741 +0.8577722569424684 +0.0390429387589084 +0.6485406197671680 +0.2286115179667637 +0.2505120841371920 +0.4679479656413075 +0.4803960416666576 +0.6427271305126666 +0.1298867853024623 +0.2293811386379165 +0.1945257046607350 +0.5737600072544007 +0.9456753829298495 +0.2914040068729966 +0.0411626576385112 +0.0851770531853963 +0.7512162357048413 +0.9114283912185644 +0.1084939194571904 +0.0340797220314683 +0.6686522970980507 +0.1906153990139051 +0.3274779492389834 +0.2516885885036551 +0.0772963287875257 +0.8935280009426281 +0.6201968041430754 +0.6029673627910744 +0.2263063654776020 +0.0421182878029569 +0.0135692741556023 +0.3516307018310701 +0.3075847105833159 +0.5301877412643056 +0.3610995616465294 +0.0932831537509481 +0.5333126231650014 +0.8783698621094786 +0.4581192548325713 +0.6692522865725606 +0.3856532909282943 +0.6141582130483899 +0.7281831720947005 +0.1948844614969170 +0.4943642276124682 +0.0784046332183870 +0.4345422259377688 +0.6558368046570618 +0.2400154516354979 +0.8126312836129430 +0.0042070986675205 +0.7770597741058617 +0.1301261926096061 +0.9201150257154005 +0.0150107888897510 +0.8096920536489608 +0.4692264045572709 +0.6698343981997922 +0.4625374292719958 +0.9620387146985410 +0.8815344945317943 +0.3039975463072964 +0.1632562644673550 +0.6693371407177068 +0.0255299687668171 +0.8262515235259924 +0.8290796078644540 +0.5251654865487730 +0.1769262026207146 +0.4146529856406467 +0.6257710753225278 +0.5385762819453994 +0.3467421010954000 +0.1803570538412348 +0.0062855490090003 +0.1631445529039522 +0.4952396311548886 +0.1707236567576024 +0.9432265054633366 +0.7188326227851898 +0.0739719232510591 +0.3438571127652211 +0.7995944476081212 +0.1332539980868194 +0.0690427248469638 +0.9524527209180689 +0.3688802404953913 +0.4580401459470407 +0.7170697644292721 +0.1786917333296686 +0.3231652528555629 +0.0632698207861022 +0.2341749143379414 +0.4131050383018145 +0.2951629865399300 +0.2573327687674984 +0.5130724364261614 +0.1589627169488473 +0.1819274409586360 +0.3605838202714328 +0.5440325678864545 +0.9090988849041570 +0.9379179733105221 +0.0141064347307200 +0.8508626122118714 +0.8167047819570149 +0.2623920121133221 +0.4495180123110233 +0.6073459575540703 +0.8055352308781114 +0.0827481756805070 +0.6495691246737028 +0.9557837386834148 +0.1689731366639478 +0.4739915237375780 +0.4228752065265029 +0.3864621066601071 +0.5216681823333275 +0.5101372326813385 +0.9282979463152260 +0.1934401620509328 +0.4407899952942061 +0.7970175752643954 +0.2477094328926093 +0.4700907027077451 +0.1180233354974776 +0.8422914801798748 +0.1531763443715683 +0.9784896365217246 +0.6142847292421334 +0.7350009968521926 +0.1559845355507213 +0.6408397957395198 +0.8871901348808436 +0.9853156529299215 +0.2043291709958035 +0.6791988294404089 +0.1737458412194951 +0.5556855949910641 +0.1662239833913383 +0.9252958993331035 +0.8815207942410712 +0.9207020404321706 +0.9462893018422216 +0.4915897861261869 +0.0532454258881340 +0.6745415400933488 +0.5767564764496971 +0.4995223250778442 +0.5741762963226479 +0.2972223117023296 +0.2369406864338512 +0.1705331838829866 +0.2544590026820316 +0.5933356553889287 +0.7557815104974221 +0.7308638669478563 +0.2163376957510569 +0.2586691231426438 +0.7553707339814911 +%% +0.6706497803768818 +0.8259915659051159 +0.6127769850532617 +0.4042432493346517 +0.0563064540342341 +0.4506809985950107 +0.6728182306226016 +0.2093887700710019 +0.2629049630806244 +0.0068903568874143 +0.6741981263711310 +0.8026358879744457 +0.6615563839200532 +0.2011487589490933 +0.2966113305625048 +0.5350148999623799 +0.7123884593841227 +0.8801106496231675 +0.1057599762765537 +0.7736908773165471 +0.1150862062662503 +0.3439478131991411 +0.2162976539518998 +0.0057640498417387 +0.5205619338920122 +0.1837588835868946 +0.1072048133407638 +0.9330220583897403 +0.0781877556303664 +0.6604415374454923 +0.0055543256941696 +0.2113213532549362 +0.4166371044168225 +0.2489126317221700 +0.8804237290693118 +0.9114630717835008 +0.2122197185028387 +0.1872496047054253 +0.0283493571356546 +0.0011739769717719 +0.2587451230366413 +0.6134283988672150 +0.7960136720771441 +0.4417212743517567 +0.3538190365232776 +0.4820827424201957 +0.7270079301991990 +0.5540293780631791 +0.6844720529281880 +0.7395825773469121 +0.1689867872929229 +0.7390011771948182 +0.3889554660143338 +0.0158743815304996 +0.2794561312296530 +0.5488249778351199 +0.9939879360511114 +0.3265921768161898 +0.7380059200028429 +0.2686659846029050 +0.0140301867513706 +0.0345076306283345 +0.7098586658566393 +0.8804033136216555 +0.1311251822393278 +0.1738269702011150 +0.9467849911595574 +0.0635165505526809 +0.8045666146925562 +0.5500252055448300 +0.2960850128458551 +0.3791679357611623 +0.3318679405186607 +0.1383370271666072 +0.9622471231685127 +0.0008209235817533 +0.2858982586997720 +0.9627033012525220 +0.5536461903980735 +0.0203918495292208 +0.2673520692161342 +0.3587292238852842 +0.0093934765497702 +0.0284739994461690 +0.5054042027492341 +0.8181935096212357 +0.5459306504169178 +0.9984011518683296 +0.4788924934998232 +0.9047358057561707 +0.6958031753814037 +0.0826713344650157 +0.2449075192032626 +0.4332419552713540 +0.7481090411770011 +0.3337436210362408 +0.1288111479371150 +0.1393425109365868 +0.3694359018085516 +0.2161886277610609 +0.0868289540623030 +0.2809660913222927 +0.6834390896658262 +0.6599492802927122 +0.0703576285531474 +0.8851721422324230 +0.0784159016220343 +0.6775815611931443 +0.8723857873635551 +0.3442387428829488 +0.7488398469947676 +0.6865869483303326 +0.5721400649461029 +0.5113942038836549 +0.7175259320021290 +0.5784878853002242 +0.1192925964151463 +0.3728264511453223 +0.3324480279209299 +0.7348138089866270 +0.9113418227917187 +0.0133558732261029 +0.0444334379695671 +0.7655890089284283 +0.8380837128929514 +0.6909078386850797 +0.8479124776327206 +0.7677202200246880 +0.5153327254961750 +0.8930457828966226 +0.6018790515210961 +0.0665720402909682 +0.5962448507692394 +0.3392590904124880 +0.1112857249315309 +0.5367884989765819 +0.9916240181373843 +0.8331481345246642 +0.2994661478507417 +0.8627726556183214 +0.6182353827040976 +0.6149876265111006 +0.3531793653091488 +0.5143005186400568 +0.5926468898446244 +0.3649024825358713 +0.5343363005946771 +0.5725036130122593 +0.3174075718189375 +0.3751798269431847 +0.6578860801973966 +0.9332728824329765 +0.1146445520498136 +0.1662239710723725 +0.8694019864172604 +0.7499672365062569 +0.7271363734624335 +0.9430020624479579 +0.4132824422670823 +0.4837363618225233 +0.4671709271543480 +0.4537214639120629 +0.7954668379373012 +0.2438654997599063 +0.4419460762806375 +0.6777206266673230 +0.9957734162654772 +0.2480800843375707 +0.1280403970412000 +0.3644668863337679 +0.9616873414436868 +0.1868708749314857 +0.6930411666732398 +0.5780037143603487 +0.5608423882500977 +0.6441989655644730 +0.9713249811202351 +0.4294390166286234 +0.8969774741365252 +0.1960699631492769 +0.7224530353170772 +0.1268089950416111 +0.9397683680282519 +0.5315018323429732 +0.2254886187046609 +0.0429141142621825 +0.2024717685614631 +0.6910933955316909 +0.7314732999603543 +0.1551093873719042 +0.6743060895480667 +0.4556540188327001 +0.4432436833380574 +0.5606860679844500 +0.6319108687982481 +0.0116703069980435 +0.2322452408551318 +0.3536862332363362 +0.1158322695030433 +0.9634522939857088 +0.8487323055999937 +0.4353499310626945 +0.6302969530620972 +0.1274088565446815 +0.2453010715007161 +0.7126333281485220 +0.5808262573450925 +0.5096368273743479 +0.4906882869254115 +0.6495880834323012 +0.0233123321742689 +0.0041469810558323 +0.8805597089399800 +0.2018707114365797 +0.3379314576230700 +0.4753747255809189 +0.6616274253970083 +0.3197317654981836 +0.2874055811093641 +0.0698162859045715 +0.5185972464080254 +0.3712390779666960 +0.0395522598727142 +0.8522029796288904 +0.6429233013492220 +0.1716043134564161 +0.0245860778925260 +0.1192679823597833 +0.2251123162515863 +0.2278627039406244 +0.6021001931781610 +0.7716493715297760 +0.7086536443199765 +0.6378488996151952 +0.9778896639349272 +0.6175561601799165 +0.1438112390964338 +0.5655215638728978 +0.8964914023258709 +0.4929803186620192 +0.3181047984817529 +0.2571762285898997 +0.5341139182822019 +0.4481070842468913 +0.7442557099061952 +0.0755455037462515 +0.0881736635594114 +0.8292182561831798 +0.4702901568278792 +0.3172165412962517 +0.5192743623627130 +0.0639664291315532 +0.7885729748132124 +0.8739453984594142 +0.2044745982999192 +0.7544967854617538 +0.6899486205135590 +0.9665559358594927 +0.1942611672076565 +0.2071430333395867 +0.2651524610606420 +0.6428563324162907 +0.6081367216327236 +0.4238958468282013 +0.7672532189318672 +0.9786971502709926 +0.0170800252756996 +0.5413752736159771 +0.4882800093012846 +0.5664635732064296 +0.4535325668908858 +0.4184044325889613 +0.9097756987185860 +0.4766618682549004 +0.9760491135221880 +0.6888504370810208 +0.5485435178768772 +0.5561370316148891 +0.0094666403269690 +0.3360619728116845 +0.4604348339427876 +0.9134297132560247 +0.9908922097051105 +0.1251950412031655 +0.5663664606143862 +0.0945400483940218 +0.4625197493670939 +0.8639195447432346 +0.0039262799519478 +0.6833368379014721 +0.7422283452747417 +0.3367793143998574 +0.5412184398424924 +0.3761234842735970 +0.8815788022034485 +0.6074823902030668 +0.4777707505251232 +0.9635916031584622 +0.2727502301296457 +0.1733453829569238 +0.8644986842700396 +0.9691780174692244 +0.2882628109384491 +0.6786791865359718 +0.8478671149035980 +0.4535076944249774 +0.1640098684409771 +0.4073202121801956 +0.5009583692983397 +0.9463817489661509 +0.0961353922326324 +0.1998223443867649 +0.7008862334619737 +0.2881202049236278 +0.3458537061813881 +0.2114514447990400 +0.0648526139252205 +0.8359259337698395 +0.7136411968729466 +0.8839727629895447 +0.4485996609021738 +0.4126785318598829 +0.1302233136776000 +0.6566698732369666 +0.7658415354209089 +0.0691474385841039 +0.5299372100597235 +0.8072030763876551 +0.7386502398203574 +0.8163976724866837 +0.9099590634362089 +0.1079579315030378 +0.1217338602508726 +0.8398682867388026 +0.0527879920083521 +0.8411987867709243 +0.5329342173929354 +0.0519388465693226 +0.8361373832400553 +0.6360358915176915 +0.7620059555978824 +0.7335875744925811 +0.7068483685535193 +0.8204346828900280 +0.2406901567099838 +0.3119376161816957 +0.8188672952427822 +0.0569869927182464 +0.8160735672225893 +0.1962001548817530 +0.6846908215984758 +0.0249193853783506 +0.5050224922572938 +0.8070765288638290 +0.9050568111880135 +0.5962573669748086 +0.1064109752073065 +0.8717233586021045 +0.7111238873247069 +0.8958953958961852 +0.0124857341852776 +0.3721871578061370 +0.1618305771923772 +0.7515039566733900 +0.7107271696811842 +0.2336812851484666 +0.1458156473180457 +0.9620985323087055 +0.8275964656273100 +0.1190767363568868 +0.9233858731422754 +0.5322410813615738 +0.0985540318104040 +0.8424411570469573 +0.0666493030651335 +0.5341925877342263 +0.5394414482514946 +0.8742698174359415 +0.7370734913518688 +0.0641610061811848 +0.7294092153878285 +0.3213275986725672 +0.1358937559382011 +0.5447052195538291 +0.1646240051946704 +0.1159073445476051 +0.5472078151545781 +0.7913238484821290 +0.2545447567715644 +0.5902198217476829 +0.6180104514739206 +0.2679718156247742 +0.6567257066434474 +0.4768088481712171 +0.8438998411194075 +0.8018278899795357 +0.7121966511487732 +0.9440082058646051 +0.3903038249845164 +0.6657680925264067 +0.9707962023941167 +0.9758816432468408 +0.5180344881975328 +0.4590301346752441 +0.5790243849919570 +0.9827581127256924 +0.7580890772895353 +0.0282653007892825 +0.4742266549813303 +0.5206714623709152 +0.0880362523484991 +0.9441696695392323 +0.4154944551240305 +0.4854395925471128 +0.5980708329728217 +0.1514730782817679 +0.2277850588198586 +0.6003959811473946 +0.4138648613445658 +0.5214294374618673 +0.5357899328102427 +0.1126604961733214 +0.3978861271719195 +0.1572100962678205 +0.9684761870036048 +0.2823789715122690 +0.7350302037352653 +0.2226577397656659 +0.2146205511975388 +0.7368134024381822 +0.6851977195850656 +0.2901994887952524 +0.2484031578734452 +0.8406937400471280 +0.7330257783888604 +0.6786698842197517 +0.2108314045756776 +0.9729048073557747 +0.1308633059219713 +0.8793668353727628 +0.3849229287904603 +0.1940388764205123 +0.1682749150222659 +0.7803041144613144 +0.7925818205728924 +0.6160000615567424 +0.6645809359455023 +0.6374354155824379 +0.2899256792758656 +0.2300623404836308 +0.5242963335351867 +0.1784243876633100 +0.2478678303610563 +0.6137636967201309 +0.1159975240188399 +0.4192057281273810 +0.6103248712962920 +0.6050614699403944 +0.6385246389661129 +0.7328477801951783 +0.1442908280252166 +0.2314561865539927 +0.6455315357936088 +0.0036223892582007 +0.0890605637757619 +0.6577781560016939 +0.5651268147351131 +0.5703656983239329 +0.5241197109565234 +0.0928816194038764 +0.5691972941463214 +0.8203219486093015 +0.2960977178239230 +0.4965672877217533 +0.2267953990067369 +0.1616474206061058 +0.2368359225241292 +0.8386880802324272 +0.4304339747920264 +0.8145921244355058 +0.2926089852252082 +0.4587937530266486 +0.4627877133550086 +0.9834880148784035 +0.2091795422250676 +0.8352278251817872 +0.0575487671296270 +0.3627326891505497 +0.6041543996670723 +0.0240717091937075 +0.4567222795141845 +0.4187870842887678 +0.5690436201072602 +0.3836306545353996 +0.7612922517768207 +0.5830063635525695 +0.7915574263840475 +0.4175259561486966 +0.2865009367887664 +0.4939103319869848 +0.2032170404710166 +0.8525061025761500 +0.7470551056895179 +0.8704712147963954 +0.6021654256915009 +0.6238331380559238 +0.2855855561303914 +0.6225569675320149 +0.2935555722964330 +0.9589648176738705 +0.9601991287755726 +0.5852953296215396 +0.6340552231766458 +0.6093081552867891 +0.8201434308862593 +0.2822697850577675 +0.9967785368852289 +0.2335465394107082 +0.6133704666150794 +0.4904032972340310 +0.1486629614533488 +0.8344672104592319 +0.9135908892417143 +0.7375622842785539 +0.5897558904109929 +0.1098753606683376 +0.9272881333662260 +0.6750529795155394 +0.8462439715445221 +0.2697821392669694 +0.7935084333473916 +0.8943474250522346 +0.2476696228020709 +0.3595067971832537 +0.8828856110778583 +0.6013691126210915 +0.9341383640410316 +0.4639396851498175 +0.8290389292699053 +0.9429304352276578 +0.8081843415934805 +0.2868742714089621 +0.6535422941066777 +0.6023122114508395 +0.2223677379303567 +0.6361442691922778 +0.3982437177621924 +0.5200912939619448 +0.5758078305226627 +0.7748887228869331 +0.1868994335680947 +0.8514212268643726 +0.3243979065563521 +0.4913208241743346 +0.0238366876477415 +0.1780986630421012 +0.8175212786729061 +0.9890372316210527 +0.3728789405866972 +0.6985932887801443 +0.3352356552544678 +0.3583583587778792 +0.4466220774815540 +0.0073745961146291 +0.6395481290571057 +0.5310219901165730 +0.7821001015015184 +0.2685203738424503 +0.1438215294677934 +0.5978443760279027 +0.9795823619109548 +0.3137689628064870 +0.3214138467598521 +0.8115559552087143 +0.2312886358012007 +0.8212584584657652 +0.9204949582089900 +0.0535134842000858 +0.9994410687255284 +0.6078550477689345 +0.7973926779009489 +0.1996560290000941 +0.5062876995415149 +0.8106786658315915 +0.0578425989842830 +0.5827079546553868 +0.0432037154811639 +0.5040317224858045 +0.9355691016054981 +0.2346848591614981 +0.5349390666455331 +0.9174472475955017 +0.9493137647333125 +0.4753405498076677 +0.1103976875454604 +0.7558087927388618 +0.3570947260322702 +0.8038972094324570 +0.3579640237972918 +0.7760442284305953 +0.3810516153211138 +0.1975746340404962 +0.8492999204369951 +0.6765546499587541 +0.1665838822246852 +0.1122785128910717 +0.2931939247600330 +0.7919951366782531 +0.0000582404213271 +0.8365080694915067 +0.2203637985585991 +0.6121296532474468 +0.2632961130913377 +0.0167285780013336 +0.4663309861016941 +0.7681799354590529 +0.3578060430860387 +0.2507600408199844 +0.5213115453088991 +0.3586892252566525 +0.6067751293117634 +0.9444632137746499 +0.9554219865588455 +0.5440689530350660 +0.1909700800250211 +0.1093806604767160 +0.7921633027842446 +0.1450294874919295 +0.1471985053609071 +0.0840312398289538 +0.0154118778449698 +0.4113809834270833 +0.3409183263468049 +0.8245251809130726 +0.6855985912090038 +0.2734045968044596 +0.7470573345824032 +0.7955318051569673 +0.0098127554247992 +0.6683780880410551 +0.1955225398256463 +0.3766197726646677 +0.0391047380371551 +0.2781487271629544 +0.1364691784907707 +0.2850721502751419 +0.0328973603833372 +0.9943792719896820 +0.6688384792981219 +0.4181112610271447 +0.1958179163192384 +0.9487291300060424 +0.3077654564242168 +0.7734300984283474 +0.6001396078131837 +0.8288257992036374 +0.0598446880534251 +0.0041856455700249 +0.9894728358865287 +0.0264532417712930 +0.4804227234935126 +0.0209322318342958 +0.9079223600125221 +0.9942765238896506 +0.5695570360172535 +0.7908262776651667 +0.9298491328745901 +0.2208941532330675 +0.4179045817888594 +0.6575322667894352 +0.8683361463991330 +0.0839274555745167 +0.5310017743192919 +0.5588325296668758 +0.0790463710490849 +0.7141867336772016 +0.4660200337484994 +0.7912064169318891 +0.8692844841966102 +0.5698923882269467 +0.4622641334170032 +0.1857573872948335 +0.5555595117353874 +0.0274413368339296 +0.1478438882769952 +0.4022779560333388 +0.8310386550646565 +0.1955024169867306 +0.8105401474647648 +0.3179930012343569 +0.0645600918293471 +0.2821075221546099 +0.8126411863275826 +0.1958498653224454 +0.3417382871033576 +0.5429096178775660 +0.0584930853678110 +0.4318403446245803 +0.3400144716621019 +0.9163287579962210 +0.6570576629613014 +0.4512718082641197 +0.9918900189591481 +0.4125872327658243 +0.3068165288947494 +0.3917093909562097 +0.3211895063719646 +0.3791139793096455 +0.3120045087232532 +0.1830462244693473 +0.5714279559387955 +0.2432982030208981 +0.3619224357655671 +0.4432778294797055 +0.7380736063012061 +0.9969313795461562 +0.5796349622748407 +0.7489459668531810 +0.7253672276173816 +0.5964103996236462 +0.2396655416315751 +0.0793554566490335 +0.3066772003296285 +0.5463786145232832 +0.0368418381532545 +0.9528706490181399 +0.6710863315232413 +0.2502500622002418 +0.4954620639638203 +0.2095527133076652 +0.4969308697084986 +0.4630343362496562 +0.7156447186913564 +0.9234436793840297 +0.1856394858598623 +0.3900936852835272 +0.6562750780860392 +0.6782481697309971 +0.0911612232140149 +0.1506002710545582 +0.4054244376561835 +0.4151740738781450 +0.9276398938602863 +0.6659787134123577 +0.9664801684939164 +0.3115282554454715 +0.8850230123909625 +0.6794787234586774 +0.2039261229292699 +0.5261577562343004 +0.8031207979755999 +0.6089336135656924 +0.7589013122320359 +0.3252171220337829 +0.2898318363065108 +0.7628518731394488 +0.1208005967267066 +0.4226086253200432 +0.4642084456183688 +0.6308854486034864 +0.1873009554916036 +0.6745428364676211 +0.3021643928953425 +0.6945713970307663 +0.2122282798610379 +0.4109919470346464 +0.2792336701373840 +0.6547910278041879 +0.2040536576239929 +0.8670961185862694 +0.8436951669448575 +0.7947723365945589 +0.7520419119893480 +0.7868348879649741 +0.2582729804497911 +0.8551167038829224 +0.3565121290335632 +0.1988301591539327 +0.1253561067512468 +0.3366010045544819 +0.3272425311344930 +0.1538595967543899 +0.1033105160116152 +0.3743997170512169 +0.6153147887679208 +0.6675935686067275 +0.8367262623602036 +0.6291700812098902 +0.0581007481140927 +0.5781984136712619 +0.2994004347902761 +0.2100447758866776 +0.3443339876707654 +0.0288499938062725 +0.3475022184142304 +0.7603928954830640 +0.5794945515381902 +0.5742942870031563 +0.0880799601167812 +0.1316003510675131 +0.2672551380763951 +0.4159943880195391 +0.5989595178839436 +0.2079628915883681 +0.7947277676573256 +0.7012523488967064 +0.3131759144170164 +0.9430180194210784 +0.8093026915237201 +0.7638995751704638 +0.9863321525652662 +0.4003011775272923 +0.9392228653340066 +0.5293987821876242 +0.0699443843988401 +0.3134108149213973 +0.7679636839503412 +0.2065000836745334 +0.5092162007580897 +0.3550337294465232 +0.2625737652496218 +0.3582208438688635 +0.9962482615397005 +0.7136425903233395 +0.9873002903568326 +0.7940620208707384 +0.1919963578354481 +0.6051337418560589 +0.2133650689005113 +0.9788801647903563 +0.4018239919361203 +0.9855890087001478 +0.8940523377283587 +0.3345351792526688 +0.9332820447600124 +0.5065539962732061 +0.9850765452102191 +0.5451311385903999 +0.6739192120991860 +0.8995240635621277 +0.5550385370458792 +0.3985632869525510 +0.9486246686280224 +0.3963824622451271 +0.0923621929153820 +0.4044468670200175 +0.9129165705540221 +0.2474533411648938 +0.0907881496037106 +0.5333879332631586 +0.0824018675289126 +0.2441935596529791 +0.5602324445708283 +0.2031084500396330 +0.3395845457034887 +0.8651871658783690 +0.1909952863567097 +0.2795872739642140 +0.8312696340084913 +0.7787417059599778 +0.0449367160743683 +0.4692373597415473 +0.1408660435935495 +0.4078630996645722 +0.9620032624635270 +0.2366611129563654 +0.5014567508919666 +0.0981788114016942 +0.1806323541546026 +0.4900608810254211 +0.2257804796681363 +0.6635944289309471 +0.5115215380743492 +0.4660595600809136 +0.5893662854201182 +0.2212515715943369 +0.0890093449785207 +0.9642799094591201 +0.7520228015470677 +0.5725258426375218 +0.2807641908627197 +0.9622855547195419 +0.6132306130320873 +0.1471264854779259 +0.5576803869075215 +0.5224653336349999 +0.4353217702014705 +0.2121603219439661 +0.5072724887865836 +0.3664609952382488 +0.3621023188399063 +0.0568475790644856 +0.6277682176611352 +0.1804715445896593 +0.5440077939177549 +0.6382937479031150 +0.1863015302591411 +0.4739561207873199 +0.9198099739242492 +0.4462258281478695 +0.3780301601045438 +0.1416867369433903 +0.3206521623141904 +0.8805001012584773 +0.9963772804791737 +0.4617856603383861 +0.6395592546966653 +0.2299436212495613 +0.5523120968280731 +0.0390347512883195 +0.9754607130246790 +0.6898141941820103 +0.6098647799232504 +0.0011919751190465 +0.2742158816023777 +0.0129619504510874 +0.7112811891677699 +0.8748053417175690 +0.7771672829000217 +0.8636747421080946 +0.2008204071149156 +0.1670931862843831 +0.9930516449781763 +0.2295481356655345 +0.4619626182430470 +0.2716373586077914 +0.4774434444031093 +0.1554564497529733 +0.5801407455126777 +0.9251803686711203 +0.5870197311906299 +0.4426079411888729 +0.8193189482072215 +0.9469464587102370 +0.6456911458242299 +0.6790549569637353 +0.4549697186771808 +0.7432000533939859 +0.4987473965562773 +0.0215206591826416 +0.4239912636305227 +0.3798668775474282 +0.5902707500336405 +0.4617226843808971 +0.1450335004744172 +0.8270521721189605 +0.4798500419297958 +0.3531084288980881 +0.4127904888076044 +0.3979812311811942 +0.0633748050049529 +0.9628699220321748 +0.2808764620100573 +0.7951747844806449 +0.6440324052030922 +0.8268915145821329 +0.6776694233399565 +0.7476721154021942 +0.7913956135491885 +0.4438037611563914 +0.1894062094066217 +0.6742821959559429 +0.0751962319153344 +0.4171746726632544 +0.8028094818238460 +0.5741540631774584 +0.2119586184816012 +0.7002240855906146 +0.5915092902196697 +0.4088850928024466 +0.3891466494839805 +0.4450613685799698 +0.8605063273274033 +0.7619769015116673 +0.4109791488118166 +0.6995209428283368 +0.7927465224293798 +0.6651371873253121 +0.8783821906590518 +0.7324899106003891 +0.9787996433785298 +0.2243933711503675 +0.3396867072456570 +0.9706742302917581 +0.4226697559960621 +0.4053856578671966 +0.4299848906994959 +0.0195538050942645 +0.4882446058399408 +0.0050335943612510 +0.6184150514021836 +0.7436742538352471 +0.9760423311005739 +0.4809790251925535 +0.8281110640624487 +0.4293368810785904 +0.7447513040531746 +0.3658407082754213 +0.9347167863565927 +0.5756712042417134 +0.8907119866888689 +0.5040296297570688 +0.0431348307802444 +0.9924178790289504 +0.1382007251365877 +0.6552489912530833 +0.3028184124450130 +0.6008649706098884 +0.2387731461416915 +0.6260593296138161 +0.3966320214295392 +0.4410662055655723 +0.3598054629319845 +0.1273167659069661 +0.5659734413179224 +0.2577111394577001 +0.7920323294835268 +0.2084368240195619 +0.3714806785942453 +0.1605691731804975 +0.8915152147589399 +0.6678945841165947 +0.9620524271442882 +0.5115421986130528 +%% +1.0000000000000000 +0.9999811752826011 +0.9999247018391445 +0.9998305817958234 +0.9996988186962042 +0.9995294175010931 +0.9993223845883495 +0.9990777277526454 +0.9987954562051724 +0.9984755805732948 +0.9981181129001492 +0.9977230666441916 +0.9972904566786902 +0.9968202992911657 +0.9963126121827780 +0.9957674144676598 +0.9951847266721969 +0.9945645707342554 +0.9939069700023561 +0.9932119492347945 +0.9924795345987100 +0.9917097536690995 +0.9909026354277800 +0.9900582102622971 +0.9891765099647810 +0.9882575677307495 +0.9873014181578583 +0.9863080972445987 +0.9852776423889412 +0.9842100923869290 +0.9831054874312163 +0.9819638691095552 +0.9807852804032304 +0.9795697656854405 +0.9783173707196277 +0.9770281426577543 +0.9757021300385285 +0.9743393827855759 +0.9729399522055601 +0.9715038909862518 +0.9700312531945440 +0.9685220942744173 +0.9669764710448521 +0.9653944416976893 +0.9637760657954398 +0.9621214042690416 +0.9604305194155658 +0.9587034748958715 +0.9569403357322088 +0.9551411683057707 +0.9533060403541938 +0.9514350209690083 +0.9495281805930366 +0.9475855910177411 +0.9456073253805213 +0.9435934581619603 +0.9415440651830207 +0.9394592236021898 +0.9373390119125748 +0.9351835099389475 +0.9329927988347388 +0.9307669610789837 +0.9285060804732155 +0.9262102421383113 +0.9238795325112867 +0.9215140393420419 +0.9191138516900577 +0.9166790599210426 +0.9142097557035306 +0.9117060320054298 +0.9091679830905223 +0.9065957045149153 +0.9039892931234432 +0.9013488470460219 +0.8986744656939537 +0.8959662497561850 +0.8932243011955152 +0.8904487232447578 +0.8876396204028538 +0.8847970984309377 +0.8819212643483549 +0.8790122264286333 +0.8760700941954065 +0.8730949784182900 +0.8700869911087113 +0.8670462455156925 +0.8639728561215866 +0.8608669386377672 +0.8577286100002719 +0.8545579883654004 +0.8513551931052650 +0.8481203448032971 +0.8448535652497069 +0.8415549774368982 +0.8382247055548379 +0.8348628749863799 +0.8314696123025450 +0.8280450452577556 +0.8245893027850251 +0.8211025149911044 +0.8175848131515835 +0.8140363297059482 +0.8104571982525947 +0.8068475535437991 +0.8032075314806447 +0.7995372691079048 +0.7958369046088833 +0.7921065773002122 +0.7883464276266060 +0.7845565971555750 +0.7807372285720943 +0.7768884656732322 +0.7730104533627368 +0.7691033376455794 +0.7651672656224586 +0.7612023854842616 +0.7572088465064843 +0.7531867990436122 +0.7491363945234590 +0.7450577854414657 +0.7409511253549588 +0.7368165688773697 +0.7326542716724125 +0.7284643904482249 +0.7242470829514667 +0.7200025079613814 +0.7157308252838184 +0.7114321957452161 +0.7071067811865472 +0.7027547444572251 +0.6983762494089727 +0.6939714608896537 +0.6895405447370666 +0.6850836677727001 +0.6806009977954528 +0.6760927035753156 +0.6715589548470181 +0.6669999223036372 +0.6624157775901715 +0.6578066932970784 +0.6531728429537764 +0.6485144010221121 +0.6438315428897912 +0.6391244448637755 +0.6343932841636452 +0.6296382389149267 +0.6248594881423860 +0.6200572117632889 +0.6152315905806265 +0.6103828062763090 +0.6055110414043251 +0.6006164793838685 +0.5956993044924330 +0.5907597018588739 +0.5857978574564384 +0.5808139580957642 +0.5758081914178449 +0.5707807458869669 +0.5657318107836128 +0.5606615761973356 +0.5555702330196018 +0.5504579729366045 +0.5453249884220460 +0.5401714727298924 +0.5349976198870968 +0.5298036246862943 +0.5245896826784685 +0.5193559901655892 +0.5141027441932213 +0.5088301425431067 +0.5035383837257170 +0.4982276669727814 +0.4928981922297835 +0.4875501601484355 +0.4821837720791223 +0.4767992300633216 +0.4713967368259972 +0.4659764957679657 +0.4605387109582396 +0.4550835871263432 +0.4496113296546060 +0.4441221445704286 +0.4386162385385271 +0.4330938188531515 +0.4275550934302816 +0.4220002707997992 +0.4164295600976367 +0.4108431710579035 +0.4052413140049892 +0.3996241998456462 +0.3939920400610475 +0.3883450466988257 +0.3826834323650892 +0.3770074102164177 +0.3713171939518370 +0.3656129978047734 +0.3598950365349877 +0.3541635254204897 +0.3484186802494339 +0.3426607173119937 +0.3368898533922194 +0.3311063057598758 +0.3253102921622623 +0.3195020308160151 +0.3136817403988909 +0.3078496400415344 +0.3020059493192273 +0.2961508882436231 +0.2902846772544617 +0.2844075372112712 +0.2785196893850524 +0.2726213554499484 +0.2667127574748978 +0.2607941179152749 +0.2548656596045140 +0.2489276057457194 +0.2429801799032631 +0.2370236059943665 +0.2310581082806704 +0.2250839113597921 +0.2191012401568691 +0.2131103199160907 +0.2071113761922179 +0.2011046348420913 +0.1950903220161277 +0.1890686641498054 +0.1830398879551402 +0.1770042204121480 +0.1709618887603005 +0.1649131204899692 +0.1588581433338607 +0.1527971852584427 +0.1467304744553611 +0.1406582393328486 +0.1345807085071253 +0.1284981107937923 +0.1224106751992154 +0.1163186309119040 +0.1102222072938823 +0.1041216338720538 +0.0980171403295599 +0.0919089564971320 +0.0857973123444392 +0.0796824379714292 +0.0735645635996666 +0.0674439195636632 +0.0613207363022078 +0.0551952443496892 +0.0490676743274172 +0.0429382569349401 +0.0368072229413581 +0.0306748031766359 +0.0245412285229114 +0.0184067299058039 +0.0122715382857191 +0.0061358846491536 +-0.0000000000000008 +-0.0061358846491553 +-0.0122715382857207 +-0.0184067299058056 +-0.0245412285229130 +-0.0306748031766376 +-0.0368072229413598 +-0.0429382569349417 +-0.0490676743274189 +-0.0551952443496908 +-0.0613207363022094 +-0.0674439195636649 +-0.0735645635996682 +-0.0796824379714309 +-0.0857973123444409 +-0.0919089564971337 +-0.0980171403295615 +-0.1041216338720555 +-0.1102222072938839 +-0.1163186309119056 +-0.1224106751992170 +-0.1284981107937940 +-0.1345807085071270 +-0.1406582393328502 +-0.1467304744553627 +-0.1527971852584444 +-0.1588581433338624 +-0.1649131204899708 +-0.1709618887603021 +-0.1770042204121496 +-0.1830398879551418 +-0.1890686641498071 +-0.1950903220161293 +-0.2011046348420929 +-0.2071113761922195 +-0.2131103199160923 +-0.2191012401568707 +-0.2250839113597937 +-0.2310581082806720 +-0.2370236059943681 +-0.2429801799032647 +-0.2489276057457210 +-0.2548656596045156 +-0.2607941179152765 +-0.2667127574748994 +-0.2726213554499499 +-0.2785196893850541 +-0.2844075372112728 +-0.2902846772544633 +-0.2961508882436247 +-0.3020059493192289 +-0.3078496400415359 +-0.3136817403988925 +-0.3195020308160167 +-0.3253102921622639 +-0.3311063057598774 +-0.3368898533922210 +-0.3426607173119953 +-0.3484186802494355 +-0.3541635254204912 +-0.3598950365349892 +-0.3656129978047749 +-0.3713171939518385 +-0.3770074102164193 +-0.3826834323650907 +-0.3883450466988272 +-0.3939920400610490 +-0.3996241998456477 +-0.4052413140049907 +-0.4108431710579050 +-0.4164295600976382 +-0.4220002707998005 +-0.4275550934302831 +-0.4330938188531527 +-0.4386162385385286 +-0.4441221445704304 +-0.4496113296546075 +-0.4550835871263449 +-0.4605387109582409 +-0.4659764957679672 +-0.4713967368259985 +-0.4767992300633231 +-0.4821837720791235 +-0.4875501601484369 +-0.4928981922297851 +-0.4982276669727827 +-0.5035383837257186 +-0.5088301425431079 +-0.5141027441932227 +-0.5193559901655903 +-0.5245896826784698 +-0.5298036246862954 +-0.5349976198870982 +-0.5401714727298940 +-0.5453249884220472 +-0.5504579729366058 +-0.5555702330196031 +-0.5606615761973370 +-0.5657318107836140 +-0.5707807458869683 +-0.5758081914178460 +-0.5808139580957654 +-0.5857978574564399 +-0.5907597018588751 +-0.5956993044924344 +-0.6006164793838698 +-0.6055110414043264 +-0.6103828062763103 +-0.6152315905806278 +-0.6200572117632899 +-0.6248594881423872 +-0.6296382389149281 +-0.6343932841636464 +-0.6391244448637767 +-0.6438315428897923 +-0.6485144010221134 +-0.6531728429537775 +-0.6578066932970795 +-0.6624157775901724 +-0.6669999223036384 +-0.6715589548470194 +-0.6760927035753168 +-0.6806009977954540 +-0.6850836677727011 +-0.6895405447370678 +-0.6939714608896548 +-0.6983762494089737 +-0.7027547444572260 +-0.7071067811865483 +-0.7114321957452174 +-0.7157308252838195 +-0.7200025079613827 +-0.7242470829514678 +-0.7284643904482262 +-0.7326542716724136 +-0.7368165688773707 +-0.7409511253549599 +-0.7450577854414668 +-0.7491363945234604 +-0.7531867990436133 +-0.7572088465064855 +-0.7612023854842626 +-0.7651672656224598 +-0.7691033376455804 +-0.7730104533627378 +-0.7768884656732331 +-0.7807372285720953 +-0.7845565971555761 +-0.7883464276266070 +-0.7921065773002133 +-0.7958369046088842 +-0.7995372691079059 +-0.8032075314806456 +-0.8068475535438001 +-0.8104571982525954 +-0.8140363297059492 +-0.8175848131515846 +-0.8211025149911054 +-0.8245893027850261 +-0.8280450452577565 +-0.8314696123025460 +-0.8348628749863808 +-0.8382247055548389 +-0.8415549774368991 +-0.8448535652497078 +-0.8481203448032981 +-0.8513551931052659 +-0.8545579883654013 +-0.8577286100002728 +-0.8608669386377681 +-0.8639728561215874 +-0.8670462455156933 +-0.8700869911087120 +-0.8730949784182909 +-0.8760700941954074 +-0.8790122264286342 +-0.8819212643483558 +-0.8847970984309383 +-0.8876396204028547 +-0.8904487232447584 +-0.8932243011955160 +-0.8959662497561857 +-0.8986744656939545 +-0.9013488470460227 +-0.9039892931234439 +-0.9065957045149160 +-0.9091679830905229 +-0.9117060320054304 +-0.9142097557035311 +-0.9166790599210433 +-0.9191138516900582 +-0.9215140393420426 +-0.9238795325112872 +-0.9262102421383118 +-0.9285060804732161 +-0.9307669610789843 +-0.9329927988347395 +-0.9351835099389481 +-0.9373390119125755 +-0.9394592236021904 +-0.9415440651830213 +-0.9435934581619608 +-0.9456073253805218 +-0.9475855910177416 +-0.9495281805930371 +-0.9514350209690089 +-0.9533060403541942 +-0.9551411683057712 +-0.9569403357322093 +-0.9587034748958720 +-0.9604305194155662 +-0.9621214042690420 +-0.9637760657954403 +-0.9653944416976897 +-0.9669764710448525 +-0.9685220942744177 +-0.9700312531945444 +-0.9715038909862521 +-0.9729399522055605 +-0.9743393827855762 +-0.9757021300385289 +-0.9770281426577547 +-0.9783173707196280 +-0.9795697656854409 +-0.9807852804032308 +-0.9819638691095556 +-0.9831054874312166 +-0.9842100923869294 +-0.9852776423889414 +-0.9863080972445989 +-0.9873014181578587 +-0.9882575677307497 +-0.9891765099647812 +-0.9900582102622973 +-0.9909026354277802 +-0.9917097536690997 +-0.9924795345987102 +-0.9932119492347947 +-0.9939069700023562 +-0.9945645707342556 +-0.9951847266721970 +-0.9957674144676599 +-0.9963126121827781 +-0.9968202992911659 +-0.9972904566786903 +-0.9977230666441917 +-0.9981181129001493 +-0.9984755805732949 +-0.9987954562051725 +-0.9990777277526455 +-0.9993223845883495 +-0.9995294175010933 +-0.9996988186962042 +-0.9998305817958234 +-0.9999247018391446 +-0.9999811752826011 +%% +-0.0000000000000000 +-0.0061358846491545 +-0.0122715382857199 +-0.0184067299058048 +-0.0245412285229123 +-0.0306748031766366 +-0.0368072229413589 +-0.0429382569349408 +-0.0490676743274180 +-0.0551952443496900 +-0.0613207363022086 +-0.0674439195636641 +-0.0735645635996675 +-0.0796824379714302 +-0.0857973123444399 +-0.0919089564971328 +-0.0980171403295607 +-0.1041216338720546 +-0.1102222072938831 +-0.1163186309119048 +-0.1224106751992163 +-0.1284981107937932 +-0.1345807085071263 +-0.1406582393328493 +-0.1467304744553618 +-0.1527971852584435 +-0.1588581433338615 +-0.1649131204899700 +-0.1709618887603013 +-0.1770042204121488 +-0.1830398879551410 +-0.1890686641498063 +-0.1950903220161284 +-0.2011046348420920 +-0.2071113761922187 +-0.2131103199160915 +-0.2191012401568699 +-0.2250839113597929 +-0.2310581082806712 +-0.2370236059943673 +-0.2429801799032640 +-0.2489276057457203 +-0.2548656596045147 +-0.2607941179152757 +-0.2667127574748985 +-0.2726213554499491 +-0.2785196893850532 +-0.2844075372112720 +-0.2902846772544625 +-0.2961508882436240 +-0.3020059493192283 +-0.3078496400415350 +-0.3136817403988916 +-0.3195020308160158 +-0.3253102921622631 +-0.3311063057598765 +-0.3368898533922202 +-0.3426607173119945 +-0.3484186802494347 +-0.3541635254204906 +-0.3598950365349883 +-0.3656129978047741 +-0.3713171939518377 +-0.3770074102164185 +-0.3826834323650899 +-0.3883450466988265 +-0.3939920400610483 +-0.3996241998456470 +-0.4052413140049901 +-0.4108431710579041 +-0.4164295600976374 +-0.4220002707997999 +-0.4275550934302823 +-0.4330938188531522 +-0.4386162385385278 +-0.4441221445704295 +-0.4496113296546068 +-0.4550835871263441 +-0.4605387109582402 +-0.4659764957679664 +-0.4713967368259979 +-0.4767992300633224 +-0.4821837720791230 +-0.4875501601484362 +-0.4928981922297843 +-0.4982276669727821 +-0.5035383837257178 +-0.5088301425431073 +-0.5141027441932220 +-0.5193559901655898 +-0.5245896826784692 +-0.5298036246862949 +-0.5349976198870975 +-0.5401714727298931 +-0.5453249884220467 +-0.5504579729366050 +-0.5555702330196025 +-0.5606615761973363 +-0.5657318107836135 +-0.5707807458869676 +-0.5758081914178456 +-0.5808139580957647 +-0.5857978574564391 +-0.5907597018588745 +-0.5956993044924337 +-0.6006164793838692 +-0.6055110414043258 +-0.6103828062763097 +-0.6152315905806272 +-0.6200572117632894 +-0.6248594881423867 +-0.6296382389149273 +-0.6343932841636457 +-0.6391244448637761 +-0.6438315428897917 +-0.6485144010221128 +-0.6531728429537770 +-0.6578066932970790 +-0.6624157775901721 +-0.6669999223036378 +-0.6715589548470187 +-0.6760927035753163 +-0.6806009977954534 +-0.6850836677727007 +-0.6895405447370672 +-0.6939714608896542 +-0.6983762494089731 +-0.7027547444572256 +-0.7071067811865478 +-0.7114321957452168 +-0.7157308252838188 +-0.7200025079613819 +-0.7242470829514671 +-0.7284643904482255 +-0.7326542716724131 +-0.7368165688773702 +-0.7409511253549594 +-0.7450577854414662 +-0.7491363945234596 +-0.7531867990436127 +-0.7572088465064848 +-0.7612023854842621 +-0.7651672656224592 +-0.7691033376455799 +-0.7730104533627372 +-0.7768884656732327 +-0.7807372285720947 +-0.7845565971555755 +-0.7883464276266066 +-0.7921065773002127 +-0.7958369046088838 +-0.7995372691079052 +-0.8032075314806452 +-0.8068475535437996 +-0.8104571982525951 +-0.8140363297059486 +-0.8175848131515839 +-0.8211025149911049 +-0.8245893027850255 +-0.8280450452577560 +-0.8314696123025456 +-0.8348628749863802 +-0.8382247055548383 +-0.8415549774368987 +-0.8448535652497073 +-0.8481203448032975 +-0.8513551931052654 +-0.8545579883654008 +-0.8577286100002723 +-0.8608669386377674 +-0.8639728561215870 +-0.8670462455156930 +-0.8700869911087117 +-0.8730949784182903 +-0.8760700941954068 +-0.8790122264286337 +-0.8819212643483553 +-0.8847970984309380 +-0.8876396204028542 +-0.8904487232447582 +-0.8932243011955157 +-0.8959662497561854 +-0.8986744656939541 +-0.9013488470460223 +-0.9039892931234436 +-0.9065957045149156 +-0.9091679830905226 +-0.9117060320054301 +-0.9142097557035309 +-0.9166790599210429 +-0.9191138516900580 +-0.9215140393420422 +-0.9238795325112870 +-0.9262102421383116 +-0.9285060804732158 +-0.9307669610789839 +-0.9329927988347391 +-0.9351835099389478 +-0.9373390119125752 +-0.9394592236021901 +-0.9415440651830210 +-0.9435934581619606 +-0.9456073253805215 +-0.9475855910177413 +-0.9495281805930369 +-0.9514350209690086 +-0.9533060403541941 +-0.9551411683057709 +-0.9569403357322090 +-0.9587034748958717 +-0.9604305194155660 +-0.9621214042690418 +-0.9637760657954401 +-0.9653944416976895 +-0.9669764710448523 +-0.9685220942744175 +-0.9700312531945442 +-0.9715038909862520 +-0.9729399522055603 +-0.9743393827855760 +-0.9757021300385287 +-0.9770281426577545 +-0.9783173707196278 +-0.9795697656854406 +-0.9807852804032305 +-0.9819638691095555 +-0.9831054874312165 +-0.9842100923869292 +-0.9852776423889413 +-0.9863080972445988 +-0.9873014181578585 +-0.9882575677307496 +-0.9891765099647811 +-0.9900582102622972 +-0.9909026354277801 +-0.9917097536690996 +-0.9924795345987101 +-0.9932119492347946 +-0.9939069700023562 +-0.9945645707342555 +-0.9951847266721969 +-0.9957674144676598 +-0.9963126121827781 +-0.9968202992911658 +-0.9972904566786903 +-0.9977230666441916 +-0.9981181129001493 +-0.9984755805732948 +-0.9987954562051724 +-0.9990777277526454 +-0.9993223845883495 +-0.9995294175010931 +-0.9996988186962042 +-0.9998305817958234 +-0.9999247018391445 +-0.9999811752826011 +-1.0000000000000000 +-0.9999811752826011 +-0.9999247018391445 +-0.9998305817958234 +-0.9996988186962042 +-0.9995294175010931 +-0.9993223845883494 +-0.9990777277526454 +-0.9987954562051724 +-0.9984755805732947 +-0.9981181129001492 +-0.9977230666441915 +-0.9972904566786902 +-0.9968202992911657 +-0.9963126121827779 +-0.9957674144676597 +-0.9951847266721968 +-0.9945645707342553 +-0.9939069700023559 +-0.9932119492347944 +-0.9924795345987099 +-0.9917097536690994 +-0.9909026354277799 +-0.9900582102622970 +-0.9891765099647808 +-0.9882575677307494 +-0.9873014181578582 +-0.9863080972445984 +-0.9852776423889411 +-0.9842100923869289 +-0.9831054874312162 +-0.9819638691095551 +-0.9807852804032302 +-0.9795697656854403 +-0.9783173707196274 +-0.9770281426577542 +-0.9757021300385283 +-0.9743393827855756 +-0.9729399522055600 +-0.9715038909862516 +-0.9700312531945438 +-0.9685220942744170 +-0.9669764710448518 +-0.9653944416976891 +-0.9637760657954396 +-0.9621214042690414 +-0.9604305194155656 +-0.9587034748958713 +-0.9569403357322086 +-0.9551411683057704 +-0.9533060403541935 +-0.9514350209690080 +-0.9495281805930363 +-0.9475855910177408 +-0.9456073253805209 +-0.9435934581619601 +-0.9415440651830205 +-0.9394592236021896 +-0.9373390119125746 +-0.9351835099389473 +-0.9329927988347385 +-0.9307669610789833 +-0.9285060804732151 +-0.9262102421383109 +-0.9238795325112863 +-0.9215140393420416 +-0.9191138516900573 +-0.9166790599210423 +-0.9142097557035302 +-0.9117060320054293 +-0.9091679830905219 +-0.9065957045149150 +-0.9039892931234429 +-0.9013488470460217 +-0.8986744656939534 +-0.8959662497561846 +-0.8932243011955149 +-0.8904487232447573 +-0.8876396204028535 +-0.8847970984309372 +-0.8819212643483546 +-0.8790122264286330 +-0.8760700941954063 +-0.8730949784182896 +-0.8700869911087108 +-0.8670462455156922 +-0.8639728561215861 +-0.8608669386377668 +-0.8577286100002715 +-0.8545579883654001 +-0.8513551931052645 +-0.8481203448032968 +-0.8448535652497065 +-0.8415549774368978 +-0.8382247055548375 +-0.8348628749863793 +-0.8314696123025447 +-0.8280450452577551 +-0.8245893027850247 +-0.8211025149911040 +-0.8175848131515832 +-0.8140363297059477 +-0.8104571982525941 +-0.8068475535437987 +-0.8032075314806442 +-0.7995372691079045 +-0.7958369046088828 +-0.7921065773002117 +-0.7883464276266056 +-0.7845565971555747 +-0.7807372285720937 +-0.7768884656732316 +-0.7730104533627363 +-0.7691033376455788 +-0.7651672656224582 +-0.7612023854842610 +-0.7572088465064839 +-0.7531867990436116 +-0.7491363945234587 +-0.7450577854414652 +-0.7409511253549581 +-0.7368165688773691 +-0.7326542716724119 +-0.7284643904482244 +-0.7242470829514660 +-0.7200025079613810 +-0.7157308252838178 +-0.7114321957452157 +-0.7071067811865467 +-0.7027547444572243 +-0.6983762494089720 +-0.6939714608896530 +-0.6895405447370661 +-0.6850836677726994 +-0.6806009977954522 +-0.6760927035753150 +-0.6715589548470176 +-0.6669999223036366 +-0.6624157775901707 +-0.6578066932970777 +-0.6531728429537756 +-0.6485144010221116 +-0.6438315428897904 +-0.6391244448637748 +-0.6343932841636445 +-0.6296382389149262 +-0.6248594881423853 +-0.6200572117632880 +-0.6152315905806258 +-0.6103828062763083 +-0.6055110414043245 +-0.6006164793838678 +-0.5956993044924324 +-0.5907597018588731 +-0.5857978574564380 +-0.5808139580957634 +-0.5758081914178440 +-0.5707807458869663 +-0.5657318107836119 +-0.5606615761973350 +-0.5555702330196010 +-0.5504579729366038 +-0.5453249884220452 +-0.5401714727298919 +-0.5349976198870960 +-0.5298036246862933 +-0.5245896826784677 +-0.5193559901655883 +-0.5141027441932207 +-0.5088301425431058 +-0.5035383837257165 +-0.4982276669727806 +-0.4928981922297830 +-0.4875501601484347 +-0.4821837720791213 +-0.4767992300633209 +-0.4713967368259963 +-0.4659764957679650 +-0.4605387109582387 +-0.4550835871263427 +-0.4496113296546053 +-0.4441221445704281 +-0.4386162385385263 +-0.4330938188531505 +-0.4275550934302808 +-0.4220002707997982 +-0.4164295600976359 +-0.4108431710579025 +-0.4052413140049886 +-0.3996241998456455 +-0.3939920400610469 +-0.3883450466988249 +-0.3826834323650886 +-0.3770074102164169 +-0.3713171939518360 +-0.3656129978047726 +-0.3598950365349867 +-0.3541635254204891 +-0.3484186802494331 +-0.3426607173119932 +-0.3368898533922186 +-0.3311063057598752 +-0.3253102921622615 +-0.3195020308160141 +-0.3136817403988901 +-0.3078496400415334 +-0.3020059493192268 +-0.2961508882436223 +-0.2902846772544611 +-0.2844075372112704 +-0.2785196893850518 +-0.2726213554499475 +-0.2667127574748968 +-0.2607941179152741 +-0.2548656596045130 +-0.2489276057457188 +-0.2429801799032623 +-0.2370236059943659 +-0.2310581082806696 +-0.2250839113597915 +-0.2191012401568683 +-0.2131103199160897 +-0.2071113761922171 +-0.2011046348420903 +-0.1950903220161268 +-0.1890686641498046 +-0.1830398879551396 +-0.1770042204121472 +-0.1709618887602999 +-0.1649131204899684 +-0.1588581433338597 +-0.1527971852584419 +-0.1467304744553601 +-0.1406582393328478 +-0.1345807085071245 +-0.1284981107937918 +-0.1224106751992146 +-0.1163186309119034 +-0.1102222072938815 +-0.1041216338720528 +-0.0980171403295591 +-0.0919089564971310 +-0.0857973123444384 +-0.0796824379714284 +-0.0735645635996660 +-0.0674439195636624 +-0.0613207363022072 +-0.0551952443496883 +-0.0490676743274162 +-0.0429382569349392 +-0.0368072229413571 +-0.0306748031766351 +-0.0245412285229105 +-0.0184067299058033 +-0.0122715382857182 +-0.0061358846491530 \ No newline at end of file diff --git a/examples/machsuite/fft/strided/strided_fft.py b/examples/machsuite/fft/strided/strided_fft.py new file mode 100644 index 0000000000..082481f3eb --- /dev/null +++ b/examples/machsuite/fft/strided/strided_fft.py @@ -0,0 +1,68 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + +# strided_fft.py + +import allo +from allo.ir.types import float32, int32 + +FFT_SIZE = 1024 +FFT_SIZE_HALF = int(FFT_SIZE / 2) + +# void fft(double real[FFT_SIZE], double img[FFT_SIZE], double real_twid[FFT_SIZE/2], double img_twid[FFT_SIZE/2]){ +def fft(real: float32[FFT_SIZE], img: float32[FFT_SIZE], real_twid: float32[FFT_SIZE_HALF], img_twid: float32[FFT_SIZE_HALF]): + span: int32 = FFT_SIZE >> 1 + log: int32 = 0 + even: int32 = 0 + odd: int32 = 0 + rootindex: int32 = 0 + temp: float32 = 0.0 + + # outer loop iterates over different stages of FFT + while (span > 0): + odd = span + while (odd < FFT_SIZE): + # odd index, with arr[0] = 1st index, so even is odd + + odd |= span + + # even index, with arr[1] = 2nd index, so odd is even + even = odd ^ span + + # butterfly algorithm, temp stores intermediate results + temp = real[even] + real[odd] + + # output[odd] = input[even] - input[odd] + real[odd] = real[even] - real[odd] + + # output[even] = input[even] + input[odd] + real[even] = temp + + temp = img[even] + img[odd] + + # output[odd] = input[even] + input[odd] + img[odd] = img[even] - img[odd] + + # output[even] = input[even] + input[odd] + img[even] = temp + + # finds index of precomputed twiddle factor + + rootindex = (even << log) & (FFT_SIZE - 1) + + # if twiddle factor is non-zero + if rootindex > 0: + # real part is updated + temp = real_twid[rootindex] * real[odd] - img_twid[rootindex] * img[odd] + + # imaginary part is updated + img[odd] = real_twid[rootindex] * img[odd] + img_twid[rootindex] * real[odd] + real[odd] = temp + odd += 1 + # keeps track of stages using log + span >>= 1 + log += 1 + +s = allo.customize(fft) + +mod = s.build(target="llvm") \ No newline at end of file diff --git a/examples/machsuite/fft/strided/test_strided.py b/examples/machsuite/fft/strided/test_strided.py new file mode 100644 index 0000000000..71926ddb42 --- /dev/null +++ b/examples/machsuite/fft/strided/test_strided.py @@ -0,0 +1,66 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + +# test_strided.py> + +import pytest +import numpy as np +import allo + +from strided_fft import fft + +from allo.ir.types import int32, float32, float64 + +def test_strided_fft(): + file_path = "/home/wty5/shared/allo/fft/strided/input_strided.data" + counter = 0 + real = [] + img = [] + real_twid = [] + img_twid = [] + + try: + with open(file_path, 'r') as file: + for line in file: + number = line.strip() + if "%%" in line: + counter += 1 + continue + if counter == 1: + real.append(float(number)) + elif counter == 2: + img.append(float(number)) + elif counter == 3: + real_twid.append(float(number)) + elif counter == 4: + img_twid.append(float(number)) + + except FileNotFoundError: + print(f"File '{file_path}' not found.") + + fft(real, img, real_twid, img_twid) + + output_path = "/home/wty5/shared/allo/fft/strided/check_strided.data" + counter = 0 + + golden_real = [] + golden_img = [] + try: + with open(output_path, 'r') as file: + for line in file: + number = line.strip() + if "%%" in line: + counter += 1 + continue + if counter == 1: + golden_real.append(float(number)) + elif counter == 2: + golden_img.append(float(number)) + + except FileNotFoundError: + print(f"File '{file_path}' not found.") + + np.testing.assert_allclose(real, golden_real, rtol=1e-5, atol=1e-5) + np.testing.assert_allclose(img, golden_img, rtol=1e-5, atol=1e-5) + +test_strided_fft() \ No newline at end of file diff --git a/examples/machsuite/fft/transpose/check_transpose.data b/examples/machsuite/fft/transpose/check_transpose.data new file mode 100644 index 0000000000..e1a58e02ef --- /dev/null +++ b/examples/machsuite/fft/transpose/check_transpose.data @@ -0,0 +1,1026 @@ +%% +250.1296711896629859 +-5.2455753949252246 +-3.2814349802751104 +-3.1714384420881636 +9.2855029198983328 +-8.3522699178462307 +-3.6519085690781727 +-8.2163741860630175 +6.6115817812087352 +6.5765903496434284 +-12.9164971917594080 +-10.0176090691204820 +5.9447962704154271 +2.0444149261510747 +-0.5391632390846695 +-13.8703655051584924 +7.1834991697764252 +-8.6521996719153744 +-3.9375255193480450 +-0.1725023333572540 +-8.1781777506292705 +0.2094844839889325 +-5.0602806635162585 +-1.5627667121914230 +10.9447150607754295 +4.0516359083840925 +-1.1623100926654093 +-9.3498525254649163 +-8.0741086907908226 +10.6971944775613785 +5.6589397035876754 +1.7785458608365827 +1.2829979598416414 +-4.7665653135783126 +-6.4335948150195321 +13.9468133160030554 +2.4758296439859770 +-3.3756443355644961 +8.2684535305900742 +-0.7890503429090234 +-8.6576653609165977 +3.9590532721855469 +10.6318084990840838 +-9.2591511823878658 +11.7539414887100762 +1.1019601751483465 +-9.5878667836115525 +15.3065582718145521 +-3.5289159400001808 +6.5478796676299060 +-7.7521882420708081 +-5.0490065421343697 +-0.6615146560269562 +-1.5275288989118270 +-1.3677259902150833 +7.6939182631161600 +5.6891146239634427 +6.2667489218390662 +-3.3231110707608962 +-6.7782375850651260 +7.6028800468149722 +0.3836136146710469 +3.6276850616235521 +10.9068001191605788 +6.8379529081148291 +8.2707218030305931 +11.3650223795169580 +0.7076656648916790 +0.3821125011678688 +-4.5054867278863782 +-3.6339165856050655 +-4.9987788203061871 +-6.7127886018931955 +1.9116272415860627 +-3.0757372428792134 +9.9135329257086156 +5.2372133469977946 +6.0824282523994349 +-9.2806293254595928 +-3.2950265746846199 +1.1618843395462259 +-10.2172881929805808 +-2.2804838172142574 +3.0282779935853794 +-3.1787856971649990 +-3.5898298397602306 +16.7789340465882262 +-5.7510579093334124 +-0.9723407703926821 +-3.1579293486420736 +11.8437360985975513 +0.5522697571954658 +-6.4158462656805124 +-8.0484284088286770 +-2.6513276198866036 +7.0288934771503309 +7.7152592932479731 +-2.9651131258948036 +-13.9771595578063419 +11.8993405021215750 +11.2672560959448678 +-3.6074914559968736 +12.5496316440712370 +12.2452939484823524 +6.0708343909689377 +11.8084406100641157 +0.5732007167236843 +-13.4081247748326149 +5.0898038455975065 +1.1056679591126870 +5.7707995108552197 +-2.9150421229700356 +6.8154955528644976 +11.9099468802341910 +-5.8810193606487298 +-4.5001937264079270 +11.8865338983610087 +-1.7996615971276571 +-1.6305927571064820 +2.5612690690317277 +1.3178023711770135 +5.8828781467253926 +6.7166308471441285 +4.0689284660320437 +4.6592402858435955 +-6.4196959412374373 +2.8089352396221976 +1.0918340217854294 +-1.3918176370995710 +-6.4683652548057697 +-2.8649354240161022 +-12.5089863369682597 +-7.1069417304253921 +4.7313061384336557 +2.5872262707265903 +-1.6031281363662551 +-4.8344515867433424 +0.0258844835721894 +6.3129657935171757 +-12.6785735680072236 +17.2788210775134807 +7.5188057049526016 +0.2351879894171924 +-0.9766403790237286 +-3.7450681216089765 +-3.4029993492501718 +-0.0066432904209863 +9.4444228026842492 +6.4856112837631628 +-1.3105881267940367 +6.8254587078016273 +2.3727164548778559 +8.4881307138843844 +-5.0772258660189165 +4.2193029158040138 +7.8232450561416531 +-4.2495483183922298 +-3.5559039147195168 +-1.5393083934701828 +-5.1542638533179996 +1.3746706253537924 +0.8763956520923006 +7.4220404732286793 +-8.4970716348442146 +-4.2408043493699488 +2.9883417581427296 +1.7287873772819848 +8.1901811203683756 +0.7773515158879030 +-5.5974212935322143 +7.8978631070269278 +4.2559721219948807 +-1.5462096681009196 +10.8772987332628190 +1.4191582748676863 +1.8279382016151930 +3.5905282371385203 +-2.8984761497748712 +-11.4014841473245063 +1.5608102261059031 +-9.2323404306689696 +6.0163951225737193 +12.7237762598256161 +5.0318100970558071 +-8.9818794030374995 +-9.4235864608531923 +-1.6281020333690674 +0.6824888193984573 +-6.1440985231248266 +-14.3819240609081831 +3.6193120585767087 +10.2031386587078039 +-3.6574404344436999 +6.4093487430525800 +5.8574493518563546 +-3.5687116393421094 +16.4629652645047280 +11.0206480346330764 +-15.2318210693557212 +-13.9078093717638698 +-8.8473448392043750 +-3.2424061031086584 +6.7163301995844797 +-0.7320807104391243 +3.5757458322002229 +-2.1435021342954110 +2.0686189982432852 +-11.5855044998300389 +0.4443025011264807 +5.9269653594993876 +-13.7978947326510344 +6.3189883070741377 +-4.6398433787212827 +4.3325244455368708 +3.4815327342192086 +3.6683930231105606 +-1.8549323951378791 +9.5987103636009898 +-7.2448887523002297 +3.4385034626747166 +4.0113170365153081 +1.9820676960675874 +-5.0977581089315169 +-1.8494531695543683 +7.5622695646118343 +5.7105577198938020 +9.7983340937814791 +-7.2811303013355211 +-0.2923207888904580 +-3.9484147785186776 +7.0008946506944421 +3.5468843328761022 +-2.1973491414519351 +-9.5212877302558443 +-3.4379872485031617 +-14.8211294958797311 +-6.2703191223486678 +-4.2129721529995745 +-5.8322202388699349 +0.6839820495141575 +-2.5407682224617023 +-9.9505624938677464 +9.0180806412096004 +-0.7326102660583862 +8.2174322002642093 +-2.7750824119626127 +1.9669496690678228 +-16.2942061021974887 +4.5479323006652059 +-3.3753884382758916 +0.9633332505041663 +-0.5841106780520262 +-9.1396926263998886 +-9.2542478516497102 +9.2355289703137977 +-3.4787753843194373 +-10.2217601587914260 +10.1884398149946342 +5.8795578732986282 +2.5535907128339268 +-5.9795859686344226 +-9.6244945895662237 +-3.1639285466466029 +-9.7368882504207726 +1.8644662356391555 +-5.9064950115558865 +5.4368805015091413 +-1.5975150696913438 +4.1113887170293388 +-7.5868261147851586 +2.7405760458133335 +6.9562704147886292 +3.5447619146667804 +14.3865424388003138 +5.8702484778309749 +-4.9380078062963992 +-5.1637640950218326 +0.7770918946793259 +7.8872224168619249 +-4.1678393104560501 +3.5971974183956918 +-2.7087482986600993 +-10.1033849808337006 +3.6515044676331243 +6.1549263214845507 +-2.0765052536192092 +9.2966181372323486 +-3.6930431965027557 +2.6581927507437557 +-6.9182463999400801 +-5.1846132776223950 +-4.0782549810771771 +-8.8881709097005217 +0.8806548787276474 +6.5304360892948079 +1.9122516059099350 +-5.5981438147161997 +4.3628889682900320 +-6.5910163536331616 +3.0187347857405218 +-4.4050207436063964 +-8.5986024482375392 +2.7741713427082262 +9.0120514800842102 +-1.1575366002581817 +3.6860317112737357 +-2.4749735459688886 +8.5181591534219390 +2.1002423689870802 +2.6479284966356769 +-9.9914731474639193 +-2.4997971845308444 +-2.9925518033276455 +-4.1352490876259269 +-7.4199813987645449 +-7.0630229022272513 +-1.4770342756865613 +-4.6535789530119445 +3.5639986481111903 +2.6802979836173586 +15.3570188813468889 +-8.0847442499406732 +-2.4255404301697894 +-6.0989396277756009 +-5.0664849760492086 +-2.7380629119443629 +-5.8071143260263334 +2.7928296785690514 +-4.3435680351030888 +-4.0123472357544276 +1.0515532284905418 +-15.2728322282494133 +-3.8695429757429523 +-2.1098389175269698 +-0.5819189935341891 +3.6471450556536755 +7.3349576539699726 +7.0144382886554606 +14.5333717475260649 +-1.9798831099804095 +-4.8857588793052091 +-5.4966673432281592 +5.1191738861899090 +9.2164652497173059 +-9.7357049008909993 +-5.7626403365294800 +5.8834592011858664 +4.1056968152826467 +13.6735107721430733 +-6.7427672390374163 +-7.9833586875443858 +-3.9419476952129449 +0.7379345595837239 +-11.0674613152294548 +-0.4649919523350832 +6.9355846967571475 +8.6080264571667922 +2.4117703931356855 +-12.0900723288251335 +6.5914075940507120 +5.8336403697641890 +-2.2862390590070554 +3.2386281997358677 +2.4868883721309709 +2.1727725365853265 +-6.2664116515695039 +12.6366837647551975 +8.4609158170196643 +6.3175564886416531 +-9.9559644824111011 +-4.0409894466696121 +1.3225400930911326 +-8.3434777799255642 +6.1511999838081044 +-3.3161457197151827 +6.6857511104444338 +-5.3302639725059340 +0.4805585141914035 +-2.0642198910430354 +-11.6697866922430791 +-7.8289629091818478 +-2.6456990442354589 +-2.2218788094237212 +-0.7049348495781820 +-3.6815584357207243 +4.1561047942956151 +0.4842728142577408 +2.9468014626893693 +8.8690513827010236 +4.9478429995228819 +-2.6210755809254560 +-2.9308131714893157 +5.6017780089605873 +7.5669444399844910 +-3.4675030261330591 +-5.7798127290607404 +0.4576056944152462 +-5.7703792000525702 +5.1475590582107804 +4.4466791239265850 +0.3142245214735886 +9.8977955125546426 +-15.5397237162529329 +-8.6093446580388520 +-5.9011129349604730 +9.9166149675166118 +-8.1869318067256067 +7.8186092832470946 +4.1432545152067766 +3.8274162809716197 +2.0038433055796654 +3.8134098897273963 +-6.6710202388532780 +-5.4956920289783611 +-1.5034679342587509 +-6.6477078857677938 +2.5437138459159385 +5.4851796366325498 +3.1988121825124152 +-7.6717469372335394 +-13.4000674563111737 +-4.2927249693170779 +6.7725173463714698 +4.0336369485655217 +3.5769793054097696 +-1.6457359456939462 +7.2945990208116287 +-2.3643065893180752 +5.6964177182147537 +-1.0375837149808405 +-6.6492670752010499 +0.9051351881537895 +0.9770764712787654 +6.0620526914119308 +0.8485860043765330 +1.7833953323704865 +6.1523189809043792 +-1.6440454050554218 +-1.1464039627000018 +3.7518165315738763 +1.5337836858622391 +9.1311566168164386 +5.1432754371636928 +7.3979084120145799 +3.0650819283658972 +0.4000142740879520 +6.9827398950033199 +-3.9873752048685733 +13.9487712072335341 +11.0225889635361121 +5.6912419542660029 +3.4945473318703355 +-5.8511779640315531 +8.5865224778744746 +6.0116539153031878 +3.6120730645576860 +10.4457263650973928 +2.0561221354047117 +10.0649774383720576 +-10.3626344857019426 +6.4480725517336239 +-2.4531038639613003 +-4.6667698763322631 +-9.3118107471260441 +3.9877556073711289 +6.0176049149680679 +-10.6640328896027548 +-5.7969945552977524 +1.7823592371954664 +-0.9417291261201803 +4.8886559028382726 +-2.5559540434222505 +9.1935967884820471 +8.9261436855372338 +-1.4342902878097652 +-1.0079036729508144 +-3.0008533932630135 +9.2322022360799956 +-4.0677536619690553 +-4.2769324427890600 +13.8717420441774273 +2.0572653901965561 +4.0305636192673351 +5.1905860074455159 +11.3556747802231541 +-1.8934583311211803 +-2.5209872531978155 +-2.1626431630615848 +8.3616619444843749 +5.9012844984887121 +8.3145194963320073 +-2.2851749774020016 +-2.6956395397170736 +9.0682381539991059 +-7.2574800743155574 +-1.6767267348009556 +3.9758129672272435 +1.7207804696684201 +-2.0749515656563866 +-8.5459321155337094 +1.6706392334406948 +-8.7192160389587983 +-2.8357669623115820 +9.0851419518760999 +10.6312118918883236 +1.5708858221794926 +4.6777460399166886 +-3.0429930442020430 +-0.1082320705019590 +10.8172915955822102 +-2.7215799344065417 +3.5684028168451629 +%% +251.6935471333077601 +-2.8899000182401506 +-8.5057190892917287 +-0.9790892991243632 +11.9393194491995764 +-8.6243448270398417 +6.2998208819888948 +-0.4554152877407880 +9.3666665206300905 +2.0905534140874615 +0.8767229535853245 +-0.6839118646021212 +2.3687742072979843 +2.1911852106536691 +9.4866205489669859 +0.8468137937004285 +-13.9438803230460149 +1.1310258239814224 +-9.2566126361450767 +7.0650095901523127 +-1.7933745614237289 +-1.3417277239932002 +8.3642836116708850 +3.6876831288499128 +3.5668822751533158 +0.6096392344840247 +4.9472850466416096 +2.5505630970412776 +6.7606751660979434 +-1.5663917730792249 +4.4100134552061991 +-5.9461681300720270 +3.4470342844008792 +7.5544700284092601 +-3.8061053953986828 +-10.6878643039161059 +8.3859004551927470 +0.5058854985791026 +8.2571903779552382 +-4.0448218442130113 +0.9780994958986722 +-0.9712972908461277 +-0.7446083702290061 +-10.3175531602183703 +-3.2793863471565263 +2.4502126207855972 +13.3392870341402467 +9.3425952586072025 +-1.3743102159673499 +-3.3913991892472182 +2.3571507495004962 +-6.4307245478889730 +-5.4055183127577280 +4.0899003923201755 +1.0872713826727050 +-0.6727144508982033 +17.8963926667944371 +4.4879774088772511 +-5.6150360184216668 +2.1100527634195338 +16.5581087779198342 +3.6360751429981617 +8.9009414412565100 +-5.5203915288301024 +10.8716506407508753 +2.4684010159189365 +6.7570958321119754 +-6.1430621108954995 +-11.2705749861048741 +-4.8461794968240204 +-8.1229706068101226 +4.1953918483082635 +-2.6380910878272261 +-10.1189847698301847 +4.5202344898952358 +-2.6868800665383170 +-0.8159143824085833 +-1.5269536478680763 +3.4677499439739465 +-5.7885833262756510 +-1.0501007888624017 +-4.9635865718279337 +14.4646081080770799 +-1.5758919779707239 +-10.9808927498824946 +-9.7460544181936868 +-1.3359423586125023 +10.7122047893856855 +1.2209097070197448 +-8.4890817856316350 +17.6191755719956689 +6.8791834222404669 +-1.0783116695613133 +5.0933109987814964 +-3.5231002811200507 +4.2328139312469695 +9.3678102211655698 +-7.0724092170463289 +0.9617414440872263 +3.9889998168193674 +1.3508455553174641 +-0.7788469665889115 +3.6225527213483524 +6.0068902582803272 +4.3251552821508108 +4.7046905898437217 +6.6118481769274391 +1.1137619943406092 +-7.8201581095957025 +3.3644348519850409 +-4.7696094724545723 +1.5360088831058674 +-4.1754554515215068 +-0.2378122794670801 +1.6758334761381399 +-4.6021944269387829 +-0.8255710450205558 +-5.7050260907955606 +2.4898515854008823 +-9.9163611209343223 +4.2675150827598749 +1.1012705665494023 +-9.2642789893371180 +-1.7803684304440730 +11.2306253722560445 +-6.3298215520759253 +-2.2501881684004759 +-0.3227739644696173 +-4.2198071391495873 +-9.2540965884348854 +4.8425280845682526 +-1.9468057412160040 +2.3882766263806636 +10.3550227021781609 +-9.1496643013798327 +-5.4038996511728534 +4.5126830668160265 +-12.6583342909116148 +3.2731316170371874 +-1.1169321825209888 +1.2541669387307517 +-14.7089588859561680 +-0.2370135986244853 +-3.2898716147668745 +-5.4306572934086486 +2.9690494501637850 +3.1909269097714619 +5.2202268839459993 +3.9081923767557658 +0.4017157469064241 +-5.9439424007702408 +3.3779443275318854 +-3.8059114631568240 +-3.9257476477250197 +-4.7843717318891805 +4.3619703770132752 +1.1657172041722865 +4.4516691019718087 +-7.1389063327678635 +0.6988671566641382 +0.5103077749539189 +-7.8674949404996264 +0.5088885994241910 +3.7621500414822742 +1.8999241211155322 +-7.5188356304634301 +8.5166196935119736 +-0.7102020973553351 +-14.1959041369549084 +-5.6502408908823387 +3.4451317697234587 +-2.6735944756136241 +4.1186811895815429 +1.2678507069383356 +8.3072286686745471 +-8.3263326857334441 +-0.4239060271126665 +8.6597045996398556 +-1.3701854536417839 +-0.3847419700825454 +-1.0279819139102711 +-10.9664790052072192 +-6.2151519331941980 +5.0894202446253090 +8.4251080249883437 +-2.4707823950029315 +-4.8291857155120281 +-1.5306993112455134 +8.5265117569493860 +-3.8199885137522527 +2.6639926107848617 +10.9092146415201725 +8.8977013460290557 +3.0734602022968143 +-0.4927717649994388 +3.6109958916168665 +-1.9156321262838736 +-8.7624153872071791 +-5.2582897527513079 +4.0533512676345644 +7.4114235938931579 +-9.0318073604843612 +-2.1556248208373443 +5.7436265076219701 +-3.8452318931781653 +1.5161974974538439 +-3.4280136285403042 +0.1073975305496520 +-10.1447155195222560 +4.3391964937558951 +12.8623698671610072 +2.1622774920668522 +-2.4304039606580274 +11.9227819727533024 +2.6982932498542129 +0.3574323262078880 +-8.6551108571494986 +-2.8520210274334694 +10.7044113855641410 +1.3247888813420436 +1.3242232351196015 +0.8430960467803690 +1.4010195522627218 +-13.3864542034673235 +-1.8492357892625375 +-2.6316308499978183 +5.7463767247813209 +-5.8760394637359674 +-1.2328889996854289 +-2.2672906943038842 +-0.8816377355910205 +11.6452335437889527 +1.7969878535857506 +5.2309651883172750 +2.5505224108484277 +-10.4694933955696676 +-2.2918522934335122 +0.6281908837291490 +-3.4281614857750693 +6.3337739974225302 +0.0453298215129199 +-3.5004488852280353 +-2.2313740546084517 +0.2992612968470594 +-6.3751253891012851 +0.5250105948590751 +-10.7666787034223521 +11.3845926606181855 +5.1078875341275447 +2.0281477183587944 +12.2829996065423011 +-6.0181542215208719 +-5.7836612918674337 +10.5075904700806682 +-1.7014831891182010 +-10.3137006381444554 +-2.9050248525422546 +-1.1342952182366846 +-4.5891956681743844 +-7.6650283835541604 +-7.3354638864219801 +4.1638474209121616 +-2.1666828295355689 +-1.8523011014081732 +-4.3023049391031210 +8.4241345801261556 +3.4022210583073891 +3.0113500750854238 +14.1684578131446699 +-5.1581966351493254 +-12.5972882072977335 +2.7409726499178619 +-2.1796736050077232 +-4.4207858569101237 +-1.4920933305925281 +-2.2116046236234883 +-14.4503277915932280 +9.5082997897855623 +7.1021172806401394 +-0.9948895275172829 +3.8856056269652806 +-4.7476060696229467 +-1.1909302348688149 +0.3991836773862003 +12.5669732638193530 +5.7960436281666556 +-15.7483418258205798 +8.6841325130595131 +0.0324441500864021 +5.4859499057358674 +-6.0825742765828412 +-0.3530861172082904 +-5.7577678349693571 +-12.5366273544066154 +0.8602210173030844 +2.1366282048092846 +-1.6341892896106640 +-4.8726959683468110 +-0.9708838089317426 +1.0283778677748856 +-1.5041351431617931 +6.1509602824209555 +-3.0964316380189008 +24.1981980796500125 +-1.8428675074289138 +3.1000494076352365 +-0.8269307620889627 +11.1040780859352619 +-13.8269689257178996 +-3.8060921908381218 +0.3017494565943539 +-5.6222476349461985 +-5.1784598814347751 +-5.3150539850725433 +-0.6221186352235124 +5.6834469528477758 +1.0129860087339981 +4.2055741137059970 +7.7771018627949440 +12.0402907100936289 +-6.8269896625061328 +8.8664120354486755 +-3.6063733190397684 +6.1253784095737878 +6.7313462157718948 +10.7646508573385447 +10.3593791281398193 +-4.9602435267633478 +-6.0010260206039785 +-6.3714427598001313 +4.2723052103162136 +-2.1018514684281668 +2.8706337726024924 +4.3187803770685971 +-9.5506067126955720 +-4.7903674885511371 +-6.2822229126427729 +-0.0832152940428208 +9.6613368726168751 +-5.7341499332929438 +15.6305248421463521 +4.7479156105302858 +-0.1749772384328008 +-2.4564140332214048 +-7.1067792898026827 +-0.5189774205053239 +11.2060158716866844 +-5.7199104572343478 +-0.4699288071464328 +3.1814455502963428 +11.1345202953020532 +-12.2358453333320760 +-2.2512324000039978 +-0.4489505123093673 +3.7189653591703538 +6.3702367068157510 +-8.1431387086772595 +3.0423369127034876 +-1.1656665357954878 +-6.1500726756666566 +0.1316562446786191 +3.9808790803186480 +2.3338650001041197 +3.7155688353208189 +4.9395939110960949 +3.7564269421136611 +-1.7099996446504673 +-2.1442013681665264 +-11.7905233870388209 +3.2010417785007941 +2.3715349905255754 +-0.9824068710546650 +1.0004331795450487 +2.7933094303455261 +0.0659874157230984 +-0.1550387171903411 +-3.5943203349167678 +1.0909252357312742 +-2.5647055018969356 +5.8703875696654002 +-1.2368659195148570 +1.9254031179760442 +-1.9753045910417328 +3.7671523140428405 +-1.6261008976179525 +-14.9091225340730045 +10.0325028604170452 +0.0757225631790859 +2.1860270205549193 +-0.1911984408578844 +-6.7751706797149742 +-2.8583657518483889 +14.6392162403521766 +-3.6190899389602933 +-6.1749999232539352 +-15.5791547184333456 +1.8348178902293950 +-8.9852207091092424 +-0.3290433616670835 +-5.5950047626221755 +0.6238087532015291 +-2.0549376354889550 +5.5169177573821448 +-5.1556195278784891 +-5.6934312529408082 +-9.4000300657652911 +4.5587717048155083 +-6.1976853566847971 +-6.1663492756721388 +2.5203374194342416 +-10.7165107380035138 +-0.7734787211603780 +3.8719338749336596 +10.7763296869830754 +9.0417364425319775 +0.7958587399296999 +-18.0203831726954498 +-0.9977245825679111 +-13.0493301214298629 +3.2374695317370290 +10.2498087938397333 +-1.2078634907816550 +5.7834929817627305 +10.8397348903410453 +-7.5523229256696416 +9.9052623874410806 +2.6495855904568093 +0.3983944785413676 +8.5486871631692374 +-10.3127290965256826 +-3.1955613560324285 +-8.2403042585050130 +-9.6275167834246194 +-10.9992258502950726 +-2.5339682042082163 +-2.1737681093470775 +8.9708399297054555 +9.5025584614146865 +-2.3244041530863222 +10.2300909609365593 +4.4344572538638802 +-0.6918472606122021 +-8.1663756699012957 +4.9564095634336098 +-6.1847568782820561 +-6.0095640199124007 +-1.2601485200373745 +-5.0289130105921229 +3.1383078444726249 +-9.9824546684546576 +4.5377467900749249 +1.3458050111953705 +0.0626306581781265 +5.4439094681173366 +9.8428528826382919 +-5.4146310744351780 +-2.7304180579791120 +1.8289917242252152 +4.1308124374211053 +15.2785455405082420 +3.2634559342781779 +-3.3870629427343855 +-12.2409721452546982 +3.8359385202559797 +8.8215898079948314 +-0.9052953972237283 +3.2505371690635938 +7.2152624276845962 +-1.9718303839885860 +-2.8705627632073201 +-1.6125239610455870 +-2.3795184319158182 +-0.1313454357397994 +2.8304650331334074 +-10.8285052217121436 +6.0987540475843671 +0.7357992648121274 +19.3025181400488819 +4.5071113276994286 +10.0871854357706603 +3.5870598684492254 +-0.4627030874561366 +6.8048260291435501 +12.5398995622181069 +-4.3923828864560379 +-9.0472079422873009 +-4.6437089659720048 +-16.6992456586134885 +3.7543736365216689 +0.0586926629328550 +-1.0753923454597696 +-9.8276736717962301 +-1.2695461664772343 +-4.5437163560191109 +12.6764326300234185 +2.2145604088426269 +-1.8452796152111335 +0.3879799997938580 +-2.2240308246505167 +8.4468304924090809 +0.6510704842439750 +-3.1511935037217436 +1.4782905194262614 +13.4319921599400054 +-0.6344378233816075 +0.0544423580658105 +2.0512621641459114 +7.8992219096000760 +4.5033614173403294 +9.3157018506109281 +-3.3314069629681189 +-8.4005230660849026 \ No newline at end of file diff --git a/examples/machsuite/fft/transpose/input_transpose.data b/examples/machsuite/fft/transpose/input_transpose.data new file mode 100644 index 0000000000..c1b7b97bf7 --- /dev/null +++ b/examples/machsuite/fft/transpose/input_transpose.data @@ -0,0 +1,1026 @@ +%% +0.8483178396146527 +0.9316474009271629 +0.0749141099239747 +0.3243126095086337 +0.4889216894177568 +0.2003220013219365 +0.2465207945154783 +0.5009444841545747 +0.3833875674814791 +0.8638473264891788 +0.4270323830861616 +0.0263683207747022 +0.1798125277440863 +0.5388504032397917 +0.9782153590525915 +0.8309093043465101 +0.8577368190902865 +0.9543748287741737 +0.8490474371089849 +0.3694121479802369 +0.3352441047664209 +0.7552438928694989 +0.2817087394018067 +0.4852360002861091 +0.7268004045533238 +0.6343918397825450 +0.2104079488356254 +0.0395947057002634 +0.0400209978161234 +0.2976758337005888 +0.9521082225628823 +0.1866873697274503 +0.7358651200871347 +0.1361097436415447 +0.9090931683964897 +0.4604792296588825 +0.5769636562652027 +0.8616704275858206 +0.8767687582692533 +0.0279669403183254 +0.8816612565392817 +0.1866195592416753 +0.7633503369248252 +0.2150746941951263 +0.1339641300308199 +0.7161428864829403 +0.1365021466723779 +0.5001932391978972 +0.8470236345937937 +0.4470622249540837 +0.7140811894103265 +0.0127652175460312 +0.3876666127209407 +0.9958895038034786 +0.0926458725571736 +0.9676672240567189 +0.3736362838672994 +0.0488822949430138 +0.4076365668481068 +0.4603180906842517 +0.2873166763901486 +0.4365584272465929 +0.5850196896009423 +0.9590813817633715 +0.9980595552286854 +0.6068136140773602 +0.7043815368917442 +0.1974515966674346 +0.6575472564589070 +0.9454611044982865 +0.5747363779881197 +0.2194919783622648 +0.5763745454924379 +0.7153851752905834 +0.8911010718686341 +0.5206280483477259 +0.1501220678649025 +0.3812301813733660 +0.0463248309608765 +0.4254903780644615 +0.4973494195501764 +0.4281354730441760 +0.1142915128435944 +0.0804645407448647 +0.4373515560814680 +0.2582268915654431 +0.7683934478079263 +0.0766898881091194 +0.8463122892926332 +0.1107166721271598 +0.5840612962298976 +0.8557126220464411 +0.4838001677368423 +0.0621016340325793 +0.1310235740565679 +0.3776118887938892 +0.3530460812272584 +0.4149216674120018 +0.2064459122797230 +0.8343916891700796 +0.0932775064851222 +0.2731170192259920 +0.3356228717457055 +0.3267963290017710 +0.0435681404918652 +0.7228303690021292 +0.2107907960557750 +0.9615694238266003 +0.9326414560282523 +0.9394618799882867 +0.1764777376547630 +0.3732788212737727 +0.4000735922705779 +0.1120309369903489 +0.0511100243190568 +0.8575182783261570 +0.1349654718909908 +0.9723092959416103 +0.8067179481103881 +0.4657453752075365 +0.8214647023258758 +0.6642716262994925 +0.2924958180021960 +0.9396144243758447 +0.6692048055281263 +0.4554570494036198 +0.0154017302137861 +0.9462209557130911 +0.9279331770197743 +0.8926116198429296 +0.9844385803033128 +0.8235301034352464 +0.1171662519206369 +0.9738432213333370 +0.1702801969466125 +0.9700813330218533 +0.3431322540111262 +0.3521808070203251 +0.6456496860574097 +0.0078332098488572 +0.2780721231188467 +0.9308493287741327 +0.3391027675786487 +0.6387221774977941 +0.1387668025077644 +0.3193379819348149 +0.2938847760898528 +0.3760463174887679 +0.1542553433051521 +0.6639159037834084 +0.3564936178023257 +0.4878134574691712 +0.0345427675439928 +0.5848943772682992 +0.0693781648667100 +0.2191364932019932 +0.2761112415673199 +0.2440285243758249 +0.1440250692777039 +0.7614656056422392 +0.9809620066037130 +0.9348033021342805 +0.7552137859210596 +0.6065311722051752 +0.5503350398133949 +0.6275061460415338 +0.0111472337609468 +0.1246312888209616 +0.4231461451579110 +0.6484414922888584 +0.2337922181906040 +0.6779685516426726 +0.8782741573686651 +0.6177010100415349 +0.2939854446950563 +0.8761871775505162 +0.1810071211477334 +0.8720289503655566 +0.2532811225707449 +0.6100117892988954 +0.9301354739598914 +0.5191027833281141 +0.1431706944572742 +0.1708568797583734 +0.6242359909565518 +0.9782736794109049 +0.9891683505866096 +0.0196826080659797 +0.2768293352286383 +0.0768308861291690 +0.6270659160444320 +0.3147389465422545 +0.5336071033488232 +0.0120537996182269 +0.5307654724048916 +0.5153605911637142 +0.7528566241924224 +0.7033589194426896 +0.3209196647064811 +0.4410043195102882 +0.0111739864620048 +0.2863026779679601 +0.2683100918304755 +0.2979827363431253 +0.3721852873425603 +0.1633665685261703 +0.6533281645944697 +0.2843454312853405 +0.9051319563159713 +0.5983082899373767 +0.5757792223158209 +0.2692903346720601 +0.6096013896981760 +0.0901025770439411 +0.4634050247425767 +0.6204605185689965 +0.5112592424386806 +0.4937665420329518 +0.4695717035134276 +0.9097122918366112 +0.3201641400746201 +0.9905173479273656 +0.0056370341850618 +0.3921534977584564 +0.3346194563079505 +0.6360433801365077 +0.5201155310158935 +0.4362019819492165 +0.3809198621760362 +0.5670535082271564 +0.0529453230927324 +0.6790772399224166 +0.2868627608072348 +0.9392660254042972 +0.5753465166316099 +0.6541005362632644 +0.2817555840484371 +0.6612642174687781 +0.9423159385445181 +0.9174747407529212 +0.9779240481377166 +0.2986892413220574 +0.1916000764166038 +0.7468217076566656 +0.5936366233299584 +0.5410113779987784 +0.0748945408290509 +0.3395152960985217 +0.7470779072815197 +0.3161020201267201 +0.7374536219431782 +0.2805479172708150 +0.7130278376509701 +0.8459418603364357 +0.7522291563308318 +0.7673406794115867 +0.9791920811987473 +0.1123833682832090 +0.5471981463946101 +0.0433784996754932 +0.7831913287613563 +0.1725964107004632 +0.8671010177349522 +0.6393078646525761 +0.3310881842077714 +0.5352403136965146 +0.7661294193430825 +0.9244074576810648 +0.0287942216685237 +0.6707214734656840 +0.1748621195872093 +0.2273862811658987 +0.2993243342441511 +0.1768052463670724 +0.4825229633452092 +0.0222151629699995 +0.1239513072997847 +0.2987613558162890 +0.1379142600723082 +0.3440376084075450 +0.4373647696000651 +0.8535612938381643 +0.1715420896272014 +0.4749277287386244 +0.1199070948150680 +0.8089862728472129 +0.1441451973256533 +0.4292770696419592 +0.5211270487544926 +0.0011758916400356 +0.7007083090818177 +0.5281931199838487 +0.7671373984849126 +0.6021015440913253 +0.8912456482822858 +0.7899403302123719 +0.6772490738704474 +0.4708856876330734 +0.1763984475095891 +0.1463600662811033 +0.0165949685352888 +0.6068381808285457 +0.3224651525151173 +0.5148486338006011 +0.8463707450685359 +0.2157857682105999 +0.4175494429555621 +0.3779135888568587 +0.1956304117824023 +0.2671144901023431 +0.2978924140317022 +0.1791553064131353 +0.1601117923815020 +0.4436703260522413 +0.4354899010428503 +0.4863644602979916 +0.0455654999679936 +0.9061800810138900 +0.7274221170832363 +0.9082424735107425 +0.1397186081418257 +0.8710584598934502 +0.6569208507280179 +0.9408021142124381 +0.8543062414871980 +0.6782227444037920 +0.9034898824859597 +0.4495484633567567 +0.2222523874894407 +0.3137809125552068 +0.6478283781152648 +0.4165082365846282 +0.0360033802245706 +0.1218543381677559 +0.5108797423897457 +0.5180611700108055 +0.6056074920261487 +0.8779639279963387 +0.9471242759165983 +0.0824748458740915 +0.8674863090505956 +0.7868870903622686 +0.3087124472657461 +0.5009663253734257 +0.1286847456523950 +0.8405951440090710 +0.8737823046846828 +0.5714577591226613 +0.3163790157527726 +0.7294478876193773 +0.7828848822471060 +0.9947426877569866 +0.6268310698491563 +0.9471211534578475 +0.2243844220207657 +0.8573988054285285 +0.2936439994440631 +0.6987905411296418 +0.9507698943631454 +0.2277384525626225 +0.0983196954057779 +0.1158788858867381 +0.3943691258852570 +0.6522812929588194 +0.9323529611324425 +0.2505797725678027 +0.9463081170472853 +0.6972081938469031 +0.2217159609909230 +0.0158618584757915 +0.7992336160031288 +0.4916870887409591 +0.4203222451574106 +0.4954300164669786 +0.4072567181943900 +0.9436149636721938 +0.1115558766484206 +0.2133777544768501 +0.4926894729576140 +0.2288864259039310 +0.9233105307500995 +0.5522443624207825 +0.7804758780629942 +0.8577533254670533 +0.5175537145011389 +0.7458849304738195 +0.4700598126387943 +0.7256984927494721 +0.4946461243081034 +0.5928752445277561 +0.1435942641956947 +0.4530628816644502 +0.7303585087668238 +0.6771458036224584 +0.9821343857747540 +0.0328071121334004 +0.1185647260517267 +0.8226081939044526 +0.8158652049794541 +0.8828048367094834 +0.6291305933887741 +0.0868219653016111 +0.2738519339014919 +0.7144746575303565 +0.4011478376237659 +0.5007377866913673 +0.2288648035566036 +0.4618209141005981 +0.4425821772294087 +0.8664060965744277 +0.9349865168431754 +0.6358704096466863 +0.0008392427989186 +0.1111643065065295 +0.5246200509372015 +0.1354282528990725 +0.9424363035310214 +0.0744909276406249 +0.0310511640320245 +0.3761947915818324 +0.0217261429493881 +0.4949483768791444 +0.0973932294672044 +0.2981311546048886 +0.4083570361665385 +0.9868219940278903 +0.5543595302377633 +0.8069034553160739 +0.7665658438032671 +0.4969299039679246 +0.8434804973005380 +0.7665036069247364 +0.3282416327845119 +0.2149426327922223 +0.2818218695863094 +0.0961871139367003 +0.5579491260907850 +0.5867774049443926 +0.0881760013338349 +0.9878358065870914 +0.1061326855761554 +0.7271613020145520 +0.5798325617779146 +0.1155059662760101 +0.6973883104954021 +0.5049354722387228 +0.6508972709054981 +0.9006534219964644 +0.9605391610546545 +0.1394240512290819 +0.1671649450914079 +0.1664775697290567 +0.4080768206037291 +0.8477853400387060 +0.4499655955247234 +0.0255424858209450 +0.8505854782984940 +0.4636431798425881 +0.8918284279836336 +0.4856684644884649 +0.1659858594059837 +0.0238823839065784 +0.7994671317638116 +0.3751432912824046 +0.3804227384496434 +0.8413148607509543 +0.6506283850297021 +0.9766834855366925 +0.2191262745253812 +0.0248922210452291 +0.2231645580382334 +0.7404604855597532 +0.9355345620434551 +0.1653789667168293 +0.1059396938307424 +0.0020044749140114 +0.4132138001260813 +0.3312924847795359 +0.6492165403032210 +0.2445108317174756 +0.2171661955475684 +0.0119041354225503 +0.3199195886761848 +0.8799274836463801 +0.1697847195140275 +0.8799610104744855 +0.8029777980474817 +0.7691105305599997 +0.8614010915991184 +0.1349045754696620 +0.1039159475547794 +0.8460187964385510 +0.3083002773220541 +0.2412000351515887 +0.6655076815675369 +0.7731655682148677 +0.3339247226528733 +0.6582442922969689 +0.5215653744435931 +0.3567305965895141 +0.2981062040854478 +0.3833902369228816 +0.6969715537271688 +0.6615875892135347 +0.2121642451626392 +0.6571424956786973 +0.5146580817967552 +0.2742574950854690 +0.0533838274345822 +0.3421116783190124 +0.4346208023329561 +0.9428593202287435 +%% +0.6706497803768818 +0.8259915659051159 +0.6127769850532617 +0.4042432493346517 +0.0563064540342341 +0.4506809985950107 +0.6728182306226016 +0.2093887700710019 +0.2629049630806244 +0.0068903568874143 +0.6741981263711310 +0.8026358879744457 +0.6615563839200532 +0.2011487589490933 +0.2966113305625048 +0.5350148999623799 +0.7123884593841227 +0.8801106496231675 +0.1057599762765537 +0.7736908773165471 +0.1150862062662503 +0.3439478131991411 +0.2162976539518998 +0.0057640498417387 +0.5205619338920122 +0.1837588835868946 +0.1072048133407638 +0.9330220583897403 +0.0781877556303664 +0.6604415374454923 +0.0055543256941696 +0.2113213532549362 +0.4166371044168225 +0.2489126317221700 +0.8804237290693118 +0.9114630717835008 +0.2122197185028387 +0.1872496047054253 +0.0283493571356546 +0.0011739769717719 +0.2587451230366413 +0.6134283988672150 +0.7960136720771441 +0.4417212743517567 +0.3538190365232776 +0.4820827424201957 +0.7270079301991990 +0.5540293780631791 +0.6844720529281880 +0.7395825773469121 +0.1689867872929229 +0.7390011771948182 +0.3889554660143338 +0.0158743815304996 +0.2794561312296530 +0.5488249778351199 +0.9939879360511114 +0.3265921768161898 +0.7380059200028429 +0.2686659846029050 +0.0140301867513706 +0.0345076306283345 +0.7098586658566393 +0.8804033136216555 +0.1311251822393278 +0.1738269702011150 +0.9467849911595574 +0.0635165505526809 +0.8045666146925562 +0.5500252055448300 +0.2960850128458551 +0.3791679357611623 +0.3318679405186607 +0.1383370271666072 +0.9622471231685127 +0.0008209235817533 +0.2858982586997720 +0.9627033012525220 +0.5536461903980735 +0.0203918495292208 +0.2673520692161342 +0.3587292238852842 +0.0093934765497702 +0.0284739994461690 +0.5054042027492341 +0.8181935096212357 +0.5459306504169178 +0.9984011518683296 +0.4788924934998232 +0.9047358057561707 +0.6958031753814037 +0.0826713344650157 +0.2449075192032626 +0.4332419552713540 +0.7481090411770011 +0.3337436210362408 +0.1288111479371150 +0.1393425109365868 +0.3694359018085516 +0.2161886277610609 +0.0868289540623030 +0.2809660913222927 +0.6834390896658262 +0.6599492802927122 +0.0703576285531474 +0.8851721422324230 +0.0784159016220343 +0.6775815611931443 +0.8723857873635551 +0.3442387428829488 +0.7488398469947676 +0.6865869483303326 +0.5721400649461029 +0.5113942038836549 +0.7175259320021290 +0.5784878853002242 +0.1192925964151463 +0.3728264511453223 +0.3324480279209299 +0.7348138089866270 +0.9113418227917187 +0.0133558732261029 +0.0444334379695671 +0.7655890089284283 +0.8380837128929514 +0.6909078386850797 +0.8479124776327206 +0.7677202200246880 +0.5153327254961750 +0.8930457828966226 +0.6018790515210961 +0.0665720402909682 +0.5962448507692394 +0.3392590904124880 +0.1112857249315309 +0.5367884989765819 +0.9916240181373843 +0.8331481345246642 +0.2994661478507417 +0.8627726556183214 +0.6182353827040976 +0.6149876265111006 +0.3531793653091488 +0.5143005186400568 +0.5926468898446244 +0.3649024825358713 +0.5343363005946771 +0.5725036130122593 +0.3174075718189375 +0.3751798269431847 +0.6578860801973966 +0.9332728824329765 +0.1146445520498136 +0.1662239710723725 +0.8694019864172604 +0.7499672365062569 +0.7271363734624335 +0.9430020624479579 +0.4132824422670823 +0.4837363618225233 +0.4671709271543480 +0.4537214639120629 +0.7954668379373012 +0.2438654997599063 +0.4419460762806375 +0.6777206266673230 +0.9957734162654772 +0.2480800843375707 +0.1280403970412000 +0.3644668863337679 +0.9616873414436868 +0.1868708749314857 +0.6930411666732398 +0.5780037143603487 +0.5608423882500977 +0.6441989655644730 +0.9713249811202351 +0.4294390166286234 +0.8969774741365252 +0.1960699631492769 +0.7224530353170772 +0.1268089950416111 +0.9397683680282519 +0.5315018323429732 +0.2254886187046609 +0.0429141142621825 +0.2024717685614631 +0.6910933955316909 +0.7314732999603543 +0.1551093873719042 +0.6743060895480667 +0.4556540188327001 +0.4432436833380574 +0.5606860679844500 +0.6319108687982481 +0.0116703069980435 +0.2322452408551318 +0.3536862332363362 +0.1158322695030433 +0.9634522939857088 +0.8487323055999937 +0.4353499310626945 +0.6302969530620972 +0.1274088565446815 +0.2453010715007161 +0.7126333281485220 +0.5808262573450925 +0.5096368273743479 +0.4906882869254115 +0.6495880834323012 +0.0233123321742689 +0.0041469810558323 +0.8805597089399800 +0.2018707114365797 +0.3379314576230700 +0.4753747255809189 +0.6616274253970083 +0.3197317654981836 +0.2874055811093641 +0.0698162859045715 +0.5185972464080254 +0.3712390779666960 +0.0395522598727142 +0.8522029796288904 +0.6429233013492220 +0.1716043134564161 +0.0245860778925260 +0.1192679823597833 +0.2251123162515863 +0.2278627039406244 +0.6021001931781610 +0.7716493715297760 +0.7086536443199765 +0.6378488996151952 +0.9778896639349272 +0.6175561601799165 +0.1438112390964338 +0.5655215638728978 +0.8964914023258709 +0.4929803186620192 +0.3181047984817529 +0.2571762285898997 +0.5341139182822019 +0.4481070842468913 +0.7442557099061952 +0.0755455037462515 +0.0881736635594114 +0.8292182561831798 +0.4702901568278792 +0.3172165412962517 +0.5192743623627130 +0.0639664291315532 +0.7885729748132124 +0.8739453984594142 +0.2044745982999192 +0.7544967854617538 +0.6899486205135590 +0.9665559358594927 +0.1942611672076565 +0.2071430333395867 +0.2651524610606420 +0.6428563324162907 +0.6081367216327236 +0.4238958468282013 +0.7672532189318672 +0.9786971502709926 +0.0170800252756996 +0.5413752736159771 +0.4882800093012846 +0.5664635732064296 +0.4535325668908858 +0.4184044325889613 +0.9097756987185860 +0.4766618682549004 +0.9760491135221880 +0.6888504370810208 +0.5485435178768772 +0.5561370316148891 +0.0094666403269690 +0.3360619728116845 +0.4604348339427876 +0.9134297132560247 +0.9908922097051105 +0.1251950412031655 +0.5663664606143862 +0.0945400483940218 +0.4625197493670939 +0.8639195447432346 +0.0039262799519478 +0.6833368379014721 +0.7422283452747417 +0.3367793143998574 +0.5412184398424924 +0.3761234842735970 +0.8815788022034485 +0.6074823902030668 +0.4777707505251232 +0.9635916031584622 +0.2727502301296457 +0.1733453829569238 +0.8644986842700396 +0.9691780174692244 +0.2882628109384491 +0.6786791865359718 +0.8478671149035980 +0.4535076944249774 +0.1640098684409771 +0.4073202121801956 +0.5009583692983397 +0.9463817489661509 +0.0961353922326324 +0.1998223443867649 +0.7008862334619737 +0.2881202049236278 +0.3458537061813881 +0.2114514447990400 +0.0648526139252205 +0.8359259337698395 +0.7136411968729466 +0.8839727629895447 +0.4485996609021738 +0.4126785318598829 +0.1302233136776000 +0.6566698732369666 +0.7658415354209089 +0.0691474385841039 +0.5299372100597235 +0.8072030763876551 +0.7386502398203574 +0.8163976724866837 +0.9099590634362089 +0.1079579315030378 +0.1217338602508726 +0.8398682867388026 +0.0527879920083521 +0.8411987867709243 +0.5329342173929354 +0.0519388465693226 +0.8361373832400553 +0.6360358915176915 +0.7620059555978824 +0.7335875744925811 +0.7068483685535193 +0.8204346828900280 +0.2406901567099838 +0.3119376161816957 +0.8188672952427822 +0.0569869927182464 +0.8160735672225893 +0.1962001548817530 +0.6846908215984758 +0.0249193853783506 +0.5050224922572938 +0.8070765288638290 +0.9050568111880135 +0.5962573669748086 +0.1064109752073065 +0.8717233586021045 +0.7111238873247069 +0.8958953958961852 +0.0124857341852776 +0.3721871578061370 +0.1618305771923772 +0.7515039566733900 +0.7107271696811842 +0.2336812851484666 +0.1458156473180457 +0.9620985323087055 +0.8275964656273100 +0.1190767363568868 +0.9233858731422754 +0.5322410813615738 +0.0985540318104040 +0.8424411570469573 +0.0666493030651335 +0.5341925877342263 +0.5394414482514946 +0.8742698174359415 +0.7370734913518688 +0.0641610061811848 +0.7294092153878285 +0.3213275986725672 +0.1358937559382011 +0.5447052195538291 +0.1646240051946704 +0.1159073445476051 +0.5472078151545781 +0.7913238484821290 +0.2545447567715644 +0.5902198217476829 +0.6180104514739206 +0.2679718156247742 +0.6567257066434474 +0.4768088481712171 +0.8438998411194075 +0.8018278899795357 +0.7121966511487732 +0.9440082058646051 +0.3903038249845164 +0.6657680925264067 +0.9707962023941167 +0.9758816432468408 +0.5180344881975328 +0.4590301346752441 +0.5790243849919570 +0.9827581127256924 +0.7580890772895353 +0.0282653007892825 +0.4742266549813303 +0.5206714623709152 +0.0880362523484991 +0.9441696695392323 +0.4154944551240305 +0.4854395925471128 +0.5980708329728217 +0.1514730782817679 +0.2277850588198586 +0.6003959811473946 +0.4138648613445658 +0.5214294374618673 +0.5357899328102427 +0.1126604961733214 +0.3978861271719195 +0.1572100962678205 +0.9684761870036048 +0.2823789715122690 +0.7350302037352653 +0.2226577397656659 +0.2146205511975388 +0.7368134024381822 +0.6851977195850656 +0.2901994887952524 +0.2484031578734452 +0.8406937400471280 +0.7330257783888604 +0.6786698842197517 +0.2108314045756776 +0.9729048073557747 +0.1308633059219713 +0.8793668353727628 +0.3849229287904603 +0.1940388764205123 +0.1682749150222659 +0.7803041144613144 +0.7925818205728924 +0.6160000615567424 +0.6645809359455023 +0.6374354155824379 +0.2899256792758656 +0.2300623404836308 +0.5242963335351867 +0.1784243876633100 +0.2478678303610563 +0.6137636967201309 +0.1159975240188399 +0.4192057281273810 +0.6103248712962920 +0.6050614699403944 +0.6385246389661129 +0.7328477801951783 +0.1442908280252166 +0.2314561865539927 +0.6455315357936088 +0.0036223892582007 +0.0890605637757619 +0.6577781560016939 +0.5651268147351131 +0.5703656983239329 +0.5241197109565234 +0.0928816194038764 +0.5691972941463214 +0.8203219486093015 +0.2960977178239230 +0.4965672877217533 +0.2267953990067369 +0.1616474206061058 +0.2368359225241292 +0.8386880802324272 +0.4304339747920264 +0.8145921244355058 +0.2926089852252082 +0.4587937530266486 +0.4627877133550086 +0.9834880148784035 +0.2091795422250676 +0.8352278251817872 +0.0575487671296270 +0.3627326891505497 +0.6041543996670723 +0.0240717091937075 +0.4567222795141845 +0.4187870842887678 +0.5690436201072602 +0.3836306545353996 +0.7612922517768207 +0.5830063635525695 +0.7915574263840475 +0.4175259561486966 +0.2865009367887664 +0.4939103319869848 +0.2032170404710166 +0.8525061025761500 +0.7470551056895179 +0.8704712147963954 +0.6021654256915009 +0.6238331380559238 +0.2855855561303914 +0.6225569675320149 +0.2935555722964330 +0.9589648176738705 +0.9601991287755726 +0.5852953296215396 \ No newline at end of file diff --git a/examples/machsuite/fft/transpose/test_transpose.py b/examples/machsuite/fft/transpose/test_transpose.py new file mode 100644 index 0000000000..57acce78fc --- /dev/null +++ b/examples/machsuite/fft/transpose/test_transpose.py @@ -0,0 +1,60 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + +# test_transpose.py> + +import pytest +import numpy as np +import allo + +from transpose_fft import * + +from allo.ir.types import int32, float32, float64 + +def test_transpose_fft(): + file_path = "/home/wty5/shared/allo/fft/transpose/input_transpose.data" + counter = 0 + real = [] + img = [] + + try: + with open(file_path, 'r') as file: + for line in file: + number = line.strip() + if "%%" in line: + counter += 1 + continue + if counter == 1: + real.append(float(number)) + elif counter == 2: + img.append(float(number)) + + except FileNotFoundError: + print(f"File '{file_path}' not found.") + + fft1D_512(real, img) + + output_path = "/home/wty5/shared/allo/fft/transpose/check_transpose.data" + counter = 0 + + golden_real = [] + golden_img = [] + try: + with open(output_path, 'r') as file: + for line in file: + number = line.strip() + if "%%" in line: + counter += 1 + continue + if counter == 1: + golden_real.append(float(number)) + elif counter == 2: + golden_img.append(float(number)) + + except FileNotFoundError: + print(f"File '{file_path}' not found.") + + np.testing.assert_allclose(real, golden_real, rtol=1e-5, atol=1e-5) + np.testing.assert_allclose(img, golden_img, rtol=1e-5, atol=1e-5) + +test_transpose_fft() \ No newline at end of file diff --git a/examples/machsuite/fft/transpose/transpose_fft.py b/examples/machsuite/fft/transpose/transpose_fft.py new file mode 100644 index 0000000000..1d73a088f3 --- /dev/null +++ b/examples/machsuite/fft/transpose/transpose_fft.py @@ -0,0 +1,550 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + +# transpose_fft.py + +import allo +from allo.ir.types import float32, int32, float32, int32 +import math +import numpy as np + +def cmplx_M_x(a_x: float32, a_y: float32, b_x: float32, b_y: float32) -> float32: + return a_x * b_x - a_y * b_y + +def cmplx_M_y(a_x: float32, a_y: float32, b_x: float32, b_y: float32) -> float32: + return a_x * b_y + a_y * b_x + +def cmplx_MUL_x(a_x: float32, a_y: float32, b_x: float32, b_y: float32) -> float32: + return a_x * b_x - a_y * b_y + +def cmplx_MUL_y(a_x: float32, a_y: float32, b_x: float32, b_y: float32) -> float32: + return a_x * b_y + a_y * b_x + +def cmplx_mul_x(a_x: float32, a_y: float32, b_x: float32, b_y: float32) -> float32: + return a_x * b_x - a_y * b_y + +def cmplx_mul_y(a_x: float32, a_y: float32, b_x: float32, b_y: float32) -> float32: + return a_x * b_y + a_y * b_x + +def cmplx_add_x(a_x: float32, b_x: float32) -> float32: + return a_x + b_x + +def cmplx_add_y(a_y: float32, b_y: float32) -> float32: + return a_y + b_y + +def cmplx_sub_x(a_x: float32, b_x: float32) -> float32: + return a_x - b_x + +def cmplx_sub_y(a_y: float32, b_y: float32) -> float32: + return a_y - b_y + +def cm_fl_mul_x(a_x: float32, b: float32) -> float32: + return b * a_x + +def cm_fl_mul_y(a_y: float32, b: float32) -> float32: + return b * a_y + +def twiddles8(a_x: float32[8], a_y: float32[8], i: int32, n: int32): + PI: float32 = 3.1415926535 + reversed8: int32[8] = [0, 4, 2, 6, 1, 5, 3, 7] + + for j in range(1, 8): + # BUG: WITH COS AND SIN NOT BEING ABLE TO DEAL WITH float32 + phi: float32 = (-2 * PI * reversed8[j]/n)*i + phi_x: float32 = allo.cos(phi) + phi_y: float32 = allo.sin(phi) + tmp_1: float32 = a_x[j] + a_x[j] = cmplx_M_x(a_x[j], a_y[j], phi_x, phi_y) + a_y[j] = cmplx_M_y(tmp_1, a_y[j], phi_x, phi_y) + +def FF2(a0_x: float32, a0_y: float32, a1_x: float32, a1_y: float32) -> float32[4]: + d0: float32[4] = 0.0 + + d0[0] = cmplx_add_x(a0_x, a1_x) + d0[1] = cmplx_add_y(a0_y, a1_y) + d0[2] = cmplx_sub_x(a0_x, a1_x) + d0[3] = cmplx_sub_y(a0_y, a1_y) + + return d0 + +# def FFT4(a0_x: float32, a0_y: float32, a1_x: float32, a1_y: float32, a2_x: float32, a2_y: float32, a3_x: float32, a3_y: float32): +# exp_1_44_x: float32 = 0 +# exp_1_44_y: float32 = -1 + +# FF2(a0_x, a0_y, a2_x, a2_y) + +# # FF2(a1_x, a1_y, a3_x, a3_y) +# # tmp = a3_x + +# # a3_x = a3_x * exp_1_44_x - a3_y * exp_1_44_y +# # a3_y = tmp * exp_1_44_y - a3_y * exp_1_44_x + +# # FF2(a0_x, a0_y, a1_x, a1_y) +# # FF2(a2_x, a2_y, a3_x, a3_y) + +def FFT4_1(a_x: float32[8], a_y: float32[8]): + exp_1_44_x: float32 = 0.0 + exp_1_44_y: float32 = -1.0 + + tmp_1 = FF2(a_x[0], a_y[0], a_x[2], a_y[2]) + a_x[0] = tmp_1[0] + a_y[0] = tmp_1[1] + a_x[2] = tmp_1[2] + a_y[2] = tmp_1[3] + + tmp_2 = FF2(a_x[1], a_y[1], a_x[3], a_y[3]) + a_x[1] = tmp_2[0] + a_y[1] = tmp_2[1] + a_x[3] = tmp_2[2] + a_y[3] = tmp_2[3] + + tmp_3: float32 = a_x[3] + + a_x[3] = a_x[3] * exp_1_44_x - a_y[3] * exp_1_44_y + a_y[3] = tmp_3 * exp_1_44_y - a_y[3] * exp_1_44_x + + tmp_4 = FF2(a_x[0], a_y[0], a_x[1], a_y[1]) + a_x[0] = tmp_4[0] + a_y[0] = tmp_4[1] + a_x[1] = tmp_4[2] + a_y[1] = tmp_4[3] + + tmp_5 = FF2(a_x[2], a_y[2], a_x[3], a_y[3]) + a_x[2] = tmp_5[0] + a_y[2] = tmp_5[1] + a_x[3] = tmp_5[2] + a_y[3] = tmp_5[3] + + # FFT4(a_x[4], a_y[4], a_x[5], a_y[5], a_x[6], a_y[6], a_x[7], a_y[7]) + +def FFT4_2(a_x: float32[8], a_y: float32[8]): + exp_1_44_x: float32 = 0.0 + exp_1_44_y: float32 = -1.0 + + tmp_1 = FF2(a_x[4], a_y[4], a_x[6], a_y[6]) + a_x[4] = tmp_1[0] + a_y[4] = tmp_1[1] + a_x[6] = tmp_1[2] + a_y[6] = tmp_1[3] + + tmp_2 = FF2(a_x[5], a_y[5], a_x[7], a_y[7]) + a_x[5] = tmp_2[0] + a_y[5] = tmp_2[1] + a_x[7] = tmp_2[2] + a_y[7] = tmp_2[3] + + tmp_3: float32 = a_x[7] + + a_x[7] = a_x[7] * exp_1_44_x - a_y[7] * exp_1_44_y + a_y[7] = tmp_3 * exp_1_44_y - a_y[7] * exp_1_44_x + + tmp_4 = FF2(a_x[4], a_y[4], a_x[5], a_y[5]) + a_x[4] = tmp_4[0] + a_y[4] = tmp_4[1] + a_x[5] = tmp_4[2] + a_y[5] = tmp_4[3] + + tmp_5 = FF2(a_x[6], a_y[6], a_x[7], a_y[7]) + a_x[6] = tmp_5[0] + a_y[6] = tmp_5[1] + a_x[7] = tmp_5[2] + a_y[7] = tmp_5[3] + +def FFT8(a_x: float32[8], a_y: float32[8]): + M_SQRT1_2: float32 = 0.70710678118654752440 + exp_1_8_x: float32 = 1.0 + exp_1_8_y: float32 = -1.0 + exp_1_4_x: float32 = 0.0 + exp_1_4_y: float32 = -1.0 + exp_3_8_x: float32 = -1.0 + exp_3_8_y: float32 = -1.0 + + tmp_1 = FF2(a_x[0], a_y[0], a_x[4], a_y[4]) + a_x[0] = tmp_1[0] + a_y[0] = tmp_1[1] + a_x[4] = tmp_1[2] + a_y[4] = tmp_1[3] + + tmp_2 = FF2(a_x[1], a_y[1], a_x[5], a_y[5]) + a_x[1] = tmp_2[0] + a_y[1] = tmp_2[1] + a_x[5] = tmp_2[2] + a_y[5] = tmp_2[3] + + tmp_3 = FF2(a_x[2], a_y[2], a_x[6], a_y[6]) + a_x[2] = tmp_3[0] + a_y[2] = tmp_3[1] + a_x[6] = tmp_3[2] + a_y[6] = tmp_3[3] + + tmp_4 = FF2(a_x[3], a_y[3], a_x[7], a_y[7]) + a_x[3] = tmp_4[0] + a_y[3] = tmp_4[1] + a_x[7] = tmp_4[2] + a_y[7] = tmp_4[3] + + tmp_5: float32 = a_x[5] + a_x[5] = cm_fl_mul_x(cmplx_mul_x(a_x[5], a_y[5], exp_1_8_x, exp_1_8_y), M_SQRT1_2) + a_y[5] = cm_fl_mul_y(cmplx_mul_y(tmp_5, a_y[5], exp_1_8_x, exp_1_8_y), M_SQRT1_2) + + tmp_5 = a_x[6] + a_x[6] = cmplx_mul_x(a_x[6], a_y[6], exp_1_4_x, exp_1_4_y) + a_y[6] = cmplx_mul_y(tmp_5, a_y[6], exp_1_4_x, exp_1_4_y) + + tmp_5 = a_x[7] + a_x[7] = cm_fl_mul_x(cmplx_mul_x(a_x[7], a_y[7], exp_3_8_x, exp_3_8_y), M_SQRT1_2) + a_y[7] = cm_fl_mul_y(cmplx_mul_y(tmp_5, a_y[7], exp_3_8_x, exp_3_8_y), M_SQRT1_2) + + # FFT4(a_x[0], a_y[0], a_x[1], a_y[1], a_x[2], a_y[2], a_x[3], a_y[3]) + FFT4_1(a_x, a_y) + # FFT4(a_x[4], a_y[4], a_x[5], a_y[5], a_x[6], a_y[6], a_x[7], a_y[7]) + FFT4_2(a_x, a_y) + +def loadx8(a_x, x, offset, sx): + a_x[0] = x[0 * sx + offset] + a_x[1] = x[1 * sx + offset] + a_x[2] = x[2 * sx + offset] + a_x[3] = x[3 * sx + offset] + a_x[4] = x[4 * sx + offset] + a_x[5] = x[5 * sx + offset] + a_x[6] = x[6 * sx + offset] + a_x[7] = x[7 * sx + offset] + +def loady8(a_y: float32[8], x: float32[8 * 8 * 9], offset: int32, sx: int32): + a_y[0] = x[0 * sx + offset] + a_y[1] = x[1 * sx + offset] + a_y[2] = x[2 * sx + offset] + a_y[3] = x[3 * sx + offset] + a_y[4] = x[4 * sx + offset] + a_y[5] = x[5 * sx + offset] + a_y[6] = x[6 * sx + offset] + a_y[7] = x[7 * sx + offset] + +def fft1D_512(work_x: float32[512], work_y: float32[512]): + tid: int32 = 0 + hi: int32 = 0 + lo: int32 = 0 + stride: int32 = 64 + counter: int32 = 0 + reversed: int32[8] = [0, 4, 2, 6, 1, 5, 3, 7] + + DATA_x: float32[64 * 8] = 0.0 + DATA_y: float32[64 * 8] = 0.0 + + data_x: float32[8] = 0.0 + data_y: float32[8] = 0.0 + + smem: float32[8 * 8 * 9] = 0.0 + + # # BUG: CANNOT REASSIGN ARRAY VALUES + # for i in range(8): + # DATA_x[i] = 0.0 + # data_y[i] = 0.0 + + # Do it all at once... + # Loop 1 + + # BUG: WITH FOR-LOOP VARIABLE + for tid in range(64): + # GLOBAL_LOAD... + data_x[0] = work_x[0 * stride + tid] + data_x[1] = work_x[1 * stride + tid] + data_x[2] = work_x[2 * stride + tid] + data_x[3] = work_x[3 * stride + tid] + data_x[4] = work_x[4 * stride + tid] + data_x[5] = work_x[5 * stride + tid] + data_x[6] = work_x[6 * stride + tid] + data_x[7] = work_x[7 * stride + tid] + + data_y[0] = work_y[0 * stride + tid] + data_y[1] = work_y[1 * stride + tid] + data_y[2] = work_y[2 * stride + tid] + data_y[3] = work_y[3 * stride + tid] + data_y[4] = work_y[4 * stride + tid] + data_y[5] = work_y[5 * stride + tid] + data_y[6] = work_y[6 * stride + tid] + data_y[7] = work_y[7 * stride + tid] + + # First 8 point FFT... + FFT8(data_x, data_y) + + # First Twiddle + twiddles8(data_x, data_y, counter, 512) + + # Save for fence + DATA_x[tid * 8] = data_x[0] + DATA_x[tid * 8 + 1] = data_x[1] + DATA_x[tid * 8 + 2] = data_x[2] + DATA_x[tid * 8 + 3] = data_x[3] + DATA_x[tid * 8 + 4] = data_x[4] + DATA_x[tid * 8 + 5] = data_x[5] + DATA_x[tid * 8 + 6] = data_x[6] + DATA_x[tid * 8 + 7] = data_x[7] + + DATA_y[tid * 8] = data_y[0] + DATA_y[tid * 8 + 1] = data_y[1] + DATA_y[tid * 8 + 2] = data_y[2] + DATA_y[tid * 8 + 3] = data_y[3] + DATA_y[tid * 8 + 4] = data_y[4] + DATA_y[tid * 8 + 5] = data_y[5] + DATA_y[tid * 8 + 6] = data_y[6] + DATA_y[tid * 8 + 7] = data_y[7] + + counter += 1 + + sx: int32 = 66 + # Loop 2 + tid: int32 = 0 + for tid in range(64): + hi = tid >> 3 + lo = tid & 7 + offset: int32 = hi * 8 + lo + + smem[0 * sx + offset] = DATA_x[tid * 8 + 0] + smem[4 * sx + offset] = DATA_x[tid * 8 + 1] + smem[1 * sx + offset] = DATA_x[tid * 8 + 4] + smem[5 * sx + offset] = DATA_x[tid * 8 + 5] + smem[2 * sx + offset] = DATA_x[tid * 8 + 2] + smem[6 * sx + offset] = DATA_x[tid * 8 + 3] + smem[3 * sx + offset] = DATA_x[tid * 8 + 6] + smem[7 * sx + offset] = DATA_x[tid * 8 + 7] + + sx: int32 = 8 + # Loop 3 + tid: int32 = 0 + for tid in range(64): + hi = tid >> 3 + lo = tid & 7 + offset: int32 = lo * 66 + hi + + DATA_x[tid * 8 + 0] = smem[0 * sx + offset] + DATA_x[tid * 8 + 4] = smem[4 * sx + offset] + DATA_x[tid * 8 + 1] = smem[1 * sx + offset] + DATA_x[tid * 8 + 5] = smem[5 * sx + offset] + DATA_x[tid * 8 + 2] = smem[2 * sx + offset] + DATA_x[tid * 8 + 6] = smem[6 * sx + offset] + DATA_x[tid * 8 + 3] = smem[3 * sx + offset] + DATA_x[tid * 8 + 7] = smem[7 * sx + offset] + + sx: int32 = 66 + # Loop 4 + tid: int32 = 0 + for tid in range(64): + hi= tid >> 3 + lo = tid & 7 + offset: int32 = hi * 8 + lo + + smem[0 * sx + offset] = DATA_y[tid * 8 + 0] + smem[4 * sx + offset] = DATA_y[tid * 8 + 1] + smem[1 * sx + offset] = DATA_y[tid * 8 + 4] + smem[5 * sx + offset] = DATA_y[tid * 8 + 5] + smem[2 * sx + offset] = DATA_y[tid * 8 + 2] + smem[6 * sx + offset] = DATA_y[tid * 8 + 3] + smem[3 * sx + offset] = DATA_y[tid * 8 + 6] + smem[7 * sx + offset] = DATA_y[tid * 8 + 7] + + # Loop 5 + tid: int32 = 0 + for tid in range(64): + data_y[0] = DATA_y[tid * 8 + 0] + data_y[1] = DATA_y[tid * 8 + 1] + data_y[2] = DATA_y[tid * 8 + 2] + data_y[3] = DATA_y[tid * 8 + 3] + data_y[4] = DATA_y[tid * 8 + 4] + data_y[5] = DATA_y[tid * 8 + 5] + data_y[6] = DATA_y[tid * 8 + 6] + data_y[7] = DATA_y[tid * 8 + 7] + + hi = tid >> 3 + lo = tid & 7 + + # BUG: GET CASTING ERRORS WHEN INPUTTING TMP_1 RAW INTO LOADY8 + tmp_1: int32 = lo * 66 + hi + + loady8(data_y, smem, tmp_1, 8) + + DATA_y[tid * 8] = data_y[0] + DATA_y[tid * 8 + 1] = data_y[1] + DATA_y[tid * 8 + 2] = data_y[2] + DATA_y[tid * 8 + 3] = data_y[3] + DATA_y[tid * 8 + 4] = data_y[4] + DATA_y[tid * 8 + 5] = data_y[5] + DATA_y[tid * 8 + 6] = data_y[6] + DATA_y[tid * 8 + 7] = data_y[7] + + # Loop 6 + tid: int32 = 0 + for tid in range(64): + data_x[0] = DATA_x[tid * 8 + 0] + data_x[1] = DATA_x[tid * 8 + 1] + data_x[2] = DATA_x[tid * 8 + 2] + data_x[3] = DATA_x[tid * 8 + 3] + data_x[4] = DATA_x[tid * 8 + 4] + data_x[5] = DATA_x[tid * 8 + 5] + data_x[6] = DATA_x[tid * 8 + 6] + data_x[7] = DATA_x[tid * 8 + 7] + + data_y[0] = DATA_y[tid * 8 + 0] + data_y[1] = DATA_y[tid * 8 + 1] + data_y[2] = DATA_y[tid * 8 + 2] + data_y[3] = DATA_y[tid * 8 + 3] + data_y[4] = DATA_y[tid * 8 + 4] + data_y[5] = DATA_y[tid * 8 + 5] + data_y[6] = DATA_y[tid * 8 + 6] + data_y[7] = DATA_y[tid * 8 + 7] + + # Second FFT8... + FFT8(data_x, data_y) + + # Calculate hi for second twiddle calculation... + hi = tid >> 3 + + # Second twiddles calc, use hi and 64 stride version as defined in G80/SHOC... + twiddles8(data_x, data_y, hi, 64) + + # Save for final transpose... + DATA_x[tid * 8] = data_x[0] + DATA_x[tid * 8 + 1] = data_x[1] + DATA_x[tid * 8 + 2] = data_x[2] + DATA_x[tid * 8 + 3] = data_x[3] + DATA_x[tid * 8 + 4] = data_x[4] + DATA_x[tid * 8 + 5] = data_x[5] + DATA_x[tid * 8 + 6] = data_x[6] + DATA_x[tid * 8 + 7] = data_x[7] + + DATA_y[tid * 8] = data_y[0] + DATA_y[tid * 8 + 1] = data_y[1] + DATA_y[tid * 8 + 2] = data_y[2] + DATA_y[tid * 8 + 3] = data_y[3] + DATA_y[tid * 8 + 4] = data_y[4] + DATA_y[tid * 8 + 5] = data_y[5] + DATA_y[tid * 8 + 6] = data_y[6] + DATA_y[tid * 8 + 7] = data_y[7] + + # Transpose.. + sx: int32 = 72 + # Loop 7 + tid: int32 = 0 + for tid in range(64): + hi = tid >> 3 + lo = tid & 7 + offset: int32 = hi * 8 + lo + + smem[0 * sx + offset] = DATA_x[tid * 8 + 0] + smem[4 * sx + offset] = DATA_x[tid * 8 + 1] + smem[1 * sx + offset] = DATA_x[tid * 8 + 4] + smem[5 * sx + offset] = DATA_x[tid * 8 + 5] + smem[2 * sx + offset] = DATA_x[tid * 8 + 2] + smem[6 * sx + offset] = DATA_x[tid * 8 + 3] + smem[3 * sx + offset] = DATA_x[tid * 8 + 6] + smem[7 * sx + offset] = DATA_x[tid * 8 + 7] + + sx: int32 = 8 + # Loop 8 + tid: int32 = 0 + for tid in range(64): + hi = tid >> 3 + lo = tid & 7 + offset: int32 = hi * 72 + lo + + DATA_x[tid * 8 + 0] = smem[0 * sx + offset] + DATA_x[tid * 8 + 4] = smem[4 * sx + offset] + DATA_x[tid * 8 + 1] = smem[1 * sx + offset] + DATA_x[tid * 8 + 5] = smem[5 * sx + offset] + DATA_x[tid * 8 + 2] = smem[2 * sx + offset] + DATA_x[tid * 8 + 6] = smem[6 * sx + offset] + DATA_x[tid * 8 + 3] = smem[3 * sx + offset] + DATA_x[tid * 8 + 7] = smem[7 * sx + offset] + + sx: int32 = 72 + # Loop 9 + tid: int32 = 0 + for tid in range(64): + hi = tid >> 3 + lo = tid & 7 + offset: int32 = hi * 8 + lo + + smem[0 * sx + offset] = DATA_y[tid * 8 + 0] + smem[4 * sx + offset] = DATA_y[tid * 8 + 1] + smem[1 * sx + offset] = DATA_y[tid * 8 + 4] + smem[5 * sx + offset] = DATA_y[tid * 8 + 5] + smem[2 * sx + offset] = DATA_y[tid * 8 + 2] + smem[6 * sx + offset] = DATA_y[tid * 8 + 3] + smem[3 * sx + offset] = DATA_y[tid * 8 + 6] + smem[7 * sx + offset] = DATA_y[tid * 8 + 7] + + # Loop 10 + tid: int32 = 0 + for tid in range(64): + data_y[0] = DATA_y[tid * 8 + 0] + data_y[1] = DATA_y[tid * 8 + 1] + data_y[2] = DATA_y[tid * 8 + 2] + data_y[3] = DATA_y[tid * 8 + 3] + data_y[4] = DATA_y[tid * 8 + 4] + data_y[5] = DATA_y[tid * 8 + 5] + data_y[6] = DATA_y[tid * 8 + 6] + data_y[7] = DATA_y[tid * 8 + 7] + + hi = tid >> 3 + lo = tid & 7 + tmp_1: int32 = hi * 72 + lo + + loady8(data_y, smem, tmp_1, 8) + + DATA_y[tid * 8 + 0] = data_y[0] + DATA_y[tid * 8 + 1] = data_y[1] + DATA_y[tid * 8 + 2] = data_y[2] + DATA_y[tid * 8 + 3] = data_y[3] + DATA_y[tid * 8 + 4] = data_y[4] + DATA_y[tid * 8 + 5] = data_y[5] + DATA_y[tid * 8 + 6] = data_y[6] + DATA_y[tid * 8 + 7] = data_y[7] + + # Loop 11 + tid: int32 = 0 + for tid in range(64): + # Load post-trans + data_y[0] = DATA_y[tid * 8] + data_y[1] = DATA_y[tid * 8 + 1] + data_y[2] = DATA_y[tid * 8 + 2] + data_y[3] = DATA_y[tid * 8 + 3] + data_y[4] = DATA_y[tid * 8 + 4] + data_y[5] = DATA_y[tid * 8 + 5] + data_y[6] = DATA_y[tid * 8 + 6] + data_y[7] = DATA_y[tid * 8 + 7] + + data_x[0] = DATA_x[tid * 8] + data_x[1] = DATA_x[tid * 8 + 1] + data_x[2] = DATA_x[tid * 8 + 2] + data_x[3] = DATA_x[tid * 8 + 3] + data_x[4] = DATA_x[tid * 8 + 4] + data_x[5] = DATA_x[tid * 8 + 5] + data_x[6] = DATA_x[tid * 8 + 6] + data_x[7] = DATA_x[tid * 8 + 7] + + # Final 8pt FFT + FFT8(data_x, data_y) + + # Global store + work_x[0 * stride + tid] = data_x[reversed[0]] + work_x[1 * stride + tid] = data_x[reversed[1]] + work_x[2 * stride + tid] = data_x[reversed[2]] + work_x[3 * stride + tid] = data_x[reversed[3]] + work_x[4 * stride + tid] = data_x[reversed[4]] + work_x[5 * stride + tid] = data_x[reversed[5]] + work_x[6 * stride + tid] = data_x[reversed[6]] + work_x[7 * stride + tid] = data_x[reversed[7]] + + work_y[0 * stride + tid] = data_y[reversed[0]] + work_y[1 * stride + tid] = data_y[reversed[1]] + work_y[2 * stride + tid] = data_y[reversed[2]] + work_y[3 * stride + tid] = data_y[reversed[3]] + work_y[4 * stride + tid] = data_y[reversed[4]] + work_y[5 * stride + tid] = data_y[reversed[5]] + work_y[6 * stride + tid] = data_y[reversed[6]] + work_y[7 * stride + tid] = data_y[reversed[7]] + +s = allo.customize(fft1D_512) + +mod = s.build(target="llvm") + diff --git a/examples/machsuite/input.data b/examples/machsuite/input.data new file mode 100644 index 0000000000..5a655a5227 --- /dev/null +++ b/examples/machsuite/input.data @@ -0,0 +1,2049 @@ +%% +1109418933 +1238195981 +1655987401 +1435813687 +568740973 +194304077 +85901251 +90635783 +1521856552 +561622493 +1490293414 +1693046234 +978889362 +758747878 +238322615 +449325307 +111436477 +1663738178 +34606601 +2101153676 +807487382 +1239022902 +1622566196 +1916259885 +308994026 +1703593893 +1508899123 +1362978041 +325464775 +1670756727 +474042834 +906811784 +291409102 +440797705 +904844916 +2116642867 +582856665 +1432518129 +1375376180 +1237457277 +638126241 +576622031 +1624464501 +949308911 +979882348 +1825081759 +303590601 +269644648 +1185820321 +466890649 +924717512 +1525501767 +289705845 +1169798951 +332327337 +990148370 +1174834475 +1632359870 +230054271 +1066649388 +688349205 +892456149 +239056365 +757693590 +177623586 +1161314948 +461186368 +1322903332 +1202350460 +2040360225 +1598474177 +1382277369 +599711002 +154698022 +1767102385 +1712530333 +1808063237 +1117811582 +156300070 +859068360 +2089420814 +1897820551 +1017605774 +310662211 +2073205469 +1031661611 +1139318757 +1237975020 +1372082487 +299389274 +890214205 +690340275 +1252662158 +593608013 +151499496 +1308135181 +83314681 +1514185138 +1953285454 +1702429773 +885339106 +1628704410 +1660130224 +1104858395 +1664461865 +566948716 +1140779057 +76115669 +1041291898 +1280088237 +1008080182 +127839099 +1327244745 +1967364101 +574110884 +236157269 +1143906286 +715553437 +1056661716 +1791501057 +820782732 +1090531306 +1362843647 +47866257 +1512337459 +586080090 +1615644249 +1267194477 +719448316 +1717784670 +987100826 +758299180 +1530120543 +1606094474 +986185740 +1625624387 +281450081 +248943784 +1976452159 +1248644863 +1204603742 +37313539 +1289636648 +1228449626 +587916663 +509043494 +1787922118 +27666284 +456679784 +768137467 +145125081 +1873231157 +1664938017 +424635729 +1059806210 +561858461 +2017315325 +1351690990 +212764022 +1430036275 +655371791 +1293750767 +2071142127 +888016505 +1604608585 +330737581 +2091020153 +1750705322 +964714143 +295984014 +950546871 +526857678 +1270135577 +1823946607 +1557213329 +271463051 +922348435 +1639101257 +1752801464 +1043514001 +716307040 +928060762 +1992319864 +1477125634 +983769777 +96657364 +850784234 +625175432 +334977553 +846697057 +1935068243 +426368885 +1511975455 +1074286241 +1874050798 +1783108894 +576793022 +1013596633 +170463985 +3755034 +1314379214 +186735955 +243261054 +60974523 +1878652257 +1815633090 +66411149 +1614633814 +258103701 +686696903 +1802842080 +938525317 +1534846639 +1945580778 +725038219 +846871207 +151035803 +952105334 +1668027402 +852197140 +855879190 +1220504126 +688409711 +1886436552 +1268605809 +750880416 +59206569 +190068440 +1924633218 +2066152872 +571532202 +2133146643 +1550538745 +1108017302 +712973066 +1086200684 +989310069 +172179489 +1200952768 +1059798558 +1322899191 +1578225787 +502743441 +926141078 +155477576 +1838827365 +189486773 +105877669 +297823665 +796629791 +1809053399 +869562959 +300761205 +1300801411 +333247645 +2078588264 +744357234 +277528908 +1095075549 +1596482838 +1388983728 +1849441842 +111155111 +1622220773 +833364330 +1985493594 +248987466 +826107839 +180988319 +397615021 +1241008979 +2033017829 +775464769 +1409507697 +1851918902 +29381863 +1242283544 +1194156988 +530630168 +1132845513 +965216452 +1907580398 +379897203 +1330750916 +1002382477 +536145871 +356194072 +1610106089 +177548100 +1970429577 +1205463274 +948235397 +421766723 +514380753 +1698620703 +985667224 +983036142 +1997623469 +189071296 +1459936822 +831989131 +1896019661 +1626835703 +1259656278 +1781463861 +938531752 +2068587877 +288148609 +682966620 +1028943287 +698735397 +1571401088 +384805441 +1087460587 +2084376878 +1179092924 +1511282393 +206702553 +1126356873 +1777087870 +2067955182 +1159311377 +1544221168 +2128389497 +82876636 +2118454202 +540184876 +392961592 +1466255376 +948583912 +1234319084 +1549529019 +1907538605 +371167247 +190526577 +80693604 +1639375178 +1541074474 +1074097729 +1196073904 +807198688 +2052223638 +93482676 +1742200000 +1375996180 +615255022 +1436923733 +619433493 +1998377219 +1050997197 +1090974754 +929610229 +741418432 +855675633 +2084230463 +199018542 +582040172 +708933711 +915682031 +1950213303 +30894415 +355535304 +673553453 +181874898 +1888071966 +2133026663 +1541111920 +760832339 +620801916 +1961650964 +461386911 +1257913932 +33287680 +1437804740 +1904253857 +1246420553 +1633900703 +974611758 +1062922841 +278846449 +1490855871 +440638102 +757956417 +761990740 +1273404932 +410327491 +656363920 +1357403688 +1395863973 +2041922925 +839148521 +1678802734 +2076257739 +534440455 +1530083358 +1269130261 +247483746 +1447529023 +822154166 +1824488320 +1804991596 +475239808 +556662332 +988389331 +423694845 +730808830 +1573306030 +344296193 +810284694 +1156777289 +342070919 +1879212775 +2100035316 +1955293159 +590784521 +1761029936 +1896647369 +1610212241 +887851153 +915056003 +269570899 +1211066244 +194961368 +51245290 +1502453831 +311356082 +811952156 +602854601 +306822213 +1205578490 +915003592 +923510154 +222774002 +931278473 +1677345411 +1318724530 +932779695 +225891607 +891002766 +808830103 +2029183499 +507333260 +2013001410 +1564028159 +2024107971 +584977769 +1651757254 +257004501 +1923924460 +563762887 +101347165 +634966326 +1524439365 +2084381027 +1813623839 +838266613 +1902254400 +976556402 +1794023617 +1731352982 +684786026 +495999182 +1824181053 +856163730 +461038923 +195485565 +1526265741 +587767534 +1289710990 +845863361 +200930301 +1787046589 +1947409049 +929515894 +186545648 +72460518 +207237193 +578934327 +1889248804 +966500528 +959591760 +772232460 +624009478 +439115595 +517175601 +1548221944 +1409829600 +1916908871 +1761115959 +1753942928 +1153831208 +1932716859 +41705353 +1529777199 +1008917238 +227234597 +1452760991 +886705747 +617601891 +505236584 +269286404 +2143642374 +597276011 +695452877 +1496856968 +1426697691 +1985953656 +1601476259 +165757953 +261522116 +1989365107 +2127559558 +1077160981 +111885734 +1678071040 +1164772417 +844692692 +170391257 +1957602825 +1235930752 +175276916 +899241182 +1569699514 +1092953187 +2147208091 +1757516351 +1109855432 +160415738 +1135598074 +271001503 +1405789849 +439420872 +352228300 +2035742309 +1798205555 +187577258 +1632447212 +1029044046 +1116883499 +1275248869 +1873914717 +2006982087 +715522899 +2023037910 +2042693768 +824100101 +1751481862 +1739709739 +587037925 +1578783094 +1853098254 +422151624 +640042407 +919030930 +169996838 +1634092629 +698372168 +460964936 +878151227 +667549624 +1524089052 +959767948 +714517701 +555271126 +1444528980 +191656740 +1700597509 +382115769 +1241623934 +1675299198 +1252894316 +62624058 +1671375771 +1227437587 +150020171 +203588067 +1982312774 +2098333903 +590956460 +1884958763 +179816643 +512010901 +1300663257 +1360170634 +134086399 +496705994 +1045155143 +913408239 +320990176 +1334292065 +230116054 +1366155872 +85297387 +2107879177 +165449550 +1141625008 +510490837 +1646270397 +505651416 +913039220 +589330536 +1609966836 +527155034 +139309844 +653182226 +574107939 +274284400 +635151053 +1548399784 +1566921788 +1747034742 +170250664 +1963473417 +752732815 +1521269681 +1347420787 +895203452 +1262117610 +1190905355 +1464154677 +2115926688 +546700911 +1929621642 +649418674 +2072291183 +1871737210 +429639342 +1992004640 +933376004 +1071401003 +1789130811 +445929743 +809264055 +1584569620 +1036324244 +1802694996 +1114901368 +633950703 +286841615 +407394234 +480093923 +307203772 +629196542 +427310717 +1878336665 +1812653640 +215084709 +1379702275 +1959338304 +220029168 +505318934 +1378231989 +189324225 +601273025 +362170271 +1355355406 +966656346 +906203575 +144522435 +1549733557 +1828731468 +675626112 +625384414 +641476730 +472376887 +400859314 +1315274444 +2107573499 +1086035569 +1277243675 +102673761 +498204267 +1996684564 +524037430 +1339916712 +1748920694 +1329163456 +2057529922 +1167644629 +647202043 +429741617 +644816858 +1076063081 +848683553 +1608483043 +722929758 +1615586521 +72158627 +305434839 +165337021 +839107675 +1686133874 +1907911431 +1424752169 +2049884625 +95598889 +1283452965 +1507871622 +1982165897 +804293100 +1220333667 +587655589 +1509239253 +1015486081 +510319326 +2102342705 +1938115516 +1457477494 +1335953484 +320253652 +1911249842 +669470941 +1197836840 +1936377891 +1743560317 +1526083639 +1336095842 +1992886662 +1280377319 +47621339 +1376525530 +2114483017 +775053198 +1153411159 +984775739 +146301892 +217859346 +974146282 +1686201683 +684312237 +935575241 +1717619409 +676159587 +2044732291 +325031938 +1269116464 +1963770886 +663507254 +1749360430 +1577296486 +417730805 +1007073583 +33797863 +153048093 +998034057 +62830115 +783463990 +1379034746 +950017849 +2001200452 +2097234590 +361261943 +1638858151 +1490551067 +738685536 +1147868582 +1874446752 +450180092 +1098270690 +973421597 +532918727 +2112022026 +2137312385 +433315813 +418518584 +2083830786 +1787727134 +1907807070 +883528647 +1922614328 +1994105611 +851123424 +1922036040 +878431464 +495965166 +1183706182 +2132256492 +868199677 +1523490095 +1534366741 +488305458 +715902510 +1204015278 +1538229015 +37958120 +2044819044 +782100758 +1455163933 +771445491 +890996604 +812433900 +2073575906 +1509102120 +20193475 +1036163211 +1477958868 +1422027837 +1340913190 +1794658020 +520630890 +76700937 +1562199863 +192699922 +51198210 +228756043 +36513003 +1776748374 +1325636480 +1955039518 +545325403 +905578736 +152600286 +2066209600 +1775413870 +733984101 +6748351 +2116500429 +155859496 +1469672015 +1475644449 +182069082 +855586245 +1832407011 +198128026 +1609576996 +1834168494 +1838522490 +744811305 +434370628 +1330356158 +669729404 +1909718144 +982971994 +638785636 +279972861 +764040994 +87087128 +1883277337 +1157521215 +302354825 +1871930841 +1915682127 +1736059900 +496276526 +1775824841 +1011426922 +1918632021 +306233773 +1832970857 +580950754 +1388546716 +959114025 +417112292 +494700070 +480755265 +2125209562 +1570568754 +1902339426 +1918376468 +972720185 +943290983 +1767960493 +33423244 +822605154 +2126524027 +1243702427 +1540741826 +1951377854 +733476653 +1310389367 +664661815 +16921963 +1682345589 +525189582 +1150685699 +920120429 +89650033 +778720014 +469606255 +485470119 +370391868 +582241926 +297554450 +1626442863 +2113307749 +1107290731 +637126175 +195791553 +817956649 +1136933701 +1527421456 +945732052 +407019027 +1851144058 +22768866 +1025378896 +1103884228 +1118528663 +1308827711 +1797062632 +881467599 +1916993507 +16570194 +1386167239 +1068053540 +563554428 +2123781138 +1653666869 +446035477 +334543417 +1114555094 +442247466 +1050330236 +657058228 +1878457419 +1991495774 +1429354919 +213296204 +758036067 +1651359165 +1061518049 +2066161218 +1414207923 +885938485 +654953859 +1160512943 +1596566478 +1706621285 +1271224717 +1203533423 +275490071 +216730162 +222764447 +1631921401 +1818417574 +264114698 +1206155886 +1061892401 +1348885486 +1027218802 +1720162062 +1417951513 +1973194763 +2009798832 +1092306234 +2035752357 +2126242116 +121774000 +1508784989 +503395919 +864712182 +2087272360 +1277321980 +1112932854 +166148387 +615465251 +535153458 +1370274737 +1049335247 +127386675 +745378755 +249178659 +1404491762 +1539989091 +919061917 +1504889936 +484374348 +1763962871 +744237267 +1498584073 +1043799665 +1567582626 +120372826 +1060288813 +1135620094 +394042623 +673939191 +1308199630 +957614860 +1055687629 +1205290644 +1580519681 +20865036 +32011475 +1915352982 +1538159254 +1160173737 +2029866940 +297869098 +342063486 +1615396489 +1366540379 +515229764 +968134515 +833850611 +1674101664 +1980953401 +1207379225 +1436803764 +174384850 +1209892037 +1344001400 +813759669 +880407103 +2133347 +1057862950 +479378426 +686806421 +1520682189 +545094225 +1081585836 +477796026 +1886163330 +1245554671 +321993998 +1919583369 +2005054881 +308134579 +1974957533 +1820537604 +778793566 +1025539030 +477793157 +970890193 +712997872 +1725179668 +1830732408 +613529359 +1376179498 +797661895 +1125116660 +2027485539 +413733332 +1188795072 +1152658053 +1558931031 +1128584764 +1907078094 +1121395876 +2021770828 +2065420671 +294813100 +417049677 +28990799 +1074483465 +930810656 +408591603 +1028402758 +404866075 +1883661820 +325290524 +887832138 +446669555 +1188961944 +1490088251 +371943766 +1658941557 +948660600 +1502970603 +844180205 +253359016 +1405497708 +1884757001 +1551165877 +937167562 +633725180 +1479091917 +394189989 +2029656846 +809073182 +1328483569 +137991365 +983027648 +2126751739 +529333204 +150337966 +2042892557 +1396295365 +156960811 +884061622 +1466647222 +1216726543 +1808277272 +1139540709 +1289143959 +1035063037 +747237852 +699187511 +43902811 +413952789 +2080912538 +939110988 +2113258941 +541468179 +426239114 +3757680 +1559662372 +1612961280 +1808409362 +1454208590 +240134265 +1356742879 +636440904 +11497565 +623522623 +216451246 +444869164 +741025494 +2041430432 +1683700383 +1020998191 +975595750 +2061783685 +791279994 +544807927 +1455129140 +1170087820 +803122230 +600033258 +67874428 +861414954 +1164236034 +604513972 +855668781 +2065468078 +1953576625 +642811328 +573553042 +972380635 +78410211 +1857013270 +32283582 +247597272 +632657984 +164019660 +1988645768 +569866125 +106828160 +889041242 +589994150 +1496403843 +627008650 +1186424475 +1089642825 +1029473878 +1353432239 +55100470 +2128021970 +1555063811 +870211055 +827043256 +746617994 +315948592 +603437841 +1358323379 +147666338 +1545737076 +1956068826 +1634970761 +1615301359 +1916020202 +663304095 +1667198857 +19892644 +1203560793 +1708884929 +832280789 +1338304372 +1929913575 +1946213519 +700320492 +1563098806 +2040229806 +246048882 +1320744276 +958114106 +512735686 +187757211 +1181139571 +1997162113 +101884596 +409435661 +1951327492 +978797663 +1666581461 +739660204 +585230318 +1660399521 +1527380174 +265337843 +1873342560 +1471685662 +156543006 +1643600058 +2079856010 +1537880576 +591164384 +1520134395 +280371522 +1541721121 +1255682160 +1684298076 +1795509528 +958204191 +969142497 +1169503075 +619028234 +127031658 +358187431 +840691116 +1430365678 +1763803382 +81692302 +988814076 +1648638369 +533206101 +1247105271 +880060227 +874435881 +1314761427 +1288300668 +135356844 +1673714908 +470747628 +736956260 +1680245394 +1940511093 +1822410595 +1888220505 +1796184127 +767356740 +1030891483 +911439955 +1570682769 +176394620 +1999127721 +1318176443 +553810021 +1766708683 +1739031566 +1152870612 +1804722203 +720006110 +1877665128 +299898902 +642497135 +953389511 +234368065 +884886315 +953346621 +70599058 +267898534 +69969612 +213358112 +1330148002 +1002781191 +444128215 +194033189 +1366534343 +1751012237 +1925056591 +1349015110 +710833831 +67176562 +1989677061 +1144962169 +1724525858 +1074300668 +1862424942 +1831135391 +1519638970 +1508479159 +691710619 +1152561826 +1776907376 +330792297 +1735003835 +571913873 +109081969 +2144650720 +1571615945 +781720704 +1526049370 +522708374 +1723393945 +2096925230 +1575838288 +381891319 +1967458050 +128191180 +15264621 +1855992217 +1573197253 +2023613712 +1734614399 +68604017 +1378629143 +1682795575 +1414528615 +862884446 +573024774 +266261552 +1423639214 +594786342 +653548551 +775345665 +738881659 +2112321593 +1150608565 +394664535 +208236790 +690139864 +1490993762 +123620487 +433157790 +1442696964 +1869118844 +1773889298 +98319525 +1206390092 +37577570 +686712154 +1258401652 +689731123 +1717771501 +261653045 +1002103818 +1230989666 +1009562350 +1721413076 +472147699 +1672057153 +87248777 +1762325188 +654040018 +58572672 +1862173806 +565681876 +466353018 +1826954830 +831460600 +940359383 +532974825 +1842721649 +151333492 +1371516301 +1268173144 +1546967413 +906812863 +100077314 +1261553536 +1634849629 +267592551 +990510471 +650896432 +463015512 +571692111 +191855552 +688030609 +747629642 +1726223739 +600477902 +1181417357 +1811254570 +1957012319 +1654496076 +588200933 +1117756527 +375078779 +271321916 +1011126259 +278812137 +1436925357 +921374992 +717117315 +1060696357 +647566861 +1959287271 +884238878 +680538897 +1283366129 +145181215 +113221775 +470920964 +1030745371 +685518568 +2066451533 +2086956417 +377206183 +1717898129 +2089096067 +2010057298 +1225723697 +845612054 +648920224 +1099260427 +34794482 +1956126820 +314315478 +2053285680 +1133824038 +21389248 +1095541326 +434550013 +735891214 +680154439 +1890353495 +2045928996 +1778540681 +2040914781 +139185907 +828922529 +2143582251 +798742964 +1200831126 +392336178 +1180171844 +734093500 +970035152 +1082854026 +1447146831 +1190803319 +242255706 +645644963 +368123457 +1296097952 +39484517 +675168495 +1481673943 +448651778 +1958219970 +29653602 +1218550582 +380681534 +674185448 +453173852 +730203072 +888378984 +869731817 +1622858086 +37600544 +1227250292 +903776433 +286665591 +972432201 +1480023781 +148366910 +477994546 +87270835 +2116358856 +1206963419 +1508414985 +1027145810 +794289828 +1934613289 +2027242748 +350127017 +572382664 +1949700165 +1909053670 +569091874 +1163243317 +1140871300 +503974112 +1291395605 +1436648428 +809276456 +654196693 +899521529 +491184830 +355560126 +725273676 +1517889260 +255055848 +150901144 +285571409 +1995915674 +1578615594 +960509540 +1924416135 +80818357 +998574805 +1234818297 +1948715918 +335715992 +407338232 +198515425 +1882195988 +355079864 +1777860200 +1413994924 +1796300787 +310665455 +1832175712 +2063389035 +355827223 +1358767116 +1208131300 +1363477108 +270842593 +1495513018 +183070972 +1965873054 +857924069 +808500002 +1838585137 +1977247419 +1006476475 +2146276546 +1185794840 +2009652075 +1401333919 +1862290036 +1196102277 +1518491148 +1104249874 +1447639092 +1966615493 +2102759154 +1177950017 +1175852528 +1486010819 +570351679 +1629979228 +93987402 +5114060 +878975232 +2079506846 +622945444 +1243363704 +403955460 +1860452983 +1406437932 +782182721 +1161042045 +572148025 +1619540398 +533566406 +1863090771 +1359635656 +671092095 +1380501622 +1870686501 +1886068611 +1141337493 +925823612 +1354578859 +693156114 +1781370922 +2028513672 +889558597 +1891793940 +1199917825 +1402247546 +1076611070 +105724135 +1755190221 +1505342868 +791876198 +1555839117 +338856656 +356093208 +1649158032 +1012978043 +1679356962 +441400426 +1172837198 +1574664725 +1976830581 +14464969 +656216426 +798120086 +185589616 +177771287 +44125235 +1795907770 +862220124 +99479956 +1758303713 +1362144698 +63917942 +1427718200 +940414037 +553748629 +1458969496 +1920728646 +527747622 +1665344106 +1652676409 +1617349948 +1517833798 +904117025 +1591980305 +286532441 +544833283 +1967928355 +730675129 +577928774 +1568409342 +2049075599 +2033754513 +971012069 +2078387171 +1561025502 +1849930260 +1887487879 +651856529 +659854392 +1146517530 +1337023357 +842556374 +1093221553 +895333635 +1357124699 +1215426612 +1942290066 +73066829 +683562227 +1744091564 +1225936051 +1038024060 +1121418962 +1552449187 +128894687 +1039609563 +1138038366 +1996070097 +163522198 +95454661 +136883456 +208753405 +1288963009 +257911218 +353885535 +426858731 +14535786 +575072672 +1500513730 +114342047 +1931573183 +1263325058 +149065532 +1896476627 +697034874 +662099942 +42383451 +250211688 +2024945956 +1705151327 +1777687620 +1422685798 +581929050 +654528262 +1521977514 +769562455 +2052476522 +567355160 +156692706 +128952447 +2051581527 +244437562 +488787171 +2086945996 +705207687 +105234290 +1956991390 +712594424 +1081087911 +1581562042 +808577261 +1743156388 +650800084 +966540065 +1007413192 +877005609 +1189752626 +619600306 +481430369 +575225045 +1994425709 +901869777 +565800731 +1477040484 +1492372309 +171333890 +1873437237 +69122538 +218079139 +436827523 +1968849511 +989780742 +1377121447 +1598702022 +25776468 +310302420 +382894292 +856117299 +1770782659 +973272863 +1916828746 +1350773514 +712981076 +1844561354 +443973176 +834541135 +385862243 +645888076 +1982013299 +1195126377 +100936390 +403111108 +1574199191 +336541300 +396095779 +471437709 +232320438 +256610514 +963616547 +2038696287 +555566939 +1847931834 +1842753670 +850405899 +649968691 +1051457277 +1508415400 +1088812321 +1307929928 +2078809135 +1830311501 +469191954 +1643044260 +118360318 +1887274953 +670730778 +560186184 +524157971 +831110648 +683533351 +228193101 +370000419 +1073048018 +1304926989 +284387350 +243305723 +983326361 +1155746337 +153207158 +1070355746 +1049728079 +1762541667 +800065723 +1357126034 +949738733 +1902153909 +1360482924 +1605673665 +2108631302 +1292482679 +1043671504 +328655625 +615396429 +1845237492 +1862516074 +1647081533 +1627131223 +351873178 +13360332 +1852864695 +1668301266 +1626561260 +1099741236 +612383828 +1082946820 +1716268655 +1108811950 +1044906031 +2142772926 +467485606 +1322378188 +1624469284 +958475713 +1043813904 +1884372854 +442054749 +1386353267 +761135150 +1594259114 +982559445 +626485281 +575410850 +2083692784 +880325991 +677596581 +2019932464 +88325323 +1596781798 +168634616 +550021592 +110019408 +161717562 +217581202 +224370131 +1927651160 +746394489 +133709002 +439666194 +128199623 +566064689 +581839897 +483764857 +1782981879 +619670720 +1186749668 +549024074 +818949154 +1751706861 +265255716 +119602863 +819592305 +574493348 +2035115070 +65375150 +1410156639 +1327717577 +1084899449 +1391960827 +661211720 +807650229 +111756298 +1382222743 +1201701021 +477837560 +1011728700 +25100496 +184954528 +1583299513 +329738404 +1088190640 +1011465638 +2118036408 +1838108796 +16959813 +2043808773 +1714271246 +1805045931 +498679396 +177133202 +1331213739 +1410552188 +1950273149 +396375367 +1092710391 +1722060509 +1635095625 +606824780 +1809816412 +231968216 +1349960247 +1476113587 +250544064 +302652346 +923023429 +1529439264 +263877273 +185259225 +65864705 +959847712 +1258466362 +566225790 +1532297134 +1485761527 +1507828443 +1669934750 +1507596870 +913210060 +1851394246 +748843663 +1043748460 +1622672547 +2118918951 +355663123 +1835805781 +1717303496 +796271435 +772564030 +688458885 +1019123948 +796806456 +1554873250 +1389889911 +1446109254 +172081653 +312251881 +1478052781 +254388947 +1049845316 +122470461 +1414423038 +1481954328 +293433174 +1660648751 +419218001 +1847955003 +747957429 +212096210 +929774247 +1925082982 +937219425 +1767385714 +429882966 +2019357220 +537126833 +1049227491 +1370612980 +1217890510 +767456013 +1681992484 +195575558 +36491596 +1844269578 +260995967 +337601622 +1743060669 +697126989 +1541002096 +139783465 +1323635552 +134097471 +1512366409 +2119234197 +913546305 +855957287 +2077984882 +1424215948 +2075304330 +1456500105 +1175335789 +2113939165 +1754206178 +1109622328 +1639266374 +1455007941 +1133750821 +225640914 +1598880106 +1706381830 +1288593639 +1509423999 +2081640854 +1996730701 +1352022878 +832694119 +1511471584 +1607153388 +1785165035 +146480651 +1157339335 +1376862374 +767231266 +1066972125 +632426210 +2084804186 +128928023 +1452949634 +25869575 +1579943353 +743345365 +1038079141 +48905545 +827249544 +1318788757 +420033603 +1410765040 +792265037 +1684591040 +1217295379 +132957322 +543322263 +699663017 +309212434 +543473278 +415406505 +427731302 +1441967717 +380400361 +116727282 +1133774721 +32495326 +446582461 +1598145122 +855502120 +758309245 +265158106 +631585224 +379721750 +304511300 +1820141525 +196570489 +2006160299 +1838410053 +2078244571 +1519303354 +92766339 +1481426509 +84370399 +2047175855 +1696623877 +1110626951 +1052821998 +40140980 +725776724 +71478587 +334880253 +2005811631 +349919910 +1973998991 +1467133816 +1508081018 +201967992 +2123456246 +370406316 +462324490 +1180885064 +1422585722 +923477393 +1478231675 +1300975567 +1730973465 +1567885971 +1396645840 +1227145464 +687976188 +27675825 +825072193 +1916094303 +1916308447 +679338690 +33967896 +240505305 +1585435999 +1185682885 +613268233 +1959775221 +1643477270 +524589729 +1314346640 +287756628 diff --git a/examples/machsuite/md/grid/check.data b/examples/machsuite/md/grid/check.data new file mode 100644 index 0000000000..09086a3f4b --- /dev/null +++ b/examples/machsuite/md/grid/check.data @@ -0,0 +1,1921 @@ +%% +0.0008016146700337 +-0.0020612837355072 +0.0032332671592132 +0.0009657118885183 +-0.0002559778828942 +0.0009366593142218 +0.0015737295206710 +0.0025164681238565 +0.0008421486301414 +-0.0007693122326422 +0.0011008966727841 +-0.0005170781277456 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0042426913231147 +0.0012573272962747 +-0.0043626231122797 +-0.0058821718876515 +0.0008912304752724 +0.0007981985366119 +0.0111909952553888 +0.0080859975169486 +-0.0082458653141254 +-0.0101317804230405 +-0.0054681912391431 +0.0087561474785383 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0267580953782801 +-0.0181488887985749 +-0.0329532343064745 +-0.0016756031075928 +0.0039166123027246 +-0.0011824246551046 +-0.0230819130166738 +0.0187939588481652 +0.0332566784825497 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.0428574158153332 +0.0223263953422374 +0.0590668667488971 +0.0000398854878357 +0.0011838433681570 +-0.0006169800086439 +0.0001127043722985 +0.0083982902875366 +-0.0021869618210129 +0.0004195832617033 +-0.0007926583756136 +0.0007043678046081 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.0000531463948199 +-0.0000361577666351 +0.0002689196974539 +-0.1795461267317063 +0.0375728602830572 +0.0655083308093748 +0.0011889498663721 +0.0014161944608434 +0.0039014923008386 +0.0002823102410679 +0.0001176443220691 +0.0003351106123218 +0.0049032503743093 +-0.0308778478119831 +0.0226967666615731 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0046891067675452 +0.0515484305928833 +-0.0146531343244131 +0.0011094340348861 +-0.0027566954001805 +-0.0006936610183670 +0.1977004950044021 +-0.0426013496792352 +-0.0709412061470357 +0.0019703521004494 +-0.0037883850192022 +0.0016847318605780 +-0.0175135653995458 +0.0055272601833707 +0.0215907283787189 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0001780254997250 +-0.0011082841058664 +-0.0003915347354026 +0.0269073841382492 +0.0069259798103592 +-0.0209249904783105 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0426696651009882 +-0.0308877417785578 +-0.0572963990182955 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.0000939578908079 +-0.0014212990787822 +0.0018997455840246 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.1204947814886540 +-0.1701542391576167 +-0.0111901954757517 +0.0010984229394016 +-0.0003851614574388 +0.0004046275052823 +0.0053220051720462 +0.0023165974787598 +0.0003525348081090 +-0.0001142149980863 +-0.0003022538657350 +0.0016197449466316 +-0.0085442651864849 +-0.0006223407329152 +0.0048869632129421 +-0.0108493802874439 +0.0449461160168093 +0.1051247983437815 +0.1647383818467405 +0.0567185698956202 +-0.0688002926185729 +0.0175442416759592 +0.0482792765953833 +0.0032727269937419 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0592909446828081 +0.0635912015305100 +0.0330142881557682 +0.0752894659803055 +0.0080089606378843 +-0.0618024734131891 +0.0016486847864912 +0.0019948253560223 +0.0042621957483977 +0.0043808763038075 +0.0015734328866385 +-0.0073205984703925 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0879758901997003 +0.0338102764169575 +0.2330680054591917 +0.1106384515496441 +-0.0946842935461264 +-0.0828600895057100 +-0.0011550212865317 +0.0026804885157450 +-0.0079561150105339 +0.0607676705350274 +0.0186481935728355 +-0.0180659937109340 +-0.0446143371395681 +0.0087111628934016 +-0.0070781316273632 +-0.0020040322853012 +0.0116221257080258 +0.0025764735621329 +-0.0735674296370898 +0.0902057776026366 +-0.1710455148552032 +-0.1372982973773928 +-0.0726321709132671 +0.0464146074727411 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0007551946823331 +-0.0001872191838872 +-0.0000281648205895 +0.0023527587054983 +0.0078764128903397 +0.0012030904619356 +-0.0026008656299250 +-0.0076633759411431 +-0.0011108495708290 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.1148276658388596 +-0.0556248659511400 +0.0024525295358168 +0.0229591108906597 +-0.0205487476934463 +-0.0027824868746763 +-0.0009258121756698 +-0.0013434767559833 +0.0004356374223916 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.3213378722238427 +-0.2951157522871649 +0.0410604798590038 +0.0106837086385966 +0.0077372643406002 +-0.0093250423278907 +-0.3869342633197253 +0.1463278268786601 +0.1615271115152888 +0.0237451600077906 +-0.0405812370514187 +0.0014040629574545 +-0.0299419056008585 +0.0356088153952852 +0.0113005964034503 +0.0207437622067401 +-0.0134754493498122 +-0.0068984789793771 +0.0635858482175531 +0.1442037424495205 +-0.1956937966636535 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.0017515505722391 +-0.0003618969810815 +-0.0029565738931423 +-0.0028482596761533 +-0.0256309745472979 +-0.0040634856953386 +0.0032053826119937 +0.0011804378473153 +-0.0019056056970107 +0.0035200257514817 +0.0243766433773361 +-0.0042530831121714 +-0.0020091385572978 +-0.0002839950378757 +0.0008911620266546 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.0101579317927858 +0.0090484453549082 +0.0255602897685860 +-0.0062357163576728 +-0.0132346823333880 +-0.0111300685339492 +0.0154938064070440 +0.0084742369963749 +-0.0169370197677059 +0.3493661140241782 +-0.0257813489428274 +0.0075948202399911 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.0080513591682765 +-0.0003435781642636 +0.0067019359555706 +0.0012290776584109 +0.0023492892258333 +0.0000937700734115 +0.0037801818133428 +-0.0042678918589221 +0.0037133706020399 +0.0098199001932781 +0.0044194078518575 +0.0026560569388156 +-0.0074014114142038 +0.0210629134569731 +-0.0050566308889909 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000166229340228 +0.0035032421583956 +-0.0748982652139666 +0.0009205757465129 +0.0006734184516102 +-0.0019982440541865 +-0.0009594017803750 +0.0026662861455810 +-0.0002124850243123 +0.0108758069902455 +0.0375330219728405 +-0.1139668719610184 +0.0046722878544998 +-0.0044297189867139 +0.0740117330777845 +-0.0344895103109037 +0.0215150161191926 +0.0767657759161824 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0008515335231784 +0.0011701636800202 +-0.0007419048674524 +0.0086878110512158 +0.0107598582023829 +-0.0085947205295207 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.0413085405522693 +0.0239917433264527 +0.0357156095034951 +0.0419468801179095 +-0.0271964840982822 +-0.0348503702771976 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0091027449219709 +-0.0317133427817201 +-0.0218761855187477 +-0.0219848272538993 +-0.0135416381876195 +0.0837023222438274 +-0.0076339017565340 +0.0247951335905305 +0.0297399281276362 +-0.0039749705905268 +-0.0016243054618179 +-0.0879315542861506 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.0468807749390627 +0.0410697288044842 +-0.0158567546975064 +0.0170610821506539 +-0.0760157036622600 +0.0248874397173449 +0.0005195737390543 +-0.0003363461286372 +-0.0001129064855776 +-0.0009566598559609 +-0.0006115814988428 +-0.0003095436949597 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0005432617272709 +0.0007377543546827 +-0.0009600114173474 +-0.0081466769590123 +-0.0092784136037697 +0.0078372221485811 +0.0002020071726526 +-0.0016044685868399 +-0.0000521038316568 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0005611030885686 +-0.0010279611105609 +0.0015221674934736 +-0.0189394175064694 +0.0133827824650017 +0.0172243828395186 +-0.0300340773798848 +0.0486031501020633 +-0.0043942471178263 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.0014911313865790 +0.0003489717135695 +-0.0012618288280424 +-0.1790075936230213 +-0.1994360049256822 +0.5604354493123419 +-0.2564299561913451 +-0.0941911823691335 +-0.1454074789360139 +0.3974594759649666 +0.3075609420163656 +-0.4108592085914512 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.0389866391704262 +0.0529324449935396 +-0.0126086174964111 +0.0116274285483952 +-0.0061432435210796 +-0.0093443838850450 +0.0279785032945351 +-0.0166639858865789 +-0.0838961390886420 +-0.0685634951780475 +-0.0175075570323587 +0.0644985687202421 +-0.0091583877443038 +0.0031408034088689 +-0.0051159609932893 +-0.0175298370518508 +0.0157574469794754 +0.0068385354426639 +0.0454148829607619 +-0.0408693593291291 +0.0146825287520033 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.0708325938802943 +-0.3707171788013304 +0.2090005800749688 +0.0696892393746579 +0.3698360789751528 +-0.2096034434623567 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0001162930251807 +-0.0003360036982691 +0.0005623751354960 +0.1524579413440236 +0.0912421774528825 +0.2502086720481890 +0.0299155626791728 +-0.0481069133729052 +0.0045561206976490 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0033743045768102 +0.0033421831760145 +-0.0052365850368850 +-0.1148859226862679 +0.0550102086803810 +-0.0022080961920992 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.0422400120972266 +-0.1133330350496087 +-0.0620131796721079 +-0.0036493280132725 +-0.0031626889626801 +-0.0029450569944850 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0004540543186728 +0.0003733528790385 +-0.0008257874734353 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0016595041936221 +0.0016983856531714 +0.0003337076781276 +-0.0032757333275589 +0.0031895317800154 +0.0006904905531620 +0.0423883754323453 +0.2421292062205354 +-0.3935963191428360 +-0.5460321622971337 +0.0395791595567607 +-0.0431009080486237 +0.1622562523053928 +-0.4238624044867859 +0.2064102202214718 +0.0190526436223607 +0.2614895906793391 +0.2479145441474787 +0.0010304633448615 +0.0022023377605555 +0.0015826908335284 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.0009220899629042 +-0.0000393054842927 +-0.0020509894522389 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0263955421081405 +0.0258220671095092 +0.0036983252135958 +-0.0274446295848477 +-0.0251797553959176 +-0.0039138280177073 +-0.0004239797831378 +-0.0000432487126822 +0.0007154761370208 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.0000707394350930 +0.0005838843443950 +0.0001996600039543 +0.0114836634631033 +-0.0035442215533755 +0.0024129973750894 +0.3298282875913066 +0.4237314613037090 +0.2002182099530759 +0.0405014940378005 +-0.0429447239418359 +-0.0257148334534142 +0.0002668385666598 +0.0012118563719967 +0.0001378671350596 +-0.0322023403663033 +0.0526231753324126 +-0.0021433272438742 +-0.3494914762831171 +-0.4262204526004207 +-0.1810705867366519 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0137738694512999 +0.0204146722122910 +-0.0261888005344849 +-0.0027968662690393 +-0.0014301187310803 +0.0057283446923816 +0.0000046939505855 +-0.0008150230131906 +0.0005313518104254 +-0.0007750389063415 +-0.0019741629286755 +-0.0052772449852880 +-0.0224236849575694 +-0.0939017659761533 +-0.0224302453181006 +0.0024035593832342 +0.0057557406146801 +0.0011353880204633 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0030337546652350 +-0.0130520653047131 +0.0047684090735163 +0.0381003190195692 +-0.1759262286434487 +-0.2905493215147570 +0.0004449687337694 +-0.0001334741736791 +-0.0003581775545681 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.1048771325462825 +0.0095426733344107 +0.1157457216411089 +0.0029445438808390 +0.0050882787062597 +0.0098881611590995 +-0.0652327713234532 +0.1889620661454769 +-0.0910186395503672 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.0000156589993671 +0.0002182354431198 +-0.0008230343265443 +0.1070678616343370 +-0.0111578132921657 +-0.1142506850507911 +-0.0020142310553977 +-0.0079740955357981 +-0.0041327471946413 +0.0447325427636785 +0.0197455146618225 +-0.0089663365081650 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0053183402577394 +0.0169088226094414 +0.0101800420699541 +0.0001399963570736 +0.0004336611136793 +0.0004805129544838 +0.0449951361848489 +-0.0227113686055153 +-0.0023325030124900 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.0090333426388336 +0.0119807054039994 +0.0822953569498199 +-0.0287366263574300 +0.1307941159417806 +0.1889542825079312 +0.0230412756158479 +0.0145538359353853 +0.0190899415850896 +-0.0141479652081345 +-0.1464109154503823 +-0.1995194976832997 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0102822404702486 +-0.0486077840122376 +-0.0776855865366434 +0.0565731105477124 +-0.1340540331248832 +0.1698993458268650 +0.0014906036144699 +-0.0066907418100084 +0.0010125853764796 +-0.0111657659443726 +0.0116960795325082 +0.0024469247846338 +0.0035046331961354 +0.0047584096205458 +0.0014395179195658 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.1333337525265387 +-0.0318600143751384 +-0.0154561648192441 +-0.0135654016525637 +-0.0261459119912975 +-0.0137280228917552 +0.1390321513981113 +0.0341663892885011 +0.0188085891949614 +-0.0215895340188821 +0.0420157602795929 +0.0225563734878390 +0.0185451314760312 +0.0103607198165909 +0.0218384870782002 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0709365913702072 +-0.2380127030729829 +0.0513783405944045 +-0.0642002129610421 +0.2198017716955442 +-0.0500723124976861 +-0.0003255200258128 +0.0018321347868712 +-0.0001790717815276 +-0.1471370542789476 +-0.0952357140679121 +-0.2588070402788974 +-0.0037589488125727 +0.0021388025933205 +0.0088674940206693 +-0.0012651123576027 +-0.0012782101646254 +0.0015271223991517 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.0028803058878676 +-0.0039602692972474 +0.0039667288250546 +0.0055566496531415 +0.0019932761943058 +-0.0055053446107937 +0.0001938525128812 +-0.0002094671793510 +0.0004127628287690 +0.0143656246591519 +-0.0031246866903968 +0.0082793443344567 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0040204515701607 +-0.0018868910389561 +-0.0005264436789894 +0.0013527643125421 +-0.0005780921235166 +0.0000875929760601 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.0009156847433242 +-0.0068270787029342 +0.0051061542751151 +-0.0002872508884305 +-0.0154502241648810 +0.0141659021359401 +-0.0000367961284332 +-0.0006445832028076 +0.0003954191602603 +0.0013512133554388 +0.0008654505467664 +-0.0070301963569058 +0.0378613025502546 +-0.0148571558579193 +-0.0182629679998363 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.0171244948612434 +0.0278944340865733 +-0.0633672287989910 +-0.0011432465437173 +-0.0002157903106158 +0.0014015262889581 +0.0156575607406717 +-0.0249594192597853 +0.0653680569099316 +-0.0035054207309154 +-0.0026479735917827 +0.0014153119720327 +-0.0004194101643891 +-0.0000810910031136 +0.0002996744769866 +0.0029728614510050 +0.0052680374681129 +0.0108577060011738 +0.0006758974522929 +-0.0049810999334929 +-0.0088485988779339 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0005923661813341 +0.0084201459600550 +-0.0043303661178495 +0.0472616256003619 +-0.0094154067206348 +0.0015570519479162 +-0.1714846384530933 +-0.0152660074814996 +0.0915073959805966 +-0.0297488200356278 +0.0219017430892599 +0.0263238444988996 +0.0235685269465409 +-0.0478839712717235 +-0.0046819911737951 +0.1302404241601678 +0.0451081961486606 +-0.1163690382367431 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0009990333512011 +0.0003500277525316 +0.0002626015903429 +0.0055026040441423 +-0.0013416482415214 +-0.0003052488806474 +0.0775606548299859 +0.0143383468133951 +-0.2606498232111347 +-0.0795304062057260 +-0.0104297574743495 +0.2619565202015096 +-0.0026784679118908 +-0.0003343218737249 +0.0019249205497706 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.0022007154156997 +0.0011547181552869 +-0.0007508847071831 +-0.0038153104464105 +0.0004607425782580 +-0.0032919064581829 +0.0022458514859954 +0.0000106738005259 +0.0004349774033362 +-0.0001276167746256 +-0.0004153605966995 +-0.0010341132271985 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0038045507526040 +0.0040420209778283 +-0.0030081453257749 +-0.0123225758015090 +0.0013871430031204 +0.0005121874913231 +0.0032943861089370 +0.0189884529862400 +0.0216843555331750 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.0412132936337798 +0.1838391598110417 +0.2801473298145968 +-0.0024633393703112 +-0.0003908592556341 +0.0005264167627606 +-0.0006065223355158 +0.0002107483488243 +-0.0001213691374696 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.1526478708999199 +-0.2024655516872423 +-0.1626730940395208 +-0.0563251141650802 +0.3023964899561370 +0.1331800396132101 +0.0702315034013259 +-0.2394975183705634 +-0.1196443548919606 +-0.1703839548416286 +0.1403023578679205 +0.1473964695666927 +0.0299221887944748 +0.0807791581558369 +0.0598083130366062 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.0067948015413230 +0.0076256991001257 +-0.0057136534343011 +-0.0012798176769765 +-0.0007896616762824 +0.0002466612245451 +-0.0483896719821349 +-0.0027594017230452 +-0.0015618822994514 +-0.0040728919857370 +-0.0001881422519999 +-0.0033935974677219 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0009998642127137 +-0.0015084513746965 +-0.0019097915646343 +0.0036296151030395 +-0.0026032460755202 +0.0469470829951975 +-0.0455790357408855 +-0.0259067532673741 +0.0120243717627473 +-0.0136255267251922 +0.0061642867965609 +-0.0427878615799737 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.0440780709289049 +0.1709182375221937 +0.0669723202167151 +-0.0177194647725344 +0.0342461578756077 +-0.0020350359261940 +0.0164086448057910 +-0.0339089889391380 +0.0013705842480099 +0.0375707522820355 +-0.1460660596172995 +0.0135139818818003 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.0318001680094672 +-0.0800348992715833 +-0.0584335655513780 +-0.0131825715285276 +0.0003118724494567 +-0.0028722713362092 +0.0006940454413882 +0.0090158249685174 +0.0005071067797072 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.0046046901218460 +0.0023350145652545 +0.0002808483804970 +0.0047885138520584 +-0.0079744905705208 +0.0068080601719305 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.0128518108626240 +-0.0026518038091979 +-0.0062140673981869 +-0.0051913790796481 +0.0001162968587750 +0.0001675473330337 +-0.0000970258212066 +-0.0001038533932548 +0.0001154359896710 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.0024794823930704 +-0.0011210079880082 +0.0001861868418523 +-0.0012259091325350 +-0.0005167514660963 +0.0015060428963622 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.0122187230601565 +-0.0125727673551077 +-0.0567387323088952 +-0.0044911171921989 +-0.0019018120712079 +-0.0010013103709688 +-0.0468430225349176 +-0.0029127807530683 +0.0026060259246207 +0.0009968074534412 +-0.0023467310315809 +0.0015418563325374 +0.0216082132405872 +-0.0082000934629875 +-0.0196998056266698 +0.0355174529973460 +-0.0017494825368486 +-0.0065320193204915 +0.0024090563061103 +-0.0043557898172702 +-0.0034551653197571 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.2919863255898946 +0.0001722670713344 +-0.2852506531745930 +-0.0795148800700761 +0.1325206293878184 +0.4623270632459219 +0.3705872270252406 +-0.1330791720914045 +-0.1781596204320695 +-0.0150327506791896 +-0.0136009752443854 +-0.0267669782412858 +-0.0008529956979031 +-0.0006639698036322 +-0.0006456426532591 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 diff --git a/examples/machsuite/md/grid/input.data b/examples/machsuite/md/grid/input.data new file mode 100644 index 0000000000..5d49ab8b09 --- /dev/null +++ b/examples/machsuite/md/grid/input.data @@ -0,0 +1,1986 @@ +%% +4 +4 +3 +4 +5 +5 +2 +1 +1 +8 +4 +8 +3 +3 +7 +5 +4 +5 +6 +2 +2 +4 +4 +3 +3 +4 +7 +2 +3 +2 +2 +1 +7 +1 +3 +7 +6 +3 +3 +4 +3 +4 +5 +5 +6 +4 +2 +5 +7 +6 +5 +4 +3 +3 +5 +4 +4 +4 +3 +2 +3 +2 +7 +5 +%% +3.6751776717378926 +4.2081589767125083 +2.1440962668152759 +0.1878695309954036 +1.6092908148972949 +0.5694799889233795 +1.9227078446526487 +3.5831061282627052 +3.9964468877352988 +2.1591586300607557 +0.7200676044914117 +2.4346772050174530 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.1261290806846831 +4.0064400264387299 +9.0136199719002139 +2.7868502187317352 +4.1289182455944600 +7.3887180361710314 +0.1127406837012356 +0.7910451974542847 +7.8430699551691285 +1.4978908165810179 +1.7634732711882284 +6.7903059219704334 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.5366177225833804 +3.1021877474380846 +12.5413183208886387 +4.5572540788124876 +1.0589064618546478 +12.0420038635632203 +2.5039008240633098 +2.3981418963013592 +11.3273292122877240 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +2.7221948728308938 +4.9782526344434004 +18.1818633679297932 +0.5593388063665081 +0.0234795394354381 +17.6332251307856360 +2.5361799008322228 +2.8634138891454834 +18.7953673605650380 +0.3172371695158291 +2.3815347271377356 +15.9846723200625753 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +4.3259530790379968 +9.7047200057221819 +0.1152809968347733 +1.6534266893003142 +9.6760033547368458 +4.8981503840652518 +1.2420326806515858 +8.6648391054270792 +2.6204714811313572 +0.2671174645220583 +5.8499163600439203 +0.8886687593913422 +3.4972423917441855 +9.0706513378177149 +4.5477256233179739 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +4.1877754014200370 +7.6677513496295822 +5.2580992616124878 +0.9776458988602766 +6.5318435363237963 +8.1527313369621357 +0.4078369905844157 +9.9469883910035293 +5.3470413843226838 +1.7365790812460604 +5.4623403845198393 +5.6193218264458542 +3.5361049273414475 +9.5332373650980067 +9.6504592669041838 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.5637551126073275 +5.9535166740117766 +13.2088307489098451 +2.3181468909521010 +9.4011962527758861 +10.9441563030915603 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.8529174511434725 +5.5891226245930596 +19.3533444811343784 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +2.6225036447865557 +12.1362722815472051 +3.4765394040222990 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +4.2264270650987248 +14.7173024017426926 +8.3327420883364507 +0.2553043509206231 +14.7800235438963625 +7.7533322544188135 +0.9264966192175300 +11.0729238079614696 +8.5098075612892305 +2.7753360501552873 +11.8529377968924887 +6.3867596386962973 +4.8773099951981260 +11.0067007962678982 +8.8389215256127489 +4.6449048171026357 +14.0671783888537920 +7.0737246647267247 +3.2022358476300394 +14.0177246692394739 +8.8734065210448261 +2.8718852839138940 +12.3602090294784119 +9.0612576332890029 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +4.9304158903095656 +13.4563646124520311 +10.0188896830914942 +3.5962505548817258 +13.2311276784010641 +10.7770080647958348 +0.6901526125666906 +11.7003937920188470 +14.1971733171327852 +3.4171375951674676 +10.6300366468594643 +12.4847198191310369 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.2703310110536179 +13.1509451291781403 +16.0913322938511243 +1.0222004863811358 +14.3505186400425799 +17.1503655665231420 +2.3433250384127384 +11.9248970153847882 +19.4768644266667401 +0.0829396211166469 +12.1920277939635202 +17.6111941787996003 +3.4519282140092651 +12.8571266483258135 +17.3420203546990450 +1.0557598401670412 +10.3612234002161117 +16.8239757354184860 +1.6494969174818297 +12.7207178303538289 +17.3497261810119134 +2.3712945210345331 +14.2439330229754635 +16.4521638780890527 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.7918941140052675 +18.6604411677948043 +0.8004199563224681 +3.7449920941085066 +17.5353751653850658 +0.5669871427130923 +4.5097723740932185 +19.5654735882180972 +0.8582822852436496 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +4.0229751789818655 +19.5643071810518308 +5.9322266112500959 +4.1428606667917336 +15.6638265752271266 +5.3030492212128397 +3.4308417925440269 +19.8178441941022108 +9.4985545747724878 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1.5683180324406867 +19.2313884765320040 +13.5516312238628860 +0.3318993707057750 +17.2899736854007919 +12.1367636165709136 +2.6044662735519992 +18.8160422842487627 +13.1333974647393319 +1.3829487716820774 +18.0697976497191952 +10.5987442011944708 +2.4370867633551181 +16.7973657347760543 +10.2175948477949134 +3.9240030976350608 +15.6576976449421181 +13.6938164319695161 +1.2832201236236951 +18.4662106150019909 +14.5881843077565705 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +2.7667405433321446 +17.8220214373726833 +19.2449424633702542 +1.5337977621823875 +19.9680230373665921 +16.9262457858526645 +0.3080346042757222 +16.9582495526544115 +18.9244191142618199 +1.2970522785044105 +18.1236016202777996 +16.7185186753967905 +4.4876884404153135 +18.1011362237602711 +17.1479761085705711 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +6.7851818082497601 +3.4056039389322494 +2.2257144986306177 +7.4437057468512062 +4.9060214300143219 +3.2673313705234071 +5.4550046025929149 +2.9272013256220664 +3.4669076591384762 +9.7272892059598330 +4.2290288959808002 +0.9113099993598716 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +8.8344254870351335 +2.6792826006163977 +7.0763807304655524 +5.7463335278029710 +0.2806037350274115 +8.7311685449318581 +5.9217002569171031 +4.3898395672452963 +7.5833587152232447 +7.0609216245451680 +2.5762229587422998 +8.2984333482400352 +8.4064449031482127 +1.9710806362080797 +9.9086003293395724 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +5.1749024607328264 +3.7323911848335052 +12.2685679773443006 +6.8847748576589751 +3.5295547530952605 +14.9767969398953511 +8.4629229031582209 +2.5608079408240010 +12.9688298457771687 +7.6183972435207252 +4.5022463250317255 +11.3410701645431278 +5.1435245717979949 +3.8320015283320767 +10.6822783656440379 +8.1464042436039126 +3.9126082356480452 +10.0191673859667940 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +9.5778498699964629 +2.2143334425431953 +18.0947161151234148 +7.2893377266753587 +4.6758443638120806 +19.2337468288737377 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +8.5627094608835197 +7.1745844777056833 +2.2858302568718885 +7.4437431561227392 +7.8873825177051406 +3.2366115438475438 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +6.4862521901726744 +8.0848649866930344 +9.7784337883551373 +5.7260535593592010 +8.7069986212538897 +5.3662018366095099 +6.8807521681509005 +6.7212394562336897 +8.7472953920013019 +5.7624040984725564 +8.7097980208570078 +6.9170741236277618 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +6.6489605584185973 +9.3149075041507299 +14.6962761797325392 +7.2980496507174255 +5.8776955217970546 +10.6867260118935405 +6.3220404025344026 +6.3443308259250344 +14.7490724388635641 +9.1806026935048806 +8.0229567524753183 +11.5804876998391393 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +5.7179651739954398 +7.6246036274673203 +19.2540660250504416 +8.3680886517792246 +5.9864866848830207 +18.1955139743717211 +9.2503949873418794 +8.5855413928391844 +17.2783908948646925 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +7.5209263497753573 +11.4500722602451859 +3.0851068661030423 +5.5222248313463975 +14.5427274692486712 +4.8805704875164988 +9.8537894591522797 +14.7414698270373776 +4.5777285180786205 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +8.7470311216293606 +10.1080840549846833 +5.1645378313088619 +6.7124574349141106 +13.6687817933165245 +6.5359265800354196 +7.4655764254754544 +13.7317389666066525 +8.0014718454115581 +6.3481514363787506 +13.2783180756681674 +7.5035965388636949 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +7.0635873061829768 +12.7744435499558833 +10.2860103728011349 +9.8137657385082306 +11.9661657987475341 +12.9917616686460242 +9.7656001860256918 +13.4144294693136796 +11.3292714641285919 +6.1742489453149219 +14.1369673710703854 +10.0193265074685129 +5.0908951354312872 +11.8575048905551217 +11.8043964349536594 +5.3594363124954834 +14.6071701753364778 +13.1345141328689490 +5.4770386780298388 +10.3606897639506563 +14.2894931506071305 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +5.8797088939011255 +11.2168477650019547 +17.5237435510103232 +5.6869086257068098 +10.1927365474869589 +18.1026391263194277 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +7.7791093202866755 +19.9177900760695721 +0.3174876306099913 +9.4177137526614665 +19.2718320631692421 +3.5279689501917821 +8.9909692671351333 +16.1440615277531023 +4.4450477497888139 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +9.3434185430869618 +18.6960660426856116 +9.0744292782412579 +5.3422898020468619 +18.9276349793230168 +5.9578482806340451 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +6.6217636841554288 +15.3450643786373426 +10.7048062739302914 +6.3275803150554522 +16.3214713444517869 +14.5889577523875467 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +9.2086966788557518 +17.0712258767632861 +18.2685942651204947 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +10.4125609669545192 +0.0164184716350660 +3.0024413572980491 +13.1989856058542436 +0.8713628098373043 +1.4071525710629489 +11.5697577060044843 +2.6993094378198168 +2.3858519283029271 +11.6978875453659832 +3.3244794214474496 +1.3875632973341996 +10.9439629278922013 +3.8852233441531299 +0.8675699935098641 +11.1227406322977824 +2.7582852014461645 +0.1893328065393807 +10.4225409750898521 +0.0785255990389568 +0.0235178328007123 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +11.5155844463164172 +0.4662466434853773 +5.3858066934412019 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +11.4428012989220580 +2.2406187398069779 +10.2278840776730977 +12.7208676027301557 +3.4320862691283209 +10.4023106203178699 +10.3510742900227761 +3.2924801038934080 +14.9176986094763908 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +13.4839625274226194 +0.5273664154940431 +16.0527177594889139 +11.5392731253040548 +4.2443943700567752 +17.2334085517164119 +13.5593710328534520 +3.7374174986297151 +17.5654831473733033 +12.8839793112894601 +3.6201424229546681 +19.4264996224047017 +10.3072118232742849 +0.2334061399608698 +15.0571324838484486 +13.7989724102711797 +2.2476673656641801 +19.3311187171898560 +14.2224777464941372 +4.5547690512524506 +17.9179079179237029 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +14.3228577296588071 +9.6416548484039133 +2.7300429334475576 +12.9129937211481938 +5.9893229570148341 +0.1566641969771449 +10.6721420669764644 +8.8648736667611487 +0.2410759923645371 +12.6059390612419442 +5.9596547268625066 +2.5481771308936310 +10.3854872472542592 +5.6109583454163001 +1.2793285826310643 +14.2145433936236838 +5.0115954513560546 +4.6736257029693311 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +14.7601184000568590 +9.2063618136850334 +5.3733196920580992 +14.9621808235400202 +7.5522377758777850 +6.6748724207248156 +13.4861217909613345 +6.2947789308450908 +9.1130803766540005 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +11.5274909098487583 +6.6373588103732137 +14.3077035058116682 +13.8218679106338183 +5.5365867045727661 +14.6294659992070848 +14.9364341531333107 +8.9621416849378264 +11.8727324665991674 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +10.9764995567023966 +7.4727256773459869 +19.8797587210222275 +10.5638623996769727 +6.7355862879971484 +15.3427479696982516 +14.7730047964071467 +6.2756182511041372 +16.3279534497336734 +13.5429160724491666 +9.5361769634243423 +19.6426877154950787 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +14.7916515469382421 +14.2816237882065309 +3.3797357458584583 +12.5501229208306757 +13.5544125333464613 +0.2229446752189353 +14.8851141981239028 +10.8202275599755673 +1.5109100749250302 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +10.2251848487736119 +13.2325485079401659 +9.8753308406590374 +12.1627344326544709 +12.7861572930515202 +8.4779169365640250 +10.8243687968498481 +12.0420308818265056 +7.5224696854719397 +12.1496478040613365 +13.5449814774089479 +9.5554150105024647 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +14.5360080910664777 +10.4112386778402453 +12.6878367956508988 +14.5401586039839792 +10.0038647839579440 +11.0805875612635809 +13.8608233334647952 +12.3540202008306981 +11.5600742872069731 +11.2137213596890000 +10.6153094480978325 +12.6382173759649614 +13.6667367580294439 +14.0141661816363534 +14.8445669054948333 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +11.6812259245979515 +13.9160635076280741 +17.1142524409288228 +13.2252843493755616 +11.3104312774579547 +18.8463187708903632 +10.2969726760120217 +13.5735837307194362 +16.9274149013707174 +14.5484423416647264 +14.2728239374589307 +18.1648494702148504 +12.1121498405229744 +10.6586843478587099 +17.5592785599267742 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +14.0876307378348837 +18.9356998231911469 +3.9490319333486923 +14.4566073800425841 +17.7034428446484604 +4.2158159211154995 +12.0375810304219222 +16.4706020687049275 +1.3314408058193639 +10.0147557338273447 +19.6551622545138471 +4.5772960711320723 +10.4134292474183034 +18.6997303368635066 +1.7607250469699816 +12.7174081929337248 +18.8833933907846472 +0.0167848559783718 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +10.3719449281605076 +19.8103469585473100 +7.4247815593339208 +13.5815447984483324 +15.4329874305955190 +5.7372552161446952 +12.9565675623052972 +18.1991812687241783 +8.3301647316925624 +14.5139698549894405 +15.8264769696425809 +9.8929224861620675 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +14.1730728863995292 +18.7853205080859418 +12.7569779923039039 +11.5069303326321979 +19.5577932786985436 +13.0820107252652882 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +14.2477691876824526 +19.0874965754834740 +17.6022129924633504 +14.2605567530194026 +15.7714594962642494 +16.9188372067287141 +10.1004498451458762 +18.9424230691569520 +16.1415305772765798 +13.9758108225928357 +17.4344671720420905 +19.0153978872629068 +13.0456258591763881 +15.0300791334677992 +18.6470592226488492 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +19.0421644512576478 +0.1110865138833930 +3.7337473945490069 +16.6878337834015902 +4.3237725552212183 +1.8655501297024442 +18.6654576486595296 +0.6908553508798563 +2.2928910409962713 +19.9154683253095435 +2.4926257764192314 +4.9616016867514139 +19.7833670117321923 +4.0494353712292614 +0.3936521613195942 +16.1797254569442579 +1.8908009678804352 +2.8829039465130659 +16.4086936578005584 +2.5736949130478992 +4.8138031341996772 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +17.2769465297835758 +0.1378071377482869 +8.5406476617232325 +16.9809487421796987 +2.1151995255310747 +7.3882429596047370 +18.8600412489591598 +2.8805013855540791 +8.2656488453416461 +18.1942458367322217 +1.3963257180914304 +6.4032828014924013 +16.9573422980719606 +4.3157153642119992 +9.0701538884995472 +17.6794552597908954 +2.7943721628365132 +8.9719932180434760 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +16.5198313181023195 +1.4982821984794936 +12.2555397010652349 +17.3880397283452091 +4.3827298640398640 +14.9993447301251379 +19.5209822704437599 +0.4443032593999899 +13.7770087416204152 +19.8948537551397315 +0.4983877075670113 +12.5366213969831257 +18.9261623409457087 +2.9163129463609136 +13.9441638769380631 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +19.2690458797141737 +0.2234797292400960 +16.9746461119998742 +19.2419706461741100 +4.4343192198184598 +16.5519293125461999 +16.8779968223881518 +0.6561422426680080 +16.0365577995907138 +19.4159240478823349 +1.7364393060322221 +19.5176328649368145 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +15.4738175463309418 +6.7048820953284167 +2.3017241253250060 +16.8488231409391460 +8.1451343638878004 +1.3329860613026692 +15.1617815457907064 +9.2364182820119609 +0.5653060157856495 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +15.1048778573899778 +6.8789562639828219 +5.6341747880361348 +17.4405790073111326 +8.5887803325724672 +5.0656224514148986 +19.5584809627543308 +6.3620959696350585 +5.9737848264411486 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +16.7616742578590276 +9.1091409880723955 +13.8181567737015936 +17.2554531123664283 +5.5614424623769327 +12.3647076540819523 +17.0440595925778062 +6.6923891261590107 +12.8584660269844413 +17.4211691978690055 +8.2535706371976580 +13.1384170145603569 +18.4677174628455063 +9.8337417748191829 +10.6448216272314760 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +17.6084745813862362 +9.2095845931776505 +18.2292614356700184 +19.4461859188322066 +7.4565290229064454 +16.1343589622077630 +15.2293121128447844 +9.6747272364504653 +19.6192401320742604 +16.8119028801814210 +6.2387523236339151 +17.4756460936936548 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +17.9395494827305022 +12.2002357859779096 +3.9213992629855374 +18.4881491536212970 +10.8275054723195439 +0.5758844333704736 +16.3773459048556447 +11.4291551824532256 +1.1397398543649275 +18.8722992734438755 +10.6838517546845253 +2.2311175329684114 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +16.9404726918758755 +13.6894410585637605 +8.9412444990816748 +19.4016266604370671 +10.7357699795316375 +6.8626450802225243 +18.6169865754826560 +12.2997525302220119 +6.7820553515729740 +16.5843651236635949 +14.9415581456303936 +9.4058031365575836 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +18.9092220899657306 +11.0005041108965997 +11.4947275597623939 +18.6027094791978271 +14.4490607063415428 +10.3820556665622821 +17.6560967341896671 +13.3153618505281344 +12.5826118677754817 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +16.9663567922930554 +13.4129956075376366 +18.6329480185432601 +16.6181860869302014 +10.7002979992475993 +17.1547363818057299 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +15.2670067384965051 +15.9202734415428822 +4.3014938839025252 +17.4789079691882847 +15.0445831266166348 +4.0894919659983850 +19.5739430054198529 +15.3225883868616499 +0.3416005055139921 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +17.9298280465174180 +18.3494948150584243 +9.8596063732403838 +18.8801641172921038 +16.3173040995890837 +7.8060764996903291 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +16.3638701924247130 +15.3678689561585262 +10.9186130083383564 +16.4292940465175157 +18.2268364558343734 +13.2854325259898509 +18.7922884875168954 +15.3117801785685650 +13.3840961105625276 +15.3544044004937597 +18.5586635403954858 +10.3066545099235007 +15.1042757184211922 +15.9093367587460239 +12.1306234441035024 +17.0861248297439587 +15.3168307084181787 +13.5644548880758400 +15.2401191119576485 +15.7377418072453708 +14.6717514898516210 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +19.1816276352674322 +17.6080662724331098 +19.9611911045737074 +18.6528291205650447 +17.4477157472711006 +18.7892375997657339 +17.8522323968585930 +17.8609156579324519 +19.6887716060662541 +15.3468135882317327 +15.0899357092350765 +19.5838416239749478 +17.8249129656457157 +17.6315760440689715 +15.7988066042474369 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 diff --git a/examples/machsuite/md/grid/md.py b/examples/machsuite/md/grid/md.py new file mode 100644 index 0000000000..7f7932a9e9 --- /dev/null +++ b/examples/machsuite/md/grid/md.py @@ -0,0 +1,265 @@ +import allo +from allo.ir.types import float64,int32, Int + +# Define MIN and MAX functions to replicate the C macros +nAtoms:int32=256 +domainEdge:float64=20.0 +blockSide:int32=4 +nBlocks:int32=blockSide*blockSide*blockSide +blockEdge:float64=domainEdge/blockSide +densityFactor:int32=10 +lj1:float64=1.5 +lj2:float64=2.0 + +def MIN(x:int32, y:Int(34))->int32: + return x if x < y else y + +def MAX(x:int32, y:Int(34))->int32: + return x if x > y else y + +# class dvector_t: +# def __init__(self, x:float64, y:float64, z:float64): +# self.x = x +# self.y = y +# self.z = z + +# class ivector_t: +# def __init__(self, x:int32, y:int32, z:int32): +# self.x = x +# self.y = y +# self.z = z + + +def md_x(n_points:int32[blockSide,blockSide,blockSide], + + position_x:float64[blockSide,blockSide,blockSide,densityFactor], + position_y:float64[blockSide,blockSide,blockSide,densityFactor], + position_z:float64[blockSide,blockSide,blockSide,densityFactor])->float64[blockSide,blockSide,blockSide,densityFactor]: + + + b0_x: int32=0 + b0_y: int32=0 + b0_z: int32=0 + b1_x: int32=0 + b1_y: int32=0 + b1_z: int32=0 + q_x: float64=0.0 + q_y: float64=0.0 + q_z: float64=0.0 + p_x: float64=0.0 + p_y: float64=0.0 + p_z: float64=0.0 + + p_idx:int32=0 + q_idx:int32=0 + dx:float64=0.0 + dy:float64=0.0 + dz:float64=0.0 + r2inv:float64=0.0 + r6inv:float64=0.0 + potential:float64=0.0 + f:float64=0.0 + base_q_x: float64[densityFactor]=0.0 + base_q_y: float64[densityFactor]=0.0 + base_q_z: float64[densityFactor]=0.0 + sum_x:float64=0.0 + force_x:float64[blockSide,blockSide,blockSide,densityFactor]=0.0 + + q_idx_range:int32=0 + + # Iterate over the grid, block by block + for b0_x,b0_y,b0_z in allo.grid(blockSide,blockSide,blockSide): + # Iterate over the 3x3x3 (modulo boundary conditions) cube of blocks around b0 + for b1_x in range(MAX(0, b0_x - 1), MIN(blockSide, b0_x + 2)): + for b1_y in range(MAX(0, b0_y - 1), MIN(blockSide, b0_y + 2)): + for b1_z in range(MAX(0, b0_z - 1), MIN(blockSide, b0_z +2)): + q_idx_range = n_points[b1_x,b1_y,b1_z] + for q_idx in range(densityFactor): + base_q_x[q_idx] = position_x[b1_x,b1_y,b1_z, q_idx] + base_q_y[q_idx] = position_y[b1_x,b1_y,b1_z, q_idx] + base_q_z[q_idx] = position_z[b1_x,b1_y,b1_z, q_idx] + for p_idx in range(n_points[b0_x,b0_y,b0_z]): + p_x = position_x[b0_x,b0_y,b0_z,p_idx] + p_y = position_y[b0_x,b0_y,b0_z,p_idx] + p_z = position_z[b0_x,b0_y,b0_z,p_idx] + sum_x = force_x[b0_x,b0_y,b0_z,p_idx] + + for q_idx in range(q_idx_range): + q_x = base_q_x[q_idx] + q_y = base_q_y[q_idx] + q_z = base_q_z[q_idx] + if (q_x != p_x or q_y != p_y or q_z != p_z): + dx = p_x - q_x + dy = p_y - q_y + dz = p_z - q_z + r2inv = 1.0 / (dx * dx + dy * dy + dz * dz) + else: + r2inv=(domainEdge*domainEdge*3.0)*1000 + r6inv = r2inv * r2inv * r2inv + potential = r6inv * (lj1 * r6inv - lj2) + f = r2inv * potential + sum_x += f * dx + + force_x[b0_x,b0_y,b0_z,p_idx]=sum_x + return force_x + +def md_y(n_points:int32[blockSide,blockSide,blockSide], + + position_x:float64[blockSide,blockSide,blockSide,densityFactor], + position_y:float64[blockSide,blockSide,blockSide,densityFactor], + position_z:float64[blockSide,blockSide,blockSide,densityFactor])->float64[blockSide,blockSide,blockSide,densityFactor]: + + + b0_x: int32=0 + b0_y: int32=0 + b0_z: int32=0 + b1_x: int32=0 + b1_y: int32=0 + b1_z: int32=0 + q_x: float64=0.0 + q_y: float64=0.0 + q_z: float64=0.0 + p_x: float64=0.0 + p_y: float64=0.0 + p_z: float64=0.0 + + p_idx:int32=0 + q_idx:int32=0 + dx:float64=0.0 + dy:float64=0.0 + dz:float64=0.0 + r2inv:float64=0.0 + r6inv:float64=0.0 + potential:float64=0.0 + f:float64=0.0 + base_q_x: float64[densityFactor]=0.0 + base_q_y: float64[densityFactor]=0.0 + base_q_z: float64[densityFactor]=0.0 + sum_y:float64=0.0 + force_y:float64[blockSide,blockSide,blockSide,densityFactor]=0.0 + + q_idx_range:int32=0 + + # Iterate over the grid, block by block + for b0_x,b0_y,b0_z in allo.grid(blockSide,blockSide,blockSide): + # Iterate over the 3x3x3 (modulo boundary conditions) cube of blocks around b0 + for b1_x in range(MAX(0, b0_x - 1), MIN(blockSide, b0_x + 2)): + for b1_y in range(MAX(0, b0_y - 1), MIN(blockSide, b0_y + 2)): + for b1_z in range(MAX(0, b0_z - 1), MIN(blockSide, b0_z +2)): + q_idx_range = n_points[b1_x,b1_y,b1_z] + for q_idx in range(densityFactor): + base_q_x[q_idx] = position_x[b1_x,b1_y,b1_z, q_idx] + base_q_y[q_idx] = position_y[b1_x,b1_y,b1_z, q_idx] + base_q_z[q_idx] = position_z[b1_x,b1_y,b1_z, q_idx] + for p_idx in range(n_points[b0_x,b0_y,b0_z]): + p_x = position_x[b0_x,b0_y,b0_z,p_idx] + p_y = position_y[b0_x,b0_y,b0_z,p_idx] + p_z = position_z[b0_x,b0_y,b0_z,p_idx] + sum_y = force_y[b0_x,b0_y,b0_z,p_idx] + + for q_idx in range(q_idx_range): + q_x = base_q_x[q_idx] + q_y = base_q_y[q_idx] + q_z = base_q_z[q_idx] + if (q_x != p_x or q_y != p_y or q_z != p_z): + dx = p_x - q_x + dy = p_y - q_y + dz = p_z - q_z + r2inv = 1.0 / (dx * dx + dy * dy + dz * dz) + else: + r2inv=(domainEdge*domainEdge*3.0)*1000 + r6inv = r2inv * r2inv * r2inv + potential = r6inv * (lj1 * r6inv - lj2) + f = r2inv * potential + sum_y += f * dy + + + force_y[b0_x,b0_y,b0_z,p_idx]=sum_y + return force_y + +def md_z(n_points:int32[blockSide,blockSide,blockSide], + + position_x:float64[blockSide,blockSide,blockSide,densityFactor], + position_y:float64[blockSide,blockSide,blockSide,densityFactor], + position_z:float64[blockSide,blockSide,blockSide,densityFactor])->float64[blockSide,blockSide,blockSide,densityFactor]: + + + b0_x: int32=0 + b0_y: int32=0 + b0_z: int32=0 + b1_x: int32=0 + b1_y: int32=0 + b1_z: int32=0 + q_x: float64=0.0 + q_y: float64=0.0 + q_z: float64=0.0 + p_x: float64=0.0 + p_y: float64=0.0 + p_z: float64=0.0 + + p_idx:int32=0 + q_idx:int32=0 + dx:float64=0.0 + dy:float64=0.0 + dz:float64=0.0 + r2inv:float64=0.0 + r6inv:float64=0.0 + potential:float64=0.0 + f:float64=0.0 + base_q_x: float64[densityFactor]=0.0 + base_q_y: float64[densityFactor]=0.0 + base_q_z: float64[densityFactor]=0.0 + sum_z:float64=0.0 + force_z:float64[blockSide,blockSide,blockSide,densityFactor]=0.0 + + q_idx_range:int32=0 + + # Iterate over the grid, block by block + for b0_x,b0_y,b0_z in allo.grid(blockSide,blockSide,blockSide): + # Iterate over the 3x3x3 (modulo boundary conditions) cube of blocks around b0 + for b1_x in range(MAX(0, b0_x - 1), MIN(blockSide, b0_x + 2)): + for b1_y in range(MAX(0, b0_y - 1), MIN(blockSide, b0_y + 2)): + for b1_z in range(MAX(0, b0_z - 1), MIN(blockSide, b0_z +2)): + q_idx_range = n_points[b1_x,b1_y,b1_z] + for q_idx in range(densityFactor): + base_q_x[q_idx] = position_x[b1_x,b1_y,b1_z, q_idx] + base_q_y[q_idx] = position_y[b1_x,b1_y,b1_z, q_idx] + base_q_z[q_idx] = position_z[b1_x,b1_y,b1_z, q_idx] + for p_idx in range(n_points[b0_x,b0_y,b0_z]): + p_x = position_x[b0_x,b0_y,b0_z,p_idx] + p_y = position_y[b0_x,b0_y,b0_z,p_idx] + p_z = position_z[b0_x,b0_y,b0_z,p_idx] + sum_z = force_z[b0_x,b0_y,b0_z,p_idx] + + for q_idx in range(q_idx_range): + q_x = base_q_x[q_idx] + q_y = base_q_y[q_idx] + q_z = base_q_z[q_idx] + if (q_x != p_x or q_y != p_y or q_z != p_z): + dx = p_x - q_x + dy = p_y - q_y + dz = p_z - q_z + r2inv = 1.0 / (dx * dx + dy * dy + dz * dz) + else: + r2inv=(domainEdge*domainEdge*3.0)*1000 + r6inv = r2inv * r2inv * r2inv + potential = r6inv * (lj1 * r6inv - lj2) + f = r2inv * potential + sum_z += f * dz + + force_z[b0_x,b0_y,b0_z,p_idx]=sum_z + return force_z + +s_x=allo.customize(md_x) +print(s_x.module) +s_x.build() + +s_y=allo.customize(md_y) +print(s_y.module) +s_y.build() + +s_z=allo.customize(md_z) +print(s_z.module) +s_z.build() + +print("build success") diff --git a/examples/machsuite/md/grid/md_kernel_test.py b/examples/machsuite/md/grid/md_kernel_test.py new file mode 100644 index 0000000000..8999c73e35 --- /dev/null +++ b/examples/machsuite/md/grid/md_kernel_test.py @@ -0,0 +1,122 @@ +import random +import md +import allo +import numpy as np + +# Assuming nAtoms and maxNeighbors are predefined constants +nAtoms = 256 # Example value +maxNeighbors = 16 # Example value +domainEdge=20 + +def distance(position_x, position_y, position_z, i, j): + if(i!=j): + delx = position_x[i] - position_x[j] + dely = position_y[i] - position_y[j] + delz = position_z[i] - position_z[j] + r2inv = delx**2 + dely**2 + delz**2 + else: + r2inv=(domainEdge*domainEdge*3.0)*1000 + return r2inv + +def insert_in_order(curr_dist, curr_list, j, dist_ij): + pos = maxNeighbors - 1 + curr_max = curr_dist[pos] + if dist_ij > curr_max: + return + + for dist in range(pos, 0, -1): + if dist_ij < curr_dist[dist]: + curr_dist[dist] = curr_dist[dist - 1] + curr_list[dist] = curr_list[dist - 1] + else: + break + pos -= 1 + + curr_dist[dist] = dist_ij + curr_list[dist] = j + +def build_neighbor_list(position_x, position_y, position_z): + total_pairs = 0 + NL = [[0 for _ in range(maxNeighbors)] for _ in range(nAtoms)] + + for i in range(nAtoms): + curr_list = [0] * maxNeighbors + curr_dist = [float('inf')] * maxNeighbors + + for j in range(nAtoms): + if i == j: + continue + dist_ij = distance(position_x, position_y, position_z, i, j) + insert_in_order(curr_dist, curr_list, j, dist_ij) + + for k in range(maxNeighbors): + NL[i][k] = curr_list[k] + if curr_dist[k] != float('inf'): + total_pairs += 1 + + return total_pairs, NL + +def populate_neighbor_list(curr_dist, curr_list, i, NL): + valid_pairs = 0 + for neighbor_iter in range(maxNeighbors): + NL[i][neighbor_iter] = curr_list[neighbor_iter] + valid_pairs += 1 + return valid_pairs + +def parse_data(file):# refers to + data_arrays = [] + current_array = [] + + with open(file, 'r') as f: + for line in f: + if line.strip() == '%%': + if current_array: + data_arrays.append(current_array) + current_array = [] + else: + num = float(line.strip()) + current_array.append(num) + + data_arrays.append(current_array) + return data_arrays + +# Main function equivalent in Python +if __name__ == "__main__": + input = parse_data("input.data") + check = parse_data("check.data") + check_x=np.array(check[0][0:640]).astype(np.float64).reshape((4,4,4,10)) + check_y=np.array(check[0][640:1280]).astype(np.float64).reshape((4,4,4,10)) + check_z=np.array(check[0][1280:1920]).astype(np.float64).reshape((4,4,4,10)) + + + forceX=np.zeros(shape=((4,4,4,10)), dtype=float) + forceY=np.zeros(shape=((4,4,4,10)), dtype=float) + forceZ=np.zeros(shape=((4,4,4,10)), dtype=float) + + n_points=np.array(input[0]).astype(np.int32).reshape((4,4,4)) + position_x = np.array(input[1][0:640]).astype(np.float64).reshape((4,4,4,10)) + position_y = np.array(input[1][640:1280]).astype(np.float64).reshape((4,4,4,10)) + position_z = np.array(input[1][1280:1920]).astype(np.float64).reshape((4,4,4,10)) + + print("here") + + s_x = allo.customize(md.md_x) + mod_x = s_x.build() + s_y = allo.customize(md.md_y) + mod_y = s_y.build() + s_z = allo.customize(md.md_z) + mod_z = s_z.build() + + + forceX=mod_x(n_points,position_x, position_y, position_z) + forceY=mod_y(n_points,position_x, position_y, position_z) + forceZ=mod_z(n_points,position_x, position_y, position_z) + #The actual output has more accurate output than check data + np.testing.assert_allclose(forceX,check_x, rtol=1e-5, atol=1e-5) + np.testing.assert_allclose(forceY,check_y, rtol=1e-5, atol=1e-5) + np.testing.assert_allclose(forceZ,check_z, rtol=1e-5, atol=1e-5) + + + + + diff --git a/examples/machsuite/md/grid/md_opt.py b/examples/machsuite/md/grid/md_opt.py new file mode 100644 index 0000000000..7bd3cadf3f --- /dev/null +++ b/examples/machsuite/md/grid/md_opt.py @@ -0,0 +1,173 @@ +import allo +from allo.ir.types import int32, float32 +import allo.ir.types as T +import os +import json +import pytest +import numpy as np + +# Define MIN and MAX functions to replicate the C macros +nAtoms:int32=256 +domainEdge:float32=20.0 +blockSide:int32=4 +nBlocks:int32=blockSide*blockSide*blockSide +blockEdge:float32=domainEdge/blockSide +densityFactor:int32=10 +lj1:float32=1.5 +lj2:float32=2.0 + + + +def md_top(concrete_type,N,M): + + def md[T: (float32, int32), N: int32 , M:int32 + ](n_points:"T[N,N,N]",position_x:"T[N,N,N,M]", + position_y:"T[N,N,N,M]",position_z:"T[N,N,N,M]", + force_x:"T[N,N,N,M]",force_y:"T[N,N,N,M]", + force_z:"T[N,N,N,M]"): + b1_x_hi:int32 + b1_x_lo:int32 + b1_y_hi:int32 + b1_y_lo:int32 + b1_z_hi:int32 + b1_z_lo:int32 + p_x:float32 + p_y:float32 + p_z:float32 + sum_x:float32 + sum_y:float32 + sum_z:float32 + q_z:float32 + q_x:float32 + q_y:float32 + dx:float32 + dy:float32 + dz:float32 + r2inv:float32 + r6inv:float32 + potential:float32 + f:float32 + + + # Iterate over the grid, block by block + for b0_x in allo.grid(N): + for b0_y in allo.grid(N): + for b0_z in allo.grid(N): + if(b0_x==1): + b1_x_lo=0 + else: + b1_x_lo=b0_x-1 + if(b0_y==1): + b1_y_lo=0 + else: + b1_y_lo=b0_y-1 + if(b0_z==1): + b1_z_lo=0 + else: + b1_z_lo=b0_z-1 + if(b0_x==N-1): + b1_x_hi=N + else: + b1_x_hi=b0_x+2 + if(b0_y==N-1): + b1_y_hi=N + else: + b1_y_hi=b0_y+2 + if(b0_z==N-1): + b1_z_hi=N + else: + b1_z_hi=b0_z+2 + # Iterate over the 3x3x3 (modulo boundary conditions) cube of blocks around b0 + for b1_x in range(b1_x_lo, b1_x_hi): + for b1_y in range(b1_y_lo, b1_y_hi): + for b1_z in range(b1_z_lo, b1_z_hi): + #q_idx_range = n_points[b1_x,b1_y,b1_z] + # for i in range(densityFactor): + # base_q_x[i] = position_x[b1_x,b1_y,b1_z, i] + # base_q_y[i] = position_y[b1_x,b1_y,b1_z, i] + # base_q_z[i] = position_z[b1_x,b1_y,b1_z, i] + ub0: int32 = n_points[b1_x,b1_y,b1_z] + for p_idx in range(ub0): + p_x = position_x[b0_x,b0_y,b0_z,p_idx] + p_y = position_y[b0_x,b0_y,b0_z,p_idx] + p_z = position_z[b0_x,b0_y,b0_z,p_idx] + sum_x = force_x[b0_x,b0_y,b0_z,p_idx] + sum_y = force_y[b0_x,b0_y,b0_z,p_idx] + sum_z = force_z[b0_x,b0_y,b0_z,p_idx] + ub1: int32 = n_points[b1_x,b1_y,b1_z] + for q_idx in range(ub1): + q_x = position_x[b1_x,b1_y,b1_z, q_idx] + q_y = position_y[b1_x,b1_y,b1_z, q_idx] + q_z = position_z[b1_x,b1_y,b1_z, q_idx] + if (q_x != p_x or q_y != p_y or q_z != p_z): + dx = p_x - q_x + dy = p_y - q_y + dz = p_z - q_z + r2inv = 1.0 / (dx * dx + dy * dy + dz * dz) + else: + r2inv=(domainEdge*domainEdge*3.0)*1000 + r6inv = r2inv * r2inv * r2inv + potential = r6inv * (lj1 * r6inv - lj2) + f = r2inv * potential + sum_x += f * dx + sum_y += f * dy + sum_z += f * dz + + force_x[b0_x,b0_y,b0_z,p_idx]=sum_x + force_y[b0_x,b0_y,b0_z,p_idx]=sum_y + force_z[b0_x,b0_y,b0_z,p_idx]=sum_z + + sch=allo.customize(md, instantiate=[concrete_type,N,M]) + print(sch.module) + return sch + + +def parse_data(file):# refers to + data_arrays = [] + current_array = [] + + with open(file, 'r') as f: + for line in f: + if line.strip() == '%%': + if current_array: + data_arrays.append(current_array) + current_array = [] + else: + num = float(line.strip()) + current_array.append(num) + + data_arrays.append(current_array) + return data_arrays + +def test_md(): + N=4 + M=10 + concrete_type=float32 + sch=md_top(concrete_type,N,M) + mod=sch.build(target="vivado_hls",mode="csynth", project="grid.prj") + print(mod) + + input = parse_data("input.data") + check = parse_data("check.data") + check_x=np.array(check[0][0:640]).astype(np.float32).reshape((4,4,4,10)) + check_y=np.array(check[0][640:1280]).astype(np.float32).reshape((4,4,4,10)) + check_z=np.array(check[0][1280:1920]).astype(np.float32).reshape((4,4,4,10)) + + + force_x=np.zeros((4,4,4,10)).astype(np.float32) + force_y=np.zeros((4,4,4,10)).astype(np.float32) + force_z=np.zeros((4,4,4,10)).astype(np.float32) + n_points=np.array(input[0]).astype(np.int32).reshape((4,4,4)) + position_x = np.array(input[1][0:640]).astype(np.float32).reshape((4,4,4,10)) + position_y = np.array(input[1][640:1280]).astype(np.float32).reshape((4,4,4,10)) + position_z = np.array(input[1][1280:1920]).astype(np.float32).reshape((4,4,4,10)) + mod(n_points,position_x,position_y,position_z,force_x,force_y,force_z) + np.testing.assert_allclose(force_x,check_x, rtol=1e-5, atol=1e-5) + np.testing.assert_allclose(force_y,check_y, rtol=1e-5, atol=1e-5) + np.testing.assert_allclose(force_z,check_z, rtol=1e-5, atol=1e-5) + + + + +if __name__ == "__main__": + test_md() diff --git a/examples/machsuite/md/knn/check.data b/examples/machsuite/md/knn/check.data new file mode 100644 index 0000000000..9fbeaa09ca --- /dev/null +++ b/examples/machsuite/md/knn/check.data @@ -0,0 +1,771 @@ +%% +-0.0045795189517608 +0.0010006544024939 +0.0091353696597257 +0.0042083936032755 +0.0593902131124659 +0.0046532535512106 +0.0006000365319329 +-0.0000749367839938 +0.0753128895754742 +0.1148295162832887 +0.0048178879330691 +-0.0009192037800680 +0.0472773018929201 +0.0038046401480434 +-0.0412273030911962 +-0.0000508553772453 +0.0102953805332252 +0.0007925298799086 +0.0007545233671592 +0.0001392802906365 +-0.0171184405409007 +-0.1203620059221036 +-0.0428603544791572 +-0.0067776896522974 +0.0114879325563022 +0.0023562821077880 +0.0000391861670495 +0.0000165070167933 +-0.0128529391671262 +-0.0080499826906790 +0.0138042637110846 +0.0566116805226414 +-0.0440312338098056 +0.0053294616085111 +0.0010526192037506 +0.0001147188716166 +0.0426656532030718 +-0.0000212247716140 +0.0010476259487722 +0.0030316460754411 +0.0012217212317550 +0.0016100161283132 +-0.2919842006498220 +-0.0001263469957246 +0.0709385190313541 +0.0879389850840536 +-0.0317543611690016 +0.0038558278418436 +-0.1048689889554224 +-0.0017563368590621 +0.0016546462302004 +0.0005332160253217 +0.0052461792716530 +0.1976687090519876 +-0.0412878437605855 +0.0009642577260911 +-0.0014795854002822 +-0.0121757721007683 +-0.0028504232314383 +0.0008557032670345 +-0.1333490342654787 +-0.1795839529229207 +0.0011741467235024 +0.0380988958748112 +0.0098290177403689 +-0.0059394288417645 +-0.0011112390377251 +0.0019360813285793 +-0.1790140341055154 +-0.0032822499942972 +-0.0642028730865273 +0.3213302258114489 +-0.0795103495668107 +0.0009249859997316 +-0.2563673304702790 +0.0263929082423519 +0.1106130094452820 +0.0423576663203423 +-0.0012599904430325 +-0.0468686511629383 +-0.0044725886187494 +0.0002759794502637 +-0.0468025687946449 +0.1526817352499845 +0.0032008593634687 +0.0010082430260856 +0.3705908922719823 +-0.0003239373355089 +-0.0011621009219526 +-0.0101502302074965 +-0.0176873827812899 +-0.0028082644015579 +-0.0562869461910865 +0.0164525952082818 +-0.0389120305315647 +-0.0002934752613145 +0.0170772842771684 +0.0005685548421083 +0.3973848498696269 +0.0156659068077403 +-0.5460767881222509 +0.0055272732361114 +-0.0189348407404303 +-0.1714603595644497 +-0.0483845953470964 +0.0033901275017676 +0.0216360228752040 +-0.0084529293853750 +0.0001315032347755 +-0.0034959747577141 +-0.0009674478125459 +0.0086731771760339 +0.3298190943502501 +0.0014037974609553 +-0.0708439953985395 +0.0404965424040329 +-0.0024431770515170 +0.0010255436882137 +-0.0131284830784892 +0.0001107894045428 +0.0043489999572390 +-0.0025900388331786 +-0.0004115483005159 +0.0029441987217273 +0.0267318335418436 +0.0004492962577070 +-0.0000118814823774 +-0.0111666797134007 +0.0002612526527235 +-0.0108123629566951 +-0.0021967544953101 +-0.0219334991645086 +-0.0008072705431594 +-0.0062180153691900 +0.0696851989869954 +0.0116706349082798 +-0.0009197466653283 +0.0607571882232662 +-0.0090764551016809 +-0.0297350634328291 +-0.0028854968545133 +0.0111844408520772 +0.0702751037497208 +-0.0274510576702956 +0.0108620503230867 +-0.0016654135342545 +0.0055536903088580 +0.0040215988538506 +0.0013443186434745 +-0.0135661906202453 +-0.0024661114479737 +-0.0005830143302719 +0.0046680270345165 +-0.0652088129568841 +0.0450028719225990 +-0.0101447240127669 +0.0376052470474780 +0.0005240782658987 +-0.0224426423294674 +-0.0002910927982936 +-0.0051747127483074 +-0.0150230189973244 +-0.0322002731555954 +0.1622415321561700 +0.0229398419088130 +-0.0446167817688489 +-0.0287335659308238 +-0.0422364612898884 +-0.0000963835163646 +0.0036370411706518 +0.0280013819737468 +0.0048581820747142 +-0.0081577795803511 +-0.0175719109984944 +0.0775684556042425 +0.0190416527519842 +-0.0076179361251093 +0.0004652525750220 +-0.0009343774153151 +-0.0231144603615749 +0.0029893502908488 +0.0001801247605473 +0.0010268143764088 +0.0034433621848123 +0.1070704879119819 +0.0230402269038010 +-0.0008276849658398 +-0.0141396876251974 +0.1524687750685142 +0.0154750738627719 +0.0106527073918973 +0.1390133656788715 +0.0235710403959843 +-0.0344766425756731 +-0.1148909896693189 +0.0015579206478781 +0.1645774774300167 +-0.0039179163868212 +0.3493697437410079 +0.0035133934524417 +-0.0216271592954963 +0.1302617696357277 +-0.1703575644791838 +-0.3869387858113245 +0.0355531941524447 +0.0237223616175110 +0.0299049624989864 +-0.0020402994586124 +0.0002027347657051 +-0.0007713403730759 +-0.0299788776589361 +-0.0020198567010444 +0.0185155204413976 +-0.0735885335513550 +0.0024034012998256 +-0.0684886891186168 +0.0007281890893727 +-0.0040434798710332 +-0.0455652681632317 +-0.0036143754165868 +0.0208290447385603 +-0.0795234886573328 +-0.0000522834042340 +-0.0019925194859428 +0.0013486672055835 +-0.3495038995226429 +0.0419544425375063 +0.0378408511170425 +0.0024016736757507 +-0.0026407530717009 +-0.0037870789867693 +0.0004175645624719 +0.0299430948513492 +-0.0073927860855057 +-0.0123112251762417 +-0.0136111792788654 +-0.0300323763139989 +0.0635715384111979 +-0.0004256208694251 +0.0268540142335609 +0.0143655791137093 +-0.0092086363985898 +0.0174422479137566 +-0.0174821426174726 +0.0447451301957200 +0.0022557391534384 +-0.1373513130683182 +-0.0011967822510849 +0.0007376061506525 +-0.0001246538476983 +0.0454143283079350 +-0.0009430098858331 +-0.1471428921985210 +0.0033023440310946 +-0.0037655439177521 +-0.0012653569888536 +%% +0.0023366376424289 +0.0003274706321093 +-0.0317479641666915 +0.0012419462439193 +0.0637072217014040 +0.0515247773607932 +0.0084045555673605 +0.0005624979925615 +0.0080552120116362 +-0.0556008960067645 +-0.0080103578063896 +-0.0068012877531211 +-0.0094373727621233 +0.0040491473997874 +0.1838488708935814 +-0.0000329217738144 +-0.0486651522720374 +-0.0020812533673982 +-0.0001865388585123 +-0.0011163309733541 +0.0278902562968541 +-0.1701359061526200 +0.0223444808569898 +0.0076336976576161 +-0.0035534307488968 +0.0078791535525673 +0.0011834506428879 +0.0034651769465794 +-0.0026456678554020 +-0.0003757237280991 +0.0204392592717834 +-0.1341136394015902 +0.1708886589100200 +0.0169252013985751 +-0.0003766157939695 +-0.0003324887616034 +-0.0308939263298839 +0.0002184454698729 +-0.0027649631618547 +-0.0130654958351564 +0.0023219393970790 +0.0019834044128723 +0.0001735693539581 +-0.0014243371464416 +-0.2379998639374943 +0.0337901919648708 +-0.0800381526645846 +-0.0042882016507604 +0.0095543650571517 +-0.0003561319504468 +0.0016866337868831 +0.0007368577037479 +0.0023084275797397 +-0.0425990197749463 +0.0240141812475105 +-0.0002574691461937 +0.0003193690063291 +-0.0125262146585251 +-0.0256253333202020 +0.0011553048731904 +-0.0318421152535022 +0.0375666593857264 +0.0014204053250233 +-0.1759238848951172 +0.0043839134142663 +0.0008433075880576 +-0.0002185312693791 +-0.0037839926180563 +-0.1993764437829915 +0.0031752022194020 +0.2198255398372332 +-0.2950945874465774 +0.1325234030790587 +0.0006446002998840 +-0.0941228296290855 +0.0258034128580267 +-0.0946892177713960 +0.2421010978137048 +-0.0007871048444721 +0.0410660104155664 +-0.0018648306017793 +0.0001157720230893 +-0.0029084922099082 +-0.2024342135417301 +0.0011865628025500 +-0.0023212217321001 +-0.1330767144835761 +0.0018370939411536 +0.0026763976180610 +0.0090248908717061 +0.0342410726204171 +-0.0014405021372105 +0.3023897312616984 +-0.0338972551110036 +0.0530617283566031 +-0.0001800754800253 +-0.0760380341554816 +-0.0010444867178764 +0.3076913346327718 +-0.0249657988992430 +0.0395407494884418 +-0.0013262154159867 +0.0134247098751451 +-0.0152856937009451 +-0.0027215020481674 +0.0033808602304749 +-0.0081973177823275 +-0.0006244932736350 +0.0004418447508018 +-0.0026540261962620 +0.0026224217557514 +0.0107719407465121 +0.4237093953585532 +-0.0067061534541944 +-0.3707297694857420 +-0.0429536112623487 +-0.0003548272938677 +-0.0015110681874581 +0.0003318723560599 +0.0083982660573683 +0.0015051986891214 +-0.0076625117130702 +-0.0000763039531262 +0.0050752984544254 +-0.0181594871889979 +-0.0001355499297827 +-0.0008031959876353 +0.0116819064236495 +0.0011946764139594 +0.0449968124493289 +0.0011508230180537 +-0.0135743895994105 +-0.0019691942483913 +-0.0132373148723370 +0.3698192133911120 +-0.0061370866386815 +-0.0000729034691551 +0.0186453375976536 +0.0119855587926925 +0.0218890264932470 +-0.0039330460108275 +0.0080792493352998 +-0.2394672890560277 +-0.0251952678329363 +0.0375433977375618 +0.0038995428668366 +0.0019955311865223 +-0.0018492365594615 +-0.0005520286146161 +-0.0261453751340513 +-0.0011075161069945 +0.0001948306751402 +-0.0044790436546044 +0.1889540789341556 +-0.0227193922159459 +-0.0054836019124442 +-0.1460147243572459 +-0.0003664681325090 +-0.0939104211081484 +-0.0154570498303793 +0.0001123255366511 +-0.0136088942649073 +0.0526088956811829 +-0.4238662874232183 +-0.0205412110766567 +0.0086878559725064 +0.1307735706335590 +-0.1133049718359686 +-0.0001045825111041 +-0.0026014797665092 +-0.0166498565389207 +-0.0308604792251989 +-0.0092910105418492 +0.0055174663365743 +0.0143293189093238 +0.2614724745817563 +0.0247773620378728 +0.0003831462057484 +-0.0013167642344193 +0.0187730446099219 +0.0052379121488160 +-0.0015940959040823 +0.0021975748335872 +0.0047359053913183 +-0.0111371379860461 +0.0145569002390629 +-0.0006418750407132 +-0.1464057061882958 +0.0912606924784732 +0.0084551029910644 +0.0077678520607954 +0.0341888748346538 +-0.0479023890543295 +0.0214990277589202 +0.0550477446675383 +0.0024907014211731 +0.0567838303071173 +-0.0016621172065412 +-0.0257821729016364 +0.0243891766729837 +0.0419936554597676 +0.0450860621847714 +0.1403281670891161 +0.1463614376976397 +-0.0017285937093979 +-0.0405585790724259 +-0.0481034606850254 +-0.0080034944849930 +-0.0001514350786818 +0.0010962928496224 +0.0356322486183008 +0.0116038104005805 +0.0103487323204759 +0.0901928901889105 +-0.0043284345085213 +-0.0175056197409945 +-0.0050159466691116 +-0.0001498369750154 +-0.0259007558420731 +-0.0031305723026013 +-0.0134227689148391 +-0.0104359111559650 +-0.0006359153097625 +-0.0002637271329941 +0.0008758023313190 +-0.4262596837197251 +-0.0271864123638465 +-0.0148677802658914 +0.0057793928931485 +-0.0003491377993326 +0.0004572245645245 +-0.0007924008463422 +0.0808090414918233 +0.0210423147466303 +0.0014013192489283 +0.0061641436821485 +0.0485863153347486 +0.1442332705438349 +-0.0000792767590709 +0.0069381503605460 +-0.0030704680578749 +0.0030640963993225 +0.0482341990542410 +0.0157785548694374 +0.0197977314964901 +-0.0000054396724673 +-0.0726394763631353 +-0.0005130689122156 +0.0090154796102442 +-0.0004177376502328 +-0.0409149941359858 +-0.0006041777520952 +-0.0952224642959121 +0.0190031262088979 +0.0021461123577084 +-0.0012753032555793 +%% +0.0003331512668661 +0.0002392120969401 +-0.0218611391798295 +-0.0043484272383932 +0.0329947799990490 +-0.0146782857920584 +-0.0043264753208002 +0.0002111559620985 +-0.0616769764841274 +0.0024402260802260 +0.0068561389518542 +0.0051228434822202 +0.0015556858914776 +-0.0030079565567761 +0.2801438646043106 +0.0002553439754180 +-0.0776834863713215 +0.0032178259599896 +-0.0000288724087788 +-0.0003847089647469 +-0.0633668376027912 +-0.0112524663991965 +0.0590707831589821 +-0.0056919888034930 +0.0024470720125280 +0.0012002520267324 +-0.0006168471515519 +-0.0748726901632676 +-0.0062071834250270 +0.0067230987356224 +-0.0262004152445645 +0.1698864827414849 +0.0669824617989436 +0.0101532262082429 +0.0003900035793537 +0.0005591346076319 +-0.0572891489425459 +-0.0007936995563046 +-0.0007021699658971 +0.0047530256937731 +0.0000974143274047 +0.0042961165362821 +-0.2852481524977619 +0.0018567269190672 +0.0513750314167724 +0.2330943247791502 +-0.0584476952568427 +0.0037015750519698 +0.1157746758480753 +-0.0029497571483984 +0.0003263178349143 +-0.0009411404605778 +0.0003596378839630 +-0.0709492495184697 +0.0356827223533080 +0.0009354610571981 +-0.0012980121078216 +-0.0567567502241796 +-0.0040607289581101 +-0.0007313617580492 +-0.0154257678128280 +0.0654912187330980 +0.0038889485552302 +-0.2905522136980022 +0.0026851646639413 +0.0007816373949054 +0.0013587960952252 +0.0016601308727936 +0.5603000262801787 +0.0006780042616553 +-0.0500807662723323 +0.0410674215399688 +0.4623328631161086 +-0.0019719369280860 +-0.1454303235918162 +0.0036884042652098 +-0.0828243512247075 +-0.3936253527887135 +0.0002505778812599 +-0.0158104643473662 +-0.0010161863868166 +0.0003279173705771 +0.0025764273051478 +-0.1626907358940115 +-0.0018993907695316 +0.0015298063401423 +-0.1781552297085376 +-0.0001909113161382 +-0.0079422450319257 +0.0255201419607594 +-0.0020390798176853 +0.0056911873564627 +0.1331656617175906 +0.0013727870340908 +-0.0126124160760607 +0.0015172696044835 +0.0248717371382690 +0.0014821198116345 +-0.4108352984041132 +0.0653666723806979 +-0.0431257796514816 +-0.0002968751529700 +0.0172399257956327 +0.0915130698215933 +-0.0015382964176610 +-0.0052289648198087 +-0.0197380798483629 +0.0049713429819444 +0.0004630283434048 +0.0014184876475261 +-0.0002099181478943 +-0.0085797884795251 +0.2002357351267306 +0.0009646486489415 +0.2090351871409680 +-0.0256913220244116 +0.0005049209977443 +-0.0019294137333642 +-0.0028997129696970 +-0.0021850374210273 +-0.0073238564504272 +-0.0011107178223412 +0.0002944720422556 +0.0098881318599914 +-0.0329406389557539 +-0.0003501107973728 +0.0005112082493486 +0.0024255012883502 +0.0001321747236266 +0.1051236954315492 +-0.0007499001911237 +0.0836681231925889 +-0.0053123333960179 +-0.0111641466718695 +-0.2095742719753632 +-0.0093385967473624 +-0.0020474154802312 +-0.0180564904661425 +0.0822950923266108 +0.0263247652423681 +0.0039636525475914 +-0.0082461979610267 +-0.1196296703912288 +-0.0039262893942859 +-0.1139517005709203 +-0.0011817949033491 +-0.0055312767275372 +-0.0005253057648256 +0.0000867237272117 +-0.0136913013204265 +0.0002079297964426 +-0.0001169896606389 +0.0739588590687230 +-0.0910231816311404 +-0.0023677683865490 +0.0087596902805567 +0.0135088043437074 +-0.0000928166893061 +-0.0224606779225434 +0.0142005245509785 +0.0001630922189449 +-0.0267438864579996 +-0.0021300964727106 +0.2063792487288936 +-0.0028357615413782 +-0.0070580837078370 +0.1889589560564129 +-0.0619377684469789 +0.0001128528766564 +0.0469392673932266 +-0.0839092463935101 +0.0226664366280997 +0.0078626075697730 +0.0216608457706066 +-0.2606512596199520 +0.2478995971183793 +0.0297534314122946 +-0.0008155620215197 +0.0004371884464687 +0.0332578076009335 +0.0108376628860144 +0.0000007824016011 +0.0015775486745661 +0.0014589425129476 +-0.1142393020213334 +0.0190785606654878 +-0.0006248384781040 +-0.1995323055061711 +0.2502031059197560 +-0.0169422107694874 +-0.0093248573023010 +0.0188242711288708 +-0.0047097087096664 +0.0767160302397170 +-0.0022254422717735 +0.0008329842963042 +-0.0688654127105466 +-0.0879815484345477 +0.0075719330453578 +-0.0042393898655229 +0.0226070124561855 +-0.1163466321045853 +0.1474058783526109 +0.1615328753760150 +-0.0065505097964318 +0.0013964798123428 +0.0045456406569018 +-0.0041245215557732 +0.0004197531876269 +-0.0005187860088975 +0.0112936957030108 +0.0025967044153008 +0.0218753509992570 +-0.1710207902692772 +-0.0034345509449755 +0.0644348346323744 +-0.0088243589631982 +-0.0033734274494978 +0.0120083767551926 +-0.0029241444429930 +-0.0068912192515364 +0.2619540409601694 +0.0004023182384380 +0.0008998462050639 +-0.0070081692366391 +-0.1810543739508146 +-0.0348855935088357 +-0.0182359604117160 +0.0011597708381245 +0.0019225304829568 +-0.0032813548962147 +0.0007034138528733 +0.0598153434231341 +-0.0050409856810312 +0.0004819880487538 +-0.0427970018552158 +-0.0044339270624758 +-0.1956870570977186 +0.0007194999056275 +-0.0209173932681773 +0.0082794876055903 +-0.0050261207363631 +0.0033376851343108 +0.0068452305011028 +-0.0089297311876238 +0.0004422536221071 +0.0464839568455993 +0.0015022400340921 +0.0004868431363263 +-0.0010306986922436 +0.0147385409694710 +-0.0003063028730447 +-0.2588093315853564 +0.0216622321431159 +0.0088582862311794 +0.0015241305792138 diff --git a/examples/machsuite/md/knn/input.data b/examples/machsuite/md/knn/input.data new file mode 100644 index 0000000000..bd7133f9ba --- /dev/null +++ b/examples/machsuite/md/knn/input.data @@ -0,0 +1,4868 @@ +%% +16.9663567922930554 +16.5198313181023195 +6.4862521901726744 +1.1261290806846831 +4.9304158903095656 +4.1877754014200370 +17.2769465297835758 +13.4839625274226194 +3.5962505548817258 +4.0229751789818655 +16.6181860869302014 +14.2477691876824526 +16.9809487421796987 +15.4738175463309418 +15.1048778573899778 +4.3259530790379968 +14.5360080910664777 +3.6751776717378926 +0.7918941140052675 +1.5637551126073275 +19.0421644512576478 +4.2264270650987248 +2.7221948728308938 +17.6084745813862362 +11.5392731253040548 +3.7449920941085066 +0.5593388063665081 +5.1749024607328264 +15.2670067384965051 +8.8344254870351335 +14.3228577296588071 +14.5401586039839792 +16.9404726918758755 +14.7916515469382421 +0.2553043509206231 +7.7791093202866755 +1.8529174511434725 +10.9764995567023966 +0.9776458988602766 +14.7601184000568590 +5.7463335278029710 +0.6901526125666906 +19.1816276352674322 +2.6225036447865557 +14.0876307378348837 +1.2703310110536179 +18.9092220899657306 +5.9217002569171031 +11.5274909098487583 +2.7667405433321446 +10.4125609669545192 +5.7179651739954398 +0.9264966192175300 +0.4078369905844157 +8.5627094608835197 +0.1878695309954036 +8.7470311216293606 +16.3638701924247130 +1.5337977621823875 +9.5778498699964629 +11.6812259245979515 +1.6534266893003142 +1.2420326806515858 +14.9621808235400202 +7.0609216245451680 +2.7868502187317352 +16.6878337834015902 +1.7365790812460604 +6.7124574349141106 +13.1989856058542436 +14.4566073800425841 +1.5683180324406867 +18.6528291205650447 +6.8847748576589751 +7.4655764254754544 +11.4428012989220580 +1.0222004863811358 +11.5697577060044843 +19.4461859188322066 +6.6489605584185973 +16.4292940465175157 +0.2671174645220583 +18.7922884875168954 +16.7616742578590276 +0.3080346042757222 +15.3544044004937597 +17.8522323968585930 +12.0375810304219222 +2.3433250384127384 +6.7851818082497601 +19.4016266604370671 +12.9129937211481938 +17.2554531123664283 +18.6169865754826560 +7.0635873061829768 +2.7753360501552873 +7.2980496507174255 +7.5209263497753573 +6.3481514363787506 +18.6654576486595296 +11.6978875453659832 +17.3880397283452091 +5.5222248313463975 +18.8600412489591598 +15.2293121128447844 +9.3434185430869618 +15.1042757184211922 +4.8773099951981260 +12.5501229208306757 +19.9154683253095435 +8.4629229031582209 +7.2893377266753587 +13.5593710328534520 +13.8608233334647952 +5.8797088939011255 +12.8839793112894601 +17.4405790073111326 +17.9395494827305022 +18.6027094791978271 +2.5361799008322228 +3.4171375951674676 +4.5097723740932185 +19.7833670117321923 +13.8218679106338183 +1.5366177225833804 +13.4861217909613345 +10.6721420669764644 +11.2137213596890000 +10.3072118232742849 +4.6449048171026357 +19.2690458797141737 +5.7260535593592010 +12.6059390612419442 +7.4437057468512062 +5.6869086257068098 +9.8137657385082306 +11.5155844463164172 +0.0829396211166469 +10.2251848487736119 +18.1942458367322217 +10.3719449281605076 +0.1127406837012356 +17.0440595925778062 +12.7208676027301557 +7.6183972435207252 +4.5572540788124876 +13.5815447984483324 +14.1730728863995292 +11.5069303326321979 +13.2252843493755616 +17.9298280465174180 +19.5584809627543308 +5.1435245717979949 +14.9364341531333107 +14.8851141981239028 +1.4978908165810179 +16.5843651236635949 +6.3220404025344026 +10.3854872472542592 +14.2605567530194026 +17.4789079691882847 +15.3468135882317327 +13.7989724102711797 +10.9439629278922013 +4.1428606667917336 +3.4519282140092651 +12.1627344326544709 +6.6217636841554288 +19.5739430054198529 +18.4881491536212970 +9.7656001860256918 +3.4972423917441855 +8.3680886517792246 +3.5361049273414475 +19.5209822704437599 +11.1227406322977824 +6.8807521681509005 +9.2086966788557518 +3.4308417925440269 +2.5039008240633098 +16.1797254569442579 +9.2503949873418794 +10.4225409750898521 +13.6667367580294439 +10.5638623996769727 +10.8243687968498481 +17.8249129656457157 +12.1496478040613365 +9.4177137526614665 +5.4550046025929149 +0.3318993707057750 +10.2969726760120217 +16.9573422980719606 +8.1464042436039126 +5.3422898020468619 +1.9227078446526487 +3.2022358476300394 +5.7624040984725564 +9.7272892059598330 +1.2970522785044105 +14.5484423416647264 +17.6794552597908954 +17.4211691978690055 +2.6044662735519992 +17.0861248297439587 +1.3829487716820774 +8.9909692671351333 +14.7730047964071467 +12.9565675623052972 +2.1591586300607557 +2.4370867633551181 +1.0557598401670412 +12.1121498405229744 +1.6494969174818297 +15.2401191119576485 +6.1742489453149219 +16.4086936578005584 +16.8119028801814210 +16.3773459048556447 +6.3275803150554522 +3.9240030976350608 +19.8948537551397315 +10.1004498451458762 +4.4876884404153135 +13.9758108225928357 +14.2224777464941372 +7.4437431561227392 +13.0456258591763881 +14.2145433936236838 +18.9261623409457087 +19.2419706461741100 +0.3172371695158291 +18.4677174628455063 +8.4064449031482127 +16.8488231409391460 +18.8722992734438755 +9.8537894591522797 +1.2832201236236951 +10.3510742900227761 +2.3181468909521010 +14.5139698549894405 +5.0908951354312872 +2.8718852839138940 +5.3594363124954834 +13.5429160724491666 +16.8779968223881518 +2.3712945210345331 +18.8801641172921038 +17.6560967341896671 +19.4159240478823349 +5.4770386780298388 +9.1806026935048806 +10.0147557338273447 +15.1617815457907064 +10.4134292474183034 +12.7174081929337248 +%% +13.4129956075376366 +1.4982821984794936 +8.0848649866930344 +4.0064400264387299 +13.4563646124520311 +7.6677513496295822 +0.1378071377482869 +0.5273664154940431 +13.2311276784010641 +19.5643071810518308 +10.7002979992475993 +19.0874965754834740 +2.1151995255310747 +6.7048820953284167 +6.8789562639828219 +9.7047200057221819 +10.4112386778402453 +4.2081589767125083 +18.6604411677948043 +5.9535166740117766 +0.1110865138833930 +14.7173024017426926 +4.9782526344434004 +9.2095845931776505 +4.2443943700567752 +17.5353751653850658 +0.0234795394354381 +3.7323911848335052 +15.9202734415428822 +2.6792826006163977 +9.6416548484039133 +10.0038647839579440 +13.6894410585637605 +14.2816237882065309 +14.7800235438963625 +19.9177900760695721 +5.5891226245930596 +7.4727256773459869 +6.5318435363237963 +9.2063618136850334 +0.2806037350274115 +11.7003937920188470 +17.6080662724331098 +12.1362722815472051 +18.9356998231911469 +13.1509451291781403 +11.0005041108965997 +4.3898395672452963 +6.6373588103732137 +17.8220214373726833 +0.0164184716350660 +7.6246036274673203 +11.0729238079614696 +9.9469883910035293 +7.1745844777056833 +1.6092908148972949 +10.1080840549846833 +15.3678689561585262 +19.9680230373665921 +2.2143334425431953 +13.9160635076280741 +9.6760033547368458 +8.6648391054270792 +7.5522377758777850 +2.5762229587422998 +4.1289182455944600 +4.3237725552212183 +5.4623403845198393 +13.6687817933165245 +0.8713628098373043 +17.7034428446484604 +19.2313884765320040 +17.4477157472711006 +3.5295547530952605 +13.7317389666066525 +2.2406187398069779 +14.3505186400425799 +2.6993094378198168 +7.4565290229064454 +9.3149075041507299 +18.2268364558343734 +5.8499163600439203 +15.3117801785685650 +9.1091409880723955 +16.9582495526544115 +18.5586635403954858 +17.8609156579324519 +16.4706020687049275 +11.9248970153847882 +3.4056039389322494 +10.7357699795316375 +5.9893229570148341 +5.5614424623769327 +12.2997525302220119 +12.7744435499558833 +11.8529377968924887 +5.8776955217970546 +11.4500722602451859 +13.2783180756681674 +0.6908553508798563 +3.3244794214474496 +4.3827298640398640 +14.5427274692486712 +2.8805013855540791 +9.6747272364504653 +18.6960660426856116 +15.9093367587460239 +11.0067007962678982 +13.5544125333464613 +2.4926257764192314 +2.5608079408240010 +4.6758443638120806 +3.7374174986297151 +12.3540202008306981 +11.2168477650019547 +3.6201424229546681 +8.5887803325724672 +12.2002357859779096 +14.4490607063415428 +2.8634138891454834 +10.6300366468594643 +19.5654735882180972 +4.0494353712292614 +5.5365867045727661 +3.1021877474380846 +6.2947789308450908 +8.8648736667611487 +10.6153094480978325 +0.2334061399608698 +14.0671783888537920 +0.2234797292400960 +8.7069986212538897 +5.9596547268625066 +4.9060214300143219 +10.1927365474869589 +11.9661657987475341 +0.4662466434853773 +12.1920277939635202 +13.2325485079401659 +1.3963257180914304 +19.8103469585473100 +0.7910451974542847 +6.6923891261590107 +3.4320862691283209 +4.5022463250317255 +1.0589064618546478 +15.4329874305955190 +18.7853205080859418 +19.5577932786985436 +11.3104312774579547 +18.3494948150584243 +6.3620959696350585 +3.8320015283320767 +8.9621416849378264 +10.8202275599755673 +1.7634732711882284 +14.9415581456303936 +6.3443308259250344 +5.6109583454163001 +15.7714594962642494 +15.0445831266166348 +15.0899357092350765 +2.2476673656641801 +3.8852233441531299 +15.6638265752271266 +12.8571266483258135 +12.7861572930515202 +15.3450643786373426 +15.3225883868616499 +10.8275054723195439 +13.4144294693136796 +9.0706513378177149 +5.9864866848830207 +9.5332373650980067 +0.4443032593999899 +2.7582852014461645 +6.7212394562336897 +17.0712258767632861 +19.8178441941022108 +2.3981418963013592 +1.8908009678804352 +8.5855413928391844 +0.0785255990389568 +14.0141661816363534 +6.7355862879971484 +12.0420308818265056 +17.6315760440689715 +13.5449814774089479 +19.2718320631692421 +2.9272013256220664 +17.2899736854007919 +13.5735837307194362 +4.3157153642119992 +3.9126082356480452 +18.9276349793230168 +3.5831061282627052 +14.0177246692394739 +8.7097980208570078 +4.2290288959808002 +18.1236016202777996 +14.2728239374589307 +2.7943721628365132 +8.2535706371976580 +18.8160422842487627 +15.3168307084181787 +18.0697976497191952 +16.1440615277531023 +6.2756182511041372 +18.1991812687241783 +0.7200676044914117 +16.7973657347760543 +10.3612234002161117 +10.6586843478587099 +12.7207178303538289 +15.7377418072453708 +14.1369673710703854 +2.5736949130478992 +6.2387523236339151 +11.4291551824532256 +16.3214713444517869 +15.6576976449421181 +0.4983877075670113 +18.9424230691569520 +18.1011362237602711 +17.4344671720420905 +4.5547690512524506 +7.8873825177051406 +15.0300791334677992 +5.0115954513560546 +2.9163129463609136 +4.4343192198184598 +2.3815347271377356 +9.8337417748191829 +1.9710806362080797 +8.1451343638878004 +10.6838517546845253 +14.7414698270373776 +18.4662106150019909 +3.2924801038934080 +9.4011962527758861 +15.8264769696425809 +11.8575048905551217 +12.3602090294784119 +14.6071701753364778 +9.5361769634243423 +0.6561422426680080 +14.2439330229754635 +16.3173040995890837 +13.3153618505281344 +1.7364393060322221 +10.3606897639506563 +8.0229567524753183 +19.6551622545138471 +9.2364182820119609 +18.6997303368635066 +18.8833933907846472 +%% +18.6329480185432601 +12.2555397010652349 +9.7784337883551373 +9.0136199719002139 +10.0188896830914942 +5.2580992616124878 +8.5406476617232325 +16.0527177594889139 +10.7770080647958348 +5.9322266112500959 +17.1547363818057299 +17.6022129924633504 +7.3882429596047370 +2.3017241253250060 +5.6341747880361348 +0.1152809968347733 +12.6878367956508988 +2.1440962668152759 +0.8004199563224681 +13.2088307489098451 +3.7337473945490069 +8.3327420883364507 +18.1818633679297932 +18.2292614356700184 +17.2334085517164119 +0.5669871427130923 +17.6332251307856360 +12.2685679773443006 +4.3014938839025252 +7.0763807304655524 +2.7300429334475576 +11.0805875612635809 +8.9412444990816748 +3.3797357458584583 +7.7533322544188135 +0.3174876306099913 +19.3533444811343784 +19.8797587210222275 +8.1527313369621357 +5.3733196920580992 +8.7311685449318581 +14.1971733171327852 +19.9611911045737074 +3.4765394040222990 +3.9490319333486923 +16.0913322938511243 +11.4947275597623939 +7.5833587152232447 +14.3077035058116682 +19.2449424633702542 +3.0024413572980491 +19.2540660250504416 +8.5098075612892305 +5.3470413843226838 +2.2858302568718885 +0.5694799889233795 +5.1645378313088619 +10.9186130083383564 +16.9262457858526645 +18.0947161151234148 +17.1142524409288228 +4.8981503840652518 +2.6204714811313572 +6.6748724207248156 +8.2984333482400352 +7.3887180361710314 +1.8655501297024442 +5.6193218264458542 +6.5359265800354196 +1.4071525710629489 +4.2158159211154995 +13.5516312238628860 +18.7892375997657339 +14.9767969398953511 +8.0014718454115581 +10.2278840776730977 +17.1503655665231420 +2.3858519283029271 +16.1343589622077630 +14.6962761797325392 +13.2854325259898509 +0.8886687593913422 +13.3840961105625276 +13.8181567737015936 +18.9244191142618199 +10.3066545099235007 +19.6887716060662541 +1.3314408058193639 +19.4768644266667401 +2.2257144986306177 +6.8626450802225243 +0.1566641969771449 +12.3647076540819523 +6.7820553515729740 +10.2860103728011349 +6.3867596386962973 +10.6867260118935405 +3.0851068661030423 +7.5035965388636949 +2.2928910409962713 +1.3875632973341996 +14.9993447301251379 +4.8805704875164988 +8.2656488453416461 +19.6192401320742604 +9.0744292782412579 +12.1306234441035024 +8.8389215256127489 +0.2229446752189353 +4.9616016867514139 +12.9688298457771687 +19.2337468288737377 +17.5654831473733033 +11.5600742872069731 +17.5237435510103232 +19.4264996224047017 +5.0656224514148986 +3.9213992629855374 +10.3820556665622821 +18.7953673605650380 +12.4847198191310369 +0.8582822852436496 +0.3936521613195942 +14.6294659992070848 +12.5413183208886387 +9.1130803766540005 +0.2410759923645371 +12.6382173759649614 +15.0571324838484486 +7.0737246647267247 +16.9746461119998742 +5.3662018366095099 +2.5481771308936310 +3.2673313705234071 +18.1026391263194277 +12.9917616686460242 +5.3858066934412019 +17.6111941787996003 +9.8753308406590374 +6.4032828014924013 +7.4247815593339208 +7.8430699551691285 +12.8584660269844413 +10.4023106203178699 +11.3410701645431278 +12.0420038635632203 +5.7372552161446952 +12.7569779923039039 +13.0820107252652882 +18.8463187708903632 +9.8596063732403838 +5.9737848264411486 +10.6822783656440379 +11.8727324665991674 +1.5109100749250302 +6.7903059219704334 +9.4058031365575836 +14.7490724388635641 +1.2793285826310643 +16.9188372067287141 +4.0894919659983850 +19.5838416239749478 +19.3311187171898560 +0.8675699935098641 +5.3030492212128397 +17.3420203546990450 +8.4779169365640250 +10.7048062739302914 +0.3416005055139921 +0.5758844333704736 +11.3292714641285919 +4.5477256233179739 +18.1955139743717211 +9.6504592669041838 +13.7770087416204152 +0.1893328065393807 +8.7472953920013019 +18.2685942651204947 +9.4985545747724878 +11.3273292122877240 +2.8829039465130659 +17.2783908948646925 +0.0235178328007123 +14.8445669054948333 +15.3427479696982516 +7.5224696854719397 +15.7988066042474369 +9.5554150105024647 +3.5279689501917821 +3.4669076591384762 +12.1367636165709136 +16.9274149013707174 +9.0701538884995472 +10.0191673859667940 +5.9578482806340451 +3.9964468877352988 +8.8734065210448261 +6.9170741236277618 +0.9113099993598716 +16.7185186753967905 +18.1648494702148504 +8.9719932180434760 +13.1384170145603569 +13.1333974647393319 +13.5644548880758400 +10.5987442011944708 +4.4450477497888139 +16.3279534497336734 +8.3301647316925624 +2.4346772050174530 +10.2175948477949134 +16.8239757354184860 +17.5592785599267742 +17.3497261810119134 +14.6717514898516210 +10.0193265074685129 +4.8138031341996772 +17.4756460936936548 +1.1397398543649275 +14.5889577523875467 +13.6938164319695161 +12.5366213969831257 +16.1415305772765798 +17.1479761085705711 +19.0153978872629068 +17.9179079179237029 +3.2366115438475438 +18.6470592226488492 +4.6736257029693311 +13.9441638769380631 +16.5519293125461999 +15.9846723200625753 +10.6448216272314760 +9.9086003293395724 +1.3329860613026692 +2.2311175329684114 +4.5777285180786205 +14.5881843077565705 +14.9176986094763908 +10.9441563030915603 +9.8929224861620675 +11.8043964349536594 +9.0612576332890029 +13.1345141328689490 +19.6426877154950787 +16.0365577995907138 +16.4521638780890527 +7.8060764996903291 +12.5826118677754817 +19.5176328649368145 +14.2894931506071305 +11.5804876998391393 +4.5772960711320723 +0.5653060157856495 +1.7607250469699816 +0.0167848559783718 +%% +161 +200 +10 +159 +104 +227 +23 +149 +72 +86 +214 +42 +224 +183 +186 +244 +229 +174 +221 +201 +245 +6 +101 +92 +192 +143 +103 +12 +7 +142 +123 +75 +176 +96 +197 +251 +173 +107 +144 +47 +193 +241 +131 +239 +152 +94 +120 +79 +65 +38 +179 +155 +141 +124 +67 +152 +19 +47 +195 +27 +145 +239 +40 +173 +215 +8 +196 +21 +94 +241 +242 +167 +107 +98 +129 +74 +243 +68 +120 +210 +171 +131 +197 +61 +67 +226 +62 +65 +47 +53 +38 +176 +95 +17 +133 +173 +12 +139 +201 +103 +1 +192 +216 +221 +109 +20 +174 +143 +180 +229 +99 +75 +128 +245 +112 +162 +238 +24 +225 +115 +59 +1 +123 +101 +130 +207 +110 +229 +4 +242 +196 +241 +215 +21 +120 +107 +243 +94 +167 +210 +220 +173 +129 +239 +194 +178 +164 +121 +210 +102 +21 +205 +129 +25 +188 +18 +252 +206 +105 +196 +23 +104 +0 +83 +149 +244 +200 +78 +217 +212 +202 +207 +16 +183 +161 +248 +224 +159 +186 +86 +227 +222 +214 +161 +72 +147 +200 +80 +148 +177 +42 +60 +139 +201 +103 +6 +216 +192 +109 +180 +20 +228 +1 +151 +143 +14 +99 +125 +234 +66 +132 +253 +228 +30 +14 +91 +116 +39 +154 +63 +180 +216 +218 +100 +63 +228 +39 +116 +13 +125 +132 +30 +151 +216 +192 +234 +66 +12 +253 +154 +62 +43 +171 +97 +226 +54 +61 +131 +5 +81 +17 +126 +133 +53 +56 +95 +31 +153 +113 +83 +127 +202 +248 +183 +232 +142 +46 +10 +135 +187 +48 +123 +189 +195 +89 +209 +81 +133 +67 +55 +5 +62 +65 +226 +171 +155 +54 +47 +25 +121 +9 +164 +194 +35 +43 +102 +34 +129 +95 +188 +178 +21 +206 +196 +124 +179 +239 +27 +3 +231 +152 +157 +120 +38 +22 +173 +211 +145 +41 +250 +99 +109 +139 +180 +216 +12 +6 +66 +122 +103 +201 +69 +151 +228 +192 +13 +196 +129 +4 +215 +98 +242 +8 +164 +68 +210 +74 +167 +102 +95 +107 +94 +36 +119 +51 +231 +111 +157 +19 +26 +73 +172 +211 +134 +124 +27 +79 +114 +10 +104 +217 +78 +0 +244 +83 +207 +149 +202 +230 +212 +225 +101 +200 +142 +112 +115 +238 +225 +59 +184 +162 +123 +172 +48 +207 +37 +7 +111 +128 +181 +121 +18 +35 +164 +102 +9 +194 +43 +188 +206 +254 +129 +97 +68 +252 +236 +231 +119 +22 +36 +124 +145 +179 +19 +73 +27 +111 +157 +152 +59 +51 +3 +152 +144 +145 +179 +73 +96 +110 +124 +193 +157 +19 +233 +64 +47 +176 +40 +33 +70 +146 +160 +44 +87 +117 +247 +208 +156 +32 +108 +93 +236 +218 +240 +64 +233 +193 +47 +136 +75 +40 +133 +176 +144 +189 +96 +50 +143 +152 +89 +154 +253 +39 +218 +13 +234 +116 +132 +14 +126 +63 +117 +91 +235 +33 +169 +153 +16 +113 +83 +127 +202 +232 +125 +166 +46 +142 +187 +248 +32 +63 +92 +156 +118 +57 +93 +240 +247 +248 +46 +113 +106 +90 +232 +187 +150 +166 +31 +28 +160 +146 +70 +117 +154 +108 +218 +87 +30 +44 +236 +39 +93 +235 +168 +196 +242 +52 +210 +21 +95 +205 +129 +164 +8 +190 +4 +53 +43 +102 +61 +254 +121 +188 +25 +252 +255 +87 +206 +194 +9 +236 +18 +44 +102 +164 +140 +22 +119 +51 +231 +211 +111 +26 +134 +19 +88 +157 +172 +73 +137 +114 +124 +244 +181 +172 +212 +24 +115 +149 +184 +111 +225 +104 +112 +51 +207 +48 +59 +3 +67 +65 +173 +239 +53 +5 +52 +61 +155 +171 +19 +195 +197 +47 +179 +63 +14 +30 +116 +13 +154 +228 +117 +234 +132 +253 +125 +218 +90 +93 +185 +64 +233 +145 +152 +29 +47 +193 +179 +155 +27 +65 +144 +110 +141 +189 +3 +45 +211 +120 +213 +137 +246 +76 +239 +165 +8 +250 +241 +220 +88 +243 +242 +72 +86 +186 +161 +0 +224 +11 +200 +159 +227 +214 +82 +204 +80 +10 +183 +95 +61 +171 +53 +62 +102 +164 +15 +129 +97 +131 +5 +68 +52 +34 +242 +70 +28 +146 +87 +255 +252 +254 +208 +188 +33 +140 +160 +206 +236 +85 +247 +213 +246 +76 +137 +41 +165 +211 +88 +220 +84 +120 +199 +114 +243 +250 +237 +232 +248 +202 +118 +83 +32 +153 +31 +16 +90 +82 +142 +93 +156 +57 +204 +64 +176 +65 +152 +193 +29 +96 +144 +233 +40 +2 +197 +5 +189 +133 +67 +184 +123 +238 +24 +207 +251 +181 +127 +153 +112 +225 +172 +16 +143 +212 +157 +84 +223 +199 +58 +76 +246 +237 +165 +213 +45 +88 +71 +219 +220 +203 +137 +136 +182 +77 +69 +100 +175 +163 +198 +89 +29 +133 +189 +158 +180 +132 +228 +134 +172 +111 +114 +22 +181 +36 +157 +79 +37 +88 +250 +119 +211 +165 +73 +242 +95 +173 +239 +53 +196 +34 +61 +107 +8 +38 +120 +4 +21 +129 +171 +61 +62 +95 +171 +52 +43 +5 +38 +67 +242 +173 +34 +131 +197 +107 +239 +226 +158 +133 +126 +198 +56 +89 +132 +163 +131 +97 +91 +100 +5 +15 +77 +209 +81 +195 +17 +189 +155 +67 +89 +141 +62 +65 +133 +5 +3 +38 +171 +97 +226 +131 +185 +197 +54 +68 +98 +74 +236 +5 +176 +171 +107 +126 +166 +156 +106 +240 +118 +32 +204 +248 +85 +82 +150 +80 +214 +113 +247 +147 +187 +199 +237 +49 +71 +223 +84 +203 +190 +76 +246 +220 +219 +205 +45 +213 +165 +24 +238 +111 +128 +115 +172 +112 +73 +162 +7 +225 +110 +184 +37 +48 +157 +191 +227 +183 +200 +159 +212 +149 +177 +161 +224 +214 +135 +222 +244 +0 +127 +53 +171 +62 +95 +43 +5 +52 +131 +67 +38 +197 +242 +173 +107 +15 +81 +61 +171 +53 +81 +43 +5 +15 +67 +17 +95 +131 +195 +38 +197 +226 +52 +14 +39 +125 +116 +228 +13 +192 +30 +151 +132 +31 +153 +90 +216 +234 +232 +29 +233 +47 +193 +40 +152 +144 +96 +176 +27 +65 +145 +75 +110 +189 +179 +3 +67 +155 +38 +47 +195 +152 +141 +179 +5 +64 +189 +176 +40 +17 +124 +180 +13 +122 +216 +228 +234 +99 +132 +91 +14 +109 +69 +100 +20 +253 +116 +65 +195 +38 +5 +3 +155 +171 +17 +61 +62 +53 +47 +81 +189 +131 +197 +98 +74 +129 +102 +21 +164 +215 +236 +94 +4 +206 +107 +97 +196 +56 +95 +77 +100 +175 +182 +50 +180 +163 +136 +198 +66 +216 +132 +91 +228 +158 +99 +44 +28 +146 +33 +87 +160 +208 +255 +254 +252 +188 +236 +140 +206 +247 +240 +203 +237 +190 +205 +199 +58 +210 +220 +178 +223 +219 +246 +84 +49 +243 +76 +86 +42 +186 +161 +0 +224 +11 +159 +200 +214 +82 +204 +80 +227 +183 +10 +110 +157 +27 +238 +144 +172 +59 +111 +145 +152 +128 +184 +96 +193 +24 +22 +98 +68 +215 +94 +129 +4 +167 +138 +21 +102 +185 +107 +170 +236 +196 +206 +143 +233 +193 +110 +29 +144 +125 +64 +238 +136 +128 +1 +96 +123 +48 +192 +246 +45 +213 +137 +165 +84 +88 +199 +41 +211 +49 +220 +237 +223 +58 +114 +100 +163 +175 +69 +198 +50 +158 +132 +182 +136 +228 +91 +180 +133 +89 +54 +230 +217 +23 +202 +101 +83 +142 +10 +92 +207 +229 +46 +104 +232 +123 +225 +250 +157 +114 +134 +181 +120 +241 +251 +135 +184 +51 +2 +172 +127 +96 +165 +147 +106 +186 +204 +214 +85 +57 +150 +82 +240 +159 +11 +156 +148 +248 +118 +62 +17 +195 +55 +67 +15 +209 +61 +171 +53 +5 +189 +89 +65 +43 +155 +204 +248 +118 +57 +186 +80 +214 +106 +156 +46 +150 +32 +183 +240 +85 +247 +202 +142 +153 +16 +31 +232 +46 +10 +92 +78 +207 +248 +23 +217 +123 +113 +49 +199 +76 +58 +246 +223 +237 +213 +45 +137 +165 +88 +71 +220 +203 +190 +150 +147 +240 +208 +80 +106 +57 +156 +148 +247 +204 +214 +118 +32 +82 +146 +72 +42 +161 +186 +224 +11 +0 +159 +200 +227 +214 +80 +204 +82 +183 +10 +254 +255 +108 +70 +33 +44 +236 +206 +188 +28 +146 +252 +35 +160 +154 +218 +213 +165 +137 +211 +76 +45 +246 +134 +114 +84 +51 +41 +49 +250 +36 +199 +189 +133 +17 +198 +54 +158 +163 +226 +175 +77 +100 +50 +195 +29 +209 +182 +93 +116 +117 +232 +32 +151 +235 +46 +39 +118 +63 +160 +156 +247 +14 +169 +132 +158 +163 +100 +13 +126 +175 +198 +253 +77 +66 +234 +30 +228 +54 +69 +142 +202 +101 +229 +192 +83 +123 +1 +153 +201 +207 +78 +232 +230 +125 +103 +90 +117 +32 +160 +247 +118 +156 +116 +232 +235 +46 +39 +33 +28 +57 +248 +215 +4 +74 +167 +241 +98 +170 +107 +138 +8 +243 +68 +135 +21 +129 +196 +242 +61 +52 +43 +129 +53 +196 +107 +171 +21 +98 +173 +34 +102 +164 +68 +144 +176 +193 +2 +152 +251 +27 +47 +64 +233 +110 +157 +73 +197 +29 +79 +56 +226 +131 +102 +68 +236 +54 +15 +171 +98 +43 +126 +197 +206 +74 +5 +68 +74 +129 +215 +21 +4 +94 +107 +102 +196 +167 +242 +164 +95 +8 +138 +20 +180 +109 +216 +122 +66 +139 +69 +12 +103 +6 +228 +13 +151 +201 +77 +163 +77 +175 +198 +158 +69 +132 +91 +182 +50 +228 +133 +136 +180 +89 +54 +229 +230 +92 +217 +142 +207 +123 +78 +245 +1 +202 +225 +174 +112 +83 +130 +164 +68 +129 +98 +21 +74 +206 +43 +97 +95 +236 +194 +196 +215 +4 +9 +201 +12 +139 +192 +6 +109 +151 +216 +1 +221 +92 +20 +229 +174 +14 +180 +244 +149 +23 +10 +212 +0 +217 +207 +37 +200 +161 +225 +227 +78 +83 +60 +140 +208 +167 +148 +252 +194 +206 +74 +188 +138 +215 +170 +187 +240 +236 +178 +57 +240 +204 +214 +80 +147 +85 +156 +183 +248 +113 +82 +118 +32 +150 +187 +173 +242 +4 +98 +241 +197 +94 +8 +95 +196 +2 +129 +215 +239 +21 +74 +87 +154 +33 +218 +30 +126 +253 +236 +255 +28 +254 +146 +70 +206 +97 +160 +139 +20 +99 +103 +216 +12 +151 +180 +201 +122 +66 +6 +192 +228 +14 +116 +144 +73 +238 +233 +193 +27 +128 +75 +96 +152 +145 +157 +64 +143 +184 +59 +172 +51 +59 +73 +37 +22 +24 +181 +157 +119 +238 +184 +36 +115 +134 +79 +225 +115 +24 +162 +207 +123 +7 +217 +238 +59 +101 +245 +184 +48 +37 +128 +16 +31 +187 +127 +166 +153 +183 +106 +240 +57 +248 +138 +170 +32 +135 +156 +134 +165 +250 +79 +51 +88 +181 +213 +246 +211 +191 +45 +243 +157 +120 +76 +162 +112 +225 +24 +59 +37 +207 +7 +217 +238 +172 +123 +184 +111 +244 +245 +39 +14 +63 +151 +90 +235 +234 +117 +13 +30 +93 +228 +154 +218 +253 +169 +235 +160 +93 +218 +90 +169 +33 +116 +154 +30 +28 +39 +234 +168 +253 +32 +156 +32 +57 +248 +82 +247 +204 +46 +150 +106 +93 +240 +232 +90 +80 +85 +22 +36 +231 +26 +111 +51 +73 +124 +19 +157 +172 +27 +59 +145 +179 +211 +241 +239 +250 +173 +8 +41 +242 +107 +4 +79 +243 +52 +94 +2 +45 +211 +25 +35 +18 +9 +194 +188 +164 +254 +102 +252 +206 +43 +236 +87 +255 +129 +66 +99 +109 +180 +234 +20 +13 +216 +151 +139 +169 +116 +235 +253 +228 +91 +207 +48 +112 +225 +184 +24 +101 +142 +92 +238 +217 +153 +83 +202 +143 +7 +179 +19 +3 +145 +27 +231 +152 +65 +141 +38 +73 +155 +26 +22 +157 +119 +63 +143 +14 +192 +153 +31 +75 +228 +39 +92 +142 +251 +201 +16 +48 +123 +54 +158 +91 +132 +30 +226 +253 +198 +154 +97 +163 +108 +56 +13 +100 +133 +135 +16 +113 +170 +251 +31 +138 +153 +48 +187 +183 +184 +166 +212 +79 +94 +238 +7 +110 +59 +24 +73 +75 +112 +233 +162 +115 +143 +144 +123 +225 +184 +21 +98 +68 +196 +102 +164 +95 +74 +4 +242 +215 +107 +8 +94 +167 +34 +245 +249 +174 +229 +230 +221 +101 +1 +7 +162 +217 +225 +112 +78 +92 +207 +197 +5 +171 +226 +56 +97 +176 +61 +107 +95 +54 +2 +133 +47 +173 +43 +91 +158 +228 +13 +100 +163 +77 +198 +30 +14 +126 +54 +175 +66 +253 +39 +89 +54 +189 +226 +198 +158 +17 +163 +47 +29 +131 +5 +77 +100 +175 +132 +114 +51 +165 +79 +250 +181 +88 +211 +213 +172 +157 +246 +45 +191 +111 +137 +127 +170 +138 +94 +251 +191 +113 +187 +79 +183 +250 +241 +60 +16 +166 +215 +50 +77 +29 +69 +100 +75 +228 +216 +180 +182 +233 +175 +163 +64 +143 +12 +213 +45 +211 +76 +88 +246 +165 +41 +84 +114 +134 +199 +120 +49 +220 +250 +170 +187 +166 +185 +94 +74 +135 +127 +113 +215 +167 +98 +68 +240 +4 +236 +12 +103 +109 +6 +216 +201 +20 +180 +192 +99 +151 +66 +228 +1 +14 +221 +105 +252 +208 +188 +206 +44 +194 +70 +146 +254 +148 +236 +85 +240 +9 +147 +155 +3 +65 +179 +195 +67 +124 +40 +209 +38 +145 +152 +47 +64 +189 +55 +92 +202 +83 +101 +153 +123 +232 +78 +207 +229 +192 +16 +31 +217 +230 +46 +75 +125 +192 +233 +193 +1 +123 +110 +238 +29 +48 +201 +144 +92 +12 +251 +193 +96 +152 +110 +27 +233 +176 +64 +73 +251 +2 +157 +47 +75 +145 +238 +179 +27 +152 +40 +124 +110 +73 +233 +144 +64 +193 +3 +96 +47 +65 +19 +28 +70 +33 +208 +236 +44 +166 +160 +240 +187 +185 +156 +87 +206 +32 +252 +80 +85 +148 +106 +214 +240 +57 +204 +208 +150 +11 +186 +159 +183 +222 +156 +147 +222 +105 +85 +80 +208 +106 +11 +214 +240 +140 +159 +177 +183 +219 +170 +212 +244 +104 +200 +60 +227 +10 +191 +0 +161 +37 +183 +23 +159 +181 +207 +85 +247 +57 +156 +80 +118 +240 +106 +82 +147 +32 +204 +208 +248 +186 +214 +116 +109 +103 +90 +14 +192 +63 +201 +216 +12 +139 +66 +13 +39 +234 +228 +27 +144 +96 +179 +193 +145 +47 +64 +233 +176 +65 +40 +124 +110 +3 +2 +31 +16 +83 +202 +142 +113 +232 +125 +127 +92 +46 +123 +48 +248 +207 +63 +218 +30 +253 +234 +169 +108 +33 +235 +117 +39 +13 +126 +116 +91 +132 +160 +141 +65 +3 +195 +67 +209 +179 +40 +38 +47 +189 +17 +152 +64 +124 +145 +32 +57 +118 +240 +247 +106 +150 +248 +85 +204 +93 +113 +82 +187 +146 +208 +73 +79 +27 +172 +144 +250 +96 +184 +181 +251 +110 +51 +111 +152 +19 +238 +198 +163 +132 +54 +100 +91 +175 +77 +126 +133 +226 +89 +228 +13 +69 +182 +200 +227 +214 +224 +183 +161 +60 +11 +0 +186 +204 +191 +106 +80 +149 +86 +28 +33 +117 +93 +70 +247 +146 +168 +218 +235 +32 +44 +156 +90 +169 +154 +200 +227 +0 +224 +159 +86 +72 +149 +60 +11 +42 +214 +183 +10 +186 +104 +115 +112 +225 +24 +7 +59 +245 +207 +217 +249 +238 +123 +128 +37 +101 +130 +100 +198 +175 +158 +77 +91 +132 +69 +182 +54 +133 +89 +50 +126 +228 +13 +102 +129 +21 +68 +194 +98 +9 +196 +95 +43 +34 +74 +206 +25 +242 +4 +213 +246 +45 +88 +76 +114 +137 +211 +134 +41 +250 +220 +243 +219 +120 +223 +187 +185 +138 +113 +170 +146 +240 +31 +127 +74 +32 +236 +156 +135 +16 +39 +215 +4 +94 +243 +74 +21 +8 +170 +98 +241 +219 +220 +196 +138 +129 +210 +160 +169 +117 +235 +218 +33 +28 +154 +70 +93 +108 +44 +253 +247 +87 +255 +235 +218 +234 +117 +253 +154 +168 +30 +116 +13 +160 +33 +39 +90 +93 +108 +138 +135 +94 +187 +127 +167 +166 +215 +74 +185 +113 +243 +241 +4 +98 +183 +5 +61 +131 +62 +197 +53 +43 +95 +67 +226 +15 +97 +107 +38 +173 +52 +111 +181 +51 +37 +184 +24 +59 +157 +73 +238 +134 +48 +79 +115 +112 +22 +239 +107 +242 +120 +52 +2 +241 +197 +8 +95 +4 +38 +176 +196 +5 +94 +221 +229 +130 +245 +1 +101 +230 +201 +6 +92 +249 +103 +7 +192 +142 +12 +163 +100 +198 +77 +182 +69 +158 +91 +50 +132 +89 +133 +54 +136 +180 +228 +2 +96 +47 +197 +193 +144 +251 +152 +131 +64 +173 +5 +107 +29 +27 +65 +222 +191 +60 +227 +219 +224 +223 +159 +11 +200 +148 +183 +49 +161 +114 +243 +205 +210 +9 +203 +194 +71 +190 +21 +167 +237 +196 +220 +164 +105 +34 +215 +124 +145 +152 +27 +3 +19 +65 +141 +40 +155 +231 +38 +47 +64 +144 +73 +216 +66 +99 +20 +69 +139 +228 +109 +12 +77 +122 +13 +100 +132 +136 +175 +172 +184 +37 +212 +79 +134 +51 +48 +114 +157 +111 +24 +244 +149 +191 +250 +175 +50 +69 +77 +100 +163 +198 +89 +136 +158 +91 +133 +180 +189 +132 +54 +214 +159 +60 +200 +106 +113 +204 +227 +191 +16 +212 +248 +127 +135 +149 +57 +48 +181 +24 +238 +123 +172 +251 +157 +207 +37 +79 +212 +127 +112 +73 +225 +166 +138 +187 +56 +74 +236 +170 +68 +98 +146 +94 +113 +39 +127 +206 +31 +80 +72 +204 +214 +82 +86 +159 +11 +42 +106 +147 +224 +0 +161 +200 +248 +166 +138 +185 +113 +170 +240 +127 +135 +146 +31 +106 +156 +57 +32 +208 +74 +252 +254 +206 +35 +140 +87 +236 +44 +194 +255 +70 +105 +121 +9 +208 +146 +89 +17 +133 +195 +209 +47 +65 +29 +67 +64 +198 +5 +155 +226 +54 +50 +205 +71 +237 +210 +203 +220 +199 +178 +34 +8 +196 +58 +246 +243 +45 +76 +60 +212 +227 +177 +183 +149 +135 +200 +159 +114 +181 +127 +219 +222 +170 +224 +201 +103 +12 +92 +125 +139 +6 +1 +142 +63 +143 +151 +216 +14 +228 +109 +144 +233 +96 +64 +152 +110 +29 +176 +47 +75 +27 +2 +251 +40 +143 +145 +9 +164 +178 +102 +188 +206 +252 +21 +129 +105 +121 +140 +68 +210 +25 +98 +67 +17 +209 +155 +65 +189 +81 +55 +5 +141 +3 +89 +38 +62 +47 +133 +21 +242 +8 +4 +129 +210 +215 +34 +95 +107 +98 +52 +164 +167 +241 +68 +131 +5 +176 +2 +107 +171 +173 +56 +226 +95 +47 +98 +61 +96 +97 +68 +163 +158 +175 +100 +77 +89 +133 +54 +91 +132 +182 +50 +126 +69 +226 +189 +58 +237 +84 +49 +223 +71 +76 +203 +246 +220 +190 +45 +213 +165 +219 +137 +227 +161 +159 +0 +60 +149 +224 +183 +214 +10 +212 +191 +11 +104 +244 +86 +103 +192 +12 +6 +139 +1 +216 +92 +109 +221 +151 +229 +143 +125 +142 +174 +83 +142 +92 +153 +232 +46 +16 +78 +31 +101 +207 +123 +10 +217 +248 +23 +71 +237 +205 +190 +220 +210 +178 +199 +58 +223 +219 +243 +246 +167 +8 +49 +82 +214 +248 +106 +57 +80 +186 +118 +183 +156 +159 +240 +147 +113 +150 +32 +210 +190 +178 +203 +71 +237 +34 +220 +196 +21 +8 +9 +4 +243 +167 +242 +236 +188 +252 +102 +68 +254 +87 +74 +146 +194 +140 +164 +98 +97 +105 +185 +123 +217 +225 +112 +101 +48 +24 +142 +83 +184 +115 +23 +202 +92 +104 +244 +85 +140 +240 +105 +146 +70 +44 +147 +187 +106 +252 +156 +57 +148 +28 +150 +55 +195 +17 +189 +155 +89 +81 +67 +141 +65 +133 +40 +47 +3 +5 +64 +205 +190 +196 +178 +21 +203 +8 +34 +220 +4 +71 +167 +215 +242 +243 +129 +137 +213 +45 +41 +88 +165 +76 +246 +134 +120 +114 +250 +36 +19 +22 +51 +149 +244 +60 +191 +181 +104 +37 +200 +10 +183 +227 +184 +127 +48 +207 +135 +45 +137 +76 +165 +246 +88 +211 +41 +114 +84 +134 +220 +250 +199 +49 +120 +204 +183 +159 +106 +80 +186 +147 +82 +200 +57 +248 +11 +227 +60 +113 +224 +4 +167 +94 +74 +21 +98 +8 +241 +196 +243 +129 +68 +107 +242 +170 +138 +180 +139 +12 +228 +66 +109 +20 +99 +103 +201 +6 +14 +192 +13 +69 +151 +207 +225 +101 +230 +23 +78 +112 +123 +104 +10 +142 +83 +202 +115 +244 +92 +154 +169 +253 +235 +30 +117 +234 +33 +108 +160 +13 +116 +39 +168 +28 +93 +243 +220 +223 +167 +203 +177 +246 +222 +215 +165 +191 +241 +237 +170 +4 +8 +243 +219 +246 +203 +8 +210 +237 +167 +190 +223 +71 +45 +4 +241 +215 +165 +174 +229 +1 +130 +245 +201 +6 +103 +101 +230 +92 +192 +12 +139 +142 +249 +177 +148 +11 +219 +224 +159 +147 +60 +191 +227 +223 +183 +214 +200 +80 +243 +49 +199 +58 +219 +237 +220 +246 +203 +84 +71 +177 +76 +165 +243 +222 +45 +11 +227 +159 +161 +200 +86 +60 +72 +214 +177 +186 +0 +222 +42 +183 +191 +112 +115 +207 +162 +24 +217 +123 +101 +7 +37 +48 +184 +238 +245 +230 +59 +54 +131 +133 +56 +97 +5 +197 +158 +171 +126 +89 +15 +198 +189 +17 +132 +200 +159 +60 +161 +224 +191 +149 +183 +0 +11 +177 +214 +212 +222 +244 +86 +14 +132 +13 +216 +63 +66 +180 +77 +39 +100 +125 +91 +116 +12 +30 +163 +101 +174 +221 +230 +1 +92 +245 +130 +142 +78 +201 +217 +192 +202 +103 +249 +101 +229 +78 +217 +249 +130 +245 +92 +207 +142 +174 +225 +23 +202 +221 +112 +26 +119 +124 +22 +19 +36 +179 +145 +27 +73 +3 +157 +152 +111 +211 +51 +46 +202 +83 +153 +31 +90 +248 +142 +16 +32 +93 +118 +92 +113 +156 +63 +193 +64 +29 +144 +75 +110 +40 +152 +96 +47 +27 +145 +143 +176 +73 +238 +253 +13 +169 +30 +154 +218 +235 +116 +66 +91 +39 +14 +132 +117 +122 +228 +169 +117 +218 +234 +116 +154 +253 +90 +30 +93 +160 +168 +13 +39 +33 +151 +206 +68 +146 +185 +87 +74 +97 +102 +188 +98 +56 +254 +252 +166 +33 +108 +71 +203 +199 +58 +190 +220 +205 +223 +84 +246 +210 +76 +49 +219 +45 +178 +24 +110 +128 +59 +73 +184 +48 +123 +112 +7 +144 +172 +75 +157 +225 +143 +173 +120 +52 +242 +107 +241 +8 +19 +38 +41 +2 +250 +4 +196 +95 +197 +57 +156 +106 +85 +208 +187 +32 +113 +166 +147 +150 +146 +118 +204 +80 +214 +120 +8 +4 +94 +250 +243 +215 +107 +173 +242 +239 +167 +196 +79 +220 +2 +196 +8 +52 +107 +4 +95 +21 +173 +129 +239 +241 +34 +215 +120 +98 +94 +220 +219 +167 +241 +8 +215 +4 +94 +250 +120 +246 +210 +196 +170 +21 +165 +104 +149 +212 +37 +10 +23 +207 +181 +200 +217 +0 +225 +60 +227 +161 +191 +130 +7 +174 +229 +1 +101 +249 +230 +221 +112 +162 +225 +217 +123 +207 +115 +76 +45 +213 +165 +137 +220 +41 +88 +199 +211 +84 +223 +243 +49 +237 +114 +150 +156 +118 +32 +57 +93 +160 +240 +85 +28 +82 +90 +117 +106 +146 +248 +204 +82 +118 +46 +57 +106 +156 +32 +214 +113 +232 +16 +83 +183 +31 +240 +130 +230 +245 +217 +101 +162 +229 +174 +225 +112 +78 +115 +7 +221 +207 +23 +79 +120 +241 +114 +134 +157 +243 +165 +239 +135 +8 +94 +41 +211 +173 +181 +96 +2 +127 +48 +144 +176 +184 +79 +135 +193 +157 +250 +125 +94 +170 +138 +188 +140 +254 +206 +44 +105 +35 +70 +236 +194 +87 +208 +255 +146 +9 +28 +154 +234 +30 +218 +13 +169 +91 +235 +126 +132 +39 +108 +116 +117 +66 +14 +188 +87 +255 +252 +35 +206 +44 +70 +236 +140 +108 +121 +146 +28 +33 +194 +87 +254 +44 +70 +188 +35 +108 +252 +28 +33 +206 +146 +236 +160 +168 +140 diff --git a/examples/machsuite/md/knn/md.py b/examples/machsuite/md/knn/md.py new file mode 100644 index 0000000000..c5e45ddcf5 --- /dev/null +++ b/examples/machsuite/md/knn/md.py @@ -0,0 +1,199 @@ +import allo +from allo.ir.types import float64,int32, Int +import numpy as np +nAtoms:int32 = 256 +maxNeighbors:int32=16 +lj1:float64=1.5 +lj2:float64=2.0 +domainEdge: float64=20.0 + + +def md_x(position_x:float64[nAtoms], position_y:float64[nAtoms],position_z:float64[nAtoms],NL:int32[nAtoms*maxNeighbors])->float64[nAtoms]: + #-> (float64[nAtoms],float64[nAtoms],float64[nAtoms]): + + i_x: float64=0.0 + i_y: float64=0.0 + i_z: float64=0.0 + i: int32=0 + j: int32=0 + jidx: int32=0 + j_x: float64=0.0 + j_y: float64=0.0 + j_z: float64=0.0 + delx: float64=0.0 + dely: float64=0.0 + delz: float64=0.0 + r2inv: float64=0.0 + r6inv: float64=0.0 + potential: float64=0.0 + force: float64=0.0 + fx: float64=0.0 + force_x:float64[nAtoms]=0.0 + #force_x=np.zeros_like(position_x) + + for i in range(nAtoms): + i_x= position_x[i] + i_y= position_y[i] + i_z= position_z[i] + fx=0.0 + # fy:float64=0.0 + # fz:float64=0.0 + + for j in range(maxNeighbors): + # Get neighbor + jidx= NL[i * maxNeighbors + j] + # Look up x, y, z positions + j_x= position_x[jidx] + j_y= position_y[jidx] + j_z= position_z[jidx] + # Calculate distance + delx = i_x - j_x + dely = i_y - j_y + delz = i_z - j_z + if((delx * delx + dely * dely + delz * delz)==0): + r2inv=(domainEdge*domainEdge*3.0)*1000 + else: + r2inv = 1.0 / (delx * delx + dely * dely + delz * delz) + # Assume no cutoff and always account for all nodes in the area + r6inv = r2inv * r2inv * r2inv + potential = r6inv * (lj1 * r6inv - lj2) + # Sum changes in force + force = r2inv * potential + fx = fx+delx * force + # Update forces after all neighbors are accounted for + force_x[i] = fx + # force_y[i] = fy + # force_z[i] = fz + return force_x + #print(f"dF={fx},{fy},{fz}") + +s_x=allo.customize(md_x) +print(s_x.module) +s_x.build() + +def md_y(position_x:float64[nAtoms], position_y:float64[nAtoms],position_z:float64[nAtoms],NL:int32[nAtoms*maxNeighbors])->float64[nAtoms]: + #-> (float64[nAtoms],float64[nAtoms],float64[nAtoms]): + i_x: float64=0.0 + i_y: float64=0.0 + i_z: float64=0.0 + i: int32=0 + j: int32=0 + jidx: int32=0 + j_x: float64=0.0 + j_y: float64=0.0 + j_z: float64=0.0 + delx: float64=0.0 + dely: float64=0.0 + delz: float64=0.0 + r2inv: float64=0.0 + r6inv: float64=0.0 + potential: float64=0.0 + force: float64=0.0 + fy: float64=0.0 + force_y:float64[nAtoms] + #force_y=np.zeros_like(position_y) + + for i in range(nAtoms): + i_x= position_x[i] + i_y= position_y[i] + i_z= position_z[i] + fy=0.0 + # fy:float64=0.0 + # fz:float64=0.0 + + for j in range(maxNeighbors): + # Get neighbor + jidx= NL[i * maxNeighbors + j] + # Look up x, y, z positions + j_x= position_x[jidx] + j_y= position_y[jidx] + j_z= position_z[jidx] + # Calculate distance + delx = i_x - j_x + dely = i_y - j_y + delz = i_z - j_z + if((delx * delx + dely * dely + delz * delz)==0): + r2inv=(domainEdge*domainEdge*3.0)*1000 + else: + r2inv = 1.0 / (delx * delx + dely * dely + delz * delz) + # Assume no cutoff and always account for all nodes in the area + r6inv = r2inv * r2inv * r2inv + potential = r6inv * (lj1 * r6inv - lj2) + # Sum changes in force + force = r2inv * potential + fy = fy+dely * force + # Update forces after all neighbors are accounted for + force_y[i] = fy + # force_y[i] = fy + # force_z[i] = fz + return force_y + #print(f"dF={fx},{fy},{fz}") + +s_y=allo.customize(md_y) +print(s_y.module) +s_y.build() + +def md_z(position_x:float64[nAtoms], position_y:float64[nAtoms],position_z:float64[nAtoms],NL:int32[nAtoms*maxNeighbors])->float64[nAtoms]: + #-> (float64[nAtoms],float64[nAtoms],float64[nAtoms]): + i_x: float64=0.0 + i_y: float64=0.0 + i_z: float64=0.0 + i: int32=0 + j: int32=0 + jidx: int32=0 + j_x: float64=0.0 + j_y: float64=0.0 + j_z: float64=0.0 + delx: float64=0.0 + dely: float64=0.0 + delz: float64=0.0 + r2inv: float64=0.0 + r6inv: float64=0.0 + potential: float64=0.0 + force: float64=0.0 + fz: float64=0.0 + force_z:float64[nAtoms] + #force_z=np.zeros_like(position_z) + + for i in range(nAtoms): + i_x= position_x[i] + i_y= position_y[i] + i_z= position_z[i] + fz=0.0 + # fy:float64=0.0 + # fz:float64=0.0 + + for j in range(maxNeighbors): + # Get neighbor + jidx= NL[i * maxNeighbors + j] + # Look up x, y, z positions + j_x= position_x[jidx] + j_y= position_y[jidx] + j_z= position_z[jidx] + # Calculate distance + delx = i_x - j_x + dely = i_y - j_y + delz = i_z - j_z + if((delx * delx + dely * dely + delz * delz)==0): + r2inv=(domainEdge*domainEdge*3.0)*1000 + else: + r2inv = 1.0 / (delx * delx + dely * dely + delz * delz) + # Assume no cutoff and always account for all nodes in the area + r6inv = r2inv * r2inv * r2inv + potential = r6inv * (lj1 * r6inv - lj2) + # Sum changes in force + force = r2inv * potential + fz = fz+delz * force + # Update forces after all neighbors are accounted for + force_z[i] = fz + # force_y[i] = fy + # force_z[i] = fz + return force_z + #print(f"dF={fx},{fy},{fz}") + +s_z=allo.customize(md_z) +print(s_z.module) +s_z.build() + +print("build success") + diff --git a/examples/machsuite/md/knn/md_kernel_test.py b/examples/machsuite/md/knn/md_kernel_test.py new file mode 100644 index 0000000000..a91f8aac60 --- /dev/null +++ b/examples/machsuite/md/knn/md_kernel_test.py @@ -0,0 +1,121 @@ +import random +import md +import allo +import numpy as np + +# Assuming nAtoms and maxNeighbors are predefined constants +nAtoms = 256 # Example value +maxNeighbors = 16 # Example value +domainEdge=20 + +def distance(position_x, position_y, position_z, i, j): + if(i!=j): + delx = position_x[i] - position_x[j] + dely = position_y[i] - position_y[j] + delz = position_z[i] - position_z[j] + r2inv = delx**2 + dely**2 + delz**2 + else: + r2inv=(domainEdge*domainEdge*3.0)*1000 + return r2inv + +def insert_in_order(curr_dist, curr_list, j, dist_ij): + pos = maxNeighbors - 1 + curr_max = curr_dist[pos] + if dist_ij > curr_max: + return + + for dist in range(pos, 0, -1): + if dist_ij < curr_dist[dist]: + curr_dist[dist] = curr_dist[dist - 1] + curr_list[dist] = curr_list[dist - 1] + else: + break + pos -= 1 + + curr_dist[dist] = dist_ij + curr_list[dist] = j + +def build_neighbor_list(position_x, position_y, position_z): + total_pairs = 0 + NL = [[0 for _ in range(maxNeighbors)] for _ in range(nAtoms)] + + for i in range(nAtoms): + curr_list = [0] * maxNeighbors + curr_dist = [float('inf')] * maxNeighbors + + for j in range(nAtoms): + if i == j: + continue + dist_ij = distance(position_x, position_y, position_z, i, j) + insert_in_order(curr_dist, curr_list, j, dist_ij) + + for k in range(maxNeighbors): + NL[i][k] = curr_list[k] + if curr_dist[k] != float('inf'): + total_pairs += 1 + + return total_pairs, NL + +def populate_neighbor_list(curr_dist, curr_list, i, NL): + valid_pairs = 0 + for neighbor_iter in range(maxNeighbors): + NL[i][neighbor_iter] = curr_list[neighbor_iter] + valid_pairs += 1 + return valid_pairs + +def parse_data(file):# refers to + data_arrays = [] + current_array = [] + + with open(file, 'r') as f: + for line in f: + if line.strip() == '%%': + if current_array: + data_arrays.append(current_array) + current_array = [] + else: + num = float(line.strip()) + current_array.append(num) + + data_arrays.append(current_array) + return data_arrays + +# Main function equivalent in Python +if __name__ == "__main__": + input = parse_data("input.data") + check = parse_data("check.data") + check_x=np.array(check[0]).astype(np.float64) + check_y=np.array(check[1]).astype(np.float64) + check_z=np.array(check[2]).astype(np.float64) + + + forceX=np.zeros(shape=(nAtoms), dtype=float) + forceY=np.zeros(shape=(nAtoms), dtype=float) + forceZ=np.zeros(shape=(nAtoms), dtype=float) + + position_x = np.array(input[0]).astype(np.float64) + position_y = np.array(input[1]).astype(np.float64) + position_z = np.array(input[2]).astype(np.float64) + NL=np.array(input[3]).astype(np.int32) + print("here") + + s_x = allo.customize(md.md_x) + mod_x = s_x.build() + s_y = allo.customize(md.md_y) + mod_y = s_y.build() + s_z = allo.customize(md.md_z) + mod_z = s_z.build() + + + forceX=mod_x(position_x, position_y, position_z,NL) + forceY=mod_y(position_x, position_y, position_z,NL) + forceZ=mod_z(position_x, position_y, position_z,NL) + #The actual output has more accurate output than check data + np.testing.assert_allclose(forceX,check_x, rtol=2, atol=20) + np.testing.assert_allclose(forceY,check_y, rtol=2, atol=20) + np.testing.assert_allclose(forceZ,check_z, rtol=2, atol=20) + + + + + diff --git a/examples/machsuite/md/knn/md_opt.py b/examples/machsuite/md/knn/md_opt.py new file mode 100644 index 0000000000..e2150dffb8 --- /dev/null +++ b/examples/machsuite/md/knn/md_opt.py @@ -0,0 +1,42 @@ +import allo +from allo.ir.types import int32 + +N = 256 +M = 16 + + +def compute_dist( + position_x: int32[N], + position_y: int32[N], + position_z: int32[N], + NL: int32[N, M], + del_x: int32[N], + del_y: int32[N], + del_z: int32[N], +): + for i0, j0 in allo.grid(N, M): + del_x[i0] = position_x[i0] - position_x[NL[i0, j0]] + del_y[i0] = position_y[i0] - position_y[NL[i0, j0]] + del_z[i0] = position_z[i0] - position_z[NL[i0, j0]] + + +def kernel_md( + position_x: int32[N], + position_y: int32[N], + position_z: int32[N], + NL: int32[N, M], + force_x: int32[N], + force_y: int32[N], + force_z: int32[N], +): + del_x: int32[N] + del_y: int32[N] + del_z: int32[N] + compute_dist(position_x, position_y, position_z, NL, del_x, del_y, del_z) + + +s0 = allo.customize(compute_dist) +s0.split("i0", factor=16) +s0.pipeline("i0.inner") +s = allo.customize(kernel_md) +s.compose(s0) diff --git a/examples/machsuite/md/knn/no-code.py b/examples/machsuite/md/knn/no-code.py new file mode 100644 index 0000000000..15e3b105f8 --- /dev/null +++ b/examples/machsuite/md/knn/no-code.py @@ -0,0 +1,15 @@ +import allo +from allo.ir.types import int32 + +N = 256 + +def compute( + x: int32[N], + y: int32[N] +): + for i in range(N): + y[i] = x[i] + +s = allo.customize(compute) +s.build(target="vitis_hls", mode="csim", project="test.prj") + diff --git a/examples/machsuite/md/knn/reproduce.py b/examples/machsuite/md/knn/reproduce.py new file mode 100644 index 0000000000..8459e274c7 --- /dev/null +++ b/examples/machsuite/md/knn/reproduce.py @@ -0,0 +1,17 @@ +import allo +from allo.ir.types import int32 + +N = 256 +M = 16 + +def compute_dist(x: int32[N], y: int32[N], z: int32[N], NL: int32[N, M], del_x: int32[N], del_y: int32[N], del_z: int32[N]): + for i in allo.grid(N): + for j in allo.grid(M): + del_x[i] = x[i] - x[NL[i, j]] + del_y[i] = y[i] - y[NL[i, j]] + del_z[i] = z[i] - z[NL[i, j]] + +s = allo.customize(compute_dist) +s.split("i",factor=16) +s.pipeline("i.inner") + diff --git a/examples/machsuite/merge/check.data b/examples/machsuite/merge/check.data new file mode 100644 index 0000000000..d720516150 --- /dev/null +++ b/examples/machsuite/merge/check.data @@ -0,0 +1,2049 @@ +%% +2133347 +3755034 +3757680 +5114060 +6748351 +11497565 +13360332 +14464969 +14535786 +15264621 +16570194 +16921963 +16959813 +19892644 +20193475 +20865036 +21389248 +22768866 +25100496 +25776468 +25869575 +27666284 +27675825 +28990799 +29381863 +29653602 +30894415 +32011475 +32283582 +32495326 +33287680 +33423244 +33797863 +33967896 +34606601 +34794482 +36491596 +36513003 +37313539 +37577570 +37600544 +37958120 +39484517 +40140980 +41705353 +42383451 +43902811 +44125235 +47621339 +47866257 +48905545 +51198210 +51245290 +55100470 +58572672 +59206569 +60974523 +62624058 +62830115 +63917942 +65375150 +65864705 +66411149 +67176562 +67874428 +68604017 +69122538 +69969612 +70599058 +71478587 +72158627 +72460518 +73066829 +76115669 +76700937 +78410211 +80693604 +80818357 +81692302 +82876636 +83314681 +84370399 +85297387 +85901251 +87087128 +87248777 +87270835 +88325323 +89650033 +90635783 +92766339 +93482676 +93987402 +95454661 +95598889 +96657364 +98319525 +99479956 +100077314 +100936390 +101347165 +101884596 +102673761 +105234290 +105724135 +105877669 +106828160 +109081969 +110019408 +111155111 +111436477 +111756298 +111885734 +113221775 +114342047 +116727282 +118360318 +119602863 +120372826 +121774000 +122470461 +123620487 +127031658 +127386675 +127839099 +128191180 +128199623 +128894687 +128928023 +128952447 +132957322 +133709002 +134086399 +134097471 +135356844 +136883456 +137991365 +139185907 +139309844 +139783465 +144522435 +145125081 +145181215 +146301892 +146480651 +147666338 +148366910 +149065532 +150020171 +150337966 +150901144 +151035803 +151333492 +151499496 +152600286 +153048093 +153207158 +154698022 +155477576 +155859496 +156300070 +156543006 +156692706 +156960811 +160415738 +161717562 +163522198 +164019660 +165337021 +165449550 +165757953 +166148387 +168634616 +169996838 +170250664 +170391257 +170463985 +171333890 +172081653 +172179489 +174384850 +175276916 +176394620 +177133202 +177548100 +177623586 +177771287 +179816643 +180988319 +181874898 +182069082 +183070972 +184954528 +185259225 +185589616 +186545648 +186735955 +187577258 +187757211 +189071296 +189324225 +189486773 +190068440 +190526577 +191656740 +191855552 +192699922 +194033189 +194304077 +194961368 +195485565 +195575558 +195791553 +196570489 +198128026 +198515425 +199018542 +200930301 +201967992 +203588067 +206702553 +207237193 +208236790 +208753405 +212096210 +212764022 +213296204 +213358112 +215084709 +216451246 +216730162 +217581202 +217859346 +218079139 +220029168 +222764447 +222774002 +224370131 +225640914 +225891607 +227234597 +228193101 +228756043 +230054271 +230116054 +231968216 +232320438 +234368065 +236157269 +238322615 +239056365 +240134265 +240505305 +242255706 +243261054 +243305723 +244437562 +246048882 +247483746 +247597272 +248943784 +248987466 +249178659 +250211688 +250544064 +253359016 +254388947 +255055848 +256610514 +257004501 +257911218 +258103701 +260995967 +261522116 +261653045 +263877273 +264114698 +265158106 +265255716 +265337843 +266261552 +267592551 +267898534 +269286404 +269570899 +269644648 +270842593 +271001503 +271321916 +271463051 +274284400 +275490071 +277528908 +278812137 +278846449 +279972861 +280371522 +281450081 +284387350 +285571409 +286532441 +286665591 +286841615 +287756628 +288148609 +289705845 +291409102 +293433174 +294813100 +295984014 +297554450 +297823665 +297869098 +299389274 +299898902 +300761205 +302354825 +302652346 +303590601 +304511300 +305434839 +306233773 +306822213 +307203772 +308134579 +308994026 +309212434 +310302420 +310662211 +310665455 +311356082 +312251881 +314315478 +315948592 +320253652 +320990176 +321993998 +325031938 +325290524 +325464775 +328655625 +329738404 +330737581 +330792297 +332327337 +333247645 +334543417 +334880253 +334977553 +335715992 +336541300 +337601622 +338856656 +342063486 +342070919 +344296193 +349919910 +350127017 +351873178 +352228300 +353885535 +355079864 +355535304 +355560126 +355663123 +355827223 +356093208 +356194072 +358187431 +361261943 +362170271 +368123457 +370000419 +370391868 +370406316 +371167247 +371943766 +375078779 +377206183 +379721750 +379897203 +380400361 +380681534 +381891319 +382115769 +382894292 +384805441 +385862243 +392336178 +392961592 +394042623 +394189989 +394664535 +396095779 +396375367 +397615021 +400859314 +403111108 +403955460 +404866075 +407019027 +407338232 +407394234 +408591603 +409435661 +410327491 +413733332 +413952789 +415406505 +417049677 +417112292 +417730805 +418518584 +419218001 +420033603 +421766723 +422151624 +423694845 +424635729 +426239114 +426368885 +426858731 +427310717 +427731302 +429639342 +429741617 +429882966 +433157790 +433315813 +434370628 +434550013 +436827523 +439115595 +439420872 +439666194 +440638102 +440797705 +441400426 +442054749 +442247466 +443973176 +444128215 +444869164 +445929743 +446035477 +446582461 +446669555 +448651778 +449325307 +450180092 +453173852 +456679784 +460964936 +461038923 +461186368 +461386911 +462324490 +463015512 +466353018 +466890649 +467485606 +469191954 +469606255 +470747628 +470920964 +471437709 +472147699 +472376887 +474042834 +475239808 +477793157 +477796026 +477837560 +477994546 +479378426 +480093923 +480755265 +481430369 +483764857 +484374348 +485470119 +488305458 +488787171 +491184830 +494700070 +495965166 +495999182 +496276526 +496705994 +498204267 +498679396 +502743441 +503395919 +503974112 +505236584 +505318934 +505651416 +507333260 +509043494 +510319326 +510490837 +512010901 +512735686 +514380753 +515229764 +517175601 +520630890 +522708374 +524037430 +524157971 +524589729 +525189582 +526857678 +527155034 +527747622 +529333204 +530630168 +532918727 +532974825 +533206101 +533566406 +534440455 +535153458 +536145871 +537126833 +540184876 +541468179 +543322263 +543473278 +544807927 +544833283 +545094225 +545325403 +546700911 +549024074 +550021592 +553748629 +553810021 +555271126 +555566939 +556662332 +560186184 +561622493 +561858461 +563554428 +563762887 +565681876 +565800731 +566064689 +566225790 +566948716 +567355160 +568740973 +569091874 +569866125 +570351679 +571532202 +571692111 +571913873 +572148025 +572382664 +573024774 +573553042 +574107939 +574110884 +574493348 +575072672 +575225045 +575410850 +576622031 +576793022 +577928774 +578934327 +580950754 +581839897 +581929050 +582040172 +582241926 +582856665 +584977769 +585230318 +586080090 +587037925 +587655589 +587767534 +587916663 +588200933 +589330536 +589994150 +590784521 +590956460 +591164384 +593608013 +594786342 +597276011 +599711002 +600033258 +600477902 +601273025 +602854601 +603437841 +604513972 +606824780 +612383828 +613268233 +613529359 +615255022 +615396429 +615465251 +617601891 +619028234 +619433493 +619600306 +619670720 +620801916 +622945444 +623522623 +624009478 +625175432 +625384414 +626485281 +627008650 +629196542 +631585224 +632426210 +632657984 +633725180 +633950703 +634966326 +635151053 +636440904 +637126175 +638126241 +638785636 +640042407 +641476730 +642497135 +642811328 +644816858 +645644963 +645888076 +647202043 +647566861 +648920224 +649418674 +649968691 +650800084 +650896432 +651856529 +653182226 +653548551 +654040018 +654196693 +654528262 +654953859 +655371791 +656216426 +656363920 +657058228 +659854392 +661211720 +662099942 +663304095 +663507254 +664661815 +667549624 +669470941 +669729404 +670730778 +671092095 +673553453 +673939191 +674185448 +675168495 +675626112 +676159587 +677596581 +679338690 +680154439 +680538897 +682966620 +683533351 +683562227 +684312237 +684786026 +685518568 +686696903 +686712154 +686806421 +687976188 +688030609 +688349205 +688409711 +688458885 +689731123 +690139864 +690340275 +691710619 +693156114 +695452877 +697034874 +697126989 +698372168 +698735397 +699187511 +699663017 +700320492 +705207687 +708933711 +710833831 +712594424 +712973066 +712981076 +712997872 +714517701 +715522899 +715553437 +715902510 +716307040 +717117315 +719448316 +720006110 +722929758 +725038219 +725273676 +725776724 +730203072 +730675129 +730808830 +733476653 +733984101 +734093500 +735891214 +736956260 +738685536 +738881659 +739660204 +741025494 +741418432 +743345365 +744237267 +744357234 +744811305 +745378755 +746394489 +746617994 +747237852 +747629642 +747957429 +748843663 +750880416 +752732815 +757693590 +757956417 +758036067 +758299180 +758309245 +758747878 +760832339 +761135150 +761990740 +764040994 +767231266 +767356740 +767456013 +768137467 +769562455 +771445491 +772232460 +772564030 +775053198 +775345665 +775464769 +778720014 +778793566 +781720704 +782100758 +782182721 +783463990 +791279994 +791876198 +792265037 +794289828 +796271435 +796629791 +796806456 +797661895 +798120086 +798742964 +800065723 +803122230 +804293100 +807198688 +807487382 +807650229 +808500002 +808577261 +808830103 +809073182 +809264055 +809276456 +810284694 +811952156 +812433900 +813759669 +817956649 +818949154 +819592305 +820782732 +822154166 +822605154 +824100101 +825072193 +826107839 +827043256 +827249544 +828922529 +831110648 +831460600 +831989131 +832280789 +832694119 +833364330 +833850611 +834541135 +838266613 +839107675 +839148521 +840691116 +842556374 +844180205 +844692692 +845612054 +845863361 +846697057 +846871207 +848683553 +850405899 +850784234 +851123424 +852197140 +855502120 +855586245 +855668781 +855675633 +855879190 +855957287 +856117299 +856163730 +857924069 +859068360 +861414954 +862220124 +862884446 +864712182 +868199677 +869562959 +869731817 +870211055 +874435881 +877005609 +878151227 +878431464 +878975232 +880060227 +880325991 +880407103 +881467599 +883528647 +884061622 +884238878 +884886315 +885339106 +885938485 +886705747 +887832138 +887851153 +888016505 +888378984 +889041242 +889558597 +890214205 +890996604 +891002766 +892456149 +895203452 +895333635 +899241182 +899521529 +901869777 +903776433 +904117025 +904844916 +905578736 +906203575 +906811784 +906812863 +911439955 +913039220 +913210060 +913408239 +913546305 +915003592 +915056003 +915682031 +919030930 +919061917 +920120429 +921374992 +922348435 +923023429 +923477393 +923510154 +924717512 +925823612 +926141078 +928060762 +929515894 +929610229 +929774247 +930810656 +931278473 +932779695 +933376004 +935575241 +937167562 +937219425 +938525317 +938531752 +939110988 +940359383 +940414037 +943290983 +945732052 +948235397 +948583912 +948660600 +949308911 +949738733 +950017849 +950546871 +952105334 +953346621 +953389511 +957614860 +958114106 +958204191 +958475713 +959114025 +959591760 +959767948 +959847712 +960509540 +963616547 +964714143 +965216452 +966500528 +966540065 +966656346 +968134515 +969142497 +970035152 +970890193 +971012069 +972380635 +972432201 +972720185 +973272863 +973421597 +974146282 +974611758 +975595750 +976556402 +978797663 +978889362 +979882348 +982559445 +982971994 +983027648 +983036142 +983326361 +983769777 +984775739 +985667224 +986185740 +987100826 +988389331 +988814076 +989310069 +989780742 +990148370 +990510471 +998034057 +998574805 +1002103818 +1002382477 +1002781191 +1006476475 +1007073583 +1007413192 +1008080182 +1008917238 +1009562350 +1011126259 +1011426922 +1011465638 +1011728700 +1012978043 +1013596633 +1015486081 +1017605774 +1019123948 +1020998191 +1025378896 +1025539030 +1027145810 +1027218802 +1028402758 +1028943287 +1029044046 +1029473878 +1030745371 +1030891483 +1031661611 +1035063037 +1036163211 +1036324244 +1038024060 +1038079141 +1039609563 +1041291898 +1043514001 +1043671504 +1043748460 +1043799665 +1043813904 +1044906031 +1045155143 +1049227491 +1049335247 +1049728079 +1049845316 +1050330236 +1050997197 +1051457277 +1052821998 +1055687629 +1056661716 +1057862950 +1059798558 +1059806210 +1060288813 +1060696357 +1061518049 +1061892401 +1062922841 +1066649388 +1066972125 +1068053540 +1070355746 +1071401003 +1073048018 +1074097729 +1074286241 +1074300668 +1074483465 +1076063081 +1076611070 +1077160981 +1081087911 +1081585836 +1082854026 +1082946820 +1084899449 +1086035569 +1086200684 +1087460587 +1088190640 +1088812321 +1089642825 +1090531306 +1090974754 +1092306234 +1092710391 +1092953187 +1093221553 +1095075549 +1095541326 +1098270690 +1099260427 +1099741236 +1103884228 +1104249874 +1104858395 +1107290731 +1108017302 +1108811950 +1109418933 +1109622328 +1109855432 +1110626951 +1112932854 +1114555094 +1114901368 +1116883499 +1117756527 +1117811582 +1118528663 +1121395876 +1121418962 +1125116660 +1126356873 +1128584764 +1132845513 +1133750821 +1133774721 +1133824038 +1135598074 +1135620094 +1136933701 +1138038366 +1139318757 +1139540709 +1140779057 +1140871300 +1141337493 +1141625008 +1143906286 +1144962169 +1146517530 +1147868582 +1150608565 +1150685699 +1152561826 +1152658053 +1152870612 +1153411159 +1153831208 +1155746337 +1156777289 +1157339335 +1157521215 +1159311377 +1160173737 +1160512943 +1161042045 +1161314948 +1163243317 +1164236034 +1164772417 +1167644629 +1169503075 +1169798951 +1170087820 +1172837198 +1174834475 +1175335789 +1175852528 +1177950017 +1179092924 +1180171844 +1180885064 +1181139571 +1181417357 +1183706182 +1185682885 +1185794840 +1185820321 +1186424475 +1186749668 +1188795072 +1188961944 +1189752626 +1190803319 +1190905355 +1194156988 +1195126377 +1196073904 +1196102277 +1197836840 +1199917825 +1200831126 +1200952768 +1201701021 +1202350460 +1203533423 +1203560793 +1204015278 +1204603742 +1205290644 +1205463274 +1205578490 +1206155886 +1206390092 +1206963419 +1207379225 +1208131300 +1209892037 +1211066244 +1215426612 +1216726543 +1217295379 +1217890510 +1218550582 +1220333667 +1220504126 +1225723697 +1225936051 +1227145464 +1227250292 +1227437587 +1228449626 +1230989666 +1234319084 +1234818297 +1235930752 +1237457277 +1237975020 +1238195981 +1239022902 +1241008979 +1241623934 +1242283544 +1243363704 +1243702427 +1245554671 +1246420553 +1247105271 +1248644863 +1252662158 +1252894316 +1255682160 +1257913932 +1258401652 +1258466362 +1259656278 +1261553536 +1262117610 +1263325058 +1267194477 +1268173144 +1268605809 +1269116464 +1269130261 +1270135577 +1271224717 +1273404932 +1275248869 +1277243675 +1277321980 +1280088237 +1280377319 +1283366129 +1283452965 +1288300668 +1288593639 +1288963009 +1289143959 +1289636648 +1289710990 +1291395605 +1292482679 +1293750767 +1296097952 +1300663257 +1300801411 +1300975567 +1304926989 +1307929928 +1308135181 +1308199630 +1308827711 +1310389367 +1314346640 +1314379214 +1314761427 +1315274444 +1318176443 +1318724530 +1318788757 +1320744276 +1322378188 +1322899191 +1322903332 +1323635552 +1325636480 +1327244745 +1327717577 +1328483569 +1329163456 +1330148002 +1330356158 +1330750916 +1331213739 +1334292065 +1335953484 +1336095842 +1337023357 +1338304372 +1339916712 +1340913190 +1344001400 +1347420787 +1348885486 +1349015110 +1349960247 +1350773514 +1351690990 +1352022878 +1353432239 +1354578859 +1355355406 +1356742879 +1357124699 +1357126034 +1357403688 +1358323379 +1358767116 +1359635656 +1360170634 +1360482924 +1362144698 +1362843647 +1362978041 +1363477108 +1366155872 +1366534343 +1366540379 +1370274737 +1370612980 +1371516301 +1372082487 +1375376180 +1375996180 +1376179498 +1376525530 +1376862374 +1377121447 +1378231989 +1378629143 +1379034746 +1379702275 +1380501622 +1382222743 +1382277369 +1386167239 +1386353267 +1388546716 +1388983728 +1389889911 +1391960827 +1395863973 +1396295365 +1396645840 +1401333919 +1402247546 +1404491762 +1405497708 +1405789849 +1406437932 +1409507697 +1409829600 +1410156639 +1410552188 +1410765040 +1413994924 +1414207923 +1414423038 +1414528615 +1417951513 +1422027837 +1422585722 +1422685798 +1423639214 +1424215948 +1424752169 +1426697691 +1427718200 +1429354919 +1430036275 +1430365678 +1432518129 +1435813687 +1436648428 +1436803764 +1436923733 +1436925357 +1437804740 +1441967717 +1442696964 +1444528980 +1446109254 +1447146831 +1447529023 +1447639092 +1452760991 +1452949634 +1454208590 +1455007941 +1455129140 +1455163933 +1456500105 +1457477494 +1458969496 +1459936822 +1464154677 +1466255376 +1466647222 +1467133816 +1469672015 +1471685662 +1475644449 +1476113587 +1477040484 +1477125634 +1477958868 +1478052781 +1478231675 +1479091917 +1480023781 +1481426509 +1481673943 +1481954328 +1485761527 +1486010819 +1490088251 +1490293414 +1490551067 +1490855871 +1490993762 +1492372309 +1495513018 +1496403843 +1496856968 +1498584073 +1500513730 +1502453831 +1502970603 +1504889936 +1505342868 +1507596870 +1507828443 +1507871622 +1508081018 +1508414985 +1508415400 +1508479159 +1508784989 +1508899123 +1509102120 +1509239253 +1509423999 +1511282393 +1511471584 +1511975455 +1512337459 +1512366409 +1514185138 +1517833798 +1517889260 +1518491148 +1519303354 +1519638970 +1520134395 +1520682189 +1521269681 +1521856552 +1521977514 +1523490095 +1524089052 +1524439365 +1525501767 +1526049370 +1526083639 +1526265741 +1527380174 +1527421456 +1529439264 +1529777199 +1530083358 +1530120543 +1532297134 +1534366741 +1534846639 +1537880576 +1538159254 +1538229015 +1539989091 +1540741826 +1541002096 +1541074474 +1541111920 +1541721121 +1544221168 +1545737076 +1546967413 +1548221944 +1548399784 +1549529019 +1549733557 +1550538745 +1551165877 +1552449187 +1554873250 +1555063811 +1555839117 +1557213329 +1558931031 +1559662372 +1561025502 +1562199863 +1563098806 +1564028159 +1566921788 +1567582626 +1567885971 +1568409342 +1569699514 +1570568754 +1570682769 +1571401088 +1571615945 +1573197253 +1573306030 +1574199191 +1574664725 +1575838288 +1577296486 +1578225787 +1578615594 +1578783094 +1579943353 +1580519681 +1581562042 +1583299513 +1584569620 +1585435999 +1591980305 +1594259114 +1596482838 +1596566478 +1596781798 +1598145122 +1598474177 +1598702022 +1598880106 +1601476259 +1604608585 +1605673665 +1606094474 +1607153388 +1608483043 +1609576996 +1609966836 +1610106089 +1610212241 +1612961280 +1614633814 +1615301359 +1615396489 +1615586521 +1615644249 +1617349948 +1619540398 +1622220773 +1622566196 +1622672547 +1622858086 +1624464501 +1624469284 +1625624387 +1626442863 +1626561260 +1626835703 +1627131223 +1628704410 +1629979228 +1631921401 +1632359870 +1632447212 +1633900703 +1634092629 +1634849629 +1634970761 +1635095625 +1638858151 +1639101257 +1639266374 +1639375178 +1643044260 +1643477270 +1643600058 +1646270397 +1647081533 +1648638369 +1649158032 +1651359165 +1651757254 +1652676409 +1653666869 +1654496076 +1655987401 +1658941557 +1660130224 +1660399521 +1660648751 +1663738178 +1664461865 +1664938017 +1665344106 +1666581461 +1667198857 +1668027402 +1668301266 +1669934750 +1670756727 +1671375771 +1672057153 +1673714908 +1674101664 +1675299198 +1677345411 +1678071040 +1678802734 +1679356962 +1680245394 +1681992484 +1682345589 +1682795575 +1683700383 +1684298076 +1684591040 +1686133874 +1686201683 +1693046234 +1696623877 +1698620703 +1700597509 +1702429773 +1703593893 +1705151327 +1706381830 +1706621285 +1708884929 +1712530333 +1714271246 +1716268655 +1717303496 +1717619409 +1717771501 +1717784670 +1717898129 +1720162062 +1721413076 +1722060509 +1723393945 +1724525858 +1725179668 +1726223739 +1730973465 +1731352982 +1734614399 +1735003835 +1736059900 +1739031566 +1739709739 +1742200000 +1743060669 +1743156388 +1743560317 +1744091564 +1747034742 +1748920694 +1749360430 +1750705322 +1751012237 +1751481862 +1751706861 +1752801464 +1753942928 +1754206178 +1755190221 +1757516351 +1758303713 +1761029936 +1761115959 +1762325188 +1762541667 +1763803382 +1763962871 +1766708683 +1767102385 +1767385714 +1767960493 +1770782659 +1773889298 +1775413870 +1775824841 +1776748374 +1776907376 +1777087870 +1777687620 +1777860200 +1778540681 +1781370922 +1781463861 +1782981879 +1783108894 +1785165035 +1787046589 +1787727134 +1787922118 +1789130811 +1791501057 +1794023617 +1794658020 +1795509528 +1795907770 +1796184127 +1796300787 +1797062632 +1798205555 +1802694996 +1802842080 +1804722203 +1804991596 +1805045931 +1808063237 +1808277272 +1808409362 +1809053399 +1809816412 +1811254570 +1812653640 +1813623839 +1815633090 +1818417574 +1820141525 +1820537604 +1822410595 +1823946607 +1824181053 +1824488320 +1825081759 +1826954830 +1828731468 +1830311501 +1830732408 +1831135391 +1832175712 +1832407011 +1832970857 +1834168494 +1835805781 +1838108796 +1838410053 +1838522490 +1838585137 +1838827365 +1842721649 +1842753670 +1844269578 +1844561354 +1845237492 +1847931834 +1847955003 +1849441842 +1849930260 +1851144058 +1851394246 +1851918902 +1852864695 +1853098254 +1855992217 +1857013270 +1860452983 +1862173806 +1862290036 +1862424942 +1862516074 +1863090771 +1869118844 +1870686501 +1871737210 +1871930841 +1873231157 +1873342560 +1873437237 +1873914717 +1874050798 +1874446752 +1877665128 +1878336665 +1878457419 +1878652257 +1879212775 +1882195988 +1883277337 +1883661820 +1884372854 +1884757001 +1884958763 +1886068611 +1886163330 +1886436552 +1887274953 +1887487879 +1888071966 +1888220505 +1889248804 +1890353495 +1891793940 +1896019661 +1896476627 +1896647369 +1897820551 +1902153909 +1902254400 +1902339426 +1904253857 +1907078094 +1907538605 +1907580398 +1907807070 +1907911431 +1909053670 +1909718144 +1911249842 +1915352982 +1915682127 +1916020202 +1916094303 +1916259885 +1916308447 +1916828746 +1916908871 +1916993507 +1918376468 +1918632021 +1919583369 +1920728646 +1922036040 +1922614328 +1923924460 +1924416135 +1924633218 +1925056591 +1925082982 +1927651160 +1929621642 +1929913575 +1931573183 +1932716859 +1934613289 +1935068243 +1936377891 +1938115516 +1940511093 +1942290066 +1945580778 +1946213519 +1947409049 +1948715918 +1949700165 +1950213303 +1950273149 +1951327492 +1951377854 +1953285454 +1953576625 +1955039518 +1955293159 +1956068826 +1956126820 +1956991390 +1957012319 +1957602825 +1958219970 +1959287271 +1959338304 +1959775221 +1961650964 +1963473417 +1963770886 +1965873054 +1966615493 +1967364101 +1967458050 +1967928355 +1968849511 +1970429577 +1973194763 +1973998991 +1974957533 +1976452159 +1976830581 +1977247419 +1980953401 +1982013299 +1982165897 +1982312774 +1985493594 +1985953656 +1988645768 +1989365107 +1989677061 +1991495774 +1992004640 +1992319864 +1992886662 +1994105611 +1994425709 +1995915674 +1996070097 +1996684564 +1996730701 +1997162113 +1997623469 +1998377219 +1999127721 +2001200452 +2005054881 +2005811631 +2006160299 +2006982087 +2009652075 +2009798832 +2010057298 +2013001410 +2017315325 +2019357220 +2019932464 +2021770828 +2023037910 +2023613712 +2024107971 +2024945956 +2027242748 +2027485539 +2028513672 +2029183499 +2029656846 +2029866940 +2033017829 +2033754513 +2035115070 +2035742309 +2035752357 +2038696287 +2040229806 +2040360225 +2040914781 +2041430432 +2041922925 +2042693768 +2042892557 +2043808773 +2044732291 +2044819044 +2045928996 +2047175855 +2049075599 +2049884625 +2051581527 +2052223638 +2052476522 +2053285680 +2057529922 +2061783685 +2063389035 +2065420671 +2065468078 +2066152872 +2066161218 +2066209600 +2066451533 +2067955182 +2068587877 +2071142127 +2072291183 +2073205469 +2073575906 +2075304330 +2076257739 +2077984882 +2078244571 +2078387171 +2078588264 +2078809135 +2079506846 +2079856010 +2080912538 +2081640854 +2083692784 +2083830786 +2084230463 +2084376878 +2084381027 +2084804186 +2086945996 +2086956417 +2087272360 +2089096067 +2089420814 +2091020153 +2096925230 +2097234590 +2098333903 +2100035316 +2101153676 +2102342705 +2102759154 +2107573499 +2107879177 +2108631302 +2112022026 +2112321593 +2113258941 +2113307749 +2113939165 +2114483017 +2115926688 +2116358856 +2116500429 +2116642867 +2118036408 +2118454202 +2118918951 +2119234197 +2123456246 +2123781138 +2125209562 +2126242116 +2126524027 +2126751739 +2127559558 +2128021970 +2128389497 +2132256492 +2133026663 +2133146643 +2137312385 +2142772926 +2143582251 +2143642374 +2144650720 +2146276546 +2147208091 diff --git a/examples/machsuite/merge/check1.data b/examples/machsuite/merge/check1.data new file mode 100644 index 0000000000..678e1861eb --- /dev/null +++ b/examples/machsuite/merge/check1.data @@ -0,0 +1,7 @@ +%% +5 +6 +7 +8 +9 +%% diff --git a/examples/machsuite/merge/input.data b/examples/machsuite/merge/input.data new file mode 100644 index 0000000000..5a655a5227 --- /dev/null +++ b/examples/machsuite/merge/input.data @@ -0,0 +1,2049 @@ +%% +1109418933 +1238195981 +1655987401 +1435813687 +568740973 +194304077 +85901251 +90635783 +1521856552 +561622493 +1490293414 +1693046234 +978889362 +758747878 +238322615 +449325307 +111436477 +1663738178 +34606601 +2101153676 +807487382 +1239022902 +1622566196 +1916259885 +308994026 +1703593893 +1508899123 +1362978041 +325464775 +1670756727 +474042834 +906811784 +291409102 +440797705 +904844916 +2116642867 +582856665 +1432518129 +1375376180 +1237457277 +638126241 +576622031 +1624464501 +949308911 +979882348 +1825081759 +303590601 +269644648 +1185820321 +466890649 +924717512 +1525501767 +289705845 +1169798951 +332327337 +990148370 +1174834475 +1632359870 +230054271 +1066649388 +688349205 +892456149 +239056365 +757693590 +177623586 +1161314948 +461186368 +1322903332 +1202350460 +2040360225 +1598474177 +1382277369 +599711002 +154698022 +1767102385 +1712530333 +1808063237 +1117811582 +156300070 +859068360 +2089420814 +1897820551 +1017605774 +310662211 +2073205469 +1031661611 +1139318757 +1237975020 +1372082487 +299389274 +890214205 +690340275 +1252662158 +593608013 +151499496 +1308135181 +83314681 +1514185138 +1953285454 +1702429773 +885339106 +1628704410 +1660130224 +1104858395 +1664461865 +566948716 +1140779057 +76115669 +1041291898 +1280088237 +1008080182 +127839099 +1327244745 +1967364101 +574110884 +236157269 +1143906286 +715553437 +1056661716 +1791501057 +820782732 +1090531306 +1362843647 +47866257 +1512337459 +586080090 +1615644249 +1267194477 +719448316 +1717784670 +987100826 +758299180 +1530120543 +1606094474 +986185740 +1625624387 +281450081 +248943784 +1976452159 +1248644863 +1204603742 +37313539 +1289636648 +1228449626 +587916663 +509043494 +1787922118 +27666284 +456679784 +768137467 +145125081 +1873231157 +1664938017 +424635729 +1059806210 +561858461 +2017315325 +1351690990 +212764022 +1430036275 +655371791 +1293750767 +2071142127 +888016505 +1604608585 +330737581 +2091020153 +1750705322 +964714143 +295984014 +950546871 +526857678 +1270135577 +1823946607 +1557213329 +271463051 +922348435 +1639101257 +1752801464 +1043514001 +716307040 +928060762 +1992319864 +1477125634 +983769777 +96657364 +850784234 +625175432 +334977553 +846697057 +1935068243 +426368885 +1511975455 +1074286241 +1874050798 +1783108894 +576793022 +1013596633 +170463985 +3755034 +1314379214 +186735955 +243261054 +60974523 +1878652257 +1815633090 +66411149 +1614633814 +258103701 +686696903 +1802842080 +938525317 +1534846639 +1945580778 +725038219 +846871207 +151035803 +952105334 +1668027402 +852197140 +855879190 +1220504126 +688409711 +1886436552 +1268605809 +750880416 +59206569 +190068440 +1924633218 +2066152872 +571532202 +2133146643 +1550538745 +1108017302 +712973066 +1086200684 +989310069 +172179489 +1200952768 +1059798558 +1322899191 +1578225787 +502743441 +926141078 +155477576 +1838827365 +189486773 +105877669 +297823665 +796629791 +1809053399 +869562959 +300761205 +1300801411 +333247645 +2078588264 +744357234 +277528908 +1095075549 +1596482838 +1388983728 +1849441842 +111155111 +1622220773 +833364330 +1985493594 +248987466 +826107839 +180988319 +397615021 +1241008979 +2033017829 +775464769 +1409507697 +1851918902 +29381863 +1242283544 +1194156988 +530630168 +1132845513 +965216452 +1907580398 +379897203 +1330750916 +1002382477 +536145871 +356194072 +1610106089 +177548100 +1970429577 +1205463274 +948235397 +421766723 +514380753 +1698620703 +985667224 +983036142 +1997623469 +189071296 +1459936822 +831989131 +1896019661 +1626835703 +1259656278 +1781463861 +938531752 +2068587877 +288148609 +682966620 +1028943287 +698735397 +1571401088 +384805441 +1087460587 +2084376878 +1179092924 +1511282393 +206702553 +1126356873 +1777087870 +2067955182 +1159311377 +1544221168 +2128389497 +82876636 +2118454202 +540184876 +392961592 +1466255376 +948583912 +1234319084 +1549529019 +1907538605 +371167247 +190526577 +80693604 +1639375178 +1541074474 +1074097729 +1196073904 +807198688 +2052223638 +93482676 +1742200000 +1375996180 +615255022 +1436923733 +619433493 +1998377219 +1050997197 +1090974754 +929610229 +741418432 +855675633 +2084230463 +199018542 +582040172 +708933711 +915682031 +1950213303 +30894415 +355535304 +673553453 +181874898 +1888071966 +2133026663 +1541111920 +760832339 +620801916 +1961650964 +461386911 +1257913932 +33287680 +1437804740 +1904253857 +1246420553 +1633900703 +974611758 +1062922841 +278846449 +1490855871 +440638102 +757956417 +761990740 +1273404932 +410327491 +656363920 +1357403688 +1395863973 +2041922925 +839148521 +1678802734 +2076257739 +534440455 +1530083358 +1269130261 +247483746 +1447529023 +822154166 +1824488320 +1804991596 +475239808 +556662332 +988389331 +423694845 +730808830 +1573306030 +344296193 +810284694 +1156777289 +342070919 +1879212775 +2100035316 +1955293159 +590784521 +1761029936 +1896647369 +1610212241 +887851153 +915056003 +269570899 +1211066244 +194961368 +51245290 +1502453831 +311356082 +811952156 +602854601 +306822213 +1205578490 +915003592 +923510154 +222774002 +931278473 +1677345411 +1318724530 +932779695 +225891607 +891002766 +808830103 +2029183499 +507333260 +2013001410 +1564028159 +2024107971 +584977769 +1651757254 +257004501 +1923924460 +563762887 +101347165 +634966326 +1524439365 +2084381027 +1813623839 +838266613 +1902254400 +976556402 +1794023617 +1731352982 +684786026 +495999182 +1824181053 +856163730 +461038923 +195485565 +1526265741 +587767534 +1289710990 +845863361 +200930301 +1787046589 +1947409049 +929515894 +186545648 +72460518 +207237193 +578934327 +1889248804 +966500528 +959591760 +772232460 +624009478 +439115595 +517175601 +1548221944 +1409829600 +1916908871 +1761115959 +1753942928 +1153831208 +1932716859 +41705353 +1529777199 +1008917238 +227234597 +1452760991 +886705747 +617601891 +505236584 +269286404 +2143642374 +597276011 +695452877 +1496856968 +1426697691 +1985953656 +1601476259 +165757953 +261522116 +1989365107 +2127559558 +1077160981 +111885734 +1678071040 +1164772417 +844692692 +170391257 +1957602825 +1235930752 +175276916 +899241182 +1569699514 +1092953187 +2147208091 +1757516351 +1109855432 +160415738 +1135598074 +271001503 +1405789849 +439420872 +352228300 +2035742309 +1798205555 +187577258 +1632447212 +1029044046 +1116883499 +1275248869 +1873914717 +2006982087 +715522899 +2023037910 +2042693768 +824100101 +1751481862 +1739709739 +587037925 +1578783094 +1853098254 +422151624 +640042407 +919030930 +169996838 +1634092629 +698372168 +460964936 +878151227 +667549624 +1524089052 +959767948 +714517701 +555271126 +1444528980 +191656740 +1700597509 +382115769 +1241623934 +1675299198 +1252894316 +62624058 +1671375771 +1227437587 +150020171 +203588067 +1982312774 +2098333903 +590956460 +1884958763 +179816643 +512010901 +1300663257 +1360170634 +134086399 +496705994 +1045155143 +913408239 +320990176 +1334292065 +230116054 +1366155872 +85297387 +2107879177 +165449550 +1141625008 +510490837 +1646270397 +505651416 +913039220 +589330536 +1609966836 +527155034 +139309844 +653182226 +574107939 +274284400 +635151053 +1548399784 +1566921788 +1747034742 +170250664 +1963473417 +752732815 +1521269681 +1347420787 +895203452 +1262117610 +1190905355 +1464154677 +2115926688 +546700911 +1929621642 +649418674 +2072291183 +1871737210 +429639342 +1992004640 +933376004 +1071401003 +1789130811 +445929743 +809264055 +1584569620 +1036324244 +1802694996 +1114901368 +633950703 +286841615 +407394234 +480093923 +307203772 +629196542 +427310717 +1878336665 +1812653640 +215084709 +1379702275 +1959338304 +220029168 +505318934 +1378231989 +189324225 +601273025 +362170271 +1355355406 +966656346 +906203575 +144522435 +1549733557 +1828731468 +675626112 +625384414 +641476730 +472376887 +400859314 +1315274444 +2107573499 +1086035569 +1277243675 +102673761 +498204267 +1996684564 +524037430 +1339916712 +1748920694 +1329163456 +2057529922 +1167644629 +647202043 +429741617 +644816858 +1076063081 +848683553 +1608483043 +722929758 +1615586521 +72158627 +305434839 +165337021 +839107675 +1686133874 +1907911431 +1424752169 +2049884625 +95598889 +1283452965 +1507871622 +1982165897 +804293100 +1220333667 +587655589 +1509239253 +1015486081 +510319326 +2102342705 +1938115516 +1457477494 +1335953484 +320253652 +1911249842 +669470941 +1197836840 +1936377891 +1743560317 +1526083639 +1336095842 +1992886662 +1280377319 +47621339 +1376525530 +2114483017 +775053198 +1153411159 +984775739 +146301892 +217859346 +974146282 +1686201683 +684312237 +935575241 +1717619409 +676159587 +2044732291 +325031938 +1269116464 +1963770886 +663507254 +1749360430 +1577296486 +417730805 +1007073583 +33797863 +153048093 +998034057 +62830115 +783463990 +1379034746 +950017849 +2001200452 +2097234590 +361261943 +1638858151 +1490551067 +738685536 +1147868582 +1874446752 +450180092 +1098270690 +973421597 +532918727 +2112022026 +2137312385 +433315813 +418518584 +2083830786 +1787727134 +1907807070 +883528647 +1922614328 +1994105611 +851123424 +1922036040 +878431464 +495965166 +1183706182 +2132256492 +868199677 +1523490095 +1534366741 +488305458 +715902510 +1204015278 +1538229015 +37958120 +2044819044 +782100758 +1455163933 +771445491 +890996604 +812433900 +2073575906 +1509102120 +20193475 +1036163211 +1477958868 +1422027837 +1340913190 +1794658020 +520630890 +76700937 +1562199863 +192699922 +51198210 +228756043 +36513003 +1776748374 +1325636480 +1955039518 +545325403 +905578736 +152600286 +2066209600 +1775413870 +733984101 +6748351 +2116500429 +155859496 +1469672015 +1475644449 +182069082 +855586245 +1832407011 +198128026 +1609576996 +1834168494 +1838522490 +744811305 +434370628 +1330356158 +669729404 +1909718144 +982971994 +638785636 +279972861 +764040994 +87087128 +1883277337 +1157521215 +302354825 +1871930841 +1915682127 +1736059900 +496276526 +1775824841 +1011426922 +1918632021 +306233773 +1832970857 +580950754 +1388546716 +959114025 +417112292 +494700070 +480755265 +2125209562 +1570568754 +1902339426 +1918376468 +972720185 +943290983 +1767960493 +33423244 +822605154 +2126524027 +1243702427 +1540741826 +1951377854 +733476653 +1310389367 +664661815 +16921963 +1682345589 +525189582 +1150685699 +920120429 +89650033 +778720014 +469606255 +485470119 +370391868 +582241926 +297554450 +1626442863 +2113307749 +1107290731 +637126175 +195791553 +817956649 +1136933701 +1527421456 +945732052 +407019027 +1851144058 +22768866 +1025378896 +1103884228 +1118528663 +1308827711 +1797062632 +881467599 +1916993507 +16570194 +1386167239 +1068053540 +563554428 +2123781138 +1653666869 +446035477 +334543417 +1114555094 +442247466 +1050330236 +657058228 +1878457419 +1991495774 +1429354919 +213296204 +758036067 +1651359165 +1061518049 +2066161218 +1414207923 +885938485 +654953859 +1160512943 +1596566478 +1706621285 +1271224717 +1203533423 +275490071 +216730162 +222764447 +1631921401 +1818417574 +264114698 +1206155886 +1061892401 +1348885486 +1027218802 +1720162062 +1417951513 +1973194763 +2009798832 +1092306234 +2035752357 +2126242116 +121774000 +1508784989 +503395919 +864712182 +2087272360 +1277321980 +1112932854 +166148387 +615465251 +535153458 +1370274737 +1049335247 +127386675 +745378755 +249178659 +1404491762 +1539989091 +919061917 +1504889936 +484374348 +1763962871 +744237267 +1498584073 +1043799665 +1567582626 +120372826 +1060288813 +1135620094 +394042623 +673939191 +1308199630 +957614860 +1055687629 +1205290644 +1580519681 +20865036 +32011475 +1915352982 +1538159254 +1160173737 +2029866940 +297869098 +342063486 +1615396489 +1366540379 +515229764 +968134515 +833850611 +1674101664 +1980953401 +1207379225 +1436803764 +174384850 +1209892037 +1344001400 +813759669 +880407103 +2133347 +1057862950 +479378426 +686806421 +1520682189 +545094225 +1081585836 +477796026 +1886163330 +1245554671 +321993998 +1919583369 +2005054881 +308134579 +1974957533 +1820537604 +778793566 +1025539030 +477793157 +970890193 +712997872 +1725179668 +1830732408 +613529359 +1376179498 +797661895 +1125116660 +2027485539 +413733332 +1188795072 +1152658053 +1558931031 +1128584764 +1907078094 +1121395876 +2021770828 +2065420671 +294813100 +417049677 +28990799 +1074483465 +930810656 +408591603 +1028402758 +404866075 +1883661820 +325290524 +887832138 +446669555 +1188961944 +1490088251 +371943766 +1658941557 +948660600 +1502970603 +844180205 +253359016 +1405497708 +1884757001 +1551165877 +937167562 +633725180 +1479091917 +394189989 +2029656846 +809073182 +1328483569 +137991365 +983027648 +2126751739 +529333204 +150337966 +2042892557 +1396295365 +156960811 +884061622 +1466647222 +1216726543 +1808277272 +1139540709 +1289143959 +1035063037 +747237852 +699187511 +43902811 +413952789 +2080912538 +939110988 +2113258941 +541468179 +426239114 +3757680 +1559662372 +1612961280 +1808409362 +1454208590 +240134265 +1356742879 +636440904 +11497565 +623522623 +216451246 +444869164 +741025494 +2041430432 +1683700383 +1020998191 +975595750 +2061783685 +791279994 +544807927 +1455129140 +1170087820 +803122230 +600033258 +67874428 +861414954 +1164236034 +604513972 +855668781 +2065468078 +1953576625 +642811328 +573553042 +972380635 +78410211 +1857013270 +32283582 +247597272 +632657984 +164019660 +1988645768 +569866125 +106828160 +889041242 +589994150 +1496403843 +627008650 +1186424475 +1089642825 +1029473878 +1353432239 +55100470 +2128021970 +1555063811 +870211055 +827043256 +746617994 +315948592 +603437841 +1358323379 +147666338 +1545737076 +1956068826 +1634970761 +1615301359 +1916020202 +663304095 +1667198857 +19892644 +1203560793 +1708884929 +832280789 +1338304372 +1929913575 +1946213519 +700320492 +1563098806 +2040229806 +246048882 +1320744276 +958114106 +512735686 +187757211 +1181139571 +1997162113 +101884596 +409435661 +1951327492 +978797663 +1666581461 +739660204 +585230318 +1660399521 +1527380174 +265337843 +1873342560 +1471685662 +156543006 +1643600058 +2079856010 +1537880576 +591164384 +1520134395 +280371522 +1541721121 +1255682160 +1684298076 +1795509528 +958204191 +969142497 +1169503075 +619028234 +127031658 +358187431 +840691116 +1430365678 +1763803382 +81692302 +988814076 +1648638369 +533206101 +1247105271 +880060227 +874435881 +1314761427 +1288300668 +135356844 +1673714908 +470747628 +736956260 +1680245394 +1940511093 +1822410595 +1888220505 +1796184127 +767356740 +1030891483 +911439955 +1570682769 +176394620 +1999127721 +1318176443 +553810021 +1766708683 +1739031566 +1152870612 +1804722203 +720006110 +1877665128 +299898902 +642497135 +953389511 +234368065 +884886315 +953346621 +70599058 +267898534 +69969612 +213358112 +1330148002 +1002781191 +444128215 +194033189 +1366534343 +1751012237 +1925056591 +1349015110 +710833831 +67176562 +1989677061 +1144962169 +1724525858 +1074300668 +1862424942 +1831135391 +1519638970 +1508479159 +691710619 +1152561826 +1776907376 +330792297 +1735003835 +571913873 +109081969 +2144650720 +1571615945 +781720704 +1526049370 +522708374 +1723393945 +2096925230 +1575838288 +381891319 +1967458050 +128191180 +15264621 +1855992217 +1573197253 +2023613712 +1734614399 +68604017 +1378629143 +1682795575 +1414528615 +862884446 +573024774 +266261552 +1423639214 +594786342 +653548551 +775345665 +738881659 +2112321593 +1150608565 +394664535 +208236790 +690139864 +1490993762 +123620487 +433157790 +1442696964 +1869118844 +1773889298 +98319525 +1206390092 +37577570 +686712154 +1258401652 +689731123 +1717771501 +261653045 +1002103818 +1230989666 +1009562350 +1721413076 +472147699 +1672057153 +87248777 +1762325188 +654040018 +58572672 +1862173806 +565681876 +466353018 +1826954830 +831460600 +940359383 +532974825 +1842721649 +151333492 +1371516301 +1268173144 +1546967413 +906812863 +100077314 +1261553536 +1634849629 +267592551 +990510471 +650896432 +463015512 +571692111 +191855552 +688030609 +747629642 +1726223739 +600477902 +1181417357 +1811254570 +1957012319 +1654496076 +588200933 +1117756527 +375078779 +271321916 +1011126259 +278812137 +1436925357 +921374992 +717117315 +1060696357 +647566861 +1959287271 +884238878 +680538897 +1283366129 +145181215 +113221775 +470920964 +1030745371 +685518568 +2066451533 +2086956417 +377206183 +1717898129 +2089096067 +2010057298 +1225723697 +845612054 +648920224 +1099260427 +34794482 +1956126820 +314315478 +2053285680 +1133824038 +21389248 +1095541326 +434550013 +735891214 +680154439 +1890353495 +2045928996 +1778540681 +2040914781 +139185907 +828922529 +2143582251 +798742964 +1200831126 +392336178 +1180171844 +734093500 +970035152 +1082854026 +1447146831 +1190803319 +242255706 +645644963 +368123457 +1296097952 +39484517 +675168495 +1481673943 +448651778 +1958219970 +29653602 +1218550582 +380681534 +674185448 +453173852 +730203072 +888378984 +869731817 +1622858086 +37600544 +1227250292 +903776433 +286665591 +972432201 +1480023781 +148366910 +477994546 +87270835 +2116358856 +1206963419 +1508414985 +1027145810 +794289828 +1934613289 +2027242748 +350127017 +572382664 +1949700165 +1909053670 +569091874 +1163243317 +1140871300 +503974112 +1291395605 +1436648428 +809276456 +654196693 +899521529 +491184830 +355560126 +725273676 +1517889260 +255055848 +150901144 +285571409 +1995915674 +1578615594 +960509540 +1924416135 +80818357 +998574805 +1234818297 +1948715918 +335715992 +407338232 +198515425 +1882195988 +355079864 +1777860200 +1413994924 +1796300787 +310665455 +1832175712 +2063389035 +355827223 +1358767116 +1208131300 +1363477108 +270842593 +1495513018 +183070972 +1965873054 +857924069 +808500002 +1838585137 +1977247419 +1006476475 +2146276546 +1185794840 +2009652075 +1401333919 +1862290036 +1196102277 +1518491148 +1104249874 +1447639092 +1966615493 +2102759154 +1177950017 +1175852528 +1486010819 +570351679 +1629979228 +93987402 +5114060 +878975232 +2079506846 +622945444 +1243363704 +403955460 +1860452983 +1406437932 +782182721 +1161042045 +572148025 +1619540398 +533566406 +1863090771 +1359635656 +671092095 +1380501622 +1870686501 +1886068611 +1141337493 +925823612 +1354578859 +693156114 +1781370922 +2028513672 +889558597 +1891793940 +1199917825 +1402247546 +1076611070 +105724135 +1755190221 +1505342868 +791876198 +1555839117 +338856656 +356093208 +1649158032 +1012978043 +1679356962 +441400426 +1172837198 +1574664725 +1976830581 +14464969 +656216426 +798120086 +185589616 +177771287 +44125235 +1795907770 +862220124 +99479956 +1758303713 +1362144698 +63917942 +1427718200 +940414037 +553748629 +1458969496 +1920728646 +527747622 +1665344106 +1652676409 +1617349948 +1517833798 +904117025 +1591980305 +286532441 +544833283 +1967928355 +730675129 +577928774 +1568409342 +2049075599 +2033754513 +971012069 +2078387171 +1561025502 +1849930260 +1887487879 +651856529 +659854392 +1146517530 +1337023357 +842556374 +1093221553 +895333635 +1357124699 +1215426612 +1942290066 +73066829 +683562227 +1744091564 +1225936051 +1038024060 +1121418962 +1552449187 +128894687 +1039609563 +1138038366 +1996070097 +163522198 +95454661 +136883456 +208753405 +1288963009 +257911218 +353885535 +426858731 +14535786 +575072672 +1500513730 +114342047 +1931573183 +1263325058 +149065532 +1896476627 +697034874 +662099942 +42383451 +250211688 +2024945956 +1705151327 +1777687620 +1422685798 +581929050 +654528262 +1521977514 +769562455 +2052476522 +567355160 +156692706 +128952447 +2051581527 +244437562 +488787171 +2086945996 +705207687 +105234290 +1956991390 +712594424 +1081087911 +1581562042 +808577261 +1743156388 +650800084 +966540065 +1007413192 +877005609 +1189752626 +619600306 +481430369 +575225045 +1994425709 +901869777 +565800731 +1477040484 +1492372309 +171333890 +1873437237 +69122538 +218079139 +436827523 +1968849511 +989780742 +1377121447 +1598702022 +25776468 +310302420 +382894292 +856117299 +1770782659 +973272863 +1916828746 +1350773514 +712981076 +1844561354 +443973176 +834541135 +385862243 +645888076 +1982013299 +1195126377 +100936390 +403111108 +1574199191 +336541300 +396095779 +471437709 +232320438 +256610514 +963616547 +2038696287 +555566939 +1847931834 +1842753670 +850405899 +649968691 +1051457277 +1508415400 +1088812321 +1307929928 +2078809135 +1830311501 +469191954 +1643044260 +118360318 +1887274953 +670730778 +560186184 +524157971 +831110648 +683533351 +228193101 +370000419 +1073048018 +1304926989 +284387350 +243305723 +983326361 +1155746337 +153207158 +1070355746 +1049728079 +1762541667 +800065723 +1357126034 +949738733 +1902153909 +1360482924 +1605673665 +2108631302 +1292482679 +1043671504 +328655625 +615396429 +1845237492 +1862516074 +1647081533 +1627131223 +351873178 +13360332 +1852864695 +1668301266 +1626561260 +1099741236 +612383828 +1082946820 +1716268655 +1108811950 +1044906031 +2142772926 +467485606 +1322378188 +1624469284 +958475713 +1043813904 +1884372854 +442054749 +1386353267 +761135150 +1594259114 +982559445 +626485281 +575410850 +2083692784 +880325991 +677596581 +2019932464 +88325323 +1596781798 +168634616 +550021592 +110019408 +161717562 +217581202 +224370131 +1927651160 +746394489 +133709002 +439666194 +128199623 +566064689 +581839897 +483764857 +1782981879 +619670720 +1186749668 +549024074 +818949154 +1751706861 +265255716 +119602863 +819592305 +574493348 +2035115070 +65375150 +1410156639 +1327717577 +1084899449 +1391960827 +661211720 +807650229 +111756298 +1382222743 +1201701021 +477837560 +1011728700 +25100496 +184954528 +1583299513 +329738404 +1088190640 +1011465638 +2118036408 +1838108796 +16959813 +2043808773 +1714271246 +1805045931 +498679396 +177133202 +1331213739 +1410552188 +1950273149 +396375367 +1092710391 +1722060509 +1635095625 +606824780 +1809816412 +231968216 +1349960247 +1476113587 +250544064 +302652346 +923023429 +1529439264 +263877273 +185259225 +65864705 +959847712 +1258466362 +566225790 +1532297134 +1485761527 +1507828443 +1669934750 +1507596870 +913210060 +1851394246 +748843663 +1043748460 +1622672547 +2118918951 +355663123 +1835805781 +1717303496 +796271435 +772564030 +688458885 +1019123948 +796806456 +1554873250 +1389889911 +1446109254 +172081653 +312251881 +1478052781 +254388947 +1049845316 +122470461 +1414423038 +1481954328 +293433174 +1660648751 +419218001 +1847955003 +747957429 +212096210 +929774247 +1925082982 +937219425 +1767385714 +429882966 +2019357220 +537126833 +1049227491 +1370612980 +1217890510 +767456013 +1681992484 +195575558 +36491596 +1844269578 +260995967 +337601622 +1743060669 +697126989 +1541002096 +139783465 +1323635552 +134097471 +1512366409 +2119234197 +913546305 +855957287 +2077984882 +1424215948 +2075304330 +1456500105 +1175335789 +2113939165 +1754206178 +1109622328 +1639266374 +1455007941 +1133750821 +225640914 +1598880106 +1706381830 +1288593639 +1509423999 +2081640854 +1996730701 +1352022878 +832694119 +1511471584 +1607153388 +1785165035 +146480651 +1157339335 +1376862374 +767231266 +1066972125 +632426210 +2084804186 +128928023 +1452949634 +25869575 +1579943353 +743345365 +1038079141 +48905545 +827249544 +1318788757 +420033603 +1410765040 +792265037 +1684591040 +1217295379 +132957322 +543322263 +699663017 +309212434 +543473278 +415406505 +427731302 +1441967717 +380400361 +116727282 +1133774721 +32495326 +446582461 +1598145122 +855502120 +758309245 +265158106 +631585224 +379721750 +304511300 +1820141525 +196570489 +2006160299 +1838410053 +2078244571 +1519303354 +92766339 +1481426509 +84370399 +2047175855 +1696623877 +1110626951 +1052821998 +40140980 +725776724 +71478587 +334880253 +2005811631 +349919910 +1973998991 +1467133816 +1508081018 +201967992 +2123456246 +370406316 +462324490 +1180885064 +1422585722 +923477393 +1478231675 +1300975567 +1730973465 +1567885971 +1396645840 +1227145464 +687976188 +27675825 +825072193 +1916094303 +1916308447 +679338690 +33967896 +240505305 +1585435999 +1185682885 +613268233 +1959775221 +1643477270 +524589729 +1314346640 +287756628 diff --git a/examples/machsuite/merge/input1.data b/examples/machsuite/merge/input1.data new file mode 100644 index 0000000000..f165bf0dae --- /dev/null +++ b/examples/machsuite/merge/input1.data @@ -0,0 +1,7 @@ +%% +9 +8 +7 +6 +5 +%% \ No newline at end of file diff --git a/examples/machsuite/merge/mergesort.py b/examples/machsuite/merge/mergesort.py new file mode 100644 index 0000000000..068e57a0d9 --- /dev/null +++ b/examples/machsuite/merge/mergesort.py @@ -0,0 +1,64 @@ +import allo +from allo.ir.types import int32 +import numpy as np +N = 2048 + + +def merge(a:int32[N], start: int32, m: int32, stop: int32): + temp:int32[N] + + tmp_j:int32 + tmp_i:int32 + + i:int32 = start + j:int32 = stop + + for index in range(start, m + 1): + temp[index] = a[index] + + for index in range(m+1, stop + 1): + temp[m + 1 + stop - index] = a[index] + + for k in range(start, stop + 1): + tmp_j = temp[j] + tmp_i = temp[i] + + if (tmp_j < tmp_i): + a[k] = tmp_j + j -= 1 + else: + a[k] = tmp_i + i += 1 + + +def merge_sort(a:int32[N]) -> int32[N]: + start:int32 = 0 + stop:int32 = N - 1 + + i:int32 = 0 + f:int32 + m:int32 = 1 + mid:int32 + to:int32 + + + while (m < stop-start + 1): + for i in range(start, stop, m+m): + f = i + + mid = i + m - 1 + + to = i + m + m - 1 + if (to <= stop): + merge(a, f, mid, to) + else: + merge(a, f, mid, stop) + + m += m + + + return a + +s = allo.customize(merge_sort) +mod = s.build() +print(s.module) \ No newline at end of file diff --git a/examples/machsuite/merge/testing.py b/examples/machsuite/merge/testing.py new file mode 100644 index 0000000000..3993980fe9 --- /dev/null +++ b/examples/machsuite/merge/testing.py @@ -0,0 +1,34 @@ +import allo +import numpy as np +from mergesort import merge_sort +from allo.ir.types import int32 + +def read_data(filename): + with open(filename, 'r') as file: + lines = file.readlines() + data = [int(line.strip()) for line in lines if not line.startswith("%%")] + return data + +def main(): + input_data = read_data("input.data") + check_data = read_data("check.data") + + values = np.array(input_data).astype(np.int32) + + check = np.array(check_data).astype(np.int32) + + + s = allo.customize(merge_sort) + + mod = s.build() + + actual = mod(values) + + + np.testing.assert_allclose(actual, check, rtol=1e-5, atol=1e-5) + + + +if __name__ == "__main__": + main() + diff --git a/examples/machsuite/merge_sort b/examples/machsuite/merge_sort new file mode 100644 index 0000000000..2ad3179a73 --- /dev/null +++ b/examples/machsuite/merge_sort @@ -0,0 +1,57 @@ + +import allo +from allo.ir.types import int32 +import numpy as np + + +N = 10 #testing purpose + +def merge_sort(a:int32[N]): + n:int32 = N + size:int32 = 1 + + while size < n - 1: + + left:int32 = 0 + + while left < n - 1: + mid:int32 = left + size - 1 + if(mid>n-1): + mid = n-1 + + right:int32 = left + 2 * size - 1 + if right>n-1: + right= n-1 + + if right >= n: + right = n - 1 + + merge(a, left, mid, right) + + left = left + size*2 + + size = size*2 + +def merge(a:int32[N], start: int32, mid: int32, stop: int32): + temp:int32 = np.zeros(stop - start + 1, dtype=np.int32) + + i:int32 = start + j:int32 = mid + 1 + k:int32 = 0 + + + while i <= mid or j <= stop: + if j > stop or (i <= mid and a[i] <= a[j]): + temp[k] = a[i] + i += 1 + else: + temp[k] = a[j] + j += 1 + k += 1 + + a[start:stop + 1] = temp[:k] + + +s = allo.customize(merge_sort) +mod = s.build() +print(s.module) diff --git a/examples/machsuite/mergesort.py b/examples/machsuite/mergesort.py new file mode 100644 index 0000000000..f5d4b5d975 --- /dev/null +++ b/examples/machsuite/mergesort.py @@ -0,0 +1,128 @@ + +""" +import allo +from allo.ir.types import int32 +import numpy as np + + +N = 10 #testing purpose +import numpy as np + +def merge_sort(a:int32[N]): + n:int32 = N + size:int32 = 1 + + while size < n - 1: + + left:int32 = 0 + + while left < n - 1: + mid:int32 = left + size - 1 + if(mid>n-1): + mid = n-1 + + right:int32 = left + 2 * size - 1 + if right>n-1: + right= n-1 + + if right >= n: + right = n - 1 + + merge(a, left, mid, right) #something wrong with the merge function + + left = left + size*2 + + size = size*2 + +def merge(a:int32[N], start: int32, mid: int32, stop: int32): + #temp:int32 = np.zeros(stop - start + 1, dtype=np.int32) #something wrong with this line + temp:int32[N] = 0 #changed to this but getting a runtime error saying unsupported node "List" + + i:int32 = start + j:int32 = mid + 1 + k:int32 = 0 + + + while i <= mid or j <= stop: + if j > stop or (i <= mid and a[i] <= a[j]): + temp[k] = a[i] + i += 1 + else: + temp[k] = a[j] + j += 1 + k += 1 + + #a[start:stop + 1] = temp[:k] + + for i in range(k): + a[start + i] = temp[i] + +test_array = np.array([1,2,3,4,5,9,8,7,6,0], dtype=np.int32) +merge_sort(test_array) +print("Sorted :", test_array) +s = allo.customize(merge_sort) +mod = s.build() +print(s.module) + + +""" + +import allo +from allo.ir.types import int32 +import numpy as np + + +N = 10 #testing purpose + +def merge_sort(a:int32[N]): + n:int32 = N + size:int32 = 1 + + while size < n - 1: + + left:int32 = 0 + + while left < n - 1: + mid:int32 = left + size - 1 + if(mid>n-1): + mid = n-1 + + right:int32 = left + 2 * size - 1 + if right>n-1: + right= n-1 + + if right >= n: + right = n - 1 + + merge(a, left, mid, right) + + left = left + size*2 + + size = size*2 + +def merge(a:int32[N], start: int32, mid: int32, stop: int32): + # temp:int32 = np.zeros(stop - start + 1, dtype=np.int32) + temp: int32[N] = 0 + + i:int32 = start + j:int32 = mid + 1 + k:int32 = 0 + + + while i <= mid or j <= stop: + if j > stop or (i <= mid and a[i] <= a[j]): + temp[k] = a[i] + i += 1 + else: + temp[k] = a[j] + j += 1 + k += 1 + + # a[start:stop + 1] = temp[:k] + for i in range(k): + a[start+i] = temp[i] + + +s = allo.customize(merge_sort) +mod = s.build() +print(s.module) \ No newline at end of file diff --git a/examples/machsuite/mergesort/testing_backup.py b/examples/machsuite/mergesort/testing_backup.py new file mode 100644 index 0000000000..54c4c1022e --- /dev/null +++ b/examples/machsuite/mergesort/testing_backup.py @@ -0,0 +1,79 @@ +import allo +import numpy as np +from mergesort import merge_sort +from allo.ir.types import int32 + +N = 5 + +def merge(a, start, m, stop): + temp = np.zeros(N, dtype=np.int32) + for i in range(start, m + 1): + temp[i] = a[i] + for j in range(m+1, stop + 1): + temp[m + 1 + stop - j] = a[j] + + i = start + j = stop + for k in range(start, stop + 1): + tmp_j = temp[j] + tmp_i = temp[i] + if (tmp_j < tmp_i): + a[k] = tmp_j + j -= 1 + else: + a[k] = tmp_i + i += 1 + +def mergesort_reference(a): + start = 0 + stop = N - 1 + m = 1 + while m < stop-start + 1: + for i in range(start, stop, m+m): + f = i + mid = i + m - 1 + to = i + m + m - 1 + if to < stop: + merge(a, f, mid, to) + else: + merge(a, f, mid, stop) + m += m + return a + + +def read_data(filename): + with open(filename, 'r') as file: + lines = file.readlines() + data = [int(line.strip()) for line in lines if not line.startswith("%%")] + return data + +def main(): + # input_data = read_data("input1.data") + # check_data = read_data("check1.data") + + # values = np.array(input_data).astype(np.int32) + values = np.random.randint(0, 100, N).astype(np.int32) + + # check = np.array(check_data).astype(np.int32) + + check = values.copy() + check.sort() + + #print(values) + #print(check) + + # s = allo.customize(merge_sort) + + # mod = s.build() + + # actual = mod(values) + # print(actual) + + mergesort_reference(values) + + np.testing.assert_allclose(values, check, rtol=1e-5, atol=1e-5) + print("correct") + + +if __name__ == "__main__": + main() diff --git a/examples/machsuite/spmv/crs/check.data b/examples/machsuite/spmv/crs/check.data new file mode 100644 index 0000000000..47b9666f9d --- /dev/null +++ b/examples/machsuite/spmv/crs/check.data @@ -0,0 +1,495 @@ +%% +1871.7848080859318998 +-8.8439346286551412 +-4.1057636527807517 +289.6985128226187953 +-11.3888136769930313 +-307.8727521860603247 +-192.7076542348153225 +3.3739865325637135 +-3.7889578481137649 +-3.0030200188998841 +8.0089633919431567 +-3.3878017418294029 +-3.0507008083914444 +59.2886936321243780 +2.9780958415066543 +-158.1087480869031481 +-40.3262360397810298 +-0.9998784011311241 +-8.6790677362391619 +-3.6421228254484515 +3.8221319552663089 +28.1578751222559660 +-22.8084561065140434 +14.1462897791780868 +-27.0101605289843931 +-33.4278312802921320 +-15.4282590237712292 +102.0737627182930538 +-122.9141674420853576 +177.5731832035259004 +-194.6708453104239425 +-9.5877871247874005 +-0.5910436133885639 +-7.4448808984098021 +-21.2901834471117652 +6.5296397343814405 +207.7696636653149085 +-82.8785136868552854 +-627.8396077027809952 +-4.5538964512164206 +-4.8696341365514755 +18.8627359579027427 +-13.4001854927612971 +-1.1962227013482489 +-24.7211712469747376 +-62.8975685233145612 +20.7683449290265152 +-1456.6387643549214772 +51.3752220577458871 +-150.1990543825074838 +-0.5786378479182659 +-29.5124032253664268 +-133.3076202113051067 +110.1763257597252306 +-234.5138421221315923 +-24.8925210009502003 +-11.0773106295720893 +-28.3848223330828553 +-17.6783022552457716 +11.4499164125633826 +-12.7091616872776072 +-1.5614053746095236 +6.8041196526507148 +4.9259887100509641 +-11.3506549539871635 +1190.9436075001278823 +-2484.5111002742546589 +-110.2096940987770068 +-11.9447166291469706 +-74.2937020753856672 +-24.3940727044116699 +-8.8416055446615545 +-0.3193098789636171 +-4.8323913872224225 +31.6010612222814871 +-14.2357972762354450 +-16.4245656655571004 +-11.4073779417708359 +-3.3683862158863089 +-0.5831733830976340 +-28.1555167811446907 +-21.0448917754093010 +-3.4837296605126014 +9.5905875806634455 +-10.7108437322303942 +-2.4630859330493071 +-30.9994367236274364 +-13.2741097589108961 +109.1759648784947103 +-831.5751831466451449 +-54.2097201844439525 +-10.7368018292021077 +-9.0510378505474502 +596.6175577306246396 +-81.7191777681538269 +-33.1422416862454199 +-31.7594411557345140 +168.6614422223490806 +-43.5252908408722732 +-95.1344962278169106 +-25.0744583969294759 +-15.2923513744222141 +4.6992766898660987 +66.1447600745041342 +-18.5332104250914220 +-15.6392125648504408 +-6.6174697666645255 +-1.0879563968423296 +-4.8853220326143560 +-15.4712344386299527 +-30.1430410773888227 +-0.2481221561805920 +-47.5276662794670912 +-2.8305404462721935 +19.7919632674200727 +3.0205207835020609 +5.7608975154015045 +217.5469408419017157 +-265.0008164051230892 +-14.1798142706209820 +-2.2002285117553266 +-8.0793180083037104 +-7.0930533216017135 +104.1196140123579141 +-116.6557205310090808 +124.6351416292567080 +-82.7524326735291140 +-26.4842704123301473 +2.0349001696593234 +-12.7480204773969277 +19.1486987216882341 +60.8196984735684865 +-7.8963423184519606 +11.3250281729143616 +-8.0721066338425551 +-1.9329324366658569 +31.6559865113579377 +392.8591952594022132 +-193.1217106521979758 +-796.6479203536769091 +-39.5458760918757619 +-99.5606132752340898 +62.3359925628013940 +-8.1001851626878789 +-37.8182719517499280 +-15.9080533562545163 +-45.5361469446285270 +73.9836670420719145 +-152.2360106684313621 +-22.8908134766747509 +-0.8971288764742744 +1.6748021950719214 +30.9084340367891777 +-29.8387648959012708 +-48.4172596268893045 +6.9620768652454332 +-5.5179177328512674 +12.5569742548993322 +-0.9179957634002185 +-19.8778311347448877 +11.7887306408715222 +-20.8678667499200401 +-32.3227983968563208 +-26.1615889856070964 +-5.2857544551806335 +-2.9183908628467439 +13.0042084086873135 +-1.4060534467112857 +-1.5314522771159977 +-6.9603370186869240 +-6.1349795939893799 +-23.0237310261970762 +-18.0955620222033389 +-3.8714606901731021 +-4.5687398489700506 +-1.7641704717111413 +-26.0744876339404286 +-41.8864955933674779 +0.0842325156402604 +7.2387011463599933 +171.5920167232028746 +-318.1415275909248521 +-462.6796794455115105 +-56.5291503888484073 +-17.9800390649588522 +53.6292862354133248 +-58.5439720406343369 +142.2734603500565811 +580.0664146297856405 +-203.2063609329190683 +86.7562082412331677 +25.7648797354961268 +-27.2634049872177400 +-19.4942694467464044 +3.3362938341511645 +-5.0681806125144071 +1.2745978051065041 +-16.0787286512922414 +20.9676353947546197 +6.7952369035818938 +-2.2131175656875501 +-48.1202955747272227 +12.9561102587239390 +-39.4560642896417164 +-3660.9006748120191332 +4027.9694847203504651 +134.3972912874223766 +-20.7228805656372117 +-14.8924085218783269 +-13.0587457803110016 +65.5436963885441486 +-204.7246445215849917 +0.7280292482259990 +1.9692169463096698 +111.5192436130447504 +-176.8751606241443142 +-959.3073635761014657 +-20.7620597623385521 +-7.3897091677512412 +1010.1690013903163390 +36.2534606878878662 +-14.0346306179491389 +-75.8835561414735196 +141.3986934054079825 +-18.7427766081788540 +9.9605941180847282 +2.3599058214195114 +20.6191828535223607 +-11.1235304599698104 +2.9833005939198873 +-60.7609350399250516 +17.4346349701559049 +-20.5765762708552202 +7.5919997675561497 +36.2202688256436289 +-1.6647136078425038 +1.8663411854113692 +109.5142131389502964 +-16.2008695270493597 +-22.5255419909889234 +-44.4648440265346636 +-41.9690445502082454 +-7.7149806638302678 +6.9277556462491425 +19.8987672590675402 +-25.6095329507658178 +-7.2696315110631664 +-54.0561117761851122 +26.0731812026484207 +90.6100033717952300 +-117.1523140441187252 +-1358.1360510674574016 +-66.7277613631491135 +1112.8348382090882751 +-142.0859836352898640 +-74.7653244881297212 +106.5968714819060068 +2.3316076458121895 +-24.9494763887881703 +0.7030289941015688 +0.4420052213994232 +23.0081504119473763 +167.2100554452262884 +-217.4999358314942128 +111.4107260136770066 +-8.3333961174175712 +-48.9593151816018448 +21.7515415610445864 +319.2133211513757374 +-16.8436937217716647 +1.6133803025361830 +-15.9204693708605500 +-9.8535831028968666 +-10.1033966404954612 +-2.5909967530970111 +7.8008828616401971 +-29.3540362142419191 +40.3306272905754071 +5.8816614585927383 +20.3634143186272922 +-41.7604202286373507 +-3.7771106316670915 +-23.8688734189802432 +44.9083790983060851 +-26.6538280112725658 +-5.9368211167880318 +-66.1272829898980916 +63.0096926875636001 +-22.6072880203460862 +-2.6636053785806633 +0.7136416170167985 +114.5682170441557730 +-154.5188872580180259 +-106.2992824087824886 +0.1076961886411922 +1.7999643732687751 +6.9205708732205569 +-73.1659541184407232 +-9.5358595584767336 +9034.6811655120600335 +6428.3482987614233934 +-2.7130028388457679 +48.5318295127536388 +-57.3406342522616228 +131.9520669424607604 +-55.6731111450469456 +295.0214800996614031 +-177.3227928764624721 +-99.1454563287276756 +220.0600401365433925 +-36.3624458451291446 +19.2224774922722581 +2.8685377665355274 +17.3636158236268834 +-11.1766483537520696 +-6.3240649121962180 +94.1677260348064920 +517.6258969709534767 +-58.7840871654754693 +-11.8055048737910617 +-19.7050764733324755 +38.4544032094926536 +-21.8527509282711598 +6.4051121067341246 +-15.7230499761801905 +-96.8796388432965614 +144.5883880520403011 +-108.5270895292474762 +37.9985191216638540 +-11.7136032458725090 +197.0852836008277222 +34.3564214089367468 +-17.3964645156189910 +95.8439119078080637 +-71.7636963382541069 +53.9478574544632039 +79.6300976596169789 +15.9527846947069722 +52.8035210663891945 +0.0645350270188201 +-5.3314174515736248 +23.6571395564440152 +-6.2471523518731011 +77.7876444768589010 +-675.2627969379977912 +211.9190754900325260 +-3216.8360208307267385 +-2045.5501719175044855 +-493.5133056841480084 +-443.9102052257845799 +-42.4060244738823826 +1293.7815179533238279 +487.5841811759120219 +-54.8133813095899782 +1020.3673465704118826 +-535.0255687071303328 +-19.7308611248566343 +1614.0070384548191669 +-319.7381410863234805 +-404.8324165665175087 +-438.3024782236904002 +-66.9186257294047806 +-63.4642744302176496 +-57.9036519695690899 +-25.9383281933588350 +-47.0603903494329430 +-29.4326163521255495 +54.3524640596935456 +730.0789231412579738 +36.0587461239678078 +-5.0519624357748576 +-2.9250423725631514 +1535.8211661286259186 +-3774.7541075839271798 +892.0568778648539592 +-1.0153272322639033 +293.5008571439258276 +23.7234488268187498 +52.2504514282590264 +15.5571868983889132 +2.5029395641808936 +0.4732728443675525 +23.2301053969714815 +38.1078926443680430 +6.0613899268872107 +-2.3799962203020524 +44.6857690567703756 +-14.6747050577247720 +-31.7282452452638672 +44.0722759469662151 +-40.9224988054577423 +-23.5383332758564876 +31.6529293986003779 +8.2240783290234845 +11.7269400267686343 +-143.0022284810266342 +71.6059294474964787 +-75.7633251173143947 +-11.3162489857358999 +-40.6462848628561986 +-11.3776308232304935 +-16.7677548059059447 +10.5180077638598881 +19.7343566114501741 +-7.6854950852902775 +-2.6995362232872404 +26.8527358639635452 +19.8774656644438252 +-137.8851900039671250 +-51.4184208952680279 +26.6312969236649479 +-22.0369035264292066 +101.0392158710919830 +135.5635316703188664 +-80.1084874449653483 +64.2733412417919681 +-15.1081092270946016 +-86.1886924398141332 +57.9064531820786357 +-121.6972419986612124 +6.9148477624079021 +324.2818730558734046 +2.2759148462490337 +-1.6466880240586437 +383.0918086953634543 +-34.7333847880945541 +-4.0805110580642285 +156.1638214898648016 +148.1792339293115219 +-5.5957897580932130 +4773.2500243420108745 +-0.5087160669729016 +73.3022182442790893 +-6.9129742379189594 +-17.0037918576874816 +72.9286085661630068 +-83.1542460309150471 +121.2064124325577694 +60.1949231164581420 +-12.3034432377556033 +-5.6863836584204810 +-17.4413799734767636 +36.5534795786125812 +220.3473852268654127 +-1.6294110602065643 +120.3441861874725021 +4387.1376633766303712 +-15.4668571077764234 +52.1487279212117016 +9.9111460108396603 +17.4448144397329798 +18.7000019332348586 +-22.8773695371921733 +4.7619535334250003 +-1.0212201350424337 +1553.3595396478458497 +-2644.9605837905137378 +2.2508517239483838 +-9.3185695179376893 +0.4685151300908785 +3892.5228487948334077 +-6023.6472088138989420 +-3754.5350769937749646 +-19.8387615821018706 +-4.5337270471402755 +9392.4641462224717543 +7.4425275565646194 +60.1587583693673054 +3828.2284715210594186 +-8705.7219818705398211 +-349.6691446384469373 +-94.2542749549050995 +4.9444842990352171 +-1.4883262417015199 +-22.7782566675297105 +262.9228196612849047 +-41.4939436943127689 +-93.2106691274442767 +-54.0862563070921851 +137.2328473295738149 +3289.7010045606616586 +421.7222858299887207 +-35.7612002805023792 +-29.6145667077643822 +51.4469089457480422 +-93.3746342238168836 +53.2095284717940018 +86.3360563783271573 +-101.2096472194543537 +-1.6900237078904561 +-37.3756946065164684 +-2.5774958040035170 +-58.2295810103489302 +110.2558197718876016 diff --git a/examples/machsuite/spmv/crs/crs.py b/examples/machsuite/spmv/crs/crs.py new file mode 100644 index 0000000000..118eca996d --- /dev/null +++ b/examples/machsuite/spmv/crs/crs.py @@ -0,0 +1,74 @@ +import numpy as np +import allo +from allo.ir.types import int32 + +# Generate a random size for matrix +r = np.random.randint(0,100) +c = np.random.randint(0,50) + +N = 494 # Number of rows +NNZ = 1666 # Number of nonzero values (Placeholder) + +def crs(val: float64[NNZ], cols: int32[NNZ], row: int32[N+1], vec: float64[N]) -> float64[N]: + out: float64[N] = 0.0 + + for i in range(N): + tmp_begin: int32 = row[i] + tmp_end: int32 = row[i+1] + + for j in range(tmp_begin, tmp_end): + out[i] += val[j] * vec[cols[j]] + + return out + +s = allo.customize(crs) +mod = s.build() + + + + + + + +## Testing + +# Arbirtrarily generated matrix +rMatrix = np.random.randint(0, 9, [r, c]).astype(np.float64) + +# Arbitrarily generated vector +vector = np.random.randint(0, 100, (c)).astype(np.float64) + +# CRS Format +def crs_format(matrix): + values = [] + columns = [] + row = [0] + + for i in range(len(matrix)): + for j in range(len(matrix[i])): + if matrix[i][j] != 0: + values.append(matrix[i][j]) + columns.append(j) + row.append(len(values)) + + values = np.array(values).astype(np.float64) + columns = np.array(columns).astype(np.int32) + row = np.array(row).astype(np.int32) + + + return (values, columns, row) + + +(values, columns, row) = crs_format(rMatrix) + +# Calculations +# observed = mod(values, columns, row, vector) +# expected = np.matmul(rMatrix, vector) + +# np.testing.assert_allclose(observed, expected, rtol=1e-5, atol=1e-5) + + + + + + diff --git a/examples/machsuite/spmv/crs/input.data b/examples/machsuite/spmv/crs/input.data new file mode 100644 index 0000000000..a9a1367255 --- /dev/null +++ b/examples/machsuite/spmv/crs/input.data @@ -0,0 +1,4325 @@ +%% +2220.8739999999997963 +-9.9601590000000009 +-9.9601590000000009 +-8.1967210000000001 +-8.1967210000000001 +-4.0518640000000001 +-4.0518640000000001 +5.4106699999999996 +-5.4106699999999996 +-5.4106699999999996 +13.5708599999999997 +-5.6657229999999998 +-5.6657229999999998 +-7.9051380000000000 +-7.9051380000000000 +618.3967999999999847 +-91.9963199999999972 +-91.9963199999999972 +-100.0000000000000000 +-100.0000000000000000 +-294.1175999999999817 +-294.1175999999999817 +-53.5045500000000018 +-53.5045500000000018 +-73.3675700000000006 +-73.3675700000000006 +8.0000000000000000 +-8.0000000000000000 +-8.0000000000000000 +5.2511120000000000 +-1.5267180000000000 +-1.5267180000000000 +-3.7243949999999999 +-3.7243949999999999 +12.5098099999999999 +-0.5000000000000000 +-0.5000000000000000 +-2.6191719999999998 +-2.6191719999999998 +-3.6036039999999998 +-3.6036039999999998 +-5.7870369999999998 +-5.7870369999999998 +91.9963199999999972 +10.2144999999999992 +-10.2144999999999992 +-10.2144999999999992 +277.3765999999999963 +-127.2265000000000015 +-127.2265000000000015 +-150.1501000000000090 +-150.1501000000000090 +79.8003400000000056 +-50.3018100000000032 +-50.3018100000000032 +-29.4985299999999988 +-29.4985299999999988 +13.0155700000000003 +-1.3333330000000001 +-1.3333330000000001 +-2.1584289999999999 +-2.1584289999999999 +-9.5238090000000000 +-9.5238090000000000 +1.3333330000000001 +2.1584289999999999 +7.0126229999999996 +-7.0126229999999996 +-7.0126229999999996 +60.1257599999999996 +-21.7864900000000006 +-21.7864900000000006 +-7.0372969999999997 +-7.0372969999999997 +-4.8053819999999998 +-4.8053819999999998 +100.1223999999999990 +-17.6056300000000014 +-17.6056300000000014 +-17.6056300000000014 +-17.6056300000000014 +-14.3061500000000006 +-14.3061500000000006 +-28.8184499999999986 +-28.8184499999999986 +0.5000000000000000 +7.0372969999999997 +17.6056300000000014 +17.6056300000000014 +105.8066000000000031 +-37.3134299999999968 +-37.3134299999999968 +-68.4931500000000000 +-68.4931500000000000 +238.1596000000000117 +-81.9672199999999975 +-81.9672199999999975 +-108.6955999999999989 +-108.6955999999999989 +-10.1832999999999991 +-10.1832999999999991 +7.8064020000000003 +-7.8064020000000003 +-7.8064020000000003 +25.0479899999999986 +-4.7415839999999996 +-4.7415839999999996 +-12.5000000000000000 +-12.5000000000000000 +72.5843600000000038 +-42.3728800000000021 +-42.3728800000000021 +-30.2114800000000017 +-30.2114800000000017 +423.7287999999999784 +-423.7287999999999784 +-423.7287999999999784 +1022.7340000000000373 +-3.7674720000000002 +-3.7674720000000002 +-595.2381000000000313 +-595.2381000000000313 +7.6136960000000000 +-4.3878890000000004 +-4.3878890000000004 +-3.2258060000000000 +-3.2258060000000000 +5.4288819999999998 +-5.4288819999999998 +-5.4288819999999998 +28.9126800000000017 +-17.0940200000000004 +-17.0940200000000004 +-6.3897769999999996 +-6.3897769999999996 +16.3765700000000010 +-5.0000000000000000 +-5.0000000000000000 +-11.3765599999999996 +-11.3765599999999996 +106.1646999999999963 +-62.1118000000000023 +-62.1118000000000023 +-44.0528600000000026 +-44.0528600000000026 +62.1118000000000023 +13.6054399999999998 +-13.6054399999999998 +-13.6054399999999998 +1122.9039999999999964 +-1111.1110000000001037 +-1111.1110000000001037 +-11.7924500000000005 +-11.7924500000000005 +208.5615999999999985 +-8.5616439999999994 +-8.5616439999999994 +-200.0000000000000000 +-200.0000000000000000 +19.2869600000000005 +-11.0497200000000007 +-11.0497200000000007 +-8.2372320000000006 +-8.2372320000000006 +50.4298100000000034 +-22.5733600000000010 +-22.5733600000000010 +-16.8067199999999985 +-16.8067199999999985 +107.3191000000000059 +-84.7457600000000042 +-84.7457600000000042 +1125.3079999999999927 +-11.6550100000000008 +-11.6550100000000008 +-1111.1110000000001037 +-1111.1110000000001037 +-2.5419420000000001 +-2.5419420000000001 +40.6302400000000006 +-34.8432000000000031 +-34.8432000000000031 +-5.7870369999999998 +-5.7870369999999998 +32.2580600000000004 +-32.2580600000000004 +-32.2580600000000004 +50.4519400000000005 +-11.9904100000000007 +-11.9904100000000007 +-38.4615399999999994 +-38.4615399999999994 +21.8901100000000000 +-6.2932660000000000 +-6.2932660000000000 +-4.9975009999999997 +-4.9975009999999997 +-5.3361789999999996 +-5.3361789999999996 +-5.2631579999999998 +-5.2631579999999998 +14.9534800000000008 +-6.7567570000000003 +-6.7567570000000003 +29.2795300000000012 +-3.4199730000000002 +-3.4199730000000002 +-14.2045499999999993 +-14.2045499999999993 +1682.9860000000001037 +-114.0250999999999948 +-114.0250999999999948 +-1333.3330000000000837 +-1333.3330000000000837 +-180.1802000000000135 +-180.1802000000000135 +-55.4477400000000031 +-55.4477400000000031 +65.3933700000000044 +-47.6190500000000014 +-47.6190500000000014 +-6.0096150000000002 +-6.0096150000000002 +-11.7647099999999991 +-11.7647099999999991 +168.4124999999999943 +-111.1110999999999933 +-111.1110999999999933 +-5.0761419999999999 +-5.0761419999999999 +-4.6061730000000001 +-4.6061730000000001 +39.4463500000000025 +-24.2718400000000010 +-24.2718400000000010 +-15.1745099999999997 +-15.1745099999999997 +10.4849999999999994 +-4.8192769999999996 +-4.8192769999999996 +89.1608399999999932 +-37.8787900000000022 +-37.8787900000000022 +-51.2820499999999981 +-51.2820499999999981 +14.7029499999999995 +-6.8965519999999998 +-6.8965519999999998 +-7.8064020000000003 +-7.8064020000000003 +40.8459500000000020 +-21.9780200000000008 +-21.9780200000000008 +-18.8679300000000012 +-18.8679300000000012 +20.8446800000000003 +-9.6339109999999994 +-9.6339109999999994 +-11.2107600000000005 +-11.2107600000000005 +19.2146100000000004 +-14.4092199999999995 +-14.4092199999999995 +8.2908159999999995 +-6.2500000000000000 +-6.2500000000000000 +-2.0408160000000000 +-2.0408160000000000 +63.9985399999999984 +-13.8888900000000000 +-13.8888900000000000 +-43.8596500000000020 +-43.8596500000000020 +2.0408160000000000 +25.7062700000000000 +-18.1818199999999983 +-18.1818199999999983 +-7.5244549999999997 +-7.5244549999999997 +8.0840739999999993 +-8.0840739999999993 +-8.0840739999999993 +17.0013800000000010 +-0.6702413000000000 +-0.6702413000000000 +-3.3411300000000002 +-3.3411300000000002 +-9.5238090000000000 +-9.5238090000000000 +-3.4662039999999998 +-3.4662039999999998 +0.6702413000000000 +68.6351099999999974 +-56.1797800000000009 +-56.1797800000000009 +-5.6433410000000004 +-5.6433410000000004 +-6.8119889999999996 +-6.8119889999999996 +56.1797800000000009 +794.4358999999999469 +-9.7276270000000000 +-9.7276270000000000 +-714.2857999999999947 +-714.2857999999999947 +-70.4225299999999947 +-70.4225299999999947 +63.7407899999999970 +-23.4192000000000000 +-23.4192000000000000 +-15.0761400000000005 +-15.0761400000000005 +-10.7526899999999994 +-10.7526899999999994 +-14.4927499999999991 +-14.4927499999999991 +9.7276270000000000 +898.1735999999999649 +-64.1025700000000001 +-64.1025700000000001 +-8.4674010000000006 +-8.4674010000000006 +-49.6277899999999974 +-49.6277899999999974 +-15.0150100000000002 +-15.0150100000000002 +-23.2558100000000003 +-23.2558100000000003 +309.7513999999999896 +-22.5225200000000001 +-22.5225200000000001 +-22.5225200000000001 +-22.5225200000000001 +-27.0270299999999999 +-27.0270299999999999 +-57.4712600000000009 +-57.4712600000000009 +-45.6829600000000013 +-45.6829600000000013 +44.6596100000000007 +-8.2918740000000000 +-8.2918740000000000 +-8.4245999999999999 +-8.4245999999999999 +-2.1739130000000002 +-2.1739130000000002 +-2.2256840000000002 +-2.2256840000000002 +10.7526899999999994 +22.5225200000000001 +22.5225200000000001 +27.0270299999999999 +43.2569599999999994 +-11.6279100000000000 +-11.6279100000000000 +-25.6410300000000007 +-25.6410300000000007 +-5.9880240000000002 +-5.9880240000000002 +14.9548600000000000 +-1.3241520000000000 +-1.3241520000000000 +-2.0028039999999998 +-2.0028039999999998 +59.7835899999999967 +-18.9933499999999995 +-18.9933499999999995 +-18.5185199999999988 +-18.5185199999999988 +-22.2717199999999984 +-22.2717199999999984 +76.9893200000000064 +-9.7656250000000000 +-9.7656250000000000 +-3.3322229999999999 +-3.3322229999999999 +-9.6618359999999992 +-9.6618359999999992 +-33.3333399999999997 +-33.3333399999999997 +-1.9029499999999999 +-1.9029499999999999 +54.8651300000000006 +-34.2465699999999984 +-34.2465699999999984 +-20.6185599999999987 +-20.6185599999999987 +130.6547999999999945 +-106.3829999999999956 +-106.3829999999999956 +8.6511689999999994 +-4.8804299999999996 +-4.8804299999999996 +-3.7707389999999998 +-3.7707389999999998 +18.5295400000000008 +-4.1203130000000003 +-4.1203130000000003 +318.4947000000000230 +-294.1175999999999817 +-294.1175999999999817 +-14.0252499999999998 +-14.0252499999999998 +-3.5448420000000000 +-3.5448420000000000 +-3.0395140000000000 +-3.0395140000000000 +11.6143999999999998 +-11.6143999999999998 +-11.6143999999999998 +55.8730199999999968 +-40.0000000000000000 +-40.0000000000000000 +-15.8730200000000004 +-15.8730200000000004 +345.7321000000000026 +8.1511340000000008 +-4.8100050000000003 +-4.8100050000000003 +215.0901000000000067 +-125.0000000000000000 +-125.0000000000000000 +-90.0901000000000067 +-90.0901000000000067 +295.4284999999999854 +-38.7596899999999991 +-38.7596899999999991 +-38.9105100000000022 +-38.9105100000000022 +-11.5340299999999996 +-11.5340299999999996 +-23.7529700000000012 +-23.7529700000000012 +79.7815099999999973 +-74.6268699999999967 +-74.6268699999999967 +-5.1546390000000004 +-5.1546390000000004 +38.7596899999999991 +38.9105100000000022 +94.0535600000000045 +-7.8926600000000002 +-7.8926600000000002 +7.8926600000000002 +17.5513300000000001 +-10.7991399999999995 +-10.7991399999999995 +-6.7521940000000003 +-6.7521940000000003 +15.5732900000000001 +-5.8927519999999998 +-5.8927519999999998 +-9.6805420000000009 +-9.6805420000000009 +76.2711900000000043 +-33.8982999999999990 +-33.8982999999999990 +1230.3369999999999891 +-116.2790999999999997 +-116.2790999999999997 +-769.2308000000000447 +-769.2308000000000447 +-344.8276000000000181 +-344.8276000000000181 +26.0416699999999999 +-26.0416699999999999 +-26.0416699999999999 +79.6698899999999952 +-22.4719100000000012 +-22.4719100000000012 +-10.0000000000000000 +-10.0000000000000000 +-9.1659030000000001 +-9.1659030000000001 +104.4050000000000011 +-55.6482999999999990 +-55.6482999999999990 +-48.7567099999999982 +-48.7567099999999982 +85.5357900000000058 +-4.7169809999999996 +-4.7169809999999996 +-17.7935899999999982 +-17.7935899999999982 +-18.3823499999999989 +-18.3823499999999989 +-44.6428599999999989 +-44.6428599999999989 +4.7169809999999996 +14.4092199999999995 +-14.4092199999999995 +-14.4092199999999995 +41.1329500000000010 +-20.0803200000000004 +-20.0803200000000004 +-21.0526300000000006 +-21.0526300000000006 +91.6945300000000003 +-72.4637699999999967 +-72.4637699999999967 +-19.2307699999999997 +-19.2307699999999997 +9.7847360000000005 +-9.7847360000000005 +-9.7847360000000005 +1.0298659999999999 +-1.0298659999999999 +-1.0298659999999999 +2.1645020000000001 +-2.1645020000000001 +-2.1645020000000001 +26.6899599999999992 +-3.4928400000000002 +-3.4928400000000002 +-6.8027210000000000 +-6.8027210000000000 +-3.4152999999999998 +-3.4152999999999998 +140.1105000000000018 +-36.7647100000000009 +-36.7647100000000009 +-37.3134299999999968 +-37.3134299999999968 +-46.9483600000000010 +-46.9483600000000010 +-19.0839700000000008 +-19.0839700000000008 +14.0104399999999991 +-2.6041669999999999 +-2.6041669999999999 +-5.3966539999999998 +-5.3966539999999998 +13.9848300000000005 +-3.3806630000000002 +-3.3806630000000002 +32.2401800000000023 +-18.2149399999999986 +-18.2149399999999986 +36.7678099999999972 +-18.5528799999999983 +-18.5528799999999983 +29.7563299999999984 +-19.0839700000000008 +-19.0839700000000008 +-10.6723599999999994 +-10.6723599999999994 +28.7154799999999994 +-10.1625999999999994 +-10.1625999999999994 +176.9231000000000051 +-76.9230699999999956 +-76.9230699999999956 +16.9491499999999995 +-16.9491499999999995 +-16.9491499999999995 +33.9419600000000017 +-5.7836900000000000 +-5.7836900000000000 +-12.9032300000000006 +-12.9032300000000006 +-9.6339109999999994 +-9.6339109999999994 +-5.6211349999999998 +-5.6211349999999998 +38.0870499999999979 +-7.5187970000000002 +-7.5187970000000002 +-3.0184120000000001 +-3.0184120000000001 +28.7178800000000010 +3.2948930000000001 +-3.2948930000000001 +-3.2948930000000001 +10.2830100000000009 +-6.9881209999999996 +-6.9881209999999996 +39.1090900000000019 +-19.8412700000000015 +-19.8412700000000015 +-19.2678200000000004 +-19.2678200000000004 +56.2528300000000030 +-18.9393899999999995 +-18.9393899999999995 +-37.3134299999999968 +-37.3134299999999968 +19.8412700000000015 +15.9744399999999995 +-15.9744399999999995 +-15.9744399999999995 +15.9744399999999995 +-15.9744399999999995 +-15.9744399999999995 +18.3823499999999989 +-18.3823499999999989 +-18.3823499999999989 +62.1118000000000023 +-62.1118000000000023 +-62.1118000000000023 +54.3478199999999987 +-54.3478199999999987 +-54.3478199999999987 +22.5733600000000010 +-22.5733600000000010 +-22.5733600000000010 +405.7851999999999748 +-333.3333000000000084 +-333.3333000000000084 +-59.1715999999999980 +-59.1715999999999980 +-13.2802100000000003 +-13.2802100000000003 +444.0341000000000236 +-370.3704000000000178 +-370.3704000000000178 +-60.2409600000000012 +-60.2409600000000012 +-13.4228199999999998 +-13.4228199999999998 +125.4902000000000015 +-58.8235200000000020 +-58.8235200000000020 +-66.6666699999999963 +-66.6666699999999963 +13.5685199999999995 +-13.5685199999999995 +-13.5685199999999995 +173.0337000000000103 +754.0348999999999933 +643.3153999999999542 +-188.6792000000000087 +-188.6792000000000087 +-188.6792000000000087 +-188.6792000000000087 +-12.1802700000000002 +-12.1802700000000002 +-22.6244399999999999 +-22.6244399999999999 +274.5828000000000202 +-31.5556899999999985 +-31.5556899999999985 +13.2802100000000003 +13.4228199999999998 +86.1757400000000047 +-8.5763289999999994 +-8.5763289999999994 +-6.8780520000000003 +-6.8780520000000003 +-70.7213600000000042 +-70.7213600000000042 +31.8957900000000016 +19.6078399999999995 +-9.8039220000000000 +-9.8039220000000000 +-9.8039220000000000 +-9.8039220000000000 +36.0613499999999974 +-20.6077900000000014 +-20.6077900000000014 +-15.4535599999999995 +-15.4535599999999995 +38.1282700000000006 +-10.1010100000000005 +-10.1010100000000005 +52.8684799999999981 +-5.3714350000000000 +-5.3714350000000000 +-2.4520019999999998 +-2.4520019999999998 +-45.0450500000000034 +-45.0450500000000034 +55.5094899999999996 +-5.4436580000000001 +-5.4436580000000001 +-2.4467829999999999 +-2.4467829999999999 +-47.6190500000000014 +-47.6190500000000014 +29.8600700000000003 +-15.6250000000000000 +-15.6250000000000000 +4.8987850000000002 +218.7209000000000003 +-17.3611100000000000 +-17.3611100000000000 +10009.6800000000002910 +-10000.0000000000000000 +-10000.0000000000000000 +10004.7399999999997817 +410.3967000000000098 +95.7427899999999994 +-40.7346799999999973 +-40.7346799999999973 +-10.0230499999999996 +-10.0230499999999996 +-21.1685000000000016 +-21.1685000000000016 +-16.4636199999999988 +-16.4636199999999988 +-7.3529410000000004 +-7.3529410000000004 +202.0149999999999864 +-19.4363500000000009 +-19.4363500000000009 +-141.8439999999999941 +-141.8439999999999941 +2.2099449999999998 +-2.2099449999999998 +-2.2099449999999998 +8.6686589999999999 +-1.7721070000000001 +-1.7721070000000001 +132.4125999999999976 +-22.5225200000000001 +-22.5225200000000001 +-109.8901000000000039 +-109.8901000000000039 +1076.9710000000000036 +-999.9999000000000251 +-999.9999000000000251 +-15.5981900000000007 +-15.5981900000000007 +-27.3597800000000007 +-27.3597800000000007 +-34.0135999999999967 +-34.0135999999999967 +2.6191719999999998 +11.8660899999999998 +-8.0710250000000006 +-8.0710250000000006 +-3.7950659999999998 +-3.7950659999999998 +1022.5220000000000482 +66.8002699999999976 +-66.8002699999999976 +-66.8002699999999976 +77.0498999999999938 +-4.9731449999999997 +-4.9731449999999997 +-5.2764879999999996 +-5.2764879999999996 +179.1666999999999916 +-166.6666999999999916 +-166.6666999999999916 +76.9230699999999956 +-76.9230699999999956 +-76.9230699999999956 +111.7663000000000011 +618.7910000000000537 +-19.4325699999999983 +-19.4325699999999983 +41.1108499999999992 +-9.2421330000000008 +-9.2421330000000008 +-25.5754500000000000 +-25.5754500000000000 +41.5001999999999995 +3.6764700000000001 +-3.6764700000000001 +-3.6764700000000001 +5.4200540000000004 +-5.4200540000000004 +-5.4200540000000004 +36.9436899999999966 +-14.4717800000000008 +-14.4717800000000008 +14.3215199999999996 +14.6412899999999997 +-14.6412899999999997 +-14.6412899999999997 +89.8292600000000050 +-75.1879700000000071 +-75.1879700000000071 +17.0940200000000004 +48.7011499999999984 +-3.3199429999999999 +-3.3199429999999999 +-10.1760500000000000 +-10.1760500000000000 +-16.6057799999999993 +-16.6057799999999993 +3.3199429999999999 +10.1760500000000000 +14.2949199999999994 +38.5442499999999981 +4.0978130000000004 +-2.4283630000000000 +-2.4283630000000000 +-1.6694490000000000 +-1.6694490000000000 +0.1703577000000000 +-0.1703577000000000 +-0.1703577000000000 +12.4391599999999993 +-2.7449900000000000 +-2.7449900000000000 +209.3358000000000061 +-8.0000000000000000 +-8.0000000000000000 +-12.0149000000000008 +-12.0149000000000008 +-17.8444000000000003 +-17.8444000000000003 +-30.4878000000000000 +-30.4878000000000000 +-14.1683199999999996 +-14.1683199999999996 +-36.5630700000000033 +-36.5630700000000033 +29.5478300000000011 +-10.2009600000000002 +-10.2009600000000002 +-11.3468699999999991 +-11.3468699999999991 +10.2009600000000002 +11.3468699999999991 +12.0149000000000008 +17.8444000000000003 +28.4983199999999997 +-18.3150200000000005 +-18.3150200000000005 +10.6116700000000002 +-8.1833069999999992 +-8.1833069999999992 +101.3766999999999996 +-42.5531900000000007 +-42.5531900000000007 +4.8053819999999998 +-4.8053819999999998 +-4.8053819999999998 +8.1833069999999992 +40.3137600000000020 +-20.8811900000000001 +-20.8811900000000001 +124.7891999999999939 +-104.1667000000000058 +-104.1667000000000058 +1214.5329999999999018 +-1123.5950000000000273 +-1123.5950000000000273 +-5.7583789999999997 +-5.7583789999999997 +-85.1788800000000066 +-85.1788800000000066 +1543.6079999999999472 +-15.4987100000000009 +-15.4987100000000009 +-93.2835800000000006 +-93.2835800000000006 +-53.1067499999999981 +-53.1067499999999981 +-16.8719399999999986 +-16.8719399999999986 +5.7583789999999997 +149.5704000000000065 +-64.3914900000000046 +-64.3914900000000046 +21.7773600000000016 +-6.2786460000000002 +-6.2786460000000002 +6.2786460000000002 +8.7950739999999996 +-8.7950739999999996 +-8.7950739999999996 +45.5701499999999982 +-20.8768300000000018 +-20.8768300000000018 +-15.8982500000000009 +-15.8982500000000009 +9.9613230000000001 +16.7371499999999997 +-8.3125509999999991 +-8.3125509999999991 +33.0112700000000032 +10.2947299999999995 +-5.7012539999999996 +-5.7012539999999996 +-4.5934770000000000 +-4.5934770000000000 +243.9951000000000079 +-181.8181999999999903 +-181.8181999999999903 +-11.4155300000000004 +-11.4155300000000004 +-50.7614200000000011 +-50.7614200000000011 +278.1383999999999901 +-46.6635599999999968 +-46.6635599999999968 +-5.4674690000000004 +-5.4674690000000004 +-28.7356300000000005 +-28.7356300000000005 +11.4155300000000004 +77.5710799999999949 +-26.8096500000000013 +-26.8096500000000013 +978.0082999999999629 +-59.5238099999999974 +-59.5238099999999974 +-149.2537000000000091 +-149.2537000000000091 +14.1752699999999994 +-10.5042000000000009 +-10.5042000000000009 +-3.6710720000000001 +-3.6710720000000001 +24.7521300000000011 +-3.9936099999999999 +-3.9936099999999999 +-7.1530760000000004 +-7.1530760000000004 +27.5141400000000012 +-14.7058800000000005 +-14.7058800000000005 +-5.7110219999999998 +-5.7110219999999998 +-7.0972320000000000 +-7.0972320000000000 +74.1440000000000055 +-24.3902399999999986 +-24.3902399999999986 +-4.6446820000000004 +-4.6446820000000004 +238.1673999999999864 +-200.0000000000000000 +-200.0000000000000000 +-8.1168829999999996 +-8.1168829999999996 +-11.1111100000000000 +-11.1111100000000000 +224.6879000000000133 +15.2439000000000000 +-15.2439000000000000 +-15.2439000000000000 +19.7585799999999985 +-4.5146730000000002 +-4.5146730000000002 +36.4963499999999996 +-36.4963499999999996 +-36.4963499999999996 +95.4541600000000017 +-55.2486200000000025 +-55.2486200000000025 +-3.7091989999999999 +-3.7091989999999999 +100.6927000000000021 +-19.3050199999999990 +-19.3050199999999990 +-65.7894699999999943 +-65.7894699999999943 +329.6231000000000222 +-200.0000000000000000 +-200.0000000000000000 +-11.9760500000000008 +-11.9760500000000008 +-117.6470000000000056 +-117.6470000000000056 +285.1879999999999882 +11.9760500000000008 +144.4567000000000121 +165.7238000000000113 +-62.2083999999999975 +-62.2083999999999975 +-87.6424200000000013 +-87.6424200000000013 +82.1884399999999999 +-58.0046400000000020 +-58.0046400000000020 +-24.1838000000000015 +-24.1838000000000015 +151.4336999999999875 +-40.3225800000000021 +-40.3225800000000021 +48.5151600000000016 +-4.4622940000000000 +-4.4622940000000000 +8.2308979999999998 +-4.2372880000000004 +-4.2372880000000004 +26.7507799999999989 +-9.3896709999999999 +-9.3896709999999999 +329.2194000000000074 +-186.5672000000000139 +-186.5672000000000139 +-38.5802499999999995 +-38.5802499999999995 +-72.5163100000000043 +-72.5163100000000043 +28.6242400000000004 +-27.1739099999999993 +-27.1739099999999993 +-1.4503260000000000 +-1.4503260000000000 +27.1739099999999993 +36.9804000000000030 +-30.1023500000000013 +-30.1023500000000013 +129.9704000000000121 +99.0061900000000037 +-78.1250000000000000 +-78.1250000000000000 +45.4867599999999968 +-7.7124790000000001 +-7.7124790000000001 +20007.7099999999991269 +-10000.0000000000000000 +-10000.0000000000000000 +-10000.0000000000000000 +-10000.0000000000000000 +10000.0000000000000000 +10000.0000000000000000 +10.8453700000000008 +-7.5131480000000002 +-7.5131480000000002 +14.7567599999999999 +-8.0000000000000000 +-8.0000000000000000 +1.4598540000000000 +-1.4598540000000000 +-1.4598540000000000 +103.4287999999999954 +-40.0000000000000000 +-40.0000000000000000 +-49.0196100000000001 +-49.0196100000000001 +49.4598500000000030 +141.7923000000000116 +-10.9673200000000008 +-10.9673200000000008 +-22.2717199999999984 +-22.2717199999999984 +-48.1540899999999965 +-48.1540899999999965 +-42.0168099999999995 +-42.0168099999999995 +545.1684000000000196 +-90.7441000000000031 +-90.7441000000000031 +-90.0090000000000003 +-90.0090000000000003 +-89.1265599999999978 +-89.1265599999999978 +-28.6615099999999998 +-28.6615099999999998 +-60.0600600000000000 +-60.0600600000000000 +90.7441000000000031 +90.0090000000000003 +89.1265599999999978 +204.9044000000000096 +-4.9043650000000003 +-4.9043650000000003 +172.7262000000000057 +-63.6942700000000031 +-63.6942700000000031 +-27.6243100000000013 +-27.6243100000000013 +26.7418000000000013 +-5.7836900000000000 +-5.7836900000000000 +10.8049099999999996 +10.9673200000000008 +12.3300099999999997 +-8.2781459999999996 +-8.2781459999999996 +6.8027210000000000 +-6.8027210000000000 +-6.8027210000000000 +33.4146599999999978 +-4.6339199999999998 +-4.6339199999999998 +146.1641999999999939 +-72.2543299999999959 +-72.2543299999999959 +-73.9098299999999995 +-73.9098299999999995 +1493.0409999999999400 +-17.2413799999999995 +-17.2413799999999995 +-26.8817200000000014 +-26.8817200000000014 +-18.1818199999999983 +-18.1818199999999983 +43.9259500000000003 +-13.3155800000000006 +-13.3155800000000006 +-13.3689800000000005 +-13.3689800000000005 +13.3155800000000006 +13.3689800000000005 +27.8209699999999991 +-9.5419850000000004 +-9.5419850000000004 +-8.3402829999999994 +-8.3402829999999994 +-6.3938620000000004 +-6.3938620000000004 +12.3225300000000004 +-4.6772689999999999 +-4.6772689999999999 +-7.6452600000000004 +-7.6452600000000004 +278.5131000000000085 +-81.6993499999999955 +-81.6993499999999955 +273.0466000000000122 +-86.2068900000000014 +-86.2068900000000014 +-104.1667000000000058 +-104.1667000000000058 +-18.2815399999999997 +-18.2815399999999997 +86.2068900000000014 +15.7582799999999992 +-10.9528999999999996 +-10.9528999999999996 +42.0657799999999966 +8.1168829999999996 +273.4637999999999920 +39.0280300000000011 +-3.4928400000000002 +-3.4928400000000002 +-18.0831799999999987 +-18.0831799999999987 +-17.4520100000000014 +-17.4520100000000014 +151.9719000000000051 +-49.0196100000000001 +-49.0196100000000001 +-49.0196100000000001 +-49.0196100000000001 +65.0280800000000028 +-5.9665869999999996 +-5.9665869999999996 +-5.9665869999999996 +-5.9665869999999996 +124.4662000000000006 +17.4520100000000014 +59.0678300000000007 +-4.0816330000000001 +-4.0816330000000001 +59.0678300000000007 +-4.0816330000000001 +-4.0816330000000001 +4.0816330000000001 +4.0816330000000001 +10.7991399999999995 +-10.7991399999999995 +-10.7991399999999995 +81.4247399999999999 +-30.3030299999999997 +-30.3030299999999997 +39.0625000000000000 +-39.0625000000000000 +-39.0625000000000000 +507.6857999999999720 +-5.6818179999999998 +-5.6818179999999998 +-500.0000000000000000 +-500.0000000000000000 +-2.0040079999999998 +-2.0040079999999998 +328.2355999999999767 +-212.7659999999999911 +-212.7659999999999911 +503.4153000000000020 +2.0040079999999998 +100.9094000000000051 +-12.8024600000000000 +-12.8024600000000000 +5112.3850000000002183 +-2000.0000000000000000 +-2000.0000000000000000 +-2000.0000000000000000 +-2000.0000000000000000 +-500.0000000000000000 +-500.0000000000000000 +-500.0000000000000000 +-500.0000000000000000 +-8.5106380000000001 +-8.5106380000000001 +-41.6666700000000034 +-41.6666700000000034 +2077.7860000000000582 +-11.5606899999999992 +-11.5606899999999992 +-66.2251700000000056 +-66.2251700000000056 +11.5606899999999992 +2077.7860000000000582 +-11.5606899999999992 +-11.5606899999999992 +-66.2251700000000056 +-66.2251700000000056 +11.5606899999999992 +1166.6520000000000437 +-555.5555000000000518 +-555.5555000000000518 +17.5979300000000016 +-13.2100399999999993 +-13.2100399999999993 +57.2854200000000020 +-33.1016199999999969 +-33.1016199999999969 +46.6991999999999976 +-45.2488699999999966 +-45.2488699999999966 +2286.1529999999997926 +-370.3704000000000178 +-370.3704000000000178 +-370.3704000000000178 +-370.3704000000000178 +-370.3704000000000178 +-370.3704000000000178 +-41.3223199999999977 +-41.3223199999999977 +238.1108000000000118 +-60.2409600000000012 +-60.2409600000000012 +-60.2409600000000012 +-60.2409600000000012 +-60.2409600000000012 +-60.2409600000000012 +-42.3728800000000021 +-42.3728800000000021 +13.4228199999999998 +-13.4228199999999998 +-13.4228199999999998 +13.4228199999999998 +-13.4228199999999998 +-13.4228199999999998 +13.4228199999999998 +-13.4228199999999998 +-13.4228199999999998 +59.9258799999999994 +9.6608129999999992 +-6.4350069999999997 +-6.4350069999999997 +444.0341000000000236 +444.0341000000000236 +444.0341000000000236 +69.4748500000000035 +-3.8461539999999999 +-3.8461539999999999 +13.5643300000000000 +-9.7181730000000002 +-9.7181730000000002 +16.5104900000000008 +-12.0481900000000000 +-12.0481900000000000 +10029.6299999999991996 +-9.0744089999999993 +-9.0744089999999993 +-10000.0000000000000000 +-10000.0000000000000000 +18.1818199999999983 +-18.1818199999999983 +-18.1818199999999983 +1295.9590000000000600 +15.6091400000000000 +3.1055899999999999 +-3.1055899999999999 +-3.1055899999999999 +1120.0039999999999054 +74.3247400000000056 +-64.9350699999999961 +-64.9350699999999961 +4.5871560000000002 +-4.5871560000000002 +-4.5871560000000002 +9.6632990000000003 +23.8961000000000006 +-5.7142860000000004 +-5.7142860000000004 +92.8092900000000043 +-14.6842900000000007 +-14.6842900000000007 +49.8710799999999992 +12.2331900000000005 +-6.5189050000000002 +-6.5189050000000002 +85.9659900000000050 +81.9562999999999988 +-44.6428599999999989 +-44.6428599999999989 +2.1645020000000001 +-2.1645020000000001 +-2.1645020000000001 +74.3359099999999984 +-3.6145450000000001 +-3.6145450000000001 +90.2128600000000063 +10.4691100000000006 +-2.3980820000000000 +-2.3980820000000000 +3.6145450000000001 +63.8367199999999997 +-19.1938600000000008 +-19.1938600000000008 +4.9731449999999997 +90.8585199999999986 +-3.6205650000000000 +-3.6205650000000000 +-12.0336900000000000 +-12.0336900000000000 +-29.0697699999999983 +-29.0697699999999983 +-21.8866300000000003 +-21.8866300000000003 +86.7836900000000071 +-24.2130800000000015 +-24.2130800000000015 +-3.8109760000000001 +-3.8109760000000001 +-12.1951199999999993 +-12.1951199999999993 +-21.7391299999999994 +-21.7391299999999994 +-3.9904229999999998 +-3.9904229999999998 +38.1019700000000014 +3.6205650000000000 +3.8109760000000001 +12.0336900000000000 +12.1951199999999993 +49.9031000000000020 +-20.8333300000000001 +-20.8333300000000001 +10089.3099999999994907 +-10000.0000000000000000 +-10000.0000000000000000 +9.4302689999999991 +-6.0496070000000000 +-6.0496070000000000 +11.4339399999999998 +192.3077000000000112 +-192.3077000000000112 +-192.3077000000000112 +141.2346000000000004 +-15.7853200000000005 +-15.7853200000000005 +-7.3588930000000001 +-7.3588930000000001 +-7.8733950000000004 +-7.8733950000000004 +-57.1102199999999982 +-57.1102199999999982 +32.0484399999999994 +-8.1672650000000004 +-8.1672650000000004 +-8.0958550000000002 +-8.0958550000000002 +7.3588930000000001 +8.1672650000000004 +7.8733950000000004 +8.0958550000000002 +26.3810700000000011 +42.5531900000000007 +21.2314200000000000 +-21.2314200000000000 +-21.2314200000000000 +1.1697270000000000 +-1.1697270000000000 +-1.1697270000000000 +30.3739699999999999 +-3.5223670000000000 +-3.5223670000000000 +-11.5740700000000007 +-11.5740700000000007 +262.9839000000000055 +-188.6792000000000087 +-188.6792000000000087 +-13.6986299999999996 +-13.6986299999999996 +-60.6060599999999994 +-60.6060599999999994 +277.7794000000000096 +-26.3088599999999992 +-26.3088599999999992 +-26.4830499999999986 +-26.4830499999999986 +13.6986299999999996 +84.3590300000000042 +111.3657000000000039 +108.6042999999999950 +-49.0196100000000001 +-49.0196100000000001 +123.0803999999999974 +-92.5925900000000013 +-92.5925900000000013 +12.3307099999999998 +8.5223669999999991 +121.0169999999999959 +-23.4741800000000005 +-23.4741800000000005 +74.5726700000000022 +127.6411999999999978 +-35.2112699999999990 +-35.2112699999999990 +-84.0336199999999991 +-84.0336199999999991 +-8.3963059999999992 +-8.3963059999999992 +78.4239000000000033 +-9.8135429999999992 +-9.8135429999999992 +249.7547999999999888 +-153.8461000000000070 +-153.8461000000000070 +-11.8750699999999991 +-11.8750699999999991 +123.4568000000000012 +-123.4568000000000012 +-123.4568000000000012 +8.3963059999999992 +133.2702999999999918 +248.3154000000000110 +109.3950999999999993 +10.0350699999999993 +18.1129099999999994 +-1.6492940000000000 +-1.6492940000000000 +1.6492940000000000 +8.2201459999999997 +-2.5188920000000001 +-2.5188920000000001 +386.1499000000000024 +209.3694000000000131 +-138.3126000000000033 +-138.3126000000000033 +38.3333399999999997 +-5.0000000000000000 +-5.0000000000000000 +13.2759699999999992 +44.3075100000000006 +133.2931000000000097 +-10.5820100000000004 +-10.5820100000000004 +-23.5294099999999986 +-23.5294099999999986 +14.9202899999999996 +13.9482499999999998 +286.5966000000000236 +19.0886400000000016 +-13.8121500000000008 +-13.8121500000000008 +12.4631600000000002 +85.6072800000000029 +-37.4531899999999993 +-37.4531899999999993 +10037.4500000000007276 +212.2223999999999933 +4.2354930000000000 +-4.2354930000000000 +-4.2354930000000000 +12.0418900000000004 +21.7692399999999999 +117.2840000000000060 +-24.6913599999999995 +-24.6913599999999995 +60.4233800000000016 +12.3725500000000004 +-10.1625999999999994 +-10.1625999999999994 +31.5656600000000012 +-31.5656600000000012 +-31.5656600000000012 +83.2819099999999963 +-1.4144470000000000 +-1.4144470000000000 +2.5419420000000001 +119.8662999999999954 +-8.3333340000000007 +-8.3333340000000007 +-34.0135999999999967 +-34.0135999999999967 +-77.5193799999999982 +-77.5193799999999982 +8.3333340000000007 +108.8545000000000016 +343.4710999999999785 +17.6870599999999989 +42.0954800000000020 +19.0460400000000014 +-8.4817640000000001 +-8.4817640000000001 +51.3229299999999995 +-6.7795009999999998 +-6.7795009999999998 +-22.2717199999999984 +-22.2717199999999984 +32.6174099999999996 +9.9638869999999997 +8.4817640000000001 +30.2114800000000017 +17.3611100000000000 +66.7081699999999955 +12.0783500000000004 +490.5504999999999995 +-240.9638999999999953 +-240.9638999999999953 +91.8750799999999970 +-80.0000000000000000 +-80.0000000000000000 +492.3722999999999956 +155.0669000000000040 +3.7243949999999999 +39.5029600000000016 +-9.9700900000000008 +-9.9700900000000008 +10032.6200000000008004 +-10.3448499999999992 +-10.3448499999999992 +57.5176400000000001 +13.2874900000000000 +66.6289400000000001 +7.5188920000000001 +6.7673899999999998 +7.7579520000000004 +-7.7579520000000004 +-7.7579520000000004 +26.1762799999999984 +14.7082899999999999 +19.6891199999999991 +69.8580699999999979 +-27.2479599999999991 +-27.2479599999999991 +-26.4550300000000007 +-26.4550300000000007 +-16.1550900000000013 +-16.1550900000000013 +83.5518299999999954 +-39.0625000000000000 +-39.0625000000000000 +-17.2413799999999995 +-17.2413799999999995 +82.7588999999999970 +-17.2413799999999995 +-17.2413799999999995 +10000.0000000000000000 +-10000.0000000000000000 +-10000.0000000000000000 +185.1031999999999869 +-6.6225170000000002 +-6.6225170000000002 +-6.5359480000000003 +-6.5359480000000003 +-6.5359480000000003 +-6.5359480000000003 +10039.0599999999994907 +6.6225170000000002 +6.5359480000000003 +6.5359480000000003 +73.4736699999999985 +-65.7894699999999943 +-65.7894699999999943 +112.0369000000000028 +10219.7099999999991269 +-6.9444450000000000 +-6.9444450000000000 +-10000.0000000000000000 +-10000.0000000000000000 +80.4967999999999932 +-9.2592590000000001 +-9.2592590000000001 +-2.2727270000000002 +-2.2727270000000002 +-2.2727270000000002 +-2.2727270000000002 +-3.7807189999999999 +-3.7807189999999999 +-3.8895369999999998 +-3.8895369999999998 +10000.0000000000000000 +9.2592590000000001 +2.2727270000000002 +2.2727270000000002 +3.7807189999999999 +3.8895369999999998 +9.5732269999999993 +57.7426800000000000 +6796.3400000000001455 +-69.6136500000000069 +-69.6136500000000069 +-6666.6670000000003711 +-6666.6670000000003711 +313.5160999999999945 +-243.9024000000000001 +-243.9024000000000001 +78.3364899999999977 +-68.0272099999999966 +-68.0272099999999966 +-10.3092799999999993 +-10.3092799999999993 +56.0289100000000033 +-11.9760500000000008 +-11.9760500000000008 +-44.0528600000000026 +-44.0528600000000026 +69.9848300000000023 +-35.9712299999999985 +-35.9712299999999985 +60.1258199999999974 +-24.1545899999999989 +-24.1545899999999989 +92.1817900000000066 +418.9938999999999965 +-33.8982999999999990 +-33.8982999999999990 +-29.7619100000000003 +-29.7619100000000003 +-44.4444400000000002 +-44.4444400000000002 +-44.4444400000000002 +-44.4444400000000002 +33.8982999999999990 +29.7619100000000003 +44.4444400000000002 +44.4444400000000002 +66.5424100000000038 +18.2815399999999997 +6841.9049999999997453 +-32.0512799999999984 +-32.0512799999999984 +-70.6713799999999992 +-70.6713799999999992 +662.7050000000000409 +-265.6041999999999916 +-265.6041999999999916 +-32.2580600000000004 +-32.2580600000000004 +-88.8888900000000035 +-88.8888900000000035 +318.8808000000000220 +-53.2764999999999986 +-53.2764999999999986 +204.9703000000000088 +-51.0204099999999983 +-51.0204099999999983 +-51.0204099999999983 +-51.0204099999999983 +51.0204099999999983 +51.0204099999999983 +142.1654000000000053 +22.6244399999999999 +162.3037999999999954 +-72.1678500000000014 +-72.1678500000000014 +-45.4132600000000011 +-45.4132600000000011 +-44.7227200000000025 +-44.7227200000000025 +64.7997500000000031 +-44.0528600000000026 +-44.0528600000000026 +-20.7468900000000005 +-20.7468900000000005 +170.2747999999999990 +-54.0540499999999966 +-54.0540499999999966 +20.7468900000000005 +54.0540499999999966 +111.6384000000000043 +110.9479000000000042 +%% +0 +15 +45 +266 +1 +3 +2 +51 +185 +1 +3 +7 +119 +157 +428 +431 +4 +114 +5 +149 +432 +6 +17 +164 +366 +425 +3 +7 +8 +421 +9 +204 +276 +10 +411 +435 +11 +12 +13 +15 +11 +12 +11 +13 +14 +15 +0 +11 +14 +15 +16 +18 +56 +15 +16 +19 +20 +280 +333 +6 +17 +15 +18 +16 +19 +16 +20 +21 +22 +139 +21 +22 +139 +154 +196 +23 +24 +23 +24 +156 +169 +25 +98 +424 +26 +27 +26 +27 +84 +172 +28 +306 +315 +29 +30 +29 +30 +181 +185 +31 +375 +443 +32 +33 +238 +32 +33 +34 +221 +35 +324 +418 +36 +146 +261 +37 +38 +397 +37 +38 +39 +280 +38 +39 +416 +40 +46 +327 +412 +41 +171 +327 +42 +174 +43 +101 +285 +44 +173 +202 +263 +284 +0 +45 +252 +40 +46 +152 +284 +47 +204 +270 +282 +305 +48 +49 +113 +454 +48 +49 +237 +330 +441 +50 +81 +408 +2 +51 +396 +52 +270 +309 +53 +161 +405 +54 +268 +362 +55 +123 +223 +15 +56 +83 +57 +58 +59 +57 +58 +346 +376 +57 +59 +60 +331 +417 +61 +437 +62 +63 +88 +189 +393 +62 +63 +64 +65 +427 +435 +64 +65 +66 +68 +69 +70 +67 +69 +71 +72 +213 +66 +68 +66 +67 +69 +70 +71 +141 +310 +319 +66 +69 +70 +73 +74 +75 +90 +352 +67 +69 +71 +211 +212 +439 +463 +67 +72 +70 +73 +70 +74 +70 +75 +76 +77 +186 +263 +76 +77 +122 +264 +78 +79 +213 +420 +78 +79 +146 +251 +354 +392 +436 +80 +395 +456 +50 +81 +286 +82 +386 +422 +56 +83 +172 +27 +84 +87 +115 +274 +453 +85 +87 +86 +87 +235 +84 +85 +86 +87 +62 +88 +325 +89 +90 +385 +70 +89 +90 +92 +93 +94 +370 +91 +94 +386 +90 +92 +90 +93 +90 +91 +94 +95 +94 +95 +96 +325 +421 +97 +149 +155 +25 +98 +223 +99 +157 +219 +390 +100 +101 +43 +100 +101 +177 +232 +285 +102 +305 +428 +103 +104 +190 +256 +262 +103 +104 +105 +254 +106 +245 +333 +107 +190 +379 +108 +111 +109 +111 +110 +111 +108 +109 +110 +111 +122 +178 +297 +112 +262 +336 +377 +415 +48 +113 +114 +284 +4 +113 +114 +353 +84 +115 +116 +115 +116 +118 +117 +123 +345 +116 +118 +345 +3 +119 +428 +120 +122 +121 +122 +186 +263 +296 +77 +111 +120 +121 +122 +178 +264 +55 +117 +123 +124 +125 +124 +125 +384 +126 +128 +225 +127 +224 +437 +126 +128 +129 +140 +130 +140 +131 +140 +132 +141 +133 +142 +134 +139 +135 +140 +141 +143 +136 +140 +141 +144 +137 +198 +339 +138 +146 +21 +22 +134 +139 +129 +130 +131 +135 +136 +140 +69 +132 +135 +136 +141 +142 +472 +477 +486 +133 +141 +142 +241 +135 +143 +136 +144 +145 +182 +244 +338 +36 +79 +138 +146 +147 +433 +442 +148 +149 +216 +5 +97 +148 +149 +396 +150 +152 +153 +154 +151 +152 +153 +154 +46 +150 +151 +152 +202 +150 +151 +153 +22 +150 +151 +154 +240 +97 +155 +156 +24 +155 +156 +3 +99 +157 +158 +159 +182 +247 +387 +391 +158 +159 +368 +398 +160 +409 +53 +161 +354 +162 +166 +245 +163 +166 +230 +416 +469 +6 +164 +165 +340 +422 +162 +163 +166 +167 +168 +167 +168 +343 +399 +24 +169 +324 +170 +171 +41 +170 +171 +27 +83 +172 +201 +44 +173 +174 +284 +42 +173 +174 +175 +463 +176 +225 +101 +177 +339 +111 +122 +178 +179 +180 +179 +180 +232 +30 +181 +145 +158 +182 +183 +184 +247 +182 +183 +182 +184 +2 +30 +185 +76 +121 +186 +187 +197 +211 +188 +189 +62 +188 +189 +400 +103 +107 +190 +191 +194 +195 +373 +379 +415 +190 +191 +192 +193 +191 +192 +191 +193 +190 +194 +190 +195 +22 +196 +464 +187 +197 +200 +137 +198 +363 +199 +279 +197 +200 +172 +201 +246 +44 +152 +202 +296 +203 +204 +205 +206 +9 +47 +203 +204 +207 +282 +356 +368 +203 +205 +203 +206 +277 +204 +207 +208 +207 +208 +209 +210 +209 +210 +456 +464 +71 +187 +211 +71 +212 +443 +67 +78 +213 +214 +389 +439 +215 +216 +217 +218 +148 +215 +216 +276 +285 +428 +215 +217 +215 +218 +234 +99 +219 +270 +448 +220 +366 +463 +34 +221 +239 +435 +222 +344 +397 +406 +55 +98 +223 +376 +453 +127 +224 +225 +281 +376 +126 +176 +224 +225 +226 +227 +226 +227 +419 +228 +229 +228 +229 +314 +435 +163 +230 +385 +472 +231 +232 +233 +234 +101 +180 +231 +232 +231 +233 +218 +231 +234 +86 +235 +300 +398 +236 +299 +307 +49 +237 +293 +32 +238 +321 +221 +239 +421 +154 +240 +328 +142 +241 +257 +430 +479 +242 +243 +308 +242 +243 +145 +244 +299 +106 +162 +245 +201 +246 +332 +158 +182 +247 +248 +247 +248 +249 +250 +248 +249 +248 +250 +79 +251 +362 +45 +252 +255 +253 +255 +105 +254 +255 +384 +252 +253 +254 +255 +103 +256 +265 +335 +401 +426 +241 +257 +258 +259 +260 +430 +465 +257 +258 +257 +259 +257 +260 +36 +261 +442 +103 +112 +262 +335 +377 +44 +76 +121 +263 +264 +77 +122 +263 +264 +256 +265 +0 +266 +406 +267 +268 +54 +267 +268 +421 +269 +371 +403 +47 +52 +219 +270 +271 +309 +376 +270 +271 +272 +273 +271 +272 +271 +273 +84 +274 +344 +374 +406 +275 +314 +393 +9 +216 +276 +431 +206 +277 +278 +430 +478 +277 +278 +199 +279 +280 +16 +38 +279 +280 +224 +281 +47 +204 +282 +283 +284 +286 +287 +44 +46 +113 +173 +283 +284 +288 +289 +43 +101 +216 +285 +288 +289 +81 +283 +286 +283 +287 +284 +285 +288 +290 +284 +285 +289 +291 +288 +290 +289 +291 +292 +293 +237 +292 +293 +418 +294 +446 +295 +296 +297 +298 +121 +202 +295 +296 +455 +111 +295 +297 +295 +298 +236 +244 +299 +371 +235 +300 +301 +303 +305 +309 +322 +428 +300 +301 +302 +492 +301 +302 +300 +303 +304 +493 +303 +304 +47 +102 +300 +305 +309 +28 +306 +433 +236 +307 +372 +242 +308 +408 +52 +270 +300 +305 +309 +316 +317 +318 +390 +69 +310 +316 +317 +318 +319 +311 +316 +312 +317 +313 +318 +229 +275 +314 +28 +315 +427 +309 +310 +311 +316 +309 +310 +312 +317 +309 +310 +313 +318 +69 +310 +319 +320 +319 +320 +400 +238 +321 +322 +300 +321 +322 +339 +434 +323 +324 +35 +169 +323 +324 +88 +96 +325 +326 +327 +40 +41 +326 +327 +240 +328 +395 +329 +330 +49 +329 +330 +60 +331 +334 +246 +332 +391 +16 +106 +333 +331 +334 +433 +256 +262 +335 +112 +336 +342 +337 +393 +145 +338 +341 +137 +177 +322 +339 +165 +340 +422 +338 +341 +336 +342 +415 +168 +343 +222 +274 +344 +347 +349 +351 +352 +117 +118 +345 +346 +348 +350 +352 +374 +58 +345 +346 +344 +347 +345 +348 +344 +349 +345 +350 +344 +351 +394 +70 +344 +345 +352 +402 +114 +353 +419 +79 +161 +354 +355 +384 +204 +356 +357 +358 +360 +398 +356 +357 +359 +361 +356 +358 +357 +359 +356 +360 +357 +361 +54 +251 +362 +198 +363 +364 +437 +365 +366 +6 +220 +365 +366 +375 +425 +367 +368 +369 +370 +159 +204 +367 +368 +371 +372 +367 +369 +90 +367 +370 +269 +299 +368 +371 +307 +368 +372 +391 +190 +373 +407 +274 +345 +374 +31 +366 +375 +58 +223 +224 +270 +376 +394 +112 +262 +377 +378 +379 +380 +382 +107 +190 +378 +379 +383 +378 +380 +416 +429 +381 +383 +378 +382 +379 +381 +383 +125 +254 +355 +384 +89 +230 +385 +82 +91 +386 +158 +387 +388 +387 +388 +214 +389 +438 +99 +309 +390 +158 +332 +372 +391 +403 +79 +392 +438 +62 +275 +337 +393 +351 +376 +394 +80 +328 +395 +456 +464 +51 +149 +396 +37 +222 +397 +159 +235 +356 +398 +168 +399 +441 +189 +320 +400 +256 +401 +402 +352 +401 +402 +269 +391 +403 +404 +405 +53 +404 +405 +222 +266 +274 +406 +373 +407 +426 +50 +308 +408 +160 +409 +417 +410 +411 +10 +410 +411 +436 +40 +412 +413 +414 +415 +416 +413 +414 +112 +190 +342 +413 +415 +39 +163 +380 +413 +416 +60 +409 +417 +35 +293 +418 +227 +353 +419 +423 +78 +420 +421 +434 +8 +96 +239 +268 +420 +421 +82 +165 +340 +422 +419 +423 +25 +424 +6 +366 +425 +256 +407 +426 +64 +315 +427 +3 +102 +119 +216 +300 +428 +430 +380 +429 +430 +241 +257 +277 +428 +429 +430 +3 +276 +431 +5 +432 +147 +306 +334 +433 +436 +322 +420 +434 +435 +10 +64 +221 +229 +434 +435 +79 +411 +433 +436 +61 +127 +364 +437 +389 +392 +438 +71 +214 +439 +440 +441 +49 +399 +440 +441 +147 +261 +442 +31 +212 +443 +444 +445 +446 +448 +444 +445 +449 +454 +294 +444 +446 +454 +447 +449 +219 +444 +448 +450 +451 +452 +445 +447 +449 +448 +450 +448 +451 +448 +452 +84 +223 +453 +454 +48 +445 +446 +453 +454 +296 +455 +456 +457 +80 +210 +395 +455 +456 +458 +459 +460 +461 +462 +455 +457 +456 +458 +456 +459 +456 +460 +456 +461 +456 +462 +71 +175 +220 +463 +196 +210 +395 +464 +257 +465 +466 +479 +465 +466 +480 +467 +471 +477 +468 +472 +477 +163 +469 +470 +469 +470 +471 +467 +470 +471 +141 +230 +468 +472 +473 +474 +475 +476 +472 +473 +472 +474 +472 +475 +472 +476 +141 +467 +468 +477 +277 +478 +241 +465 +479 +480 +482 +466 +479 +480 +481 +482 +485 +480 +481 +485 +479 +480 +482 +483 +484 +482 +483 +482 +484 +480 +481 +485 +141 +486 +487 +489 +492 +493 +488 +489 +490 +487 +488 +489 +491 +488 +490 +489 +491 +301 +487 +492 +303 +487 +493 +%% +0 +4 +6 +9 +16 +18 +21 +26 +28 +30 +33 +36 +40 +42 +44 +46 +53 +59 +61 +63 +65 +67 +70 +75 +77 +81 +84 +86 +90 +93 +95 +99 +102 +105 +107 +109 +112 +115 +118 +122 +125 +129 +132 +134 +137 +142 +145 +149 +154 +158 +163 +166 +169 +172 +175 +178 +181 +184 +187 +191 +193 +196 +198 +203 +205 +209 +211 +215 +220 +222 +230 +238 +245 +247 +249 +251 +253 +257 +261 +265 +272 +275 +278 +281 +284 +290 +292 +295 +299 +302 +305 +312 +315 +317 +319 +323 +325 +328 +331 +334 +338 +340 +346 +349 +354 +356 +358 +361 +364 +366 +368 +370 +377 +382 +386 +390 +393 +396 +399 +402 +405 +407 +412 +419 +422 +424 +427 +430 +433 +435 +437 +439 +441 +443 +445 +447 +451 +455 +458 +460 +464 +470 +479 +483 +485 +487 +491 +495 +498 +501 +506 +510 +514 +519 +522 +527 +530 +533 +536 +542 +546 +548 +551 +554 +559 +561 +564 +567 +569 +573 +576 +578 +581 +585 +589 +592 +594 +596 +599 +602 +604 +607 +609 +615 +617 +619 +622 +625 +628 +630 +634 +643 +647 +649 +651 +653 +655 +658 +661 +664 +666 +668 +671 +675 +679 +687 +689 +692 +695 +697 +699 +703 +706 +709 +712 +715 +719 +725 +727 +730 +734 +737 +741 +745 +750 +755 +759 +761 +764 +766 +770 +774 +778 +782 +784 +787 +791 +794 +797 +800 +803 +806 +811 +814 +816 +819 +822 +825 +829 +833 +835 +837 +840 +843 +845 +849 +853 +859 +866 +868 +870 +872 +875 +880 +885 +889 +891 +894 +896 +900 +903 +910 +914 +916 +918 +923 +926 +930 +935 +937 +940 +944 +946 +949 +953 +961 +967 +970 +972 +976 +980 +982 +984 +986 +990 +992 +996 +1001 +1004 +1006 +1010 +1018 +1022 +1024 +1028 +1030 +1035 +1038 +1041 +1044 +1053 +1059 +1061 +1063 +1065 +1068 +1071 +1075 +1079 +1083 +1087 +1090 +1093 +1098 +1100 +1104 +1107 +1109 +1113 +1116 +1118 +1121 +1124 +1127 +1130 +1133 +1136 +1139 +1141 +1144 +1148 +1151 +1153 +1156 +1158 +1165 +1173 +1176 +1178 +1180 +1182 +1184 +1187 +1192 +1195 +1198 +1200 +1206 +1210 +1212 +1214 +1216 +1218 +1221 +1223 +1225 +1227 +1233 +1237 +1243 +1245 +1248 +1252 +1256 +1259 +1262 +1265 +1271 +1274 +1278 +1283 +1287 +1289 +1291 +1294 +1298 +1301 +1304 +1307 +1309 +1312 +1315 +1320 +1323 +1327 +1330 +1335 +1338 +1341 +1345 +1348 +1351 +1354 +1357 +1360 +1362 +1365 +1369 +1372 +1375 +1378 +1380 +1384 +1386 +1390 +1392 +1397 +1402 +1405 +1408 +1412 +1416 +1422 +1426 +1428 +1430 +1433 +1436 +1439 +1446 +1449 +1455 +1458 +1460 +1465 +1469 +1475 +1479 +1483 +1486 +1489 +1491 +1495 +1498 +1501 +1505 +1509 +1513 +1515 +1521 +1524 +1526 +1528 +1530 +1534 +1539 +1543 +1553 +1555 +1557 +1559 +1561 +1563 +1565 +1569 +1573 +1577 +1580 +1583 +1586 +1589 +1592 +1595 +1603 +1605 +1607 +1609 +1611 +1615 +1617 +1622 +1628 +1631 +1636 +1638 +1640 +1643 +1645 +1649 +1652 +1656 +1658 +1660 +1663 +1666 +%% +0.8483178396146527 +0.6706497803768818 +0.9316474009271629 +0.8259915659051159 +0.0749141099239747 +0.6127769850532617 +0.3243126095086337 +0.4042432493346517 +0.4889216894177568 +0.0563064540342341 +0.2003220013219365 +0.4506809985950107 +0.2465207945154783 +0.6728182306226016 +0.5009444841545747 +0.2093887700710019 +0.3833875674814791 +0.2629049630806244 +0.8638473264891788 +0.0068903568874143 +0.4270323830861616 +0.6741981263711310 +0.0263683207747022 +0.8026358879744457 +0.1798125277440863 +0.6615563839200532 +0.5388504032397917 +0.2011487589490933 +0.9782153590525915 +0.2966113305625048 +0.8309093043465101 +0.5350148999623799 +0.8577368190902865 +0.7123884593841227 +0.9543748287741737 +0.8801106496231675 +0.8490474371089849 +0.1057599762765537 +0.3694121479802369 +0.7736908773165471 +0.3352441047664209 +0.1150862062662503 +0.7552438928694989 +0.3439478131991411 +0.2817087394018067 +0.2162976539518998 +0.4852360002861091 +0.0057640498417387 +0.7268004045533238 +0.5205619338920122 +0.6343918397825450 +0.1837588835868946 +0.2104079488356254 +0.1072048133407638 +0.0395947057002634 +0.9330220583897403 +0.0400209978161234 +0.0781877556303664 +0.2976758337005888 +0.6604415374454923 +0.9521082225628823 +0.0055543256941696 +0.1866873697274503 +0.2113213532549362 +0.7358651200871347 +0.4166371044168225 +0.1361097436415447 +0.2489126317221700 +0.9090931683964897 +0.8804237290693118 +0.4604792296588825 +0.9114630717835008 +0.5769636562652027 +0.2122197185028387 +0.8616704275858206 +0.1872496047054253 +0.8767687582692533 +0.0283493571356546 +0.0279669403183254 +0.0011739769717719 +0.8816612565392817 +0.2587451230366413 +0.1866195592416753 +0.6134283988672150 +0.7633503369248252 +0.7960136720771441 +0.2150746941951263 +0.4417212743517567 +0.1339641300308199 +0.3538190365232776 +0.7161428864829403 +0.4820827424201957 +0.1365021466723779 +0.7270079301991990 +0.5001932391978972 +0.5540293780631791 +0.8470236345937937 +0.6844720529281880 +0.4470622249540837 +0.7395825773469121 +0.7140811894103265 +0.1689867872929229 +0.0127652175460312 +0.7390011771948182 +0.3876666127209407 +0.3889554660143338 +0.9958895038034786 +0.0158743815304996 +0.0926458725571736 +0.2794561312296530 +0.9676672240567189 +0.5488249778351199 +0.3736362838672994 +0.9939879360511114 +0.0488822949430138 +0.3265921768161898 +0.4076365668481068 +0.7380059200028429 +0.4603180906842517 +0.2686659846029050 +0.2873166763901486 +0.0140301867513706 +0.4365584272465929 +0.0345076306283345 +0.5850196896009423 +0.7098586658566393 +0.9590813817633715 +0.8804033136216555 +0.9980595552286854 +0.1311251822393278 +0.6068136140773602 +0.1738269702011150 +0.7043815368917442 +0.9467849911595574 +0.1974515966674346 +0.0635165505526809 +0.6575472564589070 +0.8045666146925562 +0.9454611044982865 +0.5500252055448300 +0.5747363779881197 +0.2960850128458551 +0.2194919783622648 +0.3791679357611623 +0.5763745454924379 +0.3318679405186607 +0.7153851752905834 +0.1383370271666072 +0.8911010718686341 +0.9622471231685127 +0.5206280483477259 +0.0008209235817533 +0.1501220678649025 +0.2858982586997720 +0.3812301813733660 +0.9627033012525220 +0.0463248309608765 +0.5536461903980735 +0.4254903780644615 +0.0203918495292208 +0.4973494195501764 +0.2673520692161342 +0.4281354730441760 +0.3587292238852842 +0.1142915128435944 +0.0093934765497702 +0.0804645407448647 +0.0284739994461690 +0.4373515560814680 +0.5054042027492341 +0.2582268915654431 +0.8181935096212357 +0.7683934478079263 +0.5459306504169178 +0.0766898881091194 +0.9984011518683296 +0.8463122892926332 +0.4788924934998232 +0.1107166721271598 +0.9047358057561707 +0.5840612962298976 +0.6958031753814037 +0.8557126220464411 +0.0826713344650157 +0.4838001677368423 +0.2449075192032626 +0.0621016340325793 +0.4332419552713540 +0.1310235740565679 +0.7481090411770011 +0.3776118887938892 +0.3337436210362408 +0.3530460812272584 +0.1288111479371150 +0.4149216674120018 +0.1393425109365868 +0.2064459122797230 +0.3694359018085516 +0.8343916891700796 +0.2161886277610609 +0.0932775064851222 +0.0868289540623030 +0.2731170192259920 +0.2809660913222927 +0.3356228717457055 +0.6834390896658262 +0.3267963290017710 +0.6599492802927122 +0.0435681404918652 +0.0703576285531474 +0.7228303690021292 +0.8851721422324230 +0.2107907960557750 +0.0784159016220343 +0.9615694238266003 +0.6775815611931443 +0.9326414560282523 +0.8723857873635551 +0.9394618799882867 +0.3442387428829488 +0.1764777376547630 +0.7488398469947676 +0.3732788212737727 +0.6865869483303326 +0.4000735922705779 +0.5721400649461029 +0.1120309369903489 +0.5113942038836549 +0.0511100243190568 +0.7175259320021290 +0.8575182783261570 +0.5784878853002242 +0.1349654718909908 +0.1192925964151463 +0.9723092959416103 +0.3728264511453223 +0.8067179481103881 +0.3324480279209299 +0.4657453752075365 +0.7348138089866270 +0.8214647023258758 +0.9113418227917187 +0.6642716262994925 +0.0133558732261029 +0.2924958180021960 +0.0444334379695671 +0.9396144243758447 +0.7655890089284283 +0.6692048055281263 +0.8380837128929514 +0.4554570494036198 +0.6909078386850797 +0.0154017302137861 +0.8479124776327206 +0.9462209557130911 +0.7677202200246880 +0.9279331770197743 +0.5153327254961750 +0.8926116198429296 +0.8930457828966226 +0.9844385803033128 +0.6018790515210961 +0.8235301034352464 +0.0665720402909682 +0.1171662519206369 +0.5962448507692394 +0.9738432213333370 +0.3392590904124880 +0.1702801969466125 +0.1112857249315309 +0.9700813330218533 +0.5367884989765819 +0.3431322540111262 +0.9916240181373843 +0.3521808070203251 +0.8331481345246642 +0.6456496860574097 +0.2994661478507417 +0.0078332098488572 +0.8627726556183214 +0.2780721231188467 +0.6182353827040976 +0.9308493287741327 +0.6149876265111006 +0.3391027675786487 +0.3531793653091488 +0.6387221774977941 +0.5143005186400568 +0.1387668025077644 +0.5926468898446244 +0.3193379819348149 +0.3649024825358713 +0.2938847760898528 +0.5343363005946771 +0.3760463174887679 +0.5725036130122593 +0.1542553433051521 +0.3174075718189375 +0.6639159037834084 +0.3751798269431847 +0.3564936178023257 +0.6578860801973966 +0.4878134574691712 +0.9332728824329765 +0.0345427675439928 +0.1146445520498136 +0.5848943772682992 +0.1662239710723725 +0.0693781648667100 +0.8694019864172604 +0.2191364932019932 +0.7499672365062569 +0.2761112415673199 +0.7271363734624335 +0.2440285243758249 +0.9430020624479579 +0.1440250692777039 +0.4132824422670823 +0.7614656056422392 +0.4837363618225233 +0.9809620066037130 +0.4671709271543480 +0.9348033021342805 +0.4537214639120629 +0.7552137859210596 +0.7954668379373012 +0.6065311722051752 +0.2438654997599063 +0.5503350398133949 +0.4419460762806375 +0.6275061460415338 +0.6777206266673230 +0.0111472337609468 +0.9957734162654772 +0.1246312888209616 +0.2480800843375707 +0.4231461451579110 +0.1280403970412000 +0.6484414922888584 +0.3644668863337679 +0.2337922181906040 +0.9616873414436868 +0.6779685516426726 +0.1868708749314857 +0.8782741573686651 +0.6930411666732398 +0.6177010100415349 +0.5780037143603487 +0.2939854446950563 +0.5608423882500977 +0.8761871775505162 +0.6441989655644730 +0.1810071211477334 +0.9713249811202351 +0.8720289503655566 +0.4294390166286234 +0.2532811225707449 +0.8969774741365252 +0.6100117892988954 +0.1960699631492769 +0.9301354739598914 +0.7224530353170772 +0.5191027833281141 +0.1268089950416111 +0.1431706944572742 +0.9397683680282519 +0.1708568797583734 +0.5315018323429732 +0.6242359909565518 +0.2254886187046609 +0.9782736794109049 +0.0429141142621825 +0.9891683505866096 +0.2024717685614631 +0.0196826080659797 +0.6910933955316909 +0.2768293352286383 +0.7314732999603543 +0.0768308861291690 +0.1551093873719042 +0.6270659160444320 +0.6743060895480667 +0.3147389465422545 +0.4556540188327001 +0.5336071033488232 +0.4432436833380574 +0.0120537996182269 +0.5606860679844500 +0.5307654724048916 +0.6319108687982481 +0.5153605911637142 +0.0116703069980435 +0.7528566241924224 +0.2322452408551318 +0.7033589194426896 +0.3536862332363362 +0.3209196647064811 +0.1158322695030433 +0.4410043195102882 +0.9634522939857088 +0.0111739864620048 +0.8487323055999937 +0.2863026779679601 +0.4353499310626945 +0.2683100918304755 +0.6302969530620972 +0.2979827363431253 +0.1274088565446815 +0.3721852873425603 +0.2453010715007161 +0.1633665685261703 +0.7126333281485220 +0.6533281645944697 +0.5808262573450925 +0.2843454312853405 +0.5096368273743479 +0.9051319563159713 +0.4906882869254115 +0.5983082899373767 +0.6495880834323012 +0.5757792223158209 +0.0233123321742689 +0.2692903346720601 +0.0041469810558323 +0.6096013896981760 +0.8805597089399800 +0.0901025770439411 +0.2018707114365797 +0.4634050247425767 +0.3379314576230700 +0.6204605185689965 +0.4753747255809189 +0.5112592424386806 +0.6616274253970083 +0.4937665420329518 +0.3197317654981836 +0.4695717035134276 +0.2874055811093641 +0.9097122918366112 +0.0698162859045715 +0.3201641400746201 +0.5185972464080254 +0.9905173479273656 +0.3712390779666960 +0.0056370341850618 +0.0395522598727142 +0.3921534977584564 +0.8522029796288904 +0.3346194563079505 +0.6429233013492220 +0.6360433801365077 +0.1716043134564161 +0.5201155310158935 +0.0245860778925260 +0.4362019819492165 +0.1192679823597833 +0.3809198621760362 +0.2251123162515863 +0.5670535082271564 +0.2278627039406244 +0.0529453230927324 +0.6021001931781610 +0.6790772399224166 +0.7716493715297760 +0.2868627608072348 +0.7086536443199765 +0.9392660254042972 +0.6378488996151952 +0.5753465166316099 +0.9778896639349272 +0.6541005362632644 +0.6175561601799165 +0.2817555840484371 +0.1438112390964338 +0.6612642174687781 +0.5655215638728978 +0.9423159385445181 +0.8964914023258709 +0.9174747407529212 +0.4929803186620192 +0.9779240481377166 +0.3181047984817529 +0.2986892413220574 +0.2571762285898997 +0.1916000764166038 +0.5341139182822019 +0.7468217076566656 +0.4481070842468913 +0.5936366233299584 +0.7442557099061952 +0.5410113779987784 +0.0755455037462515 +0.0748945408290509 +0.0881736635594114 diff --git a/examples/machsuite/spmv/crs/run_test.py b/examples/machsuite/spmv/crs/run_test.py new file mode 100644 index 0000000000..44caf52906 --- /dev/null +++ b/examples/machsuite/spmv/crs/run_test.py @@ -0,0 +1,40 @@ +import allo +import numpy as np +from crs import crs + +def parse_data(file): + data_arrays = [] + current_array = [] + + with open(file, 'r') as f: + for line in f: + if line.strip() == '%%': + if current_array: + data_arrays.append(current_array) + current_array = [] + else: + num = float(line.strip()) + current_array.append(num) + + data_arrays.append(current_array) + return data_arrays + + +if __name__ == "__main__": + input = parse_data("input.data") + check = parse_data("check.data") + + + values = np.array(input[0]).astype(np.float64) + columns = np.array(input[1]).astype(np.int32) + rows = np.array(input[2]).astype(np.int32) + vector = np.array(input[3]).astype(np.float64) + + check = np.array(check[0]).astype(np.float64) + + ## Building + s = allo.customize(crs) + mod = s.build() + + actual = mod(values, columns, rows, vector) + np.testing.assert_allclose(actual, check, rtol=1e-5, atol=1e-5) \ No newline at end of file diff --git a/examples/machsuite/spmv/ellpack/check.data b/examples/machsuite/spmv/ellpack/check.data new file mode 100644 index 0000000000..47b9666f9d --- /dev/null +++ b/examples/machsuite/spmv/ellpack/check.data @@ -0,0 +1,495 @@ +%% +1871.7848080859318998 +-8.8439346286551412 +-4.1057636527807517 +289.6985128226187953 +-11.3888136769930313 +-307.8727521860603247 +-192.7076542348153225 +3.3739865325637135 +-3.7889578481137649 +-3.0030200188998841 +8.0089633919431567 +-3.3878017418294029 +-3.0507008083914444 +59.2886936321243780 +2.9780958415066543 +-158.1087480869031481 +-40.3262360397810298 +-0.9998784011311241 +-8.6790677362391619 +-3.6421228254484515 +3.8221319552663089 +28.1578751222559660 +-22.8084561065140434 +14.1462897791780868 +-27.0101605289843931 +-33.4278312802921320 +-15.4282590237712292 +102.0737627182930538 +-122.9141674420853576 +177.5731832035259004 +-194.6708453104239425 +-9.5877871247874005 +-0.5910436133885639 +-7.4448808984098021 +-21.2901834471117652 +6.5296397343814405 +207.7696636653149085 +-82.8785136868552854 +-627.8396077027809952 +-4.5538964512164206 +-4.8696341365514755 +18.8627359579027427 +-13.4001854927612971 +-1.1962227013482489 +-24.7211712469747376 +-62.8975685233145612 +20.7683449290265152 +-1456.6387643549214772 +51.3752220577458871 +-150.1990543825074838 +-0.5786378479182659 +-29.5124032253664268 +-133.3076202113051067 +110.1763257597252306 +-234.5138421221315923 +-24.8925210009502003 +-11.0773106295720893 +-28.3848223330828553 +-17.6783022552457716 +11.4499164125633826 +-12.7091616872776072 +-1.5614053746095236 +6.8041196526507148 +4.9259887100509641 +-11.3506549539871635 +1190.9436075001278823 +-2484.5111002742546589 +-110.2096940987770068 +-11.9447166291469706 +-74.2937020753856672 +-24.3940727044116699 +-8.8416055446615545 +-0.3193098789636171 +-4.8323913872224225 +31.6010612222814871 +-14.2357972762354450 +-16.4245656655571004 +-11.4073779417708359 +-3.3683862158863089 +-0.5831733830976340 +-28.1555167811446907 +-21.0448917754093010 +-3.4837296605126014 +9.5905875806634455 +-10.7108437322303942 +-2.4630859330493071 +-30.9994367236274364 +-13.2741097589108961 +109.1759648784947103 +-831.5751831466451449 +-54.2097201844439525 +-10.7368018292021077 +-9.0510378505474502 +596.6175577306246396 +-81.7191777681538269 +-33.1422416862454199 +-31.7594411557345140 +168.6614422223490806 +-43.5252908408722732 +-95.1344962278169106 +-25.0744583969294759 +-15.2923513744222141 +4.6992766898660987 +66.1447600745041342 +-18.5332104250914220 +-15.6392125648504408 +-6.6174697666645255 +-1.0879563968423296 +-4.8853220326143560 +-15.4712344386299527 +-30.1430410773888227 +-0.2481221561805920 +-47.5276662794670912 +-2.8305404462721935 +19.7919632674200727 +3.0205207835020609 +5.7608975154015045 +217.5469408419017157 +-265.0008164051230892 +-14.1798142706209820 +-2.2002285117553266 +-8.0793180083037104 +-7.0930533216017135 +104.1196140123579141 +-116.6557205310090808 +124.6351416292567080 +-82.7524326735291140 +-26.4842704123301473 +2.0349001696593234 +-12.7480204773969277 +19.1486987216882341 +60.8196984735684865 +-7.8963423184519606 +11.3250281729143616 +-8.0721066338425551 +-1.9329324366658569 +31.6559865113579377 +392.8591952594022132 +-193.1217106521979758 +-796.6479203536769091 +-39.5458760918757619 +-99.5606132752340898 +62.3359925628013940 +-8.1001851626878789 +-37.8182719517499280 +-15.9080533562545163 +-45.5361469446285270 +73.9836670420719145 +-152.2360106684313621 +-22.8908134766747509 +-0.8971288764742744 +1.6748021950719214 +30.9084340367891777 +-29.8387648959012708 +-48.4172596268893045 +6.9620768652454332 +-5.5179177328512674 +12.5569742548993322 +-0.9179957634002185 +-19.8778311347448877 +11.7887306408715222 +-20.8678667499200401 +-32.3227983968563208 +-26.1615889856070964 +-5.2857544551806335 +-2.9183908628467439 +13.0042084086873135 +-1.4060534467112857 +-1.5314522771159977 +-6.9603370186869240 +-6.1349795939893799 +-23.0237310261970762 +-18.0955620222033389 +-3.8714606901731021 +-4.5687398489700506 +-1.7641704717111413 +-26.0744876339404286 +-41.8864955933674779 +0.0842325156402604 +7.2387011463599933 +171.5920167232028746 +-318.1415275909248521 +-462.6796794455115105 +-56.5291503888484073 +-17.9800390649588522 +53.6292862354133248 +-58.5439720406343369 +142.2734603500565811 +580.0664146297856405 +-203.2063609329190683 +86.7562082412331677 +25.7648797354961268 +-27.2634049872177400 +-19.4942694467464044 +3.3362938341511645 +-5.0681806125144071 +1.2745978051065041 +-16.0787286512922414 +20.9676353947546197 +6.7952369035818938 +-2.2131175656875501 +-48.1202955747272227 +12.9561102587239390 +-39.4560642896417164 +-3660.9006748120191332 +4027.9694847203504651 +134.3972912874223766 +-20.7228805656372117 +-14.8924085218783269 +-13.0587457803110016 +65.5436963885441486 +-204.7246445215849917 +0.7280292482259990 +1.9692169463096698 +111.5192436130447504 +-176.8751606241443142 +-959.3073635761014657 +-20.7620597623385521 +-7.3897091677512412 +1010.1690013903163390 +36.2534606878878662 +-14.0346306179491389 +-75.8835561414735196 +141.3986934054079825 +-18.7427766081788540 +9.9605941180847282 +2.3599058214195114 +20.6191828535223607 +-11.1235304599698104 +2.9833005939198873 +-60.7609350399250516 +17.4346349701559049 +-20.5765762708552202 +7.5919997675561497 +36.2202688256436289 +-1.6647136078425038 +1.8663411854113692 +109.5142131389502964 +-16.2008695270493597 +-22.5255419909889234 +-44.4648440265346636 +-41.9690445502082454 +-7.7149806638302678 +6.9277556462491425 +19.8987672590675402 +-25.6095329507658178 +-7.2696315110631664 +-54.0561117761851122 +26.0731812026484207 +90.6100033717952300 +-117.1523140441187252 +-1358.1360510674574016 +-66.7277613631491135 +1112.8348382090882751 +-142.0859836352898640 +-74.7653244881297212 +106.5968714819060068 +2.3316076458121895 +-24.9494763887881703 +0.7030289941015688 +0.4420052213994232 +23.0081504119473763 +167.2100554452262884 +-217.4999358314942128 +111.4107260136770066 +-8.3333961174175712 +-48.9593151816018448 +21.7515415610445864 +319.2133211513757374 +-16.8436937217716647 +1.6133803025361830 +-15.9204693708605500 +-9.8535831028968666 +-10.1033966404954612 +-2.5909967530970111 +7.8008828616401971 +-29.3540362142419191 +40.3306272905754071 +5.8816614585927383 +20.3634143186272922 +-41.7604202286373507 +-3.7771106316670915 +-23.8688734189802432 +44.9083790983060851 +-26.6538280112725658 +-5.9368211167880318 +-66.1272829898980916 +63.0096926875636001 +-22.6072880203460862 +-2.6636053785806633 +0.7136416170167985 +114.5682170441557730 +-154.5188872580180259 +-106.2992824087824886 +0.1076961886411922 +1.7999643732687751 +6.9205708732205569 +-73.1659541184407232 +-9.5358595584767336 +9034.6811655120600335 +6428.3482987614233934 +-2.7130028388457679 +48.5318295127536388 +-57.3406342522616228 +131.9520669424607604 +-55.6731111450469456 +295.0214800996614031 +-177.3227928764624721 +-99.1454563287276756 +220.0600401365433925 +-36.3624458451291446 +19.2224774922722581 +2.8685377665355274 +17.3636158236268834 +-11.1766483537520696 +-6.3240649121962180 +94.1677260348064920 +517.6258969709534767 +-58.7840871654754693 +-11.8055048737910617 +-19.7050764733324755 +38.4544032094926536 +-21.8527509282711598 +6.4051121067341246 +-15.7230499761801905 +-96.8796388432965614 +144.5883880520403011 +-108.5270895292474762 +37.9985191216638540 +-11.7136032458725090 +197.0852836008277222 +34.3564214089367468 +-17.3964645156189910 +95.8439119078080637 +-71.7636963382541069 +53.9478574544632039 +79.6300976596169789 +15.9527846947069722 +52.8035210663891945 +0.0645350270188201 +-5.3314174515736248 +23.6571395564440152 +-6.2471523518731011 +77.7876444768589010 +-675.2627969379977912 +211.9190754900325260 +-3216.8360208307267385 +-2045.5501719175044855 +-493.5133056841480084 +-443.9102052257845799 +-42.4060244738823826 +1293.7815179533238279 +487.5841811759120219 +-54.8133813095899782 +1020.3673465704118826 +-535.0255687071303328 +-19.7308611248566343 +1614.0070384548191669 +-319.7381410863234805 +-404.8324165665175087 +-438.3024782236904002 +-66.9186257294047806 +-63.4642744302176496 +-57.9036519695690899 +-25.9383281933588350 +-47.0603903494329430 +-29.4326163521255495 +54.3524640596935456 +730.0789231412579738 +36.0587461239678078 +-5.0519624357748576 +-2.9250423725631514 +1535.8211661286259186 +-3774.7541075839271798 +892.0568778648539592 +-1.0153272322639033 +293.5008571439258276 +23.7234488268187498 +52.2504514282590264 +15.5571868983889132 +2.5029395641808936 +0.4732728443675525 +23.2301053969714815 +38.1078926443680430 +6.0613899268872107 +-2.3799962203020524 +44.6857690567703756 +-14.6747050577247720 +-31.7282452452638672 +44.0722759469662151 +-40.9224988054577423 +-23.5383332758564876 +31.6529293986003779 +8.2240783290234845 +11.7269400267686343 +-143.0022284810266342 +71.6059294474964787 +-75.7633251173143947 +-11.3162489857358999 +-40.6462848628561986 +-11.3776308232304935 +-16.7677548059059447 +10.5180077638598881 +19.7343566114501741 +-7.6854950852902775 +-2.6995362232872404 +26.8527358639635452 +19.8774656644438252 +-137.8851900039671250 +-51.4184208952680279 +26.6312969236649479 +-22.0369035264292066 +101.0392158710919830 +135.5635316703188664 +-80.1084874449653483 +64.2733412417919681 +-15.1081092270946016 +-86.1886924398141332 +57.9064531820786357 +-121.6972419986612124 +6.9148477624079021 +324.2818730558734046 +2.2759148462490337 +-1.6466880240586437 +383.0918086953634543 +-34.7333847880945541 +-4.0805110580642285 +156.1638214898648016 +148.1792339293115219 +-5.5957897580932130 +4773.2500243420108745 +-0.5087160669729016 +73.3022182442790893 +-6.9129742379189594 +-17.0037918576874816 +72.9286085661630068 +-83.1542460309150471 +121.2064124325577694 +60.1949231164581420 +-12.3034432377556033 +-5.6863836584204810 +-17.4413799734767636 +36.5534795786125812 +220.3473852268654127 +-1.6294110602065643 +120.3441861874725021 +4387.1376633766303712 +-15.4668571077764234 +52.1487279212117016 +9.9111460108396603 +17.4448144397329798 +18.7000019332348586 +-22.8773695371921733 +4.7619535334250003 +-1.0212201350424337 +1553.3595396478458497 +-2644.9605837905137378 +2.2508517239483838 +-9.3185695179376893 +0.4685151300908785 +3892.5228487948334077 +-6023.6472088138989420 +-3754.5350769937749646 +-19.8387615821018706 +-4.5337270471402755 +9392.4641462224717543 +7.4425275565646194 +60.1587583693673054 +3828.2284715210594186 +-8705.7219818705398211 +-349.6691446384469373 +-94.2542749549050995 +4.9444842990352171 +-1.4883262417015199 +-22.7782566675297105 +262.9228196612849047 +-41.4939436943127689 +-93.2106691274442767 +-54.0862563070921851 +137.2328473295738149 +3289.7010045606616586 +421.7222858299887207 +-35.7612002805023792 +-29.6145667077643822 +51.4469089457480422 +-93.3746342238168836 +53.2095284717940018 +86.3360563783271573 +-101.2096472194543537 +-1.6900237078904561 +-37.3756946065164684 +-2.5774958040035170 +-58.2295810103489302 +110.2558197718876016 diff --git a/examples/machsuite/spmv/ellpack/ellpack.py b/examples/machsuite/spmv/ellpack/ellpack.py new file mode 100644 index 0000000000..d07a72ae9f --- /dev/null +++ b/examples/machsuite/spmv/ellpack/ellpack.py @@ -0,0 +1,68 @@ +import allo +import numpy as np +from allo.ir.types import int32 + +# Generate a random size for a matrix +r = np.random.randint(1, 10) +c = np.random.randint(1, 10) + +N = 494 # Number of rows +L = 10 # Number of non zero entries in row + +def ellpack(NZ: float64[N*L], cols: int32[N*L], vec: float64[N]) -> float64[N]: + out: float64[N] = 0 + + for i, j in allo.grid(N, L): + if cols[j + i*L] != -1: # For rows with fewer than L non zero entries + out[i] += NZ[j + i*L] * vec[cols[j + i*L]] + + return out + +s = allo.customize(ellpack) +mod = s.build() +# print(s.module) + + + +## Testing +# Generating Random Sparse Matrix +upperbound = [] +for i in range(r): + upperbound.append([np.random.randint(1,np.random.randint(2,10))]) + +rMatrix = np.random.randint(0, high=upperbound, size=(len(upperbound), c)).astype(np.int32) + +# Generating Random Vector +vector = np.random.randint(0, 100, (c)).astype(np.int32) + + +# Applying Ellpack Format +def ellpack_format(matrix): + values = [] + columns = [] + + + for i in range(len(matrix)): + for j in range(len(matrix[i])): + if matrix[i][j] != 0: + columns.append(j) + else: + columns.append(-1) + values.append(matrix[i][j]) + + values = np.array(values).astype(np.float64) + columns = np.array(columns).astype(np.int32) + + return (values, columns) + +values, columns = ellpack_format(rMatrix) + +# expected = np.matmul(rMatrix, vector) +# observed = mod(values, columns, vector) + +# np.testing.assert_allclose(observed, expected, rtol=1e-5, atol=1e-5) + + + + + diff --git a/examples/machsuite/spmv/ellpack/input.data b/examples/machsuite/spmv/ellpack/input.data new file mode 100644 index 0000000000..902fd17ae5 --- /dev/null +++ b/examples/machsuite/spmv/ellpack/input.data @@ -0,0 +1,10377 @@ +%% +2220.8739999999997963 +-9.9601590000000009 +-9.9601590000000009 +-8.1967210000000001 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-8.1967210000000001 +-4.0518640000000001 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-4.0518640000000001 +5.4106699999999996 +-5.4106699999999996 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-5.4106699999999996 +13.5708599999999997 +-5.6657229999999998 +-5.6657229999999998 +-7.9051380000000000 +-7.9051380000000000 +618.3967999999999847 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-91.9963199999999972 +-91.9963199999999972 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-100.0000000000000000 +-100.0000000000000000 +-294.1175999999999817 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-294.1175999999999817 +-53.5045500000000018 +-53.5045500000000018 +-73.3675700000000006 +-73.3675700000000006 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +8.0000000000000000 +-8.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-8.0000000000000000 +5.2511120000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-1.5267180000000000 +-1.5267180000000000 +-3.7243949999999999 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-3.7243949999999999 +12.5098099999999999 +-0.5000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.5000000000000000 +-2.6191719999999998 +-2.6191719999999998 +-3.6036039999999998 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-3.6036039999999998 +-5.7870369999999998 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-5.7870369999999998 +91.9963199999999972 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +10.2144999999999992 +-10.2144999999999992 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-10.2144999999999992 +277.3765999999999963 +-127.2265000000000015 +-127.2265000000000015 +-150.1501000000000090 +-150.1501000000000090 +79.8003400000000056 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-50.3018100000000032 +-50.3018100000000032 +-29.4985299999999988 +-29.4985299999999988 +13.0155700000000003 +-1.3333330000000001 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-1.3333330000000001 +-2.1584289999999999 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-2.1584289999999999 +-9.5238090000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-9.5238090000000000 +1.3333330000000001 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +2.1584289999999999 +7.0126229999999996 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-7.0126229999999996 +-7.0126229999999996 +60.1257599999999996 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-21.7864900000000006 +-21.7864900000000006 +-7.0372969999999997 +-7.0372969999999997 +-4.8053819999999998 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-4.8053819999999998 +100.1223999999999990 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-17.6056300000000014 +-17.6056300000000014 +-17.6056300000000014 +-17.6056300000000014 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-14.3061500000000006 +-14.3061500000000006 +-28.8184499999999986 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-28.8184499999999986 +0.5000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +7.0372969999999997 +17.6056300000000014 +17.6056300000000014 +105.8066000000000031 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-37.3134299999999968 +-37.3134299999999968 +-68.4931500000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-68.4931500000000000 +238.1596000000000117 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-81.9672199999999975 +-81.9672199999999975 +-108.6955999999999989 +-108.6955999999999989 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-10.1832999999999991 +-10.1832999999999991 +7.8064020000000003 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-7.8064020000000003 +-7.8064020000000003 +25.0479899999999986 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-4.7415839999999996 +-4.7415839999999996 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-12.5000000000000000 +-12.5000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +72.5843600000000038 +-42.3728800000000021 +-42.3728800000000021 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-30.2114800000000017 +-30.2114800000000017 +423.7287999999999784 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-423.7287999999999784 +-423.7287999999999784 +1022.7340000000000373 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-3.7674720000000002 +-3.7674720000000002 +-595.2381000000000313 +-595.2381000000000313 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +7.6136960000000000 +-4.3878890000000004 +-4.3878890000000004 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-3.2258060000000000 +-3.2258060000000000 +5.4288819999999998 +-5.4288819999999998 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-5.4288819999999998 +28.9126800000000017 +-17.0940200000000004 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-17.0940200000000004 +-6.3897769999999996 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-6.3897769999999996 +16.3765700000000010 +-5.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-5.0000000000000000 +-11.3765599999999996 +-11.3765599999999996 +106.1646999999999963 +-62.1118000000000023 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-62.1118000000000023 +-44.0528600000000026 +-44.0528600000000026 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +62.1118000000000023 +13.6054399999999998 +-13.6054399999999998 +-13.6054399999999998 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1122.9039999999999964 +-1111.1110000000001037 +-1111.1110000000001037 +-11.7924500000000005 +-11.7924500000000005 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +208.5615999999999985 +-8.5616439999999994 +-8.5616439999999994 +-200.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-200.0000000000000000 +19.2869600000000005 +-11.0497200000000007 +-11.0497200000000007 +-8.2372320000000006 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-8.2372320000000006 +50.4298100000000034 +-22.5733600000000010 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-22.5733600000000010 +-16.8067199999999985 +-16.8067199999999985 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +107.3191000000000059 +-84.7457600000000042 +-84.7457600000000042 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1125.3079999999999927 +-11.6550100000000008 +-11.6550100000000008 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-1111.1110000000001037 +-1111.1110000000001037 +-2.5419420000000001 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-2.5419420000000001 +40.6302400000000006 +-34.8432000000000031 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-34.8432000000000031 +-5.7870369999999998 +-5.7870369999999998 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +32.2580600000000004 +-32.2580600000000004 +-32.2580600000000004 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +50.4519400000000005 +-11.9904100000000007 +-11.9904100000000007 +-38.4615399999999994 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-38.4615399999999994 +21.8901100000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-6.2932660000000000 +-6.2932660000000000 +-4.9975009999999997 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-4.9975009999999997 +-5.3361789999999996 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-5.3361789999999996 +-5.2631579999999998 +-5.2631579999999998 +14.9534800000000008 +-6.7567570000000003 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-6.7567570000000003 +29.2795300000000012 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-3.4199730000000002 +-3.4199730000000002 +-14.2045499999999993 +-14.2045499999999993 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1682.9860000000001037 +-114.0250999999999948 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-114.0250999999999948 +-1333.3330000000000837 +-1333.3330000000000837 +-180.1802000000000135 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-180.1802000000000135 +-55.4477400000000031 +-55.4477400000000031 +65.3933700000000044 +-47.6190500000000014 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-47.6190500000000014 +-6.0096150000000002 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-6.0096150000000002 +-11.7647099999999991 +-11.7647099999999991 +168.4124999999999943 +-111.1110999999999933 +-111.1110999999999933 +-5.0761419999999999 +-5.0761419999999999 +0.0000000000000000 +0.0000000000000000 +-4.6061730000000001 +-4.6061730000000001 +39.4463500000000025 +-24.2718400000000010 +-24.2718400000000010 +-15.1745099999999997 +-15.1745099999999997 +10.4849999999999994 +0.0000000000000000 +0.0000000000000000 +-4.8192769999999996 +-4.8192769999999996 +89.1608399999999932 +-37.8787900000000022 +-37.8787900000000022 +-51.2820499999999981 +-51.2820499999999981 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +14.7029499999999995 +-6.8965519999999998 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-6.8965519999999998 +-7.8064020000000003 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-7.8064020000000003 +40.8459500000000020 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-21.9780200000000008 +-21.9780200000000008 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-18.8679300000000012 +-18.8679300000000012 +20.8446800000000003 +-9.6339109999999994 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-9.6339109999999994 +-11.2107600000000005 +-11.2107600000000005 +19.2146100000000004 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-14.4092199999999995 +-14.4092199999999995 +8.2908159999999995 +-6.2500000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-6.2500000000000000 +-2.0408160000000000 +-2.0408160000000000 +63.9985399999999984 +-13.8888900000000000 +-13.8888900000000000 +-43.8596500000000020 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-43.8596500000000020 +2.0408160000000000 +25.7062700000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-18.1818199999999983 +-18.1818199999999983 +-7.5244549999999997 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-7.5244549999999997 +8.0840739999999993 +-8.0840739999999993 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-8.0840739999999993 +17.0013800000000010 +-0.6702413000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.6702413000000000 +-3.3411300000000002 +-3.3411300000000002 +-9.5238090000000000 +-9.5238090000000000 +-3.4662039999999998 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-3.4662039999999998 +0.6702413000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +68.6351099999999974 +-56.1797800000000009 +-56.1797800000000009 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-5.6433410000000004 +-5.6433410000000004 +-6.8119889999999996 +-6.8119889999999996 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +56.1797800000000009 +794.4358999999999469 +-9.7276270000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-9.7276270000000000 +-714.2857999999999947 +-714.2857999999999947 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-70.4225299999999947 +-70.4225299999999947 +63.7407899999999970 +-23.4192000000000000 +-23.4192000000000000 +-15.0761400000000005 +-15.0761400000000005 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-10.7526899999999994 +-10.7526899999999994 +-14.4927499999999991 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-14.4927499999999991 +9.7276270000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +898.1735999999999649 +-64.1025700000000001 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-64.1025700000000001 +-8.4674010000000006 +-8.4674010000000006 +-49.6277899999999974 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-49.6277899999999974 +-15.0150100000000002 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-15.0150100000000002 +-23.2558100000000003 +-23.2558100000000003 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +309.7513999999999896 +-22.5225200000000001 +-22.5225200000000001 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-22.5225200000000001 +-22.5225200000000001 +-27.0270299999999999 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-27.0270299999999999 +-57.4712600000000009 +-57.4712600000000009 +-45.6829600000000013 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-45.6829600000000013 +44.6596100000000007 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-8.2918740000000000 +-8.2918740000000000 +-8.4245999999999999 +-8.4245999999999999 +-2.1739130000000002 +-2.1739130000000002 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-2.2256840000000002 +-2.2256840000000002 +10.7526899999999994 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +22.5225200000000001 +22.5225200000000001 +27.0270299999999999 +43.2569599999999994 +-11.6279100000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-11.6279100000000000 +-25.6410300000000007 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-25.6410300000000007 +-5.9880240000000002 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-5.9880240000000002 +14.9548600000000000 +-1.3241520000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-1.3241520000000000 +-2.0028039999999998 +-2.0028039999999998 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +59.7835899999999967 +-18.9933499999999995 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-18.9933499999999995 +-18.5185199999999988 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-18.5185199999999988 +-22.2717199999999984 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-22.2717199999999984 +76.9893200000000064 +-9.7656250000000000 +-9.7656250000000000 +-3.3322229999999999 +-3.3322229999999999 +-9.6618359999999992 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-9.6618359999999992 +-33.3333399999999997 +-33.3333399999999997 +-1.9029499999999999 +-1.9029499999999999 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +54.8651300000000006 +-34.2465699999999984 +-34.2465699999999984 +-20.6185599999999987 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-20.6185599999999987 +130.6547999999999945 +-106.3829999999999956 +-106.3829999999999956 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +8.6511689999999994 +-4.8804299999999996 +-4.8804299999999996 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-3.7707389999999998 +-3.7707389999999998 +18.5295400000000008 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-4.1203130000000003 +-4.1203130000000003 +318.4947000000000230 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-294.1175999999999817 +-294.1175999999999817 +-14.0252499999999998 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-14.0252499999999998 +-3.5448420000000000 +-3.5448420000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-3.0395140000000000 +-3.0395140000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +11.6143999999999998 +-11.6143999999999998 +-11.6143999999999998 +55.8730199999999968 +-40.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-40.0000000000000000 +-15.8730200000000004 +-15.8730200000000004 +345.7321000000000026 +8.1511340000000008 +-4.8100050000000003 +-4.8100050000000003 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +215.0901000000000067 +-125.0000000000000000 +-125.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-90.0901000000000067 +-90.0901000000000067 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +295.4284999999999854 +-38.7596899999999991 +-38.7596899999999991 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-38.9105100000000022 +-38.9105100000000022 +-11.5340299999999996 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-11.5340299999999996 +-23.7529700000000012 +-23.7529700000000012 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +79.7815099999999973 +-74.6268699999999967 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-74.6268699999999967 +-5.1546390000000004 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-5.1546390000000004 +38.7596899999999991 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +38.9105100000000022 +94.0535600000000045 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-7.8926600000000002 +-7.8926600000000002 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +7.8926600000000002 +17.5513300000000001 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-10.7991399999999995 +-10.7991399999999995 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-6.7521940000000003 +-6.7521940000000003 +15.5732900000000001 +-5.8927519999999998 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-5.8927519999999998 +-9.6805420000000009 +-9.6805420000000009 +76.2711900000000043 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-33.8982999999999990 +-33.8982999999999990 +1230.3369999999999891 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-116.2790999999999997 +-116.2790999999999997 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-769.2308000000000447 +-769.2308000000000447 +-344.8276000000000181 +-344.8276000000000181 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +26.0416699999999999 +-26.0416699999999999 +-26.0416699999999999 +79.6698899999999952 +-22.4719100000000012 +-22.4719100000000012 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-10.0000000000000000 +-10.0000000000000000 +-9.1659030000000001 +-9.1659030000000001 +104.4050000000000011 +-55.6482999999999990 +-55.6482999999999990 +-48.7567099999999982 +-48.7567099999999982 +0.0000000000000000 +85.5357900000000058 +-4.7169809999999996 +-4.7169809999999996 +-17.7935899999999982 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-17.7935899999999982 +-18.3823499999999989 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-18.3823499999999989 +-44.6428599999999989 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-44.6428599999999989 +4.7169809999999996 +14.4092199999999995 +-14.4092199999999995 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-14.4092199999999995 +41.1329500000000010 +-20.0803200000000004 +-20.0803200000000004 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-21.0526300000000006 +-21.0526300000000006 +91.6945300000000003 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-72.4637699999999967 +-72.4637699999999967 +-19.2307699999999997 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-19.2307699999999997 +9.7847360000000005 +-9.7847360000000005 +-9.7847360000000005 +1.0298659999999999 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-1.0298659999999999 +-1.0298659999999999 +2.1645020000000001 +-2.1645020000000001 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-2.1645020000000001 +26.6899599999999992 +-3.4928400000000002 +-3.4928400000000002 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-6.8027210000000000 +-6.8027210000000000 +-3.4152999999999998 +-3.4152999999999998 +140.1105000000000018 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-36.7647100000000009 +-36.7647100000000009 +-37.3134299999999968 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-37.3134299999999968 +-46.9483600000000010 +-46.9483600000000010 +-19.0839700000000008 +-19.0839700000000008 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +14.0104399999999991 +-2.6041669999999999 +-2.6041669999999999 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-5.3966539999999998 +-5.3966539999999998 +13.9848300000000005 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-3.3806630000000002 +-3.3806630000000002 +32.2401800000000023 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-18.2149399999999986 +-18.2149399999999986 +36.7678099999999972 +-18.5528799999999983 +-18.5528799999999983 +29.7563299999999984 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-19.0839700000000008 +-19.0839700000000008 +-10.6723599999999994 +-10.6723599999999994 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +28.7154799999999994 +-10.1625999999999994 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-10.1625999999999994 +176.9231000000000051 +-76.9230699999999956 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-76.9230699999999956 +16.9491499999999995 +-16.9491499999999995 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-16.9491499999999995 +33.9419600000000017 +-5.7836900000000000 +-5.7836900000000000 +-12.9032300000000006 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-12.9032300000000006 +-9.6339109999999994 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-9.6339109999999994 +-5.6211349999999998 +-5.6211349999999998 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +38.0870499999999979 +-7.5187970000000002 +-7.5187970000000002 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-3.0184120000000001 +-3.0184120000000001 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +28.7178800000000010 +3.2948930000000001 +-3.2948930000000001 +-3.2948930000000001 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +10.2830100000000009 +-6.9881209999999996 +-6.9881209999999996 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +39.1090900000000019 +-19.8412700000000015 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-19.8412700000000015 +-19.2678200000000004 +-19.2678200000000004 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +56.2528300000000030 +-18.9393899999999995 +-18.9393899999999995 +-37.3134299999999968 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-37.3134299999999968 +19.8412700000000015 +15.9744399999999995 +-15.9744399999999995 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-15.9744399999999995 +15.9744399999999995 +-15.9744399999999995 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-15.9744399999999995 +18.3823499999999989 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-18.3823499999999989 +-18.3823499999999989 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +62.1118000000000023 +-62.1118000000000023 +-62.1118000000000023 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +54.3478199999999987 +-54.3478199999999987 +-54.3478199999999987 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +22.5733600000000010 +-22.5733600000000010 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-22.5733600000000010 +405.7851999999999748 +-333.3333000000000084 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-333.3333000000000084 +-59.1715999999999980 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-59.1715999999999980 +-13.2802100000000003 +-13.2802100000000003 +444.0341000000000236 +-370.3704000000000178 +-370.3704000000000178 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-60.2409600000000012 +-60.2409600000000012 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-13.4228199999999998 +-13.4228199999999998 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +125.4902000000000015 +-58.8235200000000020 +-58.8235200000000020 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-66.6666699999999963 +-66.6666699999999963 +13.5685199999999995 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-13.5685199999999995 +-13.5685199999999995 +173.0337000000000103 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +754.0348999999999933 +643.3153999999999542 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-188.6792000000000087 +-188.6792000000000087 +-188.6792000000000087 +-188.6792000000000087 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-12.1802700000000002 +-12.1802700000000002 +-22.6244399999999999 +-22.6244399999999999 +274.5828000000000202 +-31.5556899999999985 +-31.5556899999999985 +13.2802100000000003 +13.4228199999999998 +0.0000000000000000 +86.1757400000000047 +-8.5763289999999994 +-8.5763289999999994 +-6.8780520000000003 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-6.8780520000000003 +-70.7213600000000042 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-70.7213600000000042 +31.8957900000000016 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +19.6078399999999995 +-9.8039220000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-9.8039220000000000 +-9.8039220000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-9.8039220000000000 +36.0613499999999974 +-20.6077900000000014 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-20.6077900000000014 +-15.4535599999999995 +-15.4535599999999995 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +38.1282700000000006 +-10.1010100000000005 +-10.1010100000000005 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +52.8684799999999981 +-5.3714350000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-5.3714350000000000 +-2.4520019999999998 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-2.4520019999999998 +-45.0450500000000034 +-45.0450500000000034 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +55.5094899999999996 +-5.4436580000000001 +-5.4436580000000001 +-2.4467829999999999 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-2.4467829999999999 +-47.6190500000000014 +-47.6190500000000014 +29.8600700000000003 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-15.6250000000000000 +-15.6250000000000000 +4.8987850000000002 +218.7209000000000003 +-17.3611100000000000 +-17.3611100000000000 +10009.6800000000002910 +-10000.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-10000.0000000000000000 +10004.7399999999997817 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +410.3967000000000098 +95.7427899999999994 +-40.7346799999999973 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-40.7346799999999973 +-10.0230499999999996 +-10.0230499999999996 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-21.1685000000000016 +-21.1685000000000016 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-16.4636199999999988 +-16.4636199999999988 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-7.3529410000000004 +-7.3529410000000004 +202.0149999999999864 +-19.4363500000000009 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-19.4363500000000009 +-141.8439999999999941 +-141.8439999999999941 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +2.2099449999999998 +-2.2099449999999998 +-2.2099449999999998 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +8.6686589999999999 +-1.7721070000000001 +-1.7721070000000001 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +132.4125999999999976 +-22.5225200000000001 +-22.5225200000000001 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-109.8901000000000039 +-109.8901000000000039 +1076.9710000000000036 +-999.9999000000000251 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-999.9999000000000251 +-15.5981900000000007 +-15.5981900000000007 +-27.3597800000000007 +-27.3597800000000007 +-34.0135999999999967 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-34.0135999999999967 +2.6191719999999998 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +11.8660899999999998 +-8.0710250000000006 +-8.0710250000000006 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-3.7950659999999998 +-3.7950659999999998 +1022.5220000000000482 +66.8002699999999976 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-66.8002699999999976 +-66.8002699999999976 +77.0498999999999938 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-4.9731449999999997 +-4.9731449999999997 +-5.2764879999999996 +-5.2764879999999996 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +179.1666999999999916 +-166.6666999999999916 +-166.6666999999999916 +76.9230699999999956 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-76.9230699999999956 +-76.9230699999999956 +111.7663000000000011 +618.7910000000000537 +-19.4325699999999983 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-19.4325699999999983 +41.1108499999999992 +-9.2421330000000008 +-9.2421330000000008 +-25.5754500000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-25.5754500000000000 +41.5001999999999995 +3.6764700000000001 +-3.6764700000000001 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-3.6764700000000001 +5.4200540000000004 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-5.4200540000000004 +-5.4200540000000004 +36.9436899999999966 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-14.4717800000000008 +-14.4717800000000008 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +14.3215199999999996 +14.6412899999999997 +-14.6412899999999997 +-14.6412899999999997 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +89.8292600000000050 +-75.1879700000000071 +-75.1879700000000071 +17.0940200000000004 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +48.7011499999999984 +-3.3199429999999999 +-3.3199429999999999 +-10.1760500000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-10.1760500000000000 +-16.6057799999999993 +-16.6057799999999993 +3.3199429999999999 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +10.1760500000000000 +14.2949199999999994 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +38.5442499999999981 +4.0978130000000004 +-2.4283630000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-2.4283630000000000 +-1.6694490000000000 +-1.6694490000000000 +0.1703577000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-0.1703577000000000 +-0.1703577000000000 +12.4391599999999993 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-2.7449900000000000 +-2.7449900000000000 +209.3358000000000061 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-8.0000000000000000 +-8.0000000000000000 +-12.0149000000000008 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-12.0149000000000008 +-17.8444000000000003 +-17.8444000000000003 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-30.4878000000000000 +-30.4878000000000000 +-14.1683199999999996 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-14.1683199999999996 +-36.5630700000000033 +-36.5630700000000033 +29.5478300000000011 +-10.2009600000000002 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-10.2009600000000002 +-11.3468699999999991 +-11.3468699999999991 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +10.2009600000000002 +11.3468699999999991 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +12.0149000000000008 +17.8444000000000003 +28.4983199999999997 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-18.3150200000000005 +-18.3150200000000005 +10.6116700000000002 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-8.1833069999999992 +-8.1833069999999992 +101.3766999999999996 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-42.5531900000000007 +-42.5531900000000007 +4.8053819999999998 +-4.8053819999999998 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-4.8053819999999998 +8.1833069999999992 +40.3137600000000020 +-20.8811900000000001 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-20.8811900000000001 +124.7891999999999939 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-104.1667000000000058 +-104.1667000000000058 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1214.5329999999999018 +-1123.5950000000000273 +-1123.5950000000000273 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-5.7583789999999997 +-5.7583789999999997 +-85.1788800000000066 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-85.1788800000000066 +1543.6079999999999472 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-15.4987100000000009 +-15.4987100000000009 +-93.2835800000000006 +-93.2835800000000006 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-53.1067499999999981 +-53.1067499999999981 +-16.8719399999999986 +-16.8719399999999986 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +5.7583789999999997 +149.5704000000000065 +-64.3914900000000046 +-64.3914900000000046 +21.7773600000000016 +-6.2786460000000002 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-6.2786460000000002 +6.2786460000000002 +8.7950739999999996 +-8.7950739999999996 +-8.7950739999999996 +45.5701499999999982 +-20.8768300000000018 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-20.8768300000000018 +-15.8982500000000009 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-15.8982500000000009 +9.9613230000000001 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +16.7371499999999997 +-8.3125509999999991 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-8.3125509999999991 +33.0112700000000032 +10.2947299999999995 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-5.7012539999999996 +-5.7012539999999996 +-4.5934770000000000 +-4.5934770000000000 +243.9951000000000079 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-181.8181999999999903 +-181.8181999999999903 +-11.4155300000000004 +-11.4155300000000004 +-50.7614200000000011 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-50.7614200000000011 +278.1383999999999901 +-46.6635599999999968 +-46.6635599999999968 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-5.4674690000000004 +-5.4674690000000004 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-28.7356300000000005 +-28.7356300000000005 +11.4155300000000004 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +77.5710799999999949 +-26.8096500000000013 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-26.8096500000000013 +978.0082999999999629 +-59.5238099999999974 +-59.5238099999999974 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-149.2537000000000091 +-149.2537000000000091 +14.1752699999999994 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-10.5042000000000009 +-10.5042000000000009 +-3.6710720000000001 +-3.6710720000000001 +24.7521300000000011 +-3.9936099999999999 +-3.9936099999999999 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-7.1530760000000004 +-7.1530760000000004 +27.5141400000000012 +-14.7058800000000005 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-14.7058800000000005 +-5.7110219999999998 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-5.7110219999999998 +-7.0972320000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-7.0972320000000000 +74.1440000000000055 +-24.3902399999999986 +-24.3902399999999986 +-4.6446820000000004 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-4.6446820000000004 +238.1673999999999864 +-200.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-200.0000000000000000 +-8.1168829999999996 +-8.1168829999999996 +-11.1111100000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-11.1111100000000000 +224.6879000000000133 +15.2439000000000000 +-15.2439000000000000 +-15.2439000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +19.7585799999999985 +-4.5146730000000002 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-4.5146730000000002 +36.4963499999999996 +-36.4963499999999996 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-36.4963499999999996 +95.4541600000000017 +-55.2486200000000025 +-55.2486200000000025 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-3.7091989999999999 +-3.7091989999999999 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +100.6927000000000021 +-19.3050199999999990 +-19.3050199999999990 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-65.7894699999999943 +-65.7894699999999943 +329.6231000000000222 +-200.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-200.0000000000000000 +-11.9760500000000008 +-11.9760500000000008 +-117.6470000000000056 +-117.6470000000000056 +285.1879999999999882 +11.9760500000000008 +144.4567000000000121 +0.0000000000000000 +0.0000000000000000 +165.7238000000000113 +-62.2083999999999975 +-62.2083999999999975 +-87.6424200000000013 +-87.6424200000000013 +82.1884399999999999 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-58.0046400000000020 +-58.0046400000000020 +-24.1838000000000015 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-24.1838000000000015 +151.4336999999999875 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-40.3225800000000021 +-40.3225800000000021 +48.5151600000000016 +-4.4622940000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-4.4622940000000000 +8.2308979999999998 +-4.2372880000000004 +-4.2372880000000004 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +26.7507799999999989 +-9.3896709999999999 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-9.3896709999999999 +329.2194000000000074 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-186.5672000000000139 +-186.5672000000000139 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-38.5802499999999995 +-38.5802499999999995 +-72.5163100000000043 +-72.5163100000000043 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +28.6242400000000004 +-27.1739099999999993 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-27.1739099999999993 +-1.4503260000000000 +-1.4503260000000000 +27.1739099999999993 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +36.9804000000000030 +-30.1023500000000013 +-30.1023500000000013 +129.9704000000000121 +99.0061900000000037 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-78.1250000000000000 +-78.1250000000000000 +45.4867599999999968 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-7.7124790000000001 +-7.7124790000000001 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +20007.7099999999991269 +-10000.0000000000000000 +-10000.0000000000000000 +-10000.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-10000.0000000000000000 +10000.0000000000000000 +10000.0000000000000000 +10.8453700000000008 +-7.5131480000000002 +-7.5131480000000002 +14.7567599999999999 +-8.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-8.0000000000000000 +1.4598540000000000 +-1.4598540000000000 +-1.4598540000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +103.4287999999999954 +-40.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-40.0000000000000000 +-49.0196100000000001 +-49.0196100000000001 +49.4598500000000030 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +141.7923000000000116 +-10.9673200000000008 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-10.9673200000000008 +-22.2717199999999984 +-22.2717199999999984 +-48.1540899999999965 +-48.1540899999999965 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-42.0168099999999995 +-42.0168099999999995 +545.1684000000000196 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-90.7441000000000031 +-90.7441000000000031 +-90.0090000000000003 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-90.0090000000000003 +-89.1265599999999978 +-89.1265599999999978 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-28.6615099999999998 +-28.6615099999999998 +-60.0600600000000000 +-60.0600600000000000 +90.7441000000000031 +90.0090000000000003 +89.1265599999999978 +204.9044000000000096 +-4.9043650000000003 +0.0000000000000000 +-4.9043650000000003 +172.7262000000000057 +-63.6942700000000031 +-63.6942700000000031 +-27.6243100000000013 +-27.6243100000000013 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +26.7418000000000013 +-5.7836900000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-5.7836900000000000 +10.8049099999999996 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +10.9673200000000008 +12.3300099999999997 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-8.2781459999999996 +-8.2781459999999996 +6.8027210000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-6.8027210000000000 +-6.8027210000000000 +33.4146599999999978 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-4.6339199999999998 +-4.6339199999999998 +146.1641999999999939 +-72.2543299999999959 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-72.2543299999999959 +-73.9098299999999995 +-73.9098299999999995 +1493.0409999999999400 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-17.2413799999999995 +-17.2413799999999995 +-26.8817200000000014 +-26.8817200000000014 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-18.1818199999999983 +-18.1818199999999983 +43.9259500000000003 +-13.3155800000000006 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-13.3155800000000006 +-13.3689800000000005 +-13.3689800000000005 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +13.3155800000000006 +13.3689800000000005 +27.8209699999999991 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-9.5419850000000004 +-9.5419850000000004 +-8.3402829999999994 +-8.3402829999999994 +-6.3938620000000004 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-6.3938620000000004 +12.3225300000000004 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-4.6772689999999999 +-4.6772689999999999 +-7.6452600000000004 +-7.6452600000000004 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +278.5131000000000085 +-81.6993499999999955 +-81.6993499999999955 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +273.0466000000000122 +-86.2068900000000014 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-86.2068900000000014 +-104.1667000000000058 +-104.1667000000000058 +-18.2815399999999997 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-18.2815399999999997 +86.2068900000000014 +15.7582799999999992 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-10.9528999999999996 +-10.9528999999999996 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +42.0657799999999966 +8.1168829999999996 +273.4637999999999920 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +39.0280300000000011 +-3.4928400000000002 +-3.4928400000000002 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-18.0831799999999987 +-18.0831799999999987 +-17.4520100000000014 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-17.4520100000000014 +151.9719000000000051 +-49.0196100000000001 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-49.0196100000000001 +-49.0196100000000001 +-49.0196100000000001 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +65.0280800000000028 +-5.9665869999999996 +-5.9665869999999996 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-5.9665869999999996 +-5.9665869999999996 +124.4662000000000006 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +17.4520100000000014 +59.0678300000000007 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-4.0816330000000001 +-4.0816330000000001 +59.0678300000000007 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-4.0816330000000001 +-4.0816330000000001 +4.0816330000000001 +4.0816330000000001 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +10.7991399999999995 +-10.7991399999999995 +-10.7991399999999995 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +81.4247399999999999 +-30.3030299999999997 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-30.3030299999999997 +39.0625000000000000 +-39.0625000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-39.0625000000000000 +507.6857999999999720 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-5.6818179999999998 +-5.6818179999999998 +-500.0000000000000000 +-500.0000000000000000 +-2.0040079999999998 +-2.0040079999999998 +328.2355999999999767 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-212.7659999999999911 +-212.7659999999999911 +503.4153000000000020 +2.0040079999999998 +100.9094000000000051 +-12.8024600000000000 +-12.8024600000000000 +5112.3850000000002183 +0.0000000000000000 +0.0000000000000000 +-2000.0000000000000000 +-2000.0000000000000000 +-2000.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-2000.0000000000000000 +-500.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-500.0000000000000000 +-500.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-500.0000000000000000 +-8.5106380000000001 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-8.5106380000000001 +-41.6666700000000034 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-41.6666700000000034 +2077.7860000000000582 +-11.5606899999999992 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-11.5606899999999992 +-66.2251700000000056 +-66.2251700000000056 +11.5606899999999992 +2077.7860000000000582 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-11.5606899999999992 +-11.5606899999999992 +-66.2251700000000056 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-66.2251700000000056 +11.5606899999999992 +1166.6520000000000437 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-555.5555000000000518 +-555.5555000000000518 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +17.5979300000000016 +-13.2100399999999993 +-13.2100399999999993 +57.2854200000000020 +-33.1016199999999969 +-33.1016199999999969 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +46.6991999999999976 +-45.2488699999999966 +-45.2488699999999966 +2286.1529999999997926 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-370.3704000000000178 +-370.3704000000000178 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-370.3704000000000178 +-370.3704000000000178 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-370.3704000000000178 +-370.3704000000000178 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-41.3223199999999977 +-41.3223199999999977 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +238.1108000000000118 +-60.2409600000000012 +-60.2409600000000012 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-60.2409600000000012 +-60.2409600000000012 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-60.2409600000000012 +-60.2409600000000012 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-42.3728800000000021 +-42.3728800000000021 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +13.4228199999999998 +-13.4228199999999998 +-13.4228199999999998 +13.4228199999999998 +-13.4228199999999998 +-13.4228199999999998 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +13.4228199999999998 +-13.4228199999999998 +-13.4228199999999998 +59.9258799999999994 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +9.6608129999999992 +-6.4350069999999997 +-6.4350069999999997 +444.0341000000000236 +444.0341000000000236 +444.0341000000000236 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +69.4748500000000035 +-3.8461539999999999 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-3.8461539999999999 +13.5643300000000000 +-9.7181730000000002 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-9.7181730000000002 +16.5104900000000008 +-12.0481900000000000 +-12.0481900000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +10029.6299999999991996 +-9.0744089999999993 +-9.0744089999999993 +-10000.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-10000.0000000000000000 +18.1818199999999983 +-18.1818199999999983 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-18.1818199999999983 +1295.9590000000000600 +15.6091400000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +3.1055899999999999 +-3.1055899999999999 +-3.1055899999999999 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +1120.0039999999999054 +74.3247400000000056 +-64.9350699999999961 +-64.9350699999999961 +4.5871560000000002 +-4.5871560000000002 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-4.5871560000000002 +9.6632990000000003 +23.8961000000000006 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-5.7142860000000004 +-5.7142860000000004 +92.8092900000000043 +-14.6842900000000007 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-14.6842900000000007 +49.8710799999999992 +12.2331900000000005 +-6.5189050000000002 +-6.5189050000000002 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +85.9659900000000050 +81.9562999999999988 +-44.6428599999999989 +-44.6428599999999989 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +2.1645020000000001 +-2.1645020000000001 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-2.1645020000000001 +74.3359099999999984 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-3.6145450000000001 +-3.6145450000000001 +90.2128600000000063 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +10.4691100000000006 +-2.3980820000000000 +-2.3980820000000000 +3.6145450000000001 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +63.8367199999999997 +-19.1938600000000008 +-19.1938600000000008 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +4.9731449999999997 +90.8585199999999986 +-3.6205650000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-3.6205650000000000 +-12.0336900000000000 +-12.0336900000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-29.0697699999999983 +-29.0697699999999983 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-21.8866300000000003 +-21.8866300000000003 +86.7836900000000071 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-24.2130800000000015 +-24.2130800000000015 +-3.8109760000000001 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-3.8109760000000001 +-12.1951199999999993 +-12.1951199999999993 +-21.7391299999999994 +-21.7391299999999994 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-3.9904229999999998 +-3.9904229999999998 +38.1019700000000014 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +3.6205650000000000 +3.8109760000000001 +12.0336900000000000 +12.1951199999999993 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +49.9031000000000020 +-20.8333300000000001 +-20.8333300000000001 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +10089.3099999999994907 +-10000.0000000000000000 +-10000.0000000000000000 +9.4302689999999991 +-6.0496070000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-6.0496070000000000 +11.4339399999999998 +192.3077000000000112 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-192.3077000000000112 +-192.3077000000000112 +141.2346000000000004 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-15.7853200000000005 +-15.7853200000000005 +-7.3588930000000001 +-7.3588930000000001 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-7.8733950000000004 +-7.8733950000000004 +-57.1102199999999982 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-57.1102199999999982 +32.0484399999999994 +-8.1672650000000004 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-8.1672650000000004 +-8.0958550000000002 +-8.0958550000000002 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +7.3588930000000001 +8.1672650000000004 +7.8733950000000004 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +8.0958550000000002 +26.3810700000000011 +42.5531900000000007 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +21.2314200000000000 +-21.2314200000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-21.2314200000000000 +1.1697270000000000 +-1.1697270000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-1.1697270000000000 +30.3739699999999999 +-3.5223670000000000 +-3.5223670000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-11.5740700000000007 +-11.5740700000000007 +262.9839000000000055 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-188.6792000000000087 +-188.6792000000000087 +-13.6986299999999996 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-13.6986299999999996 +-60.6060599999999994 +-60.6060599999999994 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +277.7794000000000096 +-26.3088599999999992 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-26.3088599999999992 +-26.4830499999999986 +-26.4830499999999986 +13.6986299999999996 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +84.3590300000000042 +111.3657000000000039 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +108.6042999999999950 +-49.0196100000000001 +-49.0196100000000001 +123.0803999999999974 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-92.5925900000000013 +-92.5925900000000013 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +12.3307099999999998 +8.5223669999999991 +121.0169999999999959 +-23.4741800000000005 +-23.4741800000000005 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +74.5726700000000022 +127.6411999999999978 +-35.2112699999999990 +-35.2112699999999990 +-84.0336199999999991 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-84.0336199999999991 +-8.3963059999999992 +-8.3963059999999992 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +78.4239000000000033 +-9.8135429999999992 +-9.8135429999999992 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +249.7547999999999888 +-153.8461000000000070 +-153.8461000000000070 +-11.8750699999999991 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-11.8750699999999991 +123.4568000000000012 +-123.4568000000000012 +-123.4568000000000012 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +8.3963059999999992 +133.2702999999999918 +248.3154000000000110 +109.3950999999999993 +10.0350699999999993 +18.1129099999999994 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-1.6492940000000000 +-1.6492940000000000 +1.6492940000000000 +8.2201459999999997 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-2.5188920000000001 +-2.5188920000000001 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +386.1499000000000024 +209.3694000000000131 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-138.3126000000000033 +-138.3126000000000033 +38.3333399999999997 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-5.0000000000000000 +-5.0000000000000000 +13.2759699999999992 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +44.3075100000000006 +133.2931000000000097 +-10.5820100000000004 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-10.5820100000000004 +-23.5294099999999986 +-23.5294099999999986 +14.9202899999999996 +13.9482499999999998 +286.5966000000000236 +19.0886400000000016 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-13.8121500000000008 +-13.8121500000000008 +12.4631600000000002 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +85.6072800000000029 +-37.4531899999999993 +-37.4531899999999993 +10037.4500000000007276 +212.2223999999999933 +4.2354930000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-4.2354930000000000 +-4.2354930000000000 +12.0418900000000004 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +21.7692399999999999 +117.2840000000000060 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-24.6913599999999995 +-24.6913599999999995 +60.4233800000000016 +12.3725500000000004 +-10.1625999999999994 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-10.1625999999999994 +31.5656600000000012 +-31.5656600000000012 +-31.5656600000000012 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +83.2819099999999963 +-1.4144470000000000 +-1.4144470000000000 +2.5419420000000001 +119.8662999999999954 +-8.3333340000000007 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-8.3333340000000007 +-34.0135999999999967 +-34.0135999999999967 +-77.5193799999999982 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-77.5193799999999982 +8.3333340000000007 +108.8545000000000016 +343.4710999999999785 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +17.6870599999999989 +42.0954800000000020 +19.0460400000000014 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-8.4817640000000001 +-8.4817640000000001 +51.3229299999999995 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-6.7795009999999998 +-6.7795009999999998 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-22.2717199999999984 +-22.2717199999999984 +32.6174099999999996 +9.9638869999999997 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +8.4817640000000001 +30.2114800000000017 +17.3611100000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +66.7081699999999955 +12.0783500000000004 +490.5504999999999995 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-240.9638999999999953 +-240.9638999999999953 +91.8750799999999970 +-80.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-80.0000000000000000 +492.3722999999999956 +155.0669000000000040 +3.7243949999999999 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +39.5029600000000016 +-9.9700900000000008 +-9.9700900000000008 +10032.6200000000008004 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-10.3448499999999992 +-10.3448499999999992 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +57.5176400000000001 +13.2874900000000000 +66.6289400000000001 +7.5188920000000001 +6.7673899999999998 +7.7579520000000004 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-7.7579520000000004 +-7.7579520000000004 +26.1762799999999984 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +14.7082899999999999 +19.6891199999999991 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +69.8580699999999979 +-27.2479599999999991 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-27.2479599999999991 +-26.4550300000000007 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-26.4550300000000007 +-16.1550900000000013 +-16.1550900000000013 +83.5518299999999954 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-39.0625000000000000 +-39.0625000000000000 +-17.2413799999999995 +-17.2413799999999995 +82.7588999999999970 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-17.2413799999999995 +-17.2413799999999995 +10000.0000000000000000 +-10000.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-10000.0000000000000000 +185.1031999999999869 +-6.6225170000000002 +-6.6225170000000002 +-6.5359480000000003 +-6.5359480000000003 +-6.5359480000000003 +-6.5359480000000003 +10039.0599999999994907 +6.6225170000000002 +6.5359480000000003 +6.5359480000000003 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +73.4736699999999985 +-65.7894699999999943 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-65.7894699999999943 +112.0369000000000028 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +10219.7099999999991269 +-6.9444450000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-6.9444450000000000 +-10000.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-10000.0000000000000000 +80.4967999999999932 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-9.2592590000000001 +-9.2592590000000001 +-2.2727270000000002 +-2.2727270000000002 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-2.2727270000000002 +-2.2727270000000002 +-3.7807189999999999 +-3.7807189999999999 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-3.8895369999999998 +-3.8895369999999998 +10000.0000000000000000 +9.2592590000000001 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +2.2727270000000002 +2.2727270000000002 +3.7807189999999999 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +3.8895369999999998 +9.5732269999999993 +57.7426800000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +6796.3400000000001455 +-69.6136500000000069 +-69.6136500000000069 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-6666.6670000000003711 +-6666.6670000000003711 +313.5160999999999945 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-243.9024000000000001 +-243.9024000000000001 +78.3364899999999977 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-68.0272099999999966 +-68.0272099999999966 +-10.3092799999999993 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-10.3092799999999993 +56.0289100000000033 +-11.9760500000000008 +-11.9760500000000008 +-44.0528600000000026 +-44.0528600000000026 +69.9848300000000023 +-35.9712299999999985 +0.0000000000000000 +0.0000000000000000 +-35.9712299999999985 +60.1258199999999974 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-24.1545899999999989 +-24.1545899999999989 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +92.1817900000000066 +418.9938999999999965 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-33.8982999999999990 +-33.8982999999999990 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-29.7619100000000003 +-29.7619100000000003 +-44.4444400000000002 +-44.4444400000000002 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-44.4444400000000002 +-44.4444400000000002 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +33.8982999999999990 +29.7619100000000003 +44.4444400000000002 +44.4444400000000002 +66.5424100000000038 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +18.2815399999999997 +6841.9049999999997453 +-32.0512799999999984 +-32.0512799999999984 +-70.6713799999999992 +-70.6713799999999992 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +662.7050000000000409 +-265.6041999999999916 +-265.6041999999999916 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-32.2580600000000004 +-32.2580600000000004 +-88.8888900000000035 +-88.8888900000000035 +318.8808000000000220 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-53.2764999999999986 +-53.2764999999999986 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +204.9703000000000088 +-51.0204099999999983 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-51.0204099999999983 +-51.0204099999999983 +-51.0204099999999983 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +51.0204099999999983 +51.0204099999999983 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +142.1654000000000053 +22.6244399999999999 +162.3037999999999954 +-72.1678500000000014 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-72.1678500000000014 +-45.4132600000000011 +-45.4132600000000011 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-44.7227200000000025 +-44.7227200000000025 +64.7997500000000031 +-44.0528600000000026 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-44.0528600000000026 +-20.7468900000000005 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-20.7468900000000005 +170.2747999999999990 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +-54.0540499999999966 +-54.0540499999999966 +20.7468900000000005 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +54.0540499999999966 +111.6384000000000043 +110.9479000000000042 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +0.0000000000000000 +%% +0 +15 +45 +266 +0 +0 +0 +0 +0 +0 +1 +3 +0 +0 +0 +0 +0 +0 +0 +0 +2 +51 +185 +0 +0 +0 +0 +0 +0 +0 +1 +3 +7 +119 +157 +428 +431 +0 +0 +0 +4 +114 +0 +0 +0 +0 +0 +0 +0 +0 +5 +149 +432 +0 +0 +0 +0 +0 +0 +0 +6 +17 +164 +366 +425 +0 +0 +0 +0 +0 +3 +7 +0 +0 +0 +0 +0 +0 +0 +0 +8 +421 +0 +0 +0 +0 +0 +0 +0 +0 +9 +204 +276 +0 +0 +0 +0 +0 +0 +0 +10 +411 +435 +0 +0 +0 +0 +0 +0 +0 +11 +12 +13 +15 +0 +0 +0 +0 +0 +0 +11 +12 +0 +0 +0 +0 +0 +0 +0 +0 +11 +13 +0 +0 +0 +0 +0 +0 +0 +0 +14 +15 +0 +0 +0 +0 +0 +0 +0 +0 +0 +11 +14 +15 +16 +18 +56 +0 +0 +0 +15 +16 +19 +20 +280 +333 +0 +0 +0 +0 +6 +17 +0 +0 +0 +0 +0 +0 +0 +0 +15 +18 +0 +0 +0 +0 +0 +0 +0 +0 +16 +19 +0 +0 +0 +0 +0 +0 +0 +0 +16 +20 +0 +0 +0 +0 +0 +0 +0 +0 +21 +22 +139 +0 +0 +0 +0 +0 +0 +0 +21 +22 +139 +154 +196 +0 +0 +0 +0 +0 +23 +24 +0 +0 +0 +0 +0 +0 +0 +0 +23 +24 +156 +169 +0 +0 +0 +0 +0 +0 +25 +98 +424 +0 +0 +0 +0 +0 +0 +0 +26 +27 +0 +0 +0 +0 +0 +0 +0 +0 +26 +27 +84 +172 +0 +0 +0 +0 +0 +0 +28 +306 +315 +0 +0 +0 +0 +0 +0 +0 +29 +30 +0 +0 +0 +0 +0 +0 +0 +0 +29 +30 +181 +185 +0 +0 +0 +0 +0 +0 +31 +375 +443 +0 +0 +0 +0 +0 +0 +0 +32 +33 +238 +0 +0 +0 +0 +0 +0 +0 +32 +33 +0 +0 +0 +0 +0 +0 +0 +0 +34 +221 +0 +0 +0 +0 +0 +0 +0 +0 +35 +324 +418 +0 +0 +0 +0 +0 +0 +0 +36 +146 +261 +0 +0 +0 +0 +0 +0 +0 +37 +38 +397 +0 +0 +0 +0 +0 +0 +0 +37 +38 +39 +280 +0 +0 +0 +0 +0 +0 +38 +39 +416 +0 +0 +0 +0 +0 +0 +0 +40 +46 +327 +412 +0 +0 +0 +0 +0 +0 +41 +171 +327 +0 +0 +0 +0 +0 +0 +0 +42 +174 +0 +0 +0 +0 +0 +0 +0 +0 +43 +101 +285 +0 +0 +0 +0 +0 +0 +0 +44 +173 +202 +263 +284 +0 +0 +0 +0 +0 +0 +45 +252 +0 +0 +0 +0 +0 +0 +0 +40 +46 +152 +284 +0 +0 +0 +0 +0 +0 +47 +204 +270 +282 +305 +0 +0 +0 +0 +0 +48 +49 +113 +454 +0 +0 +0 +0 +0 +0 +48 +49 +237 +330 +441 +0 +0 +0 +0 +0 +50 +81 +408 +0 +0 +0 +0 +0 +0 +0 +2 +51 +396 +0 +0 +0 +0 +0 +0 +0 +52 +270 +309 +0 +0 +0 +0 +0 +0 +0 +53 +161 +405 +0 +0 +0 +0 +0 +0 +0 +54 +268 +362 +0 +0 +0 +0 +0 +0 +0 +55 +123 +223 +0 +0 +0 +0 +0 +0 +0 +15 +56 +83 +0 +0 +0 +0 +0 +0 +0 +57 +58 +59 +0 +0 +0 +0 +0 +0 +0 +57 +58 +346 +376 +0 +0 +0 +0 +0 +0 +57 +59 +0 +0 +0 +0 +0 +0 +0 +0 +60 +331 +417 +0 +0 +0 +0 +0 +0 +0 +61 +437 +0 +0 +0 +0 +0 +0 +0 +0 +62 +63 +88 +189 +393 +0 +0 +0 +0 +0 +62 +63 +0 +0 +0 +0 +0 +0 +0 +0 +64 +65 +427 +435 +0 +0 +0 +0 +0 +0 +64 +65 +0 +0 +0 +0 +0 +0 +0 +0 +66 +68 +69 +70 +0 +0 +0 +0 +0 +0 +67 +69 +71 +72 +213 +0 +0 +0 +0 +0 +66 +68 +0 +0 +0 +0 +0 +0 +0 +0 +66 +67 +69 +70 +71 +141 +310 +319 +0 +0 +66 +69 +70 +73 +74 +75 +90 +352 +0 +0 +67 +69 +71 +211 +212 +439 +463 +0 +0 +0 +67 +72 +0 +0 +0 +0 +0 +0 +0 +0 +70 +73 +0 +0 +0 +0 +0 +0 +0 +0 +70 +74 +0 +0 +0 +0 +0 +0 +0 +0 +70 +75 +0 +0 +0 +0 +0 +0 +0 +0 +76 +77 +186 +263 +0 +0 +0 +0 +0 +0 +76 +77 +122 +264 +0 +0 +0 +0 +0 +0 +78 +79 +213 +420 +0 +0 +0 +0 +0 +0 +78 +79 +146 +251 +354 +392 +436 +0 +0 +0 +80 +395 +456 +0 +0 +0 +0 +0 +0 +0 +50 +81 +286 +0 +0 +0 +0 +0 +0 +0 +82 +386 +422 +0 +0 +0 +0 +0 +0 +0 +56 +83 +172 +0 +0 +0 +0 +0 +0 +0 +27 +84 +87 +115 +274 +453 +0 +0 +0 +0 +85 +87 +0 +0 +0 +0 +0 +0 +0 +0 +86 +87 +235 +0 +0 +0 +0 +0 +0 +0 +84 +85 +86 +87 +0 +0 +0 +0 +0 +0 +62 +88 +325 +0 +0 +0 +0 +0 +0 +0 +89 +90 +385 +0 +0 +0 +0 +0 +0 +0 +70 +89 +90 +92 +93 +94 +370 +0 +0 +0 +91 +94 +386 +0 +0 +0 +0 +0 +0 +0 +90 +92 +0 +0 +0 +0 +0 +0 +0 +0 +90 +93 +0 +0 +0 +0 +0 +0 +0 +0 +90 +91 +94 +95 +0 +0 +0 +0 +0 +0 +94 +95 +0 +0 +0 +0 +0 +0 +0 +0 +96 +325 +421 +0 +0 +0 +0 +0 +0 +0 +97 +149 +155 +0 +0 +0 +0 +0 +0 +0 +25 +98 +223 +0 +0 +0 +0 +0 +0 +0 +99 +157 +219 +390 +0 +0 +0 +0 +0 +0 +100 +101 +0 +0 +0 +0 +0 +0 +0 +0 +43 +100 +101 +177 +232 +285 +0 +0 +0 +0 +102 +305 +428 +0 +0 +0 +0 +0 +0 +0 +103 +104 +190 +256 +262 +0 +0 +0 +0 +0 +103 +104 +0 +0 +0 +0 +0 +0 +0 +0 +105 +254 +0 +0 +0 +0 +0 +0 +0 +0 +106 +245 +333 +0 +0 +0 +0 +0 +0 +0 +107 +190 +379 +0 +0 +0 +0 +0 +0 +0 +108 +111 +0 +0 +0 +0 +0 +0 +0 +0 +109 +111 +0 +0 +0 +0 +0 +0 +0 +0 +110 +111 +0 +0 +0 +0 +0 +0 +0 +0 +108 +109 +110 +111 +122 +178 +297 +0 +0 +0 +112 +262 +336 +377 +415 +0 +0 +0 +0 +0 +48 +113 +114 +284 +0 +0 +0 +0 +0 +0 +4 +113 +114 +353 +0 +0 +0 +0 +0 +0 +84 +115 +116 +0 +0 +0 +0 +0 +0 +0 +115 +116 +118 +0 +0 +0 +0 +0 +0 +0 +117 +123 +345 +0 +0 +0 +0 +0 +0 +0 +116 +118 +345 +0 +0 +0 +0 +0 +0 +0 +3 +119 +428 +0 +0 +0 +0 +0 +0 +0 +120 +122 +0 +0 +0 +0 +0 +0 +0 +0 +121 +122 +186 +263 +296 +0 +0 +0 +0 +0 +77 +111 +120 +121 +122 +178 +264 +0 +0 +0 +55 +117 +123 +0 +0 +0 +0 +0 +0 +0 +124 +125 +0 +0 +0 +0 +0 +0 +0 +0 +124 +125 +384 +0 +0 +0 +0 +0 +0 +0 +126 +128 +225 +0 +0 +0 +0 +0 +0 +0 +127 +224 +437 +0 +0 +0 +0 +0 +0 +0 +126 +128 +0 +0 +0 +0 +0 +0 +0 +0 +129 +140 +0 +0 +0 +0 +0 +0 +0 +0 +130 +140 +0 +0 +0 +0 +0 +0 +0 +0 +131 +140 +0 +0 +0 +0 +0 +0 +0 +0 +132 +141 +0 +0 +0 +0 +0 +0 +0 +0 +133 +142 +0 +0 +0 +0 +0 +0 +0 +0 +134 +139 +0 +0 +0 +0 +0 +0 +0 +0 +135 +140 +141 +143 +0 +0 +0 +0 +0 +0 +136 +140 +141 +144 +0 +0 +0 +0 +0 +0 +137 +198 +339 +0 +0 +0 +0 +0 +0 +0 +138 +146 +0 +0 +0 +0 +0 +0 +0 +0 +21 +22 +134 +139 +0 +0 +0 +0 +0 +0 +129 +130 +131 +135 +136 +140 +0 +0 +0 +0 +69 +132 +135 +136 +141 +142 +472 +477 +486 +0 +133 +141 +142 +241 +0 +0 +0 +0 +0 +0 +135 +143 +0 +0 +0 +0 +0 +0 +0 +0 +136 +144 +0 +0 +0 +0 +0 +0 +0 +0 +145 +182 +244 +338 +0 +0 +0 +0 +0 +0 +36 +79 +138 +146 +0 +0 +0 +0 +0 +0 +147 +433 +442 +0 +0 +0 +0 +0 +0 +0 +148 +149 +216 +0 +0 +0 +0 +0 +0 +0 +5 +97 +148 +149 +396 +0 +0 +0 +0 +0 +150 +152 +153 +154 +0 +0 +0 +0 +0 +0 +151 +152 +153 +154 +0 +0 +0 +0 +0 +0 +46 +150 +151 +152 +202 +0 +0 +0 +0 +0 +150 +151 +153 +0 +0 +0 +0 +0 +0 +0 +22 +150 +151 +154 +240 +0 +0 +0 +0 +0 +97 +155 +156 +0 +0 +0 +0 +0 +0 +0 +24 +155 +156 +0 +0 +0 +0 +0 +0 +0 +3 +99 +157 +0 +0 +0 +0 +0 +0 +0 +158 +159 +182 +247 +387 +391 +0 +0 +0 +0 +158 +159 +368 +398 +0 +0 +0 +0 +0 +0 +160 +409 +0 +0 +0 +0 +0 +0 +0 +0 +53 +161 +354 +0 +0 +0 +0 +0 +0 +0 +162 +166 +245 +0 +0 +0 +0 +0 +0 +0 +163 +166 +230 +416 +469 +0 +0 +0 +0 +0 +6 +164 +0 +0 +0 +0 +0 +0 +0 +0 +165 +340 +422 +0 +0 +0 +0 +0 +0 +0 +162 +163 +166 +0 +0 +0 +0 +0 +0 +0 +167 +168 +0 +0 +0 +0 +0 +0 +0 +0 +167 +168 +343 +399 +0 +0 +0 +0 +0 +0 +24 +169 +324 +0 +0 +0 +0 +0 +0 +0 +170 +171 +0 +0 +0 +0 +0 +0 +0 +0 +41 +170 +171 +0 +0 +0 +0 +0 +0 +0 +27 +83 +172 +201 +0 +0 +0 +0 +0 +0 +44 +173 +174 +284 +0 +0 +0 +0 +0 +0 +42 +173 +174 +0 +0 +0 +0 +0 +0 +0 +175 +463 +0 +0 +0 +0 +0 +0 +0 +0 +176 +225 +0 +0 +0 +0 +0 +0 +0 +0 +101 +177 +339 +0 +0 +0 +0 +0 +0 +0 +111 +122 +178 +0 +0 +0 +0 +0 +0 +0 +179 +180 +0 +0 +0 +0 +0 +0 +0 +0 +179 +180 +232 +0 +0 +0 +0 +0 +0 +0 +30 +181 +0 +0 +0 +0 +0 +0 +0 +0 +145 +158 +182 +183 +184 +247 +0 +0 +0 +0 +182 +183 +0 +0 +0 +0 +0 +0 +0 +0 +182 +184 +0 +0 +0 +0 +0 +0 +0 +0 +2 +30 +185 +0 +0 +0 +0 +0 +0 +0 +76 +121 +186 +0 +0 +0 +0 +0 +0 +0 +187 +197 +211 +0 +0 +0 +0 +0 +0 +0 +188 +189 +0 +0 +0 +0 +0 +0 +0 +0 +62 +188 +189 +400 +0 +0 +0 +0 +0 +0 +103 +107 +190 +191 +194 +195 +373 +379 +415 +0 +190 +191 +192 +193 +0 +0 +0 +0 +0 +0 +191 +192 +0 +0 +0 +0 +0 +0 +0 +0 +191 +193 +0 +0 +0 +0 +0 +0 +0 +0 +190 +194 +0 +0 +0 +0 +0 +0 +0 +0 +190 +195 +0 +0 +0 +0 +0 +0 +0 +0 +22 +196 +464 +0 +0 +0 +0 +0 +0 +0 +187 +197 +200 +0 +0 +0 +0 +0 +0 +0 +137 +198 +363 +0 +0 +0 +0 +0 +0 +0 +199 +279 +0 +0 +0 +0 +0 +0 +0 +0 +197 +200 +0 +0 +0 +0 +0 +0 +0 +0 +172 +201 +246 +0 +0 +0 +0 +0 +0 +0 +44 +152 +202 +296 +0 +0 +0 +0 +0 +0 +203 +204 +205 +206 +0 +0 +0 +0 +0 +0 +9 +47 +203 +204 +207 +282 +356 +368 +0 +0 +203 +205 +0 +0 +0 +0 +0 +0 +0 +0 +203 +206 +277 +0 +0 +0 +0 +0 +0 +0 +204 +207 +208 +0 +0 +0 +0 +0 +0 +0 +207 +208 +0 +0 +0 +0 +0 +0 +0 +0 +209 +210 +0 +0 +0 +0 +0 +0 +0 +0 +209 +210 +456 +464 +0 +0 +0 +0 +0 +0 +71 +187 +211 +0 +0 +0 +0 +0 +0 +0 +71 +212 +443 +0 +0 +0 +0 +0 +0 +0 +67 +78 +213 +0 +0 +0 +0 +0 +0 +0 +214 +389 +439 +0 +0 +0 +0 +0 +0 +0 +215 +216 +217 +218 +0 +0 +0 +0 +0 +0 +148 +215 +216 +276 +285 +428 +0 +0 +0 +0 +215 +217 +0 +0 +0 +0 +0 +0 +0 +0 +215 +218 +234 +0 +0 +0 +0 +0 +0 +0 +99 +219 +270 +448 +0 +0 +0 +0 +0 +0 +220 +366 +463 +0 +0 +0 +0 +0 +0 +0 +34 +221 +239 +435 +0 +0 +0 +0 +0 +0 +222 +344 +397 +406 +0 +0 +0 +0 +0 +0 +55 +98 +223 +376 +453 +0 +0 +0 +0 +0 +127 +224 +225 +281 +376 +0 +0 +0 +0 +0 +126 +176 +224 +225 +0 +0 +0 +0 +0 +0 +226 +227 +0 +0 +0 +0 +0 +0 +0 +0 +226 +227 +419 +0 +0 +0 +0 +0 +0 +0 +228 +229 +0 +0 +0 +0 +0 +0 +0 +0 +228 +229 +314 +435 +0 +0 +0 +0 +0 +0 +163 +230 +385 +472 +0 +0 +0 +0 +0 +0 +231 +232 +233 +234 +0 +0 +0 +0 +0 +0 +101 +180 +231 +232 +0 +0 +0 +0 +0 +0 +231 +233 +0 +0 +0 +0 +0 +0 +0 +0 +218 +231 +234 +0 +0 +0 +0 +0 +0 +0 +86 +235 +300 +398 +0 +0 +0 +0 +0 +0 +236 +299 +307 +0 +0 +0 +0 +0 +0 +0 +49 +237 +293 +0 +0 +0 +0 +0 +0 +0 +32 +238 +321 +0 +0 +0 +0 +0 +0 +0 +221 +239 +421 +0 +0 +0 +0 +0 +0 +0 +154 +240 +328 +0 +0 +0 +0 +0 +0 +0 +142 +241 +257 +430 +479 +0 +0 +0 +0 +0 +242 +243 +308 +0 +0 +0 +0 +0 +0 +0 +242 +243 +0 +0 +0 +0 +0 +0 +0 +0 +145 +244 +299 +0 +0 +0 +0 +0 +0 +0 +106 +162 +245 +0 +0 +0 +0 +0 +0 +0 +201 +246 +332 +0 +0 +0 +0 +0 +0 +0 +158 +182 +247 +248 +0 +0 +0 +0 +0 +0 +247 +248 +249 +250 +0 +0 +0 +0 +0 +0 +248 +249 +0 +0 +0 +0 +0 +0 +0 +0 +248 +250 +0 +0 +0 +0 +0 +0 +0 +0 +79 +251 +362 +0 +0 +0 +0 +0 +0 +0 +45 +252 +255 +0 +0 +0 +0 +0 +0 +0 +253 +255 +0 +0 +0 +0 +0 +0 +0 +0 +105 +254 +255 +384 +0 +0 +0 +0 +0 +0 +252 +253 +254 +255 +0 +0 +0 +0 +0 +0 +103 +256 +265 +335 +401 +426 +0 +0 +0 +0 +241 +257 +258 +259 +260 +430 +465 +0 +0 +0 +257 +258 +0 +0 +0 +0 +0 +0 +0 +0 +257 +259 +0 +0 +0 +0 +0 +0 +0 +0 +257 +260 +0 +0 +0 +0 +0 +0 +0 +0 +36 +261 +442 +0 +0 +0 +0 +0 +0 +0 +103 +112 +262 +335 +377 +0 +0 +0 +0 +0 +44 +76 +121 +263 +264 +0 +0 +0 +0 +0 +77 +122 +263 +264 +0 +0 +0 +0 +0 +0 +256 +265 +0 +0 +0 +0 +0 +0 +0 +0 +0 +266 +406 +0 +0 +0 +0 +0 +0 +0 +267 +268 +0 +0 +0 +0 +0 +0 +0 +0 +54 +267 +268 +421 +0 +0 +0 +0 +0 +0 +269 +371 +403 +0 +0 +0 +0 +0 +0 +0 +47 +52 +219 +270 +271 +309 +376 +0 +0 +0 +270 +271 +272 +273 +0 +0 +0 +0 +0 +0 +271 +272 +0 +0 +0 +0 +0 +0 +0 +0 +271 +273 +0 +0 +0 +0 +0 +0 +0 +0 +84 +274 +344 +374 +406 +0 +0 +0 +0 +0 +275 +314 +393 +0 +0 +0 +0 +0 +0 +0 +9 +216 +276 +431 +0 +0 +0 +0 +0 +0 +206 +277 +278 +430 +478 +0 +0 +0 +0 +0 +277 +278 +0 +0 +0 +0 +0 +0 +0 +0 +199 +279 +280 +0 +0 +0 +0 +0 +0 +0 +16 +38 +279 +280 +0 +0 +0 +0 +0 +0 +224 +281 +0 +0 +0 +0 +0 +0 +0 +0 +47 +204 +282 +0 +0 +0 +0 +0 +0 +0 +283 +284 +286 +287 +0 +0 +0 +0 +0 +0 +44 +46 +113 +173 +283 +284 +288 +289 +0 +0 +43 +101 +216 +285 +288 +289 +0 +0 +0 +0 +81 +283 +286 +0 +0 +0 +0 +0 +0 +0 +283 +287 +0 +0 +0 +0 +0 +0 +0 +0 +284 +285 +288 +290 +0 +0 +0 +0 +0 +0 +284 +285 +289 +291 +0 +0 +0 +0 +0 +0 +288 +290 +0 +0 +0 +0 +0 +0 +0 +0 +289 +291 +0 +0 +0 +0 +0 +0 +0 +0 +292 +293 +0 +0 +0 +0 +0 +0 +0 +0 +237 +292 +293 +418 +0 +0 +0 +0 +0 +0 +294 +446 +0 +0 +0 +0 +0 +0 +0 +0 +295 +296 +297 +298 +0 +0 +0 +0 +0 +0 +121 +202 +295 +296 +455 +0 +0 +0 +0 +0 +111 +295 +297 +0 +0 +0 +0 +0 +0 +0 +295 +298 +0 +0 +0 +0 +0 +0 +0 +0 +236 +244 +299 +371 +0 +0 +0 +0 +0 +0 +235 +300 +301 +303 +305 +309 +322 +428 +0 +0 +300 +301 +302 +492 +0 +0 +0 +0 +0 +0 +301 +302 +0 +0 +0 +0 +0 +0 +0 +0 +300 +303 +304 +493 +0 +0 +0 +0 +0 +0 +303 +304 +0 +0 +0 +0 +0 +0 +0 +0 +47 +102 +300 +305 +309 +0 +0 +0 +0 +0 +28 +306 +433 +0 +0 +0 +0 +0 +0 +0 +236 +307 +372 +0 +0 +0 +0 +0 +0 +0 +242 +308 +408 +0 +0 +0 +0 +0 +0 +0 +52 +270 +300 +305 +309 +316 +317 +318 +390 +0 +69 +310 +316 +317 +318 +319 +0 +0 +0 +0 +311 +316 +0 +0 +0 +0 +0 +0 +0 +0 +312 +317 +0 +0 +0 +0 +0 +0 +0 +0 +313 +318 +0 +0 +0 +0 +0 +0 +0 +0 +229 +275 +314 +0 +0 +0 +0 +0 +0 +0 +28 +315 +427 +0 +0 +0 +0 +0 +0 +0 +309 +310 +311 +316 +0 +0 +0 +0 +0 +0 +309 +310 +312 +317 +0 +0 +0 +0 +0 +0 +309 +310 +313 +318 +0 +0 +0 +0 +0 +0 +69 +310 +319 +320 +0 +0 +0 +0 +0 +0 +319 +320 +400 +0 +0 +0 +0 +0 +0 +0 +238 +321 +322 +0 +0 +0 +0 +0 +0 +0 +300 +321 +322 +339 +434 +0 +0 +0 +0 +0 +323 +324 +0 +0 +0 +0 +0 +0 +0 +0 +35 +169 +323 +324 +0 +0 +0 +0 +0 +0 +88 +96 +325 +0 +0 +0 +0 +0 +0 +0 +326 +327 +0 +0 +0 +0 +0 +0 +0 +0 +40 +41 +326 +327 +0 +0 +0 +0 +0 +0 +240 +328 +395 +0 +0 +0 +0 +0 +0 +0 +329 +330 +0 +0 +0 +0 +0 +0 +0 +0 +49 +329 +330 +0 +0 +0 +0 +0 +0 +0 +60 +331 +334 +0 +0 +0 +0 +0 +0 +0 +246 +332 +391 +0 +0 +0 +0 +0 +0 +0 +16 +106 +333 +0 +0 +0 +0 +0 +0 +0 +331 +334 +433 +0 +0 +0 +0 +0 +0 +0 +256 +262 +335 +0 +0 +0 +0 +0 +0 +0 +112 +336 +342 +0 +0 +0 +0 +0 +0 +0 +337 +393 +0 +0 +0 +0 +0 +0 +0 +0 +145 +338 +341 +0 +0 +0 +0 +0 +0 +0 +137 +177 +322 +339 +0 +0 +0 +0 +0 +0 +165 +340 +422 +0 +0 +0 +0 +0 +0 +0 +338 +341 +0 +0 +0 +0 +0 +0 +0 +0 +336 +342 +415 +0 +0 +0 +0 +0 +0 +0 +168 +343 +0 +0 +0 +0 +0 +0 +0 +0 +222 +274 +344 +347 +349 +351 +352 +0 +0 +0 +117 +118 +345 +346 +348 +350 +352 +374 +0 +0 +58 +345 +346 +0 +0 +0 +0 +0 +0 +0 +344 +347 +0 +0 +0 +0 +0 +0 +0 +0 +345 +348 +0 +0 +0 +0 +0 +0 +0 +0 +344 +349 +0 +0 +0 +0 +0 +0 +0 +0 +345 +350 +0 +0 +0 +0 +0 +0 +0 +0 +344 +351 +394 +0 +0 +0 +0 +0 +0 +0 +70 +344 +345 +352 +402 +0 +0 +0 +0 +0 +114 +353 +419 +0 +0 +0 +0 +0 +0 +0 +79 +161 +354 +0 +0 +0 +0 +0 +0 +0 +355 +384 +0 +0 +0 +0 +0 +0 +0 +0 +204 +356 +357 +358 +360 +398 +0 +0 +0 +0 +356 +357 +359 +361 +0 +0 +0 +0 +0 +0 +356 +358 +0 +0 +0 +0 +0 +0 +0 +0 +357 +359 +0 +0 +0 +0 +0 +0 +0 +0 +356 +360 +0 +0 +0 +0 +0 +0 +0 +0 +357 +361 +0 +0 +0 +0 +0 +0 +0 +0 +54 +251 +362 +0 +0 +0 +0 +0 +0 +0 +198 +363 +0 +0 +0 +0 +0 +0 +0 +0 +364 +437 +0 +0 +0 +0 +0 +0 +0 +0 +365 +366 +0 +0 +0 +0 +0 +0 +0 +0 +6 +220 +365 +366 +375 +425 +0 +0 +0 +0 +367 +368 +369 +370 +0 +0 +0 +0 +0 +0 +159 +204 +367 +368 +371 +372 +0 +0 +0 +0 +367 +369 +0 +0 +0 +0 +0 +0 +0 +0 +90 +367 +370 +0 +0 +0 +0 +0 +0 +0 +269 +299 +368 +371 +0 +0 +0 +0 +0 +0 +307 +368 +372 +391 +0 +0 +0 +0 +0 +0 +190 +373 +407 +0 +0 +0 +0 +0 +0 +0 +274 +345 +374 +0 +0 +0 +0 +0 +0 +0 +31 +366 +375 +0 +0 +0 +0 +0 +0 +0 +58 +223 +224 +270 +376 +394 +0 +0 +0 +0 +112 +262 +377 +0 +0 +0 +0 +0 +0 +0 +378 +379 +380 +382 +0 +0 +0 +0 +0 +0 +107 +190 +378 +379 +383 +0 +0 +0 +0 +0 +378 +380 +416 +429 +0 +0 +0 +0 +0 +0 +381 +383 +0 +0 +0 +0 +0 +0 +0 +0 +378 +382 +0 +0 +0 +0 +0 +0 +0 +0 +379 +381 +383 +0 +0 +0 +0 +0 +0 +0 +125 +254 +355 +384 +0 +0 +0 +0 +0 +0 +89 +230 +385 +0 +0 +0 +0 +0 +0 +0 +82 +91 +386 +0 +0 +0 +0 +0 +0 +0 +158 +387 +388 +0 +0 +0 +0 +0 +0 +0 +387 +388 +0 +0 +0 +0 +0 +0 +0 +0 +214 +389 +438 +0 +0 +0 +0 +0 +0 +0 +99 +309 +390 +0 +0 +0 +0 +0 +0 +0 +158 +332 +372 +391 +403 +0 +0 +0 +0 +0 +79 +392 +438 +0 +0 +0 +0 +0 +0 +0 +62 +275 +337 +393 +0 +0 +0 +0 +0 +0 +351 +376 +394 +0 +0 +0 +0 +0 +0 +0 +80 +328 +395 +456 +464 +0 +0 +0 +0 +0 +51 +149 +396 +0 +0 +0 +0 +0 +0 +0 +37 +222 +397 +0 +0 +0 +0 +0 +0 +0 +159 +235 +356 +398 +0 +0 +0 +0 +0 +0 +168 +399 +441 +0 +0 +0 +0 +0 +0 +0 +189 +320 +400 +0 +0 +0 +0 +0 +0 +0 +256 +401 +402 +0 +0 +0 +0 +0 +0 +0 +352 +401 +402 +0 +0 +0 +0 +0 +0 +0 +269 +391 +403 +0 +0 +0 +0 +0 +0 +0 +404 +405 +0 +0 +0 +0 +0 +0 +0 +0 +53 +404 +405 +0 +0 +0 +0 +0 +0 +0 +222 +266 +274 +406 +0 +0 +0 +0 +0 +0 +373 +407 +426 +0 +0 +0 +0 +0 +0 +0 +50 +308 +408 +0 +0 +0 +0 +0 +0 +0 +160 +409 +417 +0 +0 +0 +0 +0 +0 +0 +410 +411 +0 +0 +0 +0 +0 +0 +0 +0 +10 +410 +411 +436 +0 +0 +0 +0 +0 +0 +40 +412 +0 +0 +0 +0 +0 +0 +0 +0 +413 +414 +415 +416 +0 +0 +0 +0 +0 +0 +413 +414 +0 +0 +0 +0 +0 +0 +0 +0 +112 +190 +342 +413 +415 +0 +0 +0 +0 +0 +39 +163 +380 +413 +416 +0 +0 +0 +0 +0 +60 +409 +417 +0 +0 +0 +0 +0 +0 +0 +35 +293 +418 +0 +0 +0 +0 +0 +0 +0 +227 +353 +419 +423 +0 +0 +0 +0 +0 +0 +78 +420 +421 +434 +0 +0 +0 +0 +0 +0 +8 +96 +239 +268 +420 +421 +0 +0 +0 +0 +82 +165 +340 +422 +0 +0 +0 +0 +0 +0 +419 +423 +0 +0 +0 +0 +0 +0 +0 +0 +25 +424 +0 +0 +0 +0 +0 +0 +0 +0 +6 +366 +425 +0 +0 +0 +0 +0 +0 +0 +256 +407 +426 +0 +0 +0 +0 +0 +0 +0 +64 +315 +427 +0 +0 +0 +0 +0 +0 +0 +3 +102 +119 +216 +300 +428 +430 +0 +0 +0 +380 +429 +430 +0 +0 +0 +0 +0 +0 +0 +241 +257 +277 +428 +429 +430 +0 +0 +0 +0 +3 +276 +431 +0 +0 +0 +0 +0 +0 +0 +5 +432 +0 +0 +0 +0 +0 +0 +0 +0 +147 +306 +334 +433 +436 +0 +0 +0 +0 +0 +322 +420 +434 +435 +0 +0 +0 +0 +0 +0 +10 +64 +221 +229 +434 +435 +0 +0 +0 +0 +79 +411 +433 +436 +0 +0 +0 +0 +0 +0 +61 +127 +364 +437 +0 +0 +0 +0 +0 +0 +389 +392 +438 +0 +0 +0 +0 +0 +0 +0 +71 +214 +439 +0 +0 +0 +0 +0 +0 +0 +440 +441 +0 +0 +0 +0 +0 +0 +0 +0 +49 +399 +440 +441 +0 +0 +0 +0 +0 +0 +147 +261 +442 +0 +0 +0 +0 +0 +0 +0 +31 +212 +443 +0 +0 +0 +0 +0 +0 +0 +444 +445 +446 +448 +0 +0 +0 +0 +0 +0 +444 +445 +449 +454 +0 +0 +0 +0 +0 +0 +294 +444 +446 +454 +0 +0 +0 +0 +0 +0 +447 +449 +0 +0 +0 +0 +0 +0 +0 +0 +219 +444 +448 +450 +451 +452 +0 +0 +0 +0 +445 +447 +449 +0 +0 +0 +0 +0 +0 +0 +448 +450 +0 +0 +0 +0 +0 +0 +0 +0 +448 +451 +0 +0 +0 +0 +0 +0 +0 +0 +448 +452 +0 +0 +0 +0 +0 +0 +0 +0 +84 +223 +453 +454 +0 +0 +0 +0 +0 +0 +48 +445 +446 +453 +454 +0 +0 +0 +0 +0 +296 +455 +456 +457 +0 +0 +0 +0 +0 +0 +80 +210 +395 +455 +456 +458 +459 +460 +461 +462 +455 +457 +0 +0 +0 +0 +0 +0 +0 +0 +456 +458 +0 +0 +0 +0 +0 +0 +0 +0 +456 +459 +0 +0 +0 +0 +0 +0 +0 +0 +456 +460 +0 +0 +0 +0 +0 +0 +0 +0 +456 +461 +0 +0 +0 +0 +0 +0 +0 +0 +456 +462 +0 +0 +0 +0 +0 +0 +0 +0 +71 +175 +220 +463 +0 +0 +0 +0 +0 +0 +196 +210 +395 +464 +0 +0 +0 +0 +0 +0 +257 +465 +466 +479 +0 +0 +0 +0 +0 +0 +465 +466 +480 +0 +0 +0 +0 +0 +0 +0 +467 +471 +477 +0 +0 +0 +0 +0 +0 +0 +468 +472 +477 +0 +0 +0 +0 +0 +0 +0 +163 +469 +470 +0 +0 +0 +0 +0 +0 +0 +469 +470 +471 +0 +0 +0 +0 +0 +0 +0 +467 +470 +471 +0 +0 +0 +0 +0 +0 +0 +141 +230 +468 +472 +473 +474 +475 +476 +0 +0 +472 +473 +0 +0 +0 +0 +0 +0 +0 +0 +472 +474 +0 +0 +0 +0 +0 +0 +0 +0 +472 +475 +0 +0 +0 +0 +0 +0 +0 +0 +472 +476 +0 +0 +0 +0 +0 +0 +0 +0 +141 +467 +468 +477 +0 +0 +0 +0 +0 +0 +277 +478 +0 +0 +0 +0 +0 +0 +0 +0 +241 +465 +479 +480 +482 +0 +0 +0 +0 +0 +466 +479 +480 +481 +482 +485 +0 +0 +0 +0 +480 +481 +485 +0 +0 +0 +0 +0 +0 +0 +479 +480 +482 +483 +484 +0 +0 +0 +0 +0 +482 +483 +0 +0 +0 +0 +0 +0 +0 +0 +482 +484 +0 +0 +0 +0 +0 +0 +0 +0 +480 +481 +485 +0 +0 +0 +0 +0 +0 +0 +141 +486 +0 +0 +0 +0 +0 +0 +0 +0 +487 +489 +492 +493 +0 +0 +0 +0 +0 +0 +488 +489 +490 +0 +0 +0 +0 +0 +0 +0 +487 +488 +489 +491 +0 +0 +0 +0 +0 +0 +488 +490 +0 +0 +0 +0 +0 +0 +0 +0 +489 +491 +0 +0 +0 +0 +0 +0 +0 +0 +301 +487 +492 +0 +0 +0 +0 +0 +0 +0 +303 +487 +493 +0 +0 +0 +0 +0 +0 +0 +%% +0.8483178396146527 +0.6706497803768818 +0.9316474009271629 +0.8259915659051159 +0.0749141099239747 +0.6127769850532617 +0.3243126095086337 +0.4042432493346517 +0.4889216894177568 +0.0563064540342341 +0.2003220013219365 +0.4506809985950107 +0.2465207945154783 +0.6728182306226016 +0.5009444841545747 +0.2093887700710019 +0.3833875674814791 +0.2629049630806244 +0.8638473264891788 +0.0068903568874143 +0.4270323830861616 +0.6741981263711310 +0.0263683207747022 +0.8026358879744457 +0.1798125277440863 +0.6615563839200532 +0.5388504032397917 +0.2011487589490933 +0.9782153590525915 +0.2966113305625048 +0.8309093043465101 +0.5350148999623799 +0.8577368190902865 +0.7123884593841227 +0.9543748287741737 +0.8801106496231675 +0.8490474371089849 +0.1057599762765537 +0.3694121479802369 +0.7736908773165471 +0.3352441047664209 +0.1150862062662503 +0.7552438928694989 +0.3439478131991411 +0.2817087394018067 +0.2162976539518998 +0.4852360002861091 +0.0057640498417387 +0.7268004045533238 +0.5205619338920122 +0.6343918397825450 +0.1837588835868946 +0.2104079488356254 +0.1072048133407638 +0.0395947057002634 +0.9330220583897403 +0.0400209978161234 +0.0781877556303664 +0.2976758337005888 +0.6604415374454923 +0.9521082225628823 +0.0055543256941696 +0.1866873697274503 +0.2113213532549362 +0.7358651200871347 +0.4166371044168225 +0.1361097436415447 +0.2489126317221700 +0.9090931683964897 +0.8804237290693118 +0.4604792296588825 +0.9114630717835008 +0.5769636562652027 +0.2122197185028387 +0.8616704275858206 +0.1872496047054253 +0.8767687582692533 +0.0283493571356546 +0.0279669403183254 +0.0011739769717719 +0.8816612565392817 +0.2587451230366413 +0.1866195592416753 +0.6134283988672150 +0.7633503369248252 +0.7960136720771441 +0.2150746941951263 +0.4417212743517567 +0.1339641300308199 +0.3538190365232776 +0.7161428864829403 +0.4820827424201957 +0.1365021466723779 +0.7270079301991990 +0.5001932391978972 +0.5540293780631791 +0.8470236345937937 +0.6844720529281880 +0.4470622249540837 +0.7395825773469121 +0.7140811894103265 +0.1689867872929229 +0.0127652175460312 +0.7390011771948182 +0.3876666127209407 +0.3889554660143338 +0.9958895038034786 +0.0158743815304996 +0.0926458725571736 +0.2794561312296530 +0.9676672240567189 +0.5488249778351199 +0.3736362838672994 +0.9939879360511114 +0.0488822949430138 +0.3265921768161898 +0.4076365668481068 +0.7380059200028429 +0.4603180906842517 +0.2686659846029050 +0.2873166763901486 +0.0140301867513706 +0.4365584272465929 +0.0345076306283345 +0.5850196896009423 +0.7098586658566393 +0.9590813817633715 +0.8804033136216555 +0.9980595552286854 +0.1311251822393278 +0.6068136140773602 +0.1738269702011150 +0.7043815368917442 +0.9467849911595574 +0.1974515966674346 +0.0635165505526809 +0.6575472564589070 +0.8045666146925562 +0.9454611044982865 +0.5500252055448300 +0.5747363779881197 +0.2960850128458551 +0.2194919783622648 +0.3791679357611623 +0.5763745454924379 +0.3318679405186607 +0.7153851752905834 +0.1383370271666072 +0.8911010718686341 +0.9622471231685127 +0.5206280483477259 +0.0008209235817533 +0.1501220678649025 +0.2858982586997720 +0.3812301813733660 +0.9627033012525220 +0.0463248309608765 +0.5536461903980735 +0.4254903780644615 +0.0203918495292208 +0.4973494195501764 +0.2673520692161342 +0.4281354730441760 +0.3587292238852842 +0.1142915128435944 +0.0093934765497702 +0.0804645407448647 +0.0284739994461690 +0.4373515560814680 +0.5054042027492341 +0.2582268915654431 +0.8181935096212357 +0.7683934478079263 +0.5459306504169178 +0.0766898881091194 +0.9984011518683296 +0.8463122892926332 +0.4788924934998232 +0.1107166721271598 +0.9047358057561707 +0.5840612962298976 +0.6958031753814037 +0.8557126220464411 +0.0826713344650157 +0.4838001677368423 +0.2449075192032626 +0.0621016340325793 +0.4332419552713540 +0.1310235740565679 +0.7481090411770011 +0.3776118887938892 +0.3337436210362408 +0.3530460812272584 +0.1288111479371150 +0.4149216674120018 +0.1393425109365868 +0.2064459122797230 +0.3694359018085516 +0.8343916891700796 +0.2161886277610609 +0.0932775064851222 +0.0868289540623030 +0.2731170192259920 +0.2809660913222927 +0.3356228717457055 +0.6834390896658262 +0.3267963290017710 +0.6599492802927122 +0.0435681404918652 +0.0703576285531474 +0.7228303690021292 +0.8851721422324230 +0.2107907960557750 +0.0784159016220343 +0.9615694238266003 +0.6775815611931443 +0.9326414560282523 +0.8723857873635551 +0.9394618799882867 +0.3442387428829488 +0.1764777376547630 +0.7488398469947676 +0.3732788212737727 +0.6865869483303326 +0.4000735922705779 +0.5721400649461029 +0.1120309369903489 +0.5113942038836549 +0.0511100243190568 +0.7175259320021290 +0.8575182783261570 +0.5784878853002242 +0.1349654718909908 +0.1192925964151463 +0.9723092959416103 +0.3728264511453223 +0.8067179481103881 +0.3324480279209299 +0.4657453752075365 +0.7348138089866270 +0.8214647023258758 +0.9113418227917187 +0.6642716262994925 +0.0133558732261029 +0.2924958180021960 +0.0444334379695671 +0.9396144243758447 +0.7655890089284283 +0.6692048055281263 +0.8380837128929514 +0.4554570494036198 +0.6909078386850797 +0.0154017302137861 +0.8479124776327206 +0.9462209557130911 +0.7677202200246880 +0.9279331770197743 +0.5153327254961750 +0.8926116198429296 +0.8930457828966226 +0.9844385803033128 +0.6018790515210961 +0.8235301034352464 +0.0665720402909682 +0.1171662519206369 +0.5962448507692394 +0.9738432213333370 +0.3392590904124880 +0.1702801969466125 +0.1112857249315309 +0.9700813330218533 +0.5367884989765819 +0.3431322540111262 +0.9916240181373843 +0.3521808070203251 +0.8331481345246642 +0.6456496860574097 +0.2994661478507417 +0.0078332098488572 +0.8627726556183214 +0.2780721231188467 +0.6182353827040976 +0.9308493287741327 +0.6149876265111006 +0.3391027675786487 +0.3531793653091488 +0.6387221774977941 +0.5143005186400568 +0.1387668025077644 +0.5926468898446244 +0.3193379819348149 +0.3649024825358713 +0.2938847760898528 +0.5343363005946771 +0.3760463174887679 +0.5725036130122593 +0.1542553433051521 +0.3174075718189375 +0.6639159037834084 +0.3751798269431847 +0.3564936178023257 +0.6578860801973966 +0.4878134574691712 +0.9332728824329765 +0.0345427675439928 +0.1146445520498136 +0.5848943772682992 +0.1662239710723725 +0.0693781648667100 +0.8694019864172604 +0.2191364932019932 +0.7499672365062569 +0.2761112415673199 +0.7271363734624335 +0.2440285243758249 +0.9430020624479579 +0.1440250692777039 +0.4132824422670823 +0.7614656056422392 +0.4837363618225233 +0.9809620066037130 +0.4671709271543480 +0.9348033021342805 +0.4537214639120629 +0.7552137859210596 +0.7954668379373012 +0.6065311722051752 +0.2438654997599063 +0.5503350398133949 +0.4419460762806375 +0.6275061460415338 +0.6777206266673230 +0.0111472337609468 +0.9957734162654772 +0.1246312888209616 +0.2480800843375707 +0.4231461451579110 +0.1280403970412000 +0.6484414922888584 +0.3644668863337679 +0.2337922181906040 +0.9616873414436868 +0.6779685516426726 +0.1868708749314857 +0.8782741573686651 +0.6930411666732398 +0.6177010100415349 +0.5780037143603487 +0.2939854446950563 +0.5608423882500977 +0.8761871775505162 +0.6441989655644730 +0.1810071211477334 +0.9713249811202351 +0.8720289503655566 +0.4294390166286234 +0.2532811225707449 +0.8969774741365252 +0.6100117892988954 +0.1960699631492769 +0.9301354739598914 +0.7224530353170772 +0.5191027833281141 +0.1268089950416111 +0.1431706944572742 +0.9397683680282519 +0.1708568797583734 +0.5315018323429732 +0.6242359909565518 +0.2254886187046609 +0.9782736794109049 +0.0429141142621825 +0.9891683505866096 +0.2024717685614631 +0.0196826080659797 +0.6910933955316909 +0.2768293352286383 +0.7314732999603543 +0.0768308861291690 +0.1551093873719042 +0.6270659160444320 +0.6743060895480667 +0.3147389465422545 +0.4556540188327001 +0.5336071033488232 +0.4432436833380574 +0.0120537996182269 +0.5606860679844500 +0.5307654724048916 +0.6319108687982481 +0.5153605911637142 +0.0116703069980435 +0.7528566241924224 +0.2322452408551318 +0.7033589194426896 +0.3536862332363362 +0.3209196647064811 +0.1158322695030433 +0.4410043195102882 +0.9634522939857088 +0.0111739864620048 +0.8487323055999937 +0.2863026779679601 +0.4353499310626945 +0.2683100918304755 +0.6302969530620972 +0.2979827363431253 +0.1274088565446815 +0.3721852873425603 +0.2453010715007161 +0.1633665685261703 +0.7126333281485220 +0.6533281645944697 +0.5808262573450925 +0.2843454312853405 +0.5096368273743479 +0.9051319563159713 +0.4906882869254115 +0.5983082899373767 +0.6495880834323012 +0.5757792223158209 +0.0233123321742689 +0.2692903346720601 +0.0041469810558323 +0.6096013896981760 +0.8805597089399800 +0.0901025770439411 +0.2018707114365797 +0.4634050247425767 +0.3379314576230700 +0.6204605185689965 +0.4753747255809189 +0.5112592424386806 +0.6616274253970083 +0.4937665420329518 +0.3197317654981836 +0.4695717035134276 +0.2874055811093641 +0.9097122918366112 +0.0698162859045715 +0.3201641400746201 +0.5185972464080254 +0.9905173479273656 +0.3712390779666960 +0.0056370341850618 +0.0395522598727142 +0.3921534977584564 +0.8522029796288904 +0.3346194563079505 +0.6429233013492220 +0.6360433801365077 +0.1716043134564161 +0.5201155310158935 +0.0245860778925260 +0.4362019819492165 +0.1192679823597833 +0.3809198621760362 +0.2251123162515863 +0.5670535082271564 +0.2278627039406244 +0.0529453230927324 +0.6021001931781610 +0.6790772399224166 +0.7716493715297760 +0.2868627608072348 +0.7086536443199765 +0.9392660254042972 +0.6378488996151952 +0.5753465166316099 +0.9778896639349272 +0.6541005362632644 +0.6175561601799165 +0.2817555840484371 +0.1438112390964338 +0.6612642174687781 +0.5655215638728978 +0.9423159385445181 +0.8964914023258709 +0.9174747407529212 +0.4929803186620192 +0.9779240481377166 +0.3181047984817529 +0.2986892413220574 +0.2571762285898997 +0.1916000764166038 +0.5341139182822019 +0.7468217076566656 +0.4481070842468913 +0.5936366233299584 +0.7442557099061952 +0.5410113779987784 +0.0755455037462515 +0.0748945408290509 +0.0881736635594114 diff --git a/examples/machsuite/spmv/ellpack/run_test.py b/examples/machsuite/spmv/ellpack/run_test.py new file mode 100644 index 0000000000..54d1a477e0 --- /dev/null +++ b/examples/machsuite/spmv/ellpack/run_test.py @@ -0,0 +1,37 @@ +import allo +import numpy as np +from ellpack import ellpack + +def parse_data(file): + data_arrays = [] + current_array = [] + + with open(file, 'r') as f: + for line in f: + if line.strip() == '%%': + if current_array: + data_arrays.append(current_array) + current_array = [] + else: + num = float(line.strip()) + current_array.append(num) + + data_arrays.append(current_array) + return data_arrays + +if __name__ == "__main__": + input = parse_data("input.data") + check = parse_data("check.data") + + values = np.array(input[0]).astype(np.float64) + columns = np.array(input[1]).astype(np.int32) + vector = np.array(input[2]).astype(np.float64) + + check = np.array(check[0]).astype(np.float64) + + ##Building + s = allo.customize(ellpack) + mod = s.build() + + observed = mod(values, columns, vector) + np.testing.assert_allclose(observed, check, rtol=1e-5, atol=1e-5) \ No newline at end of file diff --git a/examples/machsuite/stencil2d.py b/examples/machsuite/stencil2d.py new file mode 100644 index 0000000000..b179ddbad3 --- /dev/null +++ b/examples/machsuite/stencil2d.py @@ -0,0 +1,95 @@ +import allo +import numpy as np +from allo.ir.types import int32 + +col_size = 64 +row_size = 128 +f_size = 9 + +def stencil2d(orig: int32[row_size, col_size], filter: int32[f_size] ) -> int32[row_size, col_size]: + sol: int32[row_size, col_size] = 0 + for i, j in allo.grid(row_size-2, col_size-2): + temp: int32= 0 + for m, n in allo.grid(3, 3): + mul: int32= filter[m*3 + n] * orig[(i+m), (j+n)] + temp += mul + sol[i, j] = temp + return sol + +s = allo.customize(stencil2d) + +print(s.module) + +mod = s.build(target="llvm") + +# np_orig = np.random.randint(0, 100, (row_size, col_size)).astype(np.int32) +# np_filter = np.random.randint(0, 100, (f_size)).astype(np.int32) + +# np_sol = mod(np_orig, np_filter) + +# test_sol = np.zeros((row_size - 2, col_size - 2)) +# for r in range(row_size - 2): +# for c in range(col_size - 2): +# test_temp = 0 +# for k1 in range(3): +# for k2 in range(3): +# test_mul = np_filter[k1, k2] * np_orig[r + k1, c + k2] +# test_temp += test_mul +# test_sol[r, c] = test_temp + +# np.testing.assert_allclose(np_sol, test_sol, rtol=1e-5, atol=1e-5) + +import numpy as np + +def read_data(file_path): + with open(file_path, 'r') as file: + content = file.read() + + start_index1 = content.find("%%") + if start_index1 == -1: + raise ValueError("Cannot find first '%%' in the file.") + + start_index2 = content.find("%%", start_index1 + 2) + if start_index2 == -1: + raise ValueError("Cannot find second '%%' in the file.") + + data_str1 = content[start_index1 + 2:start_index2].strip() + data_list1 = [np.int32(line) for line in data_str1.split('\n')] + + np_orig = np.array(data_list1, dtype=np.int32).reshape(128, 64) + + data_str2 = content[start_index2 + 2:].strip() + data_list2 = [np.int32(line) for line in data_str2.split('\n')] + + np_filter = np.array(data_list2, dtype=np.int32) + + return np_orig, np_filter + +def read_check_data(file_path): + with open(file_path, 'r') as file: + content = file.read() + + start_index = content.find("%%") + if start_index == -1: + raise ValueError("Cannot find '%%' in the file.") + + data_str = content[start_index + 2:].strip() + data_list = [np.int32(line) for line in data_str.split('\n')] + + check_sol = np.array(data_list, dtype=np.int32).reshape(128, 64) + + return check_sol + +file_path_data = "input.data" +file_path_check = "check.data" +np_orig, np_filter = read_data(file_path_data) +check_sol = read_check_data(file_path_check) +# print("np_orig:") +# print(np_orig) +# print("\nnp_filter:") +# print(np_filter) +# print("\ncheck_sol:") +# print(check_sol) + +np_sol = mod(np_orig, np_filter) +np.testing.assert_allclose(np_sol, check_sol, rtol=1e-5, atol=1e-5) \ No newline at end of file diff --git a/examples/machsuite/stencil3d.py b/examples/machsuite/stencil3d.py new file mode 100644 index 0000000000..f124c9f79f --- /dev/null +++ b/examples/machsuite/stencil3d.py @@ -0,0 +1,144 @@ +import allo +from allo.ir.types import int32 + +height_size = 32 +col_size = 32 +row_size = 16 + +def stencil3d(C: int32[2], orig: int32[row_size, col_size, height_size]) -> int32[row_size, col_size, height_size]: + sol: int32[row_size, col_size, height_size] = 0 + sum0: int32 = 0 + sum1: int32 = 0 + mul0: int32 = 0 + mul1: int32 = 0 + + # Handle boundary conditions by filling with original values + for j, k in allo.grid(col_size, row_size): + sol[k, j, 0] = orig[k, j, 0] + sol[k, j, height_size - 1] = orig[k, j, height_size - 1] + + for i, k in allo.grid(height_size - 1, row_size): + sol[k, 0, (i+1)] = orig[k, 0, (i+1)] + sol[k, col_size - 1, (i+1)] = orig[k, col_size - 1, (i+1)] + + for j, i in allo.grid(col_size-2, height_size-2): + sol[0, (j+1), (i+1)] = orig[0, (j+1), (i+1)] + sol[row_size - 1, (j+1), (i+1)] = orig[row_size - 1, (j+1), (i+1)] + + # Stencil computation + for i, j, k in allo.grid( height_size - 2, col_size - 2, row_size - 2 ): + sum0 = orig[(k+1), (j+1), (i+1)] + sum1 = (orig[(k+1), (j+1), (i+2)] + + orig[(k+1), (j+1), i] + + orig[(k+1), (j+2), (i+1)] + + orig[(k+1), j, (i+1)] + + orig[(k+2), (j+1), (i+1)] + + orig[k, (j+1), (i+1)]) + mul0 = sum0 * C[0] + mul1 = sum1 * C[1] + sol[(k+1), (j+1), (i+1)] = mul0 + mul1 + + return sol + +s = allo.customize(stencil3d) + +print(s.module) + +mod = s.build(target="llvm") + +import numpy as np + +def read_data(file_path): + with open(file_path, 'r') as file: + content = file.read() + + start_index1 = content.find("%%") + if start_index1 == -1: + raise ValueError("Cannot find first '%%' in the file.") + + start_index2 = content.find("%%", start_index1 + 2) + if start_index2 == -1: + raise ValueError("Cannot find second '%%' in the file.") + + data_str1 = content[start_index1 + 2:start_index2].strip() + data_list1 = [np.int32(line) for line in data_str1.split('\n')] + + np_C = np.array(data_list1, dtype=np.int32) + + data_str2 = content[start_index2 + 2:].strip() + data_list2 = [np.int32(line) for line in data_str2.split('\n')] + + #np_orig = np.array(data_list2, dtype=np.int32).reshape(row_size, col_size, height_size) + + np_orig = np.zeros((row_size, col_size, height_size), dtype=np.int32) + + index = 0 + for i in range(height_size): + for j in range(col_size): + for k in range(row_size): + np_orig[k, j, i] = data_list2[index] + index += 1 + + return np_orig, np_C + +def read_check_data(file_path): + with open(file_path, 'r') as file: + content = file.read() + + start_index = content.find("%%") + if start_index == -1: + raise ValueError("Cannot find '%%' in the file.") + + data_str = content[start_index + 2:].strip() + data_list = [np.int32(line) for line in data_str.split('\n')] + + #check_sol = np.array(data_list, dtype=np.int32).reshape(row_size, col_size, height_size) + + check_sol = np.zeros((row_size, col_size, height_size), dtype=np.int32) + + index = 0 + for i in range(height_size): + for j in range(col_size): + for k in range(row_size): + check_sol[k, j, i] = data_list[index] + index += 1 + + return check_sol + +file_path_data = "input.data" +file_path_check = "check.data" +np_orig, np_C = read_data(file_path_data) +check_sol = read_check_data(file_path_check) +print("\nnp_C:") +print(np_C) +print("np_orig:") +print(np_orig) +# print("\ncheck_sol:") +# print(check_sol) + +np_sol = mod(np_C, np_orig) +print("\ncheck_sol:") +print(check_sol) +print("\nnp_sol:") +print(np_sol) + +with open("output.txt", "w") as file: + for i in range(16): + for j in range(32): + for k in range(32): + file.write(str(np_sol[i][j][k]) + "\n") + +np.testing.assert_allclose(np_sol, check_sol, rtol=1e-5, atol=1e-5, verbose=True) +# result = np.array_equal(check_sol, np_sol) +# print("equal", result) +# arrays_are_equal = np.array_equal(check_sol, np_sol) + +# if arrays_are_equal: +# print("equal") +# else: +# print("not equal") +# unequal_indices = np.where(check_sol != np_sol) +# print("not equal position:") +# print(list(zip(*unequal_indices))) +# num_unequal_elements = len(unequal_indices[0]) +# print("not equal num:", num_unequal_elements) \ No newline at end of file diff --git a/examples/machsuite/testing.py b/examples/machsuite/testing.py new file mode 100644 index 0000000000..0d20545286 --- /dev/null +++ b/examples/machsuite/testing.py @@ -0,0 +1,33 @@ +import allo +import numpy as np +from mergesort import merge_sort +from allo.ir.types import int32 + + + + +def read_data(filename): + with open(filename, 'r') as file: + lines = file.readlines() + data = [int(line.strip()) for line in lines if not line.startswith("%%")] + return data + +def main(): + input_data = read_data("input.data") + #sorted_input_data = merge_sort(input_data) + check_data = read_data("check.data") + + + values = np.array(input_data[0]).astype(np.int32) + check = np.array(check_data[0]).astype(np.int32) + + s = allo.customize(merge_sort) + mod = s.build() + + actual = mod(values) + np.testing.assert_allclose(actual, check, rtol=1e-5, atol=1e-5) + + +if __name__ == "__main__": + main() + diff --git a/examples/machsuite/viterbi/check.data b/examples/machsuite/viterbi/check.data new file mode 100644 index 0000000000..b453918ae8 --- /dev/null +++ b/examples/machsuite/viterbi/check.data @@ -0,0 +1,141 @@ +%% +27 +27 +27 +27 +27 +31 +63 +63 +63 +63 +47 +4 +38 +38 +38 +38 +7 +7 +7 +7 +7 +7 +7 +7 +2 +2 +2 +43 +52 +52 +43 +43 +43 +43 +43 +44 +44 +32 +9 +9 +15 +45 +45 +45 +45 +45 +45 +0 +55 +55 +55 +30 +13 +13 +13 +13 +13 +13 +57 +57 +21 +21 +21 +21 +7 +41 +41 +41 +41 +17 +17 +30 +41 +41 +58 +58 +58 +31 +54 +54 +54 +54 +54 +54 +54 +54 +54 +54 +54 +54 +52 +52 +52 +21 +21 +21 +28 +18 +18 +40 +40 +40 +40 +40 +40 +46 +46 +2 +2 +2 +53 +53 +53 +55 +38 +57 +57 +57 +57 +57 +57 +57 +57 +57 +57 +30 +30 +5 +5 +5 +5 +5 +5 +5 +5 +30 +30 +26 +38 +38 diff --git a/examples/machsuite/viterbi/input.data b/examples/machsuite/viterbi/input.data new file mode 100644 index 0000000000..5bea173476 --- /dev/null +++ b/examples/machsuite/viterbi/input.data @@ -0,0 +1,8400 @@ +%% +0 +27 +49 +52 +20 +31 +63 +63 +29 +0 +47 +4 +38 +38 +38 +38 +4 +43 +7 +28 +31 +7 +7 +7 +57 +2 +2 +43 +52 +52 +43 +3 +43 +13 +54 +44 +51 +32 +9 +9 +15 +45 +21 +33 +61 +45 +62 +0 +55 +15 +55 +30 +13 +13 +53 +13 +13 +50 +57 +57 +34 +26 +21 +43 +7 +12 +41 +41 +41 +17 +17 +30 +41 +8 +58 +58 +58 +31 +52 +54 +54 +54 +54 +54 +54 +15 +54 +54 +54 +54 +52 +56 +52 +21 +21 +21 +28 +18 +18 +15 +40 +1 +62 +40 +6 +46 +24 +47 +2 +2 +53 +41 +0 +55 +38 +5 +57 +57 +57 +57 +14 +57 +34 +37 +57 +30 +30 +5 +1 +5 +62 +25 +59 +5 +2 +43 +30 +26 +38 +38 +%% +4.6977033615112305 +3.6915655136108398 +4.8652229309082031 +4.7658410072326660 +4.0006790161132812 +3.9517300128936768 +3.4640796184539795 +3.4600069522857666 +4.2856273651123047 +3.6522088050842285 +4.8189344406127930 +3.8075556755065918 +3.8743767738342285 +5.4135279655456543 +4.9173111915588379 +3.6458325386047363 +5.8528852462768555 +11.3210048675537109 +4.9971127510070801 +5.1006979942321777 +3.5980830192565918 +5.3161897659301758 +3.4544019699096680 +3.7314746379852295 +4.9998908042907715 +3.4898567199707031 +4.2091164588928223 +3.5122559070587158 +3.9326364994049072 +7.2767667770385742 +3.6539671421051025 +4.0916681289672852 +3.5044839382171631 +4.5234117507934570 +3.7673256397247314 +4.0265331268310547 +3.7147023677825928 +6.7589721679687500 +3.5749390125274658 +3.7701597213745117 +3.5728175640106201 +5.0258340835571289 +4.9390106201171875 +5.7208223342895508 +6.3652114868164062 +3.5838112831115723 +5.0102572441101074 +4.0017414093017578 +4.2373661994934082 +3.8841004371643066 +5.3679313659667969 +3.9980680942535400 +3.5181968212127686 +4.7306714057922363 +5.5075111389160156 +5.1880970001220703 +4.8259010314941406 +4.2589011192321777 +5.6381106376647949 +3.4522385597229004 +3.5920252799987793 +4.2071061134338379 +5.0856294631958008 +6.0637059211730957 +%% +0.3647365272045135 +4.9231276512145996 +4.5944204330444336 +4.7147903442382812 +7.1150326728820801 +5.0133738517761230 +5.6496667861938477 +5.4293580055236816 +5.2391724586486816 +7.4005656242370605 +6.1314487457275391 +5.3206152915954590 +5.9239287376403809 +4.9198999404907227 +5.2148795127868652 +6.0871820449829102 +5.4823284149169922 +5.8595824241638184 +4.6699790954589844 +9.5012521743774414 +5.3745150566101074 +4.9178509712219238 +8.1592111587524414 +4.7434735298156738 +6.2394599914550781 +4.9367794990539551 +5.1419367790222168 +6.1273303031921387 +4.5456452369689941 +5.7389521598815918 +4.7088541984558105 +5.1490802764892578 +4.6770777702331543 +4.8627514839172363 +4.5703182220458984 +4.6513271331787109 +4.6872596740722656 +6.7702026367187500 +5.5194621086120605 +4.7802023887634277 +5.6165161132812500 +6.6856932640075684 +4.8043341636657715 +5.5908851623535156 +5.7905011177062988 +6.0547194480895996 +5.2467393875122070 +9.6797342300415039 +4.8427228927612305 +5.1764659881591797 +4.9787082672119141 +6.2177505493164062 +6.0823264122009277 +6.7566337585449219 +7.7526793479919434 +4.5929460525512695 +7.7419705390930176 +7.0722618103027344 +5.7353696823120117 +4.9384665489196777 +4.5726962089538574 +9.7167978286743164 +6.2019395828247070 +6.0779948234558105 +4.8539266586303711 +0.3883351087570190 +6.5415120124816895 +5.9378714561462402 +4.6425256729125977 +4.6745700836181641 +5.3227057456970215 +4.6399221420288086 +5.0971941947937012 +6.0973510742187500 +4.6961007118225098 +6.2225308418273926 +4.6787300109863281 +8.1103687286376953 +8.1239500045776367 +11.2945766448974609 +4.6731653213500977 +5.8991298675537109 +6.2259011268615723 +5.0359096527099609 +4.8172564506530762 +4.7753572463989258 +6.0839881896972656 +5.3642945289611816 +6.5574011802673340 +5.5861878395080566 +4.8810935020446777 +5.2768578529357910 +6.5386328697204590 +4.8660359382629395 +5.2399787902832031 +5.1377558708190918 +4.7132449150085449 +4.9263257980346680 +5.3522758483886719 +4.8488874435424805 +4.8839769363403320 +6.3251528739929199 +8.9082489013671875 +4.8496737480163574 +5.4948277473449707 +5.4915084838867188 +4.5513372421264648 +8.6902666091918945 +6.9261889457702637 +5.8221282958984375 +4.5800852775573730 +5.1471939086914062 +5.5316905975341797 +4.5532484054565430 +7.5655579566955566 +5.6662611961364746 +5.4445972442626953 +4.8510217666625977 +5.3230557441711426 +5.8615045547485352 +5.7943882942199707 +8.8137626647949219 +5.3760509490966797 +7.9137930870056152 +5.0833277702331543 +4.8899073600769043 +4.5889973640441895 +4.6745934486389160 +4.5255880355834961 +6.5552487373352051 +0.3647627234458923 +6.2733407020568848 +4.8740806579589844 +4.5783290863037109 +6.1459074020385742 +7.2801003456115723 +4.9428844451904297 +4.7410974502563477 +4.5797281265258789 +5.1214370727539062 +5.0774893760681152 +5.7407546043395996 +6.0400853157043457 +5.4934220314025879 +5.0746436119079590 +5.6266641616821289 +4.8585801124572754 +6.5017080307006836 +4.6389431953430176 +4.5621299743652344 +5.1763653755187988 +11.6287260055541992 +6.4199523925781250 +5.7757649421691895 +5.4879975318908691 +4.5616559982299805 +7.5957226753234863 +5.1148753166198730 +5.3781585693359375 +8.4162654876708984 +5.2221083641052246 +5.8428344726562500 +5.3719611167907715 +5.5488333702087402 +6.6926488876342773 +9.1913852691650391 +7.0435843467712402 +8.0824098587036133 +5.3506636619567871 +5.2060427665710449 +5.8775625228881836 +4.7243022918701172 +4.7870993614196777 +5.1289091110229492 +7.0916314125061035 +4.5252461433410645 +4.6905126571655273 +5.2599248886108398 +6.7244267463684082 +4.6237578392028809 +5.0613951683044434 +4.8863344192504883 +4.6794667243957520 +7.0165281295776367 +5.2497291564941406 +5.9305205345153809 +7.3026289939880371 +5.3601045608520508 +6.5560235977172852 +4.8138523101806641 +5.4975342750549316 +5.6210279464721680 +5.5993432998657227 +6.6075944900512695 +5.4378523826599121 +0.3993035852909088 +6.1359033584594727 +5.5539646148681641 +4.7392392158508301 +6.0897908210754395 +6.9303627014160156 +7.0020017623901367 +5.8560414314270020 +5.8277077674865723 +5.6499538421630859 +4.9388041496276855 +5.6766047477722168 +4.9737787246704102 +7.6916155815124512 +7.2123508453369141 +4.8827672004699707 +4.6801600456237793 +6.1150755882263184 +7.1039152145385742 +4.5973749160766602 +4.9474120140075684 +4.6279211044311523 +4.6947102546691895 +4.6206345558166504 +5.6246066093444824 +6.2927470207214355 +4.8474168777465820 +5.5436162948608398 +4.9342088699340820 +5.4742932319641113 +5.1165580749511719 +6.7471666336059570 +5.2288012504577637 +7.5319614410400391 +4.8901329040527344 +4.7118992805480957 +5.1055245399475098 +6.5609230995178223 +6.6843628883361816 +4.5862679481506348 +5.5448288917541504 +4.7729678153991699 +5.6594586372375488 +5.3223028182983398 +4.8663249015808105 +4.7548527717590332 +4.6510238647460938 +4.9672508239746094 +8.8739852905273438 +5.7874917984008789 +7.6719493865966797 +4.6204724311828613 +4.8252964019775391 +4.9598517417907715 +4.7348241806030273 +5.3446402549743652 +4.9279356002807617 +8.7314624786376953 +4.7231645584106445 +4.6134657859802246 +4.8225164413452148 +4.6297111511230469 +5.2178583145141602 +4.6685194969177246 +4.6680331230163574 +0.3960325717926025 +5.0626144409179688 +4.7490711212158203 +7.2643861770629883 +6.6990771293640137 +5.0720195770263672 +4.5814208984375000 +5.6359066963195801 +6.3252258300781250 +6.7505698204040527 +4.5852909088134766 +5.1770668029785156 +5.6245551109313965 +4.5633268356323242 +5.5985264778137207 +4.7374596595764160 +4.9924139976501465 +5.7606697082519531 +9.4042987823486328 +4.7025198936462402 +5.8347902297973633 +5.0358018875122070 +4.6265735626220703 +5.0410685539245605 +5.6363677978515625 +5.5956950187683105 +5.0032014846801758 +5.2198634147644043 +6.5298762321472168 +5.0780720710754395 +5.6964206695556641 +5.5630407333374023 +5.7794833183288574 +5.1816453933715820 +5.5329585075378418 +5.1126518249511719 +6.4240617752075195 +5.7024841308593750 +4.9645156860351562 +5.5352654457092285 +5.5863547325134277 +4.9736390113830566 +5.2727379798889160 +4.6239733695983887 +7.9204726219177246 +6.7208347320556641 +5.0912399291992188 +6.3493347167968750 +7.2230987548828125 +4.6948652267456055 +6.0729761123657227 +4.8426413536071777 +5.8418669700622559 +4.8735570907592773 +5.9653859138488770 +4.6136026382446289 +6.4926834106445312 +5.4385395050048828 +4.8274259567260742 +5.2811307907104492 +4.5884051322937012 +5.3302435874938965 +4.6366028785705566 +5.3594555854797363 +4.8499379158020020 +0.4103006124496460 +5.0691828727722168 +5.9803223609924316 +5.1664118766784668 +5.3857512474060059 +5.0351853370666504 +4.9582037925720215 +9.0657472610473633 +4.5734190940856934 +6.6515793800354004 +5.9631872177124023 +5.4292211532592773 +6.6245932579040527 +5.0023670196533203 +5.5785031318664551 +6.0225062370300293 +4.6082496643066406 +4.9578380584716797 +6.2465209960937500 +4.6989803314208984 +4.9358496665954590 +5.0509343147277832 +5.1173586845397949 +5.7934088706970215 +5.1474990844726562 +4.7013592720031738 +5.0089311599731445 +6.2784028053283691 +4.5982780456542969 +4.7061161994934082 +5.4144592285156250 +5.9424390792846680 +4.6779084205627441 +5.0634608268737793 +6.1984672546386719 +4.6416087150573730 +4.8942866325378418 +5.2248368263244629 +6.6342568397521973 +6.5129013061523438 +4.6313056945800781 +6.3361124992370605 +5.2012324333190918 +5.0404105186462402 +6.0586690902709961 +4.5911493301391602 +7.7177381515502930 +4.5800743103027344 +6.1663384437561035 +8.4972038269042969 +4.9386639595031738 +5.8535375595092773 +4.8818783760070801 +7.1353321075439453 +6.4328083992004395 +5.0358872413635254 +4.9632549285888672 +5.7251954078674316 +5.3552050590515137 +5.1438112258911133 +5.3293509483337402 +8.9340906143188477 +5.0943098068237305 +5.1491508483886719 +4.9747223854064941 +0.3568325042724609 +8.9664230346679688 +4.7995958328247070 +5.9756770133972168 +4.8676037788391113 +5.5550608634948730 +5.6522798538208008 +6.6713275909423828 +5.3344163894653320 +4.5529479980468750 +9.0098829269409180 +4.6797270774841309 +5.7664213180541992 +5.3473205566406250 +5.8313274383544922 +4.9772796630859375 +5.7264351844787598 +6.5760698318481445 +5.5040788650512695 +5.9209847450256348 +6.3274741172790527 +4.8545041084289551 +4.9413914680480957 +5.0590190887451172 +5.7732810974121094 +5.1897726058959961 +4.6153903007507324 +5.2276616096496582 +5.0293645858764648 +4.9471325874328613 +5.0677466392517090 +8.2744884490966797 +5.8276805877685547 +10.0010900497436523 +5.0106654167175293 +4.6429133415222168 +6.9225220680236816 +6.1158432960510254 +5.2848691940307617 +5.6006278991699219 +4.9930090904235840 +5.2593674659729004 +5.1865940093994141 +4.9287681579589844 +5.2214078903198242 +5.6559886932373047 +5.2716498374938965 +5.7625765800476074 +4.6103425025939941 +7.1776037216186523 +5.6546373367309570 +5.1723432540893555 +4.5252432823181152 +5.5066246986389160 +9.6941127777099609 +7.7458481788635254 +5.4518175125122070 +4.6756463050842285 +5.6672296524047852 +5.0141983032226562 +5.0249567031860352 +6.3350319862365723 +5.2261724472045898 +8.2780427932739258 +5.4021182060241699 +0.4135851860046387 +5.5376343727111816 +6.0636239051818848 +5.1397700309753418 +6.0514802932739258 +7.5109639167785645 +5.0797996520996094 +4.9594888687133789 +4.8316931724548340 +5.8212194442749023 +4.9168567657470703 +4.6351246833801270 +5.0221219062805176 +5.1252512931823730 +4.5948266983032227 +4.9969625473022461 +5.0544533729553223 +5.8391838073730469 +6.5117220878601074 +4.9860701560974121 +5.1424751281738281 +4.6318831443786621 +4.6817350387573242 +4.6585984230041504 +5.2797541618347168 +4.5947914123535156 +5.7178425788879395 +5.7808198928833008 +5.9304618835449219 +6.2248134613037109 +5.1996145248413086 +4.8643970489501953 +5.3751912117004395 +5.0939559936523438 +4.8678388595581055 +5.1867833137512207 +7.1554884910583496 +7.1641426086425781 +7.0009150505065918 +5.6527047157287598 +4.7597403526306152 +4.8640542030334473 +5.3268737792968750 +5.7241582870483398 +5.7206387519836426 +4.8770203590393066 +5.2277913093566895 +5.8434791564941406 +7.3218650817871094 +4.9107031822204590 +4.8099985122680664 +4.7397727966308594 +4.7072057723999023 +4.8571825027465820 +6.1597795486450195 +4.8372926712036133 +4.8541727066040039 +4.5595545768737793 +4.9096651077270508 +6.7243666648864746 +4.5725431442260742 +5.1414713859558105 +6.1770787239074707 +7.6763186454772949 +6.1128730773925781 +0.3796440660953522 +5.8659772872924805 +6.2953262329101562 +4.9803609848022461 +4.6811270713806152 +5.0358829498291016 +4.9858961105346680 +5.3967947959899902 +5.6438975334167480 +4.8034653663635254 +5.1635665893554688 +4.5600600242614746 +4.8049311637878418 +8.6083726882934570 +4.6171293258666992 +5.1521697044372559 +8.0861082077026367 +5.2553935050964355 +4.9379286766052246 +5.1068696975708008 +6.2822847366333008 +5.3292155265808105 +6.0196323394775391 +5.4098339080810547 +5.7447547912597656 +4.6330842971801758 +6.2712335586547852 +5.2794752120971680 +5.2672538757324219 +4.5627694129943848 +8.3455076217651367 +4.9112582206726074 +6.6263937950134277 +5.1390156745910645 +5.7466373443603516 +5.1252679824829102 +6.5196504592895508 +9.1985082626342773 +5.6055316925048828 +5.6289868354797363 +5.3655147552490234 +5.3141112327575684 +4.6968650817871094 +4.6290760040283203 +6.3014535903930664 +4.5476765632629395 +5.2831196784973145 +6.6164097785949707 +6.6595654487609863 +5.1070413589477539 +4.7505006790161133 +6.8972587585449219 +6.4754614830017090 +5.3095932006835938 +5.3841800689697266 +4.6848030090332031 +5.2016720771789551 +10.0899734497070312 +11.2956390380859375 +4.9306783676147461 +4.9055743217468262 +4.8480091094970703 +5.1882042884826660 +5.6382384300231934 +4.8150000572204590 +0.3910277485847473 +5.0572400093078613 +5.5277485847473145 +4.6650457382202148 +4.6759514808654785 +4.7857089042663574 +5.0483427047729492 +4.9396271705627441 +5.2885351181030273 +5.3030505180358887 +4.5869984626770020 +6.2849206924438477 +5.8491096496582031 +6.4715962409973145 +6.3023800849914551 +8.6485662460327148 +4.6955161094665527 +5.0494036674499512 +4.5812177658081055 +5.6816711425781250 +5.7937936782836914 +5.2137932777404785 +4.9375176429748535 +4.7167086601257324 +4.7149419784545898 +6.0833797454833984 +5.3406538963317871 +5.4232630729675293 +6.3577394485473633 +5.5230007171630859 +5.4480662345886230 +6.1814389228820801 +5.2411432266235352 +5.8699884414672852 +4.6050200462341309 +5.7609338760375977 +6.8919086456298828 +6.2694129943847656 +6.1602373123168945 +6.3817939758300781 +4.9053206443786621 +5.3625841140747070 +5.7942881584167480 +5.3811945915222168 +5.6116504669189453 +5.2707076072692871 +6.1036705970764160 +7.6385154724121094 +7.2855486869812012 +4.6484279632568359 +4.7291259765625000 +4.8681592941284180 +4.8872857093811035 +4.6461548805236816 +4.6732397079467773 +6.5561218261718750 +5.3896212577819824 +4.7260432243347168 +5.4730834960937500 +5.0081887245178223 +6.6265015602111816 +4.6490197181701660 +5.0085711479187012 +4.7454628944396973 +4.8547773361206055 +0.4291140437126160 +7.2595114707946777 +4.6894874572753906 +5.2229938507080078 +5.3875088691711426 +4.8021769523620605 +6.0919384956359863 +4.8909277915954590 +5.7470574378967285 +4.7908506393432617 +5.0221266746520996 +4.6823525428771973 +5.4638462066650391 +6.8140106201171875 +7.9121394157409668 +6.6939153671264648 +6.6929259300231934 +4.7625074386596680 +5.2596182823181152 +7.5294685363769531 +5.2456588745117188 +4.7609243392944336 +5.0895204544067383 +5.2173542976379395 +4.7181468009948730 +7.5456852912902832 +4.6423220634460449 +4.7669596672058105 +7.0832591056823730 +5.0404973030090332 +4.7301526069641113 +4.8597979545593262 +4.8276677131652832 +4.8978052139282227 +5.7633419036865234 +4.9349360466003418 +5.2792134284973145 +4.7859182357788086 +6.6383867263793945 +6.0122418403625488 +4.7616424560546875 +5.7529492378234863 +4.7229213714599609 +4.7878303527832031 +5.1475620269775391 +7.4529294967651367 +5.7388114929199219 +4.7912478446960449 +4.9034643173217773 +6.2166171073913574 +4.8327665328979492 +4.9667849540710449 +4.5932683944702148 +8.2801065444946289 +5.0380396842956543 +5.2541136741638184 +4.6252899169921875 +4.7852983474731445 +6.0653562545776367 +4.6707191467285156 +4.7248134613037109 +5.0880446434020996 +5.7963485717773438 +6.8114080429077148 +4.9293656349182129 +0.4120784401893616 +4.6214447021484375 +4.9118700027465820 +6.0505189895629883 +4.6808929443359375 +6.8904924392700195 +8.9541301727294922 +6.7261710166931152 +5.5593199729919434 +5.5014295578002930 +6.3921670913696289 +4.9982409477233887 +4.8566403388977051 +4.6410055160522461 +4.9124283790588379 +5.9549393653869629 +6.0247588157653809 +4.6261487007141113 +6.4963736534118652 +4.9316325187683105 +4.6096000671386719 +6.0773196220397949 +4.7601909637451172 +8.7147998809814453 +6.6989488601684570 +4.7950634956359863 +4.6506695747375488 +5.2808742523193359 +5.2016201019287109 +5.4376950263977051 +6.8881120681762695 +5.2732906341552734 +4.7424130439758301 +5.4692730903625488 +7.2792720794677734 +4.6289987564086914 +5.1979603767395020 +6.7641911506652832 +5.1881828308105469 +6.1156525611877441 +4.7053279876708984 +5.2788376808166504 +4.8760290145874023 +6.0454907417297363 +7.3173213005065918 +4.6507511138916016 +4.8864817619323730 +5.1647262573242188 +5.7062554359436035 +4.8188128471374512 +6.5668435096740723 +4.7244000434875488 +5.1784720420837402 +5.2415833473205566 +6.3870325088500977 +4.8761253356933594 +6.7379055023193359 +5.3378367424011230 +5.1858677864074707 +4.9035620689392090 +4.8169889450073242 +5.2868537902832031 +5.9512200355529785 +5.1057124137878418 +5.1102013587951660 +0.4240580797195435 +5.0641913414001465 +5.3746657371520996 +5.8998146057128906 +4.8971610069274902 +5.0034298896789551 +4.9728097915649414 +5.3235807418823242 +4.6009683609008789 +4.7526626586914062 +8.0000514984130859 +4.8038024902343750 +6.7152376174926758 +4.9223423004150391 +4.7782163619995117 +4.6405615806579590 +4.7864475250244141 +5.5237708091735840 +4.7075924873352051 +4.9897551536560059 +5.0463576316833496 +4.6125798225402832 +7.0268368721008301 +4.6073551177978516 +5.8781089782714844 +5.2406544685363770 +4.9191489219665527 +5.3615808486938477 +5.4963665008544922 +5.1293520927429199 +5.2746138572692871 +4.6003336906433105 +6.0575652122497559 +4.8598957061767578 +5.3555192947387695 +8.1490612030029297 +5.3980703353881836 +5.3290109634399414 +4.7263426780700684 +5.2355771064758301 +4.6501646041870117 +7.0129480361938477 +5.0357017517089844 +4.6403903961181641 +11.6659517288208008 +5.4612274169921875 +6.7796869277954102 +5.3056416511535645 +5.2280220985412598 +5.0969872474670410 +6.5822544097900391 +6.4702887535095215 +4.6134600639343262 +6.0335259437561035 +7.1512508392333984 +5.0643386840820312 +8.0262918472290039 +5.4363889694213867 +5.5318212509155273 +5.2053542137145996 +8.3834123611450195 +5.1781859397888184 +5.2574748992919922 +6.7375497817993164 +6.8831715583801270 +0.3952900171279907 +5.7643947601318359 +6.4043450355529785 +5.4497866630554199 +4.5862045288085938 +4.5674386024475098 +5.8186783790588379 +5.1441149711608887 +4.8620166778564453 +4.7687244415283203 +6.0562925338745117 +4.8200078010559082 +6.0930566787719727 +5.2534794807434082 +4.8595938682556152 +4.7243914604187012 +4.9322209358215332 +4.8200888633728027 +5.7913599014282227 +5.6681785583496094 +5.9468750953674316 +6.0915570259094238 +4.7277011871337891 +5.8206529617309570 +4.8647475242614746 +6.8956332206726074 +4.9417934417724609 +5.1376605033874512 +6.1108694076538086 +5.0872826576232910 +4.5816421508789062 +6.9825935363769531 +6.5877752304077148 +4.5664119720458984 +4.6827263832092285 +6.7972383499145508 +5.5088853836059570 +4.8727798461914062 +6.1938695907592773 +5.0991888046264648 +6.3363294601440430 +6.7126059532165527 +4.8022446632385254 +4.9145860671997070 +4.7866325378417969 +5.2374978065490723 +5.0386815071105957 +4.9835762977600098 +4.9627718925476074 +4.6588077545166016 +5.0044751167297363 +4.5590133666992188 +5.7568836212158203 +6.4889879226684570 +5.9881577491760254 +6.3075270652770996 +5.1644511222839355 +6.3116474151611328 +6.2423429489135742 +5.4150528907775879 +5.9136123657226562 +4.6838808059692383 +5.0068979263305664 +5.3173370361328125 +6.6729393005371094 +0.3598697483539581 +5.3881464004516602 +4.6805834770202637 +5.0125169754028320 +5.2873930931091309 +5.0211782455444336 +4.6332345008850098 +4.9673476219177246 +5.2409820556640625 +4.8295702934265137 +6.3146057128906250 +6.4546771049499512 +8.2533674240112305 +5.9821176528930664 +4.7425627708435059 +4.9564342498779297 +5.4991998672485352 +10.1393747329711914 +5.4852252006530762 +6.9371914863586426 +4.6915421485900879 +4.9376401901245117 +4.9485692977905273 +5.0894579887390137 +4.5423455238342285 +5.0802302360534668 +6.0368599891662598 +5.1647882461547852 +8.2119531631469727 +6.8951821327209473 +6.0185985565185547 +5.0822811126708984 +4.8192358016967773 +4.7168111801147461 +4.5853900909423828 +5.7358183860778809 +6.3182682991027832 +5.2187891006469727 +6.7636380195617676 +6.0024600028991699 +10.7311258316040039 +6.3410906791687012 +5.4025430679321289 +5.9591407775878906 +5.6235065460205078 +4.6946692466735840 +4.9507417678833008 +5.3617143630981445 +5.9272484779357910 +4.7238206863403320 +6.0916709899902344 +5.7934966087341309 +8.9954481124877930 +5.3437333106994629 +5.7042641639709473 +5.3350653648376465 +4.6924943923950195 +4.5812287330627441 +6.3378024101257324 +6.1291408538818359 +4.6924562454223633 +4.7446293830871582 +4.7840070724487305 +7.4197010993957520 +4.8270993232727051 +0.4056955873966217 +4.7137737274169922 +5.0685043334960938 +6.5677661895751953 +8.2912969589233398 +6.8287515640258789 +5.3482584953308105 +4.7317924499511719 +5.4349713325500488 +5.7412595748901367 +5.1283769607543945 +5.9867072105407715 +5.5226535797119141 +4.9717836380004883 +4.8373165130615234 +4.8218407630920410 +5.1041359901428223 +5.6614184379577637 +4.7983312606811523 +4.9827580451965332 +5.4379873275756836 +5.2154994010925293 +5.8145923614501953 +5.5953531265258789 +5.2699799537658691 +5.7748842239379883 +6.1580595970153809 +5.5232806205749512 +4.7241535186767578 +4.9255895614624023 +4.8561949729919434 +4.9776916503906250 +4.7032990455627441 +6.1149730682373047 +5.0718016624450684 +4.9844331741333008 +5.0364508628845215 +5.2288312911987305 +5.8177924156188965 +5.8582663536071777 +5.0384988784790039 +7.4948258399963379 +5.7902669906616211 +5.6371965408325195 +4.6064796447753906 +5.3978600502014160 +4.6051931381225586 +4.6234169006347656 +5.1002173423767090 +4.7109580039978027 +5.0326499938964844 +5.8546357154846191 +5.0724616050720215 +7.3778052330017090 +4.7753067016601562 +4.6309080123901367 +5.8419227600097656 +4.8000555038452148 +4.5802569389343262 +4.9781002998352051 +6.0314044952392578 +6.7047681808471680 +5.0658168792724609 +5.8812956809997559 +5.2895574569702148 +0.4181474149227142 +6.4831042289733887 +5.9415559768676758 +4.7579922676086426 +5.7300529479980469 +4.6674027442932129 +7.8504810333251953 +4.8814353942871094 +4.5999598503112793 +5.1050772666931152 +5.4842600822448730 +6.7854390144348145 +5.2073531150817871 +4.6525216102600098 +6.0795550346374512 +4.9699945449829102 +4.7623524665832520 +4.7439780235290527 +6.4448699951171875 +5.8871712684631348 +6.9030137062072754 +4.8083214759826660 +6.5763444900512695 +4.6886916160583496 +5.3358011245727539 +5.9726901054382324 +5.4656786918640137 +5.6000528335571289 +4.7653336524963379 +4.7015900611877441 +6.0232934951782227 +5.0855770111083984 +5.2428355216979980 +4.6451611518859863 +5.2285637855529785 +5.3450312614440918 +5.4037957191467285 +4.7645187377929688 +5.8157572746276855 +4.6357932090759277 +4.8566703796386719 +4.7899956703186035 +5.6428446769714355 +5.8257417678833008 +6.1368641853332520 +5.0023784637451172 +6.2308464050292969 +5.0840096473693848 +8.5337305068969727 +6.0982899665832520 +4.7878661155700684 +5.0471973419189453 +4.9508671760559082 +5.5155582427978516 +4.7517247200012207 +5.2486181259155273 +4.8786754608154297 +5.1468486785888672 +4.9133424758911133 +4.8499031066894531 +5.6648154258728027 +6.2720518112182617 +7.5068778991699219 +4.7557153701782227 +4.7474694252014160 +0.4359841644763947 +4.9182109832763672 +5.3055253028869629 +4.9715700149536133 +8.3313970565795898 +5.1448960304260254 +6.3202848434448242 +4.7135519981384277 +4.7963457107543945 +4.9778890609741211 +4.6058907508850098 +4.9259963035583496 +5.5813689231872559 +4.6488928794860840 +4.9535536766052246 +6.3850393295288086 +5.6877889633178711 +4.8207840919494629 +5.6210889816284180 +4.7253389358520508 +5.4009099006652832 +5.6115980148315430 +9.5045814514160156 +4.6727337837219238 +5.0418605804443359 +4.8364853858947754 +5.2278189659118652 +6.8269810676574707 +4.8406400680541992 +5.2575774192810059 +5.9096956253051758 +4.8555393218994141 +6.5340495109558105 +4.8884825706481934 +5.1092920303344727 +4.9719905853271484 +4.6154961585998535 +6.5245227813720703 +5.7539658546447754 +4.6181440353393555 +5.7298932075500488 +5.9014482498168945 +4.8036689758300781 +5.5911817550659180 +6.0589561462402344 +4.8311052322387695 +4.7917847633361816 +5.0082778930664062 +4.6478333473205566 +4.8399834632873535 +7.4928112030029297 +4.9086380004882812 +4.5655484199523926 +5.6567749977111816 +5.0628080368041992 +6.9057641029357910 +4.7913975715637207 +4.7561769485473633 +6.1761484146118164 +4.6326274871826172 +5.2456398010253906 +5.5172986984252930 +4.7748727798461914 +7.8850460052490234 +7.4150190353393555 +0.4061063230037689 +5.1050586700439453 +6.2299127578735352 +7.7068181037902832 +5.3468108177185059 +5.2501053810119629 +6.0069284439086914 +4.6315898895263672 +5.7608633041381836 +6.0145010948181152 +5.4237236976623535 +5.1905918121337891 +5.1249113082885742 +4.6511497497558594 +7.1634769439697266 +4.6170053482055664 +4.9227347373962402 +5.3087134361267090 +6.1051607131958008 +6.7686553001403809 +5.9284553527832031 +4.8449563980102539 +5.0723919868469238 +5.5947437286376953 +4.6344456672668457 +4.7832732200622559 +5.3434190750122070 +5.5923123359680176 +6.5926580429077148 +4.8185353279113770 +6.2610106468200684 +5.5298099517822266 +4.7139010429382324 +6.1866283416748047 +5.2713809013366699 +4.7283325195312500 +4.9126729965209961 +4.9557313919067383 +4.6825766563415527 +6.3572459220886230 +5.6501722335815430 +6.7517623901367188 +4.6704425811767578 +5.7919106483459473 +4.9887542724609375 +4.7981896400451660 +5.7530622482299805 +14.2744846343994141 +5.1525011062622070 +4.7020726203918457 +4.6835799217224121 +6.0360288619995117 +5.2110357284545898 +5.0143642425537109 +6.1510434150695801 +5.8580293655395508 +4.6280651092529297 +8.6141901016235352 +5.0274095535278320 +5.2864127159118652 +5.9703855514526367 +4.7872848510742188 +4.6583037376403809 +5.5513176918029785 +5.9682478904724121 +0.3646701872348785 +9.7585830688476562 +5.1749606132507324 +8.2325344085693359 +5.5488519668579102 +5.3076128959655762 +5.0231504440307617 +5.7371048927307129 +4.5806918144226074 +5.5840268135070801 +4.5691556930541992 +5.6708841323852539 +5.1322326660156250 +6.8039135932922363 +6.1791915893554688 +4.9783606529235840 +6.7364745140075684 +4.7484259605407715 +4.7565412521362305 +6.9454288482666016 +6.4543714523315430 +5.1405534744262695 +6.4395265579223633 +5.2111549377441406 +7.0001201629638672 +4.5700464248657227 +8.6961698532104492 +6.5548553466796875 +5.4117889404296875 +5.4867157936096191 +5.5996656417846680 +8.0732259750366211 +4.7165007591247559 +4.5497713088989258 +4.9010162353515625 +4.6422109603881836 +5.8203558921813965 +4.5808591842651367 +4.8151664733886719 +5.4465422630310059 +4.7522978782653809 +5.9361276626586914 +9.1476259231567383 +6.3240895271301270 +4.9264545440673828 +5.6799201965332031 +6.1859574317932129 +4.7011528015136719 +5.5303969383239746 +4.8512921333312988 +7.7953896522521973 +4.8245854377746582 +5.8334770202636719 +5.8384265899658203 +6.5455341339111328 +7.4746451377868652 +5.8088908195495605 +6.2285490036010742 +7.9682407379150391 +6.4288268089294434 +4.5595145225524902 +5.4422330856323242 +4.9560904502868652 +6.1825323104858398 +5.4258856773376465 +0.3949948251247406 +6.1844477653503418 +4.7600102424621582 +4.6065096855163574 +5.2660770416259766 +5.7322950363159180 +6.3062920570373535 +4.8107976913452148 +5.0822782516479492 +5.0644707679748535 +7.6086373329162598 +4.7416234016418457 +4.6387205123901367 +7.3698806762695312 +6.0589361190795898 +10.0299720764160156 +4.7291765213012695 +4.5644607543945312 +5.4515018463134766 +8.1862545013427734 +4.7463450431823730 +5.2869668006896973 +4.6268310546875000 +8.4203433990478516 +4.8250064849853516 +4.6504740715026855 +5.1253576278686523 +4.5596179962158203 +5.0543308258056641 +5.1167740821838379 +4.8109049797058105 +4.7885546684265137 +5.5807275772094727 +4.6266107559204102 +5.9298777580261230 +6.0639495849609375 +4.7731742858886719 +5.4263801574707031 +4.6505012512207031 +4.9731392860412598 +8.4021863937377930 +4.6950540542602539 +5.0320954322814941 +7.0316805839538574 +4.9228496551513672 +5.1965975761413574 +4.6551361083984375 +5.1455130577087402 +4.7072014808654785 +7.1013283729553223 +5.2639203071594238 +4.9002184867858887 +5.3424315452575684 +5.3271346092224121 +4.5910243988037109 +4.7978043556213379 +5.3055906295776367 +4.7036924362182617 +5.7959818840026855 +5.1259155273437500 +7.3354020118713379 +5.3352265357971191 +6.7867293357849121 +6.2469215393066406 +5.8818669319152832 +0.4047247171401978 +5.3598628044128418 +8.1593122482299805 +5.4286770820617676 +6.4752063751220703 +6.4285988807678223 +5.4742197990417480 +4.7016811370849609 +4.7486867904663086 +5.7785706520080566 +6.1957902908325195 +4.6845364570617676 +4.7736620903015137 +6.8379421234130859 +5.7093338966369629 +4.6565427780151367 +7.3037667274475098 +4.7479977607727051 +5.8290748596191406 +4.8023085594177246 +4.7710733413696289 +5.1251749992370605 +6.1940145492553711 +4.8291325569152832 +5.6373176574707031 +4.5873031616210938 +5.1744203567504883 +7.3202366828918457 +7.4024543762207031 +5.2460794448852539 +5.4033069610595703 +6.3545813560485840 +5.6423749923706055 +4.6596269607543945 +4.6509876251220703 +4.8651766777038574 +4.9835915565490723 +4.6799921989440918 +5.3592934608459473 +6.6176762580871582 +4.5717506408691406 +5.4121437072753906 +5.4489154815673828 +5.5696434974670410 +5.7145900726318359 +4.9275927543640137 +5.4703197479248047 +4.8907518386840820 +5.6688089370727539 +6.8269872665405273 +5.5030031204223633 +6.3317470550537109 +5.6978225708007812 +6.3177051544189453 +6.2311015129089355 +5.5832324028015137 +5.0927019119262695 +4.8927378654479980 +5.9465522766113281 +5.7463583946228027 +5.5494103431701660 +5.8355450630187988 +5.3466434478759766 +6.5198860168457031 +4.8367967605590820 +0.3742017447948456 +4.5361580848693848 +4.6545367240905762 +5.0784416198730469 +7.6992816925048828 +4.8221731185913086 +5.0157356262207031 +4.8541622161865234 +4.7063989639282227 +5.0499110221862793 +7.0327024459838867 +5.9615955352783203 +4.8957734107971191 +7.0669031143188477 +4.9189052581787109 +5.7150444984436035 +4.9891066551208496 +5.1375279426574707 +5.3672356605529785 +7.8342061042785645 +5.9290199279785156 +4.5813608169555664 +6.4138545989990234 +4.9319424629211426 +4.6484355926513672 +5.9183793067932129 +5.3754005432128906 +5.2353491783142090 +4.6311898231506348 +6.0958647727966309 +5.8051609992980957 +5.2323894500732422 +4.6933083534240723 +5.3030390739440918 +6.5662746429443359 +4.8676562309265137 +5.1824722290039062 +4.6127305030822754 +5.0539035797119141 +6.2170333862304688 +5.5909414291381836 +5.4744529724121094 +4.7247977256774902 +4.9897155761718750 +4.9587893486022949 +4.9567818641662598 +5.2262082099914551 +6.9636659622192383 +5.6286458969116211 +6.4616661071777344 +6.4431734085083008 +5.4713606834411621 +7.7466754913330078 +5.4475975036621094 +4.7876758575439453 +4.6436519622802734 +5.2705044746398926 +4.9750375747680664 +5.4062457084655762 +4.6026344299316406 +5.7568888664245605 +5.7348051071166992 +4.6839475631713867 +4.6906819343566895 +5.6223778724670410 +0.4096570312976837 +4.9263215065002441 +6.1585373878479004 +4.6464543342590332 +5.2106943130493164 +4.8044891357421875 +4.7877902984619141 +4.9538822174072266 +5.0645861625671387 +5.7835292816162109 +4.8444237709045410 +5.8703651428222656 +5.6918025016784668 +5.2619433403015137 +5.8069944381713867 +4.6558885574340820 +4.8392314910888672 +6.2590069770812988 +6.6821541786193848 +7.6778264045715332 +5.4298486709594727 +4.6754221916198730 +5.3359618186950684 +4.6129789352416992 +5.0291709899902344 +5.0932350158691406 +6.2435784339904785 +5.7594976425170898 +4.9622602462768555 +5.2552900314331055 +5.7653241157531738 +9.1894645690917969 +4.9330005645751953 +6.0423030853271484 +6.1186327934265137 +4.5744414329528809 +5.4577217102050781 +4.7893776893615723 +5.8442463874816895 +5.3635578155517578 +4.9919791221618652 +4.7172589302062988 +6.1456990242004395 +7.2591152191162109 +4.6989321708679199 +5.0378251075744629 +4.7262907028198242 +5.4278945922851562 +4.7860260009765625 +5.1754927635192871 +4.8412899971008301 +4.7765078544616699 +4.7960634231567383 +5.1692485809326172 +5.9100646972656250 +4.6854262351989746 +4.7128438949584961 +4.6299247741699219 +5.5877137184143066 +4.7450432777404785 +6.1716308593750000 +4.8287701606750488 +6.6329231262207031 +5.9873075485229492 +5.6451835632324219 +0.3974435627460480 +5.6733803749084473 +4.5702481269836426 +6.4280414581298828 +4.5981750488281250 +6.8263425827026367 +4.7940688133239746 +5.5387578010559082 +8.2936716079711914 +5.0419478416442871 +8.1035070419311523 +4.9604024887084961 +4.8356404304504395 +4.7345848083496094 +5.0140457153320312 +5.0196800231933594 +4.9646611213684082 +7.4019031524658203 +7.7673110961914062 +5.1041646003723145 +7.0201478004455566 +5.7623000144958496 +4.8944516181945801 +6.1167612075805664 +4.7466793060302734 +5.6224699020385742 +4.5868315696716309 +8.1019716262817383 +4.7110338211059570 +5.6133108139038086 +6.3438701629638672 +4.8302464485168457 +5.2624764442443848 +5.1019258499145508 +5.9097094535827637 +5.1109399795532227 +6.3914289474487305 +6.9858369827270508 +5.8971815109252930 +6.5843124389648438 +6.4069347381591797 +5.8718781471252441 +5.6595621109008789 +5.4294099807739258 +4.6236162185668945 +5.0648880004882812 +6.6419744491577148 +6.1227221488952637 +4.7208456993103027 +4.7820820808410645 +5.7561111450195312 +4.9072141647338867 +6.6658358573913574 +5.7133169174194336 +4.7087593078613281 +4.6109962463378906 +7.3435034751892090 +4.7639088630676270 +4.9081153869628906 +4.8216452598571777 +6.3007211685180664 +4.5660886764526367 +4.8094816207885742 +5.4678645133972168 +6.5595140457153320 +0.3934434652328491 +4.8072276115417480 +5.1883397102355957 +4.5656118392944336 +7.2123813629150391 +4.8062629699707031 +5.7125668525695801 +6.2196893692016602 +4.8163394927978516 +7.1559944152832031 +6.1297807693481445 +5.7964429855346680 +5.2272090911865234 +5.1182317733764648 +5.5878691673278809 +5.3988890647888184 +5.8895497322082520 +7.2546167373657227 +5.5789322853088379 +5.3220977783203125 +4.5560851097106934 +5.7585163116455078 +4.8896994590759277 +4.5802431106567383 +4.5651078224182129 +6.0046982765197754 +4.7829203605651855 +5.7724051475524902 +6.2026052474975586 +6.8213338851928711 +5.0546321868896484 +5.8995180130004883 +6.0970773696899414 +6.1699867248535156 +4.5736727714538574 +4.7891573905944824 +5.4640674591064453 +6.5434141159057617 +4.5668425559997559 +6.3145003318786621 +4.6571283340454102 +5.5139589309692383 +5.6401505470275879 +4.7843399047851562 +4.6141848564147949 +4.9364986419677734 +5.2252616882324219 +5.0991792678833008 +4.5601730346679688 +5.8923459053039551 +5.1518659591674805 +5.3514342308044434 +4.9397821426391602 +6.2754836082458496 +4.6510267257690430 +4.6550955772399902 +5.1338548660278320 +4.9373130798339844 +5.4650263786315918 +7.7039995193481445 +4.5978794097900391 +5.6021347045898438 +5.4705128669738770 +5.8226518630981445 +6.9271745681762695 +0.3862540423870087 +5.4503722190856934 +6.6131954193115234 +4.6362481117248535 +5.7390170097351074 +5.9416704177856445 +5.0283584594726562 +6.9443635940551758 +4.5679821968078613 +5.1736435890197754 +4.7780103683471680 +7.0412845611572266 +4.5700407028198242 +5.9549312591552734 +5.7702322006225586 +5.1245408058166504 +7.5537247657775879 +6.1391525268554688 +6.0909237861633301 +5.6251697540283203 +4.8850946426391602 +4.6899466514587402 +6.1921491622924805 +6.2006435394287109 +7.4169497489929199 +5.8195781707763672 +6.7673449516296387 +4.7299385070800781 +5.6741094589233398 +4.7952132225036621 +4.9185757637023926 +7.6476373672485352 +4.7505855560302734 +5.3017835617065430 +5.2983326911926270 +6.5050830841064453 +4.5886445045471191 +5.4419608116149902 +4.6504688262939453 +4.5357894897460938 +7.7401456832885742 +5.9381785392761230 +4.9300827980041504 +5.1872901916503906 +5.9727835655212402 +6.8180170059204102 +5.8813004493713379 +6.2083435058593750 +5.2564506530761719 +5.2102780342102051 +5.2301964759826660 +5.9852442741394043 +4.9390873908996582 +4.9071364402770996 +6.5381445884704590 +5.1674180030822754 +5.9694223403930664 +5.2604942321777344 +6.1342430114746094 +5.0257596969604492 +5.0525960922241211 +6.0055069923400879 +4.5529079437255859 +6.9160661697387695 +5.7300968170166016 +0.3381691277027130 +7.6872758865356445 +4.7820410728454590 +6.9600753784179688 +5.0547494888305664 +4.7831139564514160 +5.7672924995422363 +4.5897946357727051 +4.5354962348937988 +6.7181134223937988 +4.9860663414001465 +7.8761048316955566 +6.4135146141052246 +4.8995432853698730 +5.0810213088989258 +6.1545495986938477 +5.1462488174438477 +5.6133866310119629 +5.3287220001220703 +5.8766150474548340 +6.0474653244018555 +7.0571608543395996 +5.1757593154907227 +4.6096296310424805 +5.5009155273437500 +4.9747705459594727 +5.5128808021545410 +5.0029444694519043 +7.3644337654113770 +5.9829177856445312 +4.9626364707946777 +7.6643252372741699 +6.2092342376708984 +8.7969999313354492 +5.1058440208435059 +5.5422258377075195 +4.9460091590881348 +5.7295808792114258 +6.2309646606445312 +5.1851000785827637 +5.2972164154052734 +5.5691776275634766 +4.6341643333435059 +6.9226918220520020 +5.3575062751770020 +5.1792235374450684 +5.5233573913574219 +4.6802635192871094 +6.5047130584716797 +5.3312020301818848 +5.6879744529724121 +4.9521703720092773 +4.6778411865234375 +5.5033926963806152 +4.5542054176330566 +5.0380787849426270 +5.3232307434082031 +4.8677787780761719 +4.9975519180297852 +6.1859245300292969 +6.0204973220825195 +5.2550587654113770 +5.1442179679870605 +7.0964484214782715 +7.7938790321350098 +0.3916929662227631 +4.5754213333129883 +4.9724192619323730 +4.9219093322753906 +5.9776282310485840 +5.0450940132141113 +4.7580537796020508 +11.2827196121215820 +10.0215578079223633 +5.8444156646728516 +4.8028140068054199 +8.8963136672973633 +6.5898265838623047 +4.8912634849548340 +4.6338324546813965 +4.6843299865722656 +8.7495622634887695 +4.8026757240295410 +4.7616772651672363 +4.6971349716186523 +5.3072457313537598 +6.1559205055236816 +4.9513006210327148 +6.3397798538208008 +5.3216037750244141 +4.5575485229492188 +4.5892767906188965 +6.0222187042236328 +4.6766672134399414 +5.3228473663330078 +5.7413115501403809 +5.8538632392883301 +6.3630104064941406 +5.2898855209350586 +4.9520435333251953 +6.4119658470153809 +8.2125482559204102 +5.0891308784484863 +4.7355022430419922 +4.6224126815795898 +4.7320852279663086 +5.0773429870605469 +5.1886882781982422 +5.3597173690795898 +6.2766690254211426 +4.7439279556274414 +5.4249596595764160 +4.5991592407226562 +5.0134167671203613 +4.9820804595947266 +5.1634721755981445 +4.9316992759704590 +5.6038203239440918 +5.3321704864501953 +6.2574629783630371 +4.8414363861083984 +9.6141481399536133 +5.2403016090393066 +6.3577647209167480 +8.3833885192871094 +5.2473597526550293 +5.4026885032653809 +6.3123555183410645 +5.5125808715820312 +4.6030950546264648 +0.3857631981372833 +4.8747730255126953 +5.3174371719360352 +7.1487159729003906 +6.4754366874694824 +5.6121754646301270 +4.7345337867736816 +4.7682967185974121 +5.2789278030395508 +6.5601444244384766 +5.5856266021728516 +7.2176761627197266 +5.4294614791870117 +4.5933609008789062 +5.4659967422485352 +5.5419297218322754 +7.3033351898193359 +5.3254446983337402 +4.5824832916259766 +4.8772282600402832 +5.8144865036010742 +6.2667393684387207 +4.7738394737243652 +5.6742377281188965 +4.9846525192260742 +7.3049931526184082 +4.7347278594970703 +5.9963331222534180 +4.9337420463562012 +5.4286994934082031 +4.8354372978210449 +5.7648739814758301 +4.7786035537719727 +5.9020314216613770 +5.3570189476013184 +5.2322444915771484 +6.2287678718566895 +6.4039921760559082 +4.9590129852294922 +6.2690539360046387 +7.1525607109069824 +5.5849370956420898 +5.4391565322875977 +5.1736526489257812 +4.7845444679260254 +4.6602077484130859 +5.1197638511657715 +4.6289992332458496 +6.1162705421447754 +8.8260307312011719 +4.9212613105773926 +4.7264108657836914 +5.0899844169616699 +4.7673840522766113 +5.4592275619506836 +5.9028220176696777 +5.5087051391601562 +5.3644857406616211 +5.3744492530822754 +5.0635628700256348 +4.7151408195495605 +4.7811546325683594 +4.8367452621459961 +7.0568594932556152 +5.4541192054748535 +0.4060233235359192 +4.9222660064697266 +4.6101298332214355 +4.7971582412719727 +6.3429217338562012 +4.9726681709289551 +5.3114724159240723 +4.6945800781250000 +5.4255843162536621 +4.8762121200561523 +5.5156278610229492 +4.5863347053527832 +5.2156300544738770 +6.0592608451843262 +5.2379817962646484 +5.6446380615234375 +4.6393089294433594 +4.5946707725524902 +6.2076935768127441 +5.4260706901550293 +5.3840932846069336 +5.4678230285644531 +4.7917847633361816 +5.4089117050170898 +5.9604053497314453 +8.4994916915893555 +5.3197360038757324 +5.2818450927734375 +6.7017793655395508 +9.8565273284912109 +4.7365355491638184 +5.0455017089843750 +6.4410719871520996 +4.8610587120056152 +4.6070218086242676 +4.6095261573791504 +5.0725736618041992 +5.3172082901000977 +4.8931603431701660 +4.7738847732543945 +6.4432749748229980 +5.4307899475097656 +5.0302524566650391 +4.8799815177917480 +4.7049727439880371 +5.5908341407775879 +4.6000699996948242 +4.6527886390686035 +6.1732997894287109 +5.1374955177307129 +4.9721183776855469 +4.7010107040405273 +6.3354387283325195 +5.2703971862792969 +5.1728291511535645 +7.7287011146545410 +6.3796958923339844 +4.5928878784179688 +4.6629185676574707 +6.5643248558044434 +4.7113833427429199 +5.0080165863037109 +4.6678953170776367 +5.7798986434936523 +4.6404838562011719 +0.4263936877250671 +5.2953872680664062 +6.0175180435180664 +7.5181202888488770 +5.0535869598388672 +4.9789986610412598 +5.5100231170654297 +5.1356120109558105 +5.4038372039794922 +5.2793798446655273 +5.6074686050415039 +5.1400957107543945 +6.6463537216186523 +5.7985515594482422 +5.1544847488403320 +6.0252223014831543 +5.9411926269531250 +6.3541021347045898 +4.8184299468994141 +5.9538922309875488 +6.1533961296081543 +5.1072716712951660 +5.5755352973937988 +4.8652796745300293 +6.4143071174621582 +4.8988046646118164 +4.7001094818115234 +6.1161913871765137 +4.9889016151428223 +5.9374823570251465 +4.6239628791809082 +4.8658232688903809 +5.2556018829345703 +4.9542636871337891 +5.0403075218200684 +5.0239434242248535 +5.3266243934631348 +4.6907634735107422 +4.7893619537353516 +6.3739590644836426 +4.9992570877075195 +6.2110137939453125 +4.9590349197387695 +4.7283434867858887 +6.3172774314880371 +4.7722859382629395 +4.8263320922851562 +4.6963281631469727 +5.5039358139038086 +5.1977772712707520 +4.6733617782592773 +4.6605482101440430 +5.2896575927734375 +5.1678681373596191 +4.9808616638183594 +5.0606713294982910 +4.8569211959838867 +5.2285704612731934 +5.4942507743835449 +6.4006052017211914 +8.0388822555541992 +5.0668382644653320 +5.0886383056640625 +5.1853027343750000 +4.7892217636108398 +0.4870155453681946 +4.8085331916809082 +4.8280811309814453 +4.7895345687866211 +4.8214240074157715 +4.7927818298339844 +4.6973233222961426 +5.7502865791320801 +5.0307731628417969 +5.0074329376220703 +4.7604975700378418 +5.4574003219604492 +7.4935312271118164 +5.4252581596374512 +5.0069909095764160 +5.0268220901489258 +4.6731262207031250 +5.4550132751464844 +4.6817011833190918 +4.6719326972961426 +5.4488310813903809 +6.2690958976745605 +5.0983657836914062 +5.5623259544372559 +5.3560628890991211 +4.7832841873168945 +5.2004156112670898 +4.7085695266723633 +7.6280179023742676 +5.5428352355957031 +4.7299633026123047 +5.3435397148132324 +4.8278651237487793 +4.8711128234863281 +5.0853118896484375 +5.3115744590759277 +4.7213988304138184 +4.6618528366088867 +7.1624975204467773 +5.1070775985717773 +6.2191901206970215 +5.2003941535949707 +5.9291572570800781 +6.2331032752990723 +5.1471996307373047 +5.7027993202209473 +6.4472308158874512 +5.7534732818603516 +5.3123164176940918 +4.9110603332519531 +6.7301626205444336 +4.6927781105041504 +9.3703966140747070 +4.8490042686462402 +5.6932740211486816 +5.5053668022155762 +5.2396693229675293 +6.6532826423645020 +10.5882472991943359 +4.5979127883911133 +4.8827133178710938 +4.9999399185180664 +5.2340602874755859 +4.9430694580078125 +4.5932650566101074 +0.3993696868419647 +4.7750401496887207 +4.7985715866088867 +5.3253769874572754 +4.7445921897888184 +7.6065444946289062 +5.2174992561340332 +4.5701613426208496 +5.3118944168090820 +4.8564934730529785 +10.4062204360961914 +5.5718641281127930 +5.6718592643737793 +4.6719713211059570 +5.0733852386474609 +5.7013645172119141 +5.5695357322692871 +4.8306002616882324 +7.3294839859008789 +4.7989673614501953 +5.9220786094665527 +5.4082517623901367 +6.5870103836059570 +4.8450622558593750 +4.9471302032470703 +5.2282691001892090 +5.3363661766052246 +5.7158699035644531 +6.7693285942077637 +4.7330150604248047 +5.0237174034118652 +5.1821079254150391 +5.1387200355529785 +9.0026369094848633 +7.9540767669677734 +5.2637758255004883 +4.6506938934326172 +5.1853170394897461 +4.7562804222106934 +5.4072742462158203 +4.6275720596313477 +5.7618532180786133 +4.7483415603637695 +5.2995028495788574 +5.2709741592407227 +5.1981334686279297 +5.9064087867736816 +5.4539465904235840 +7.1200685501098633 +4.7207798957824707 +5.9954323768615723 +6.4907016754150391 +5.3534426689147949 +6.2876749038696289 +6.2208228111267090 +4.9755959510803223 +4.7285504341125488 +4.8581237792968750 +4.7966089248657227 +4.5927634239196777 +4.7558374404907227 +4.5985612869262695 +4.6917748451232910 +5.4526634216308594 +8.3837413787841797 +0.4314699172973633 +4.9134068489074707 +6.9895291328430176 +4.9661664962768555 +5.3335108757019043 +9.2695140838623047 +4.6632709503173828 +5.0977325439453125 +5.2226243019104004 +4.7288646697998047 +5.6250319480895996 +4.6759276390075684 +4.6631035804748535 +7.7840838432312012 +5.2436623573303223 +6.2928099632263184 +4.6091070175170898 +4.6684684753417969 +6.0185909271240234 +5.2421207427978516 +4.8557658195495605 +5.3864798545837402 +4.7817087173461914 +5.3849883079528809 +5.5709824562072754 +6.9608230590820312 +5.1332015991210938 +4.8768768310546875 +4.7786726951599121 +5.2282495498657227 +5.0109024047851562 +4.7697644233703613 +4.9027085304260254 +6.0060400962829590 +4.6372942924499512 +4.7312641143798828 +5.8133730888366699 +4.6107511520385742 +7.6973400115966797 +4.7751460075378418 +7.0231733322143555 +5.3973083496093750 +5.2624025344848633 +5.5357084274291992 +4.9111828804016113 +6.8807234764099121 +4.8500351905822754 +4.6617445945739746 +5.3059663772583008 +5.0412983894348145 +4.6372838020324707 +5.7045645713806152 +7.6829919815063477 +5.2692542076110840 +5.9762940406799316 +5.0319890975952148 +5.1138367652893066 +6.2750496864318848 +5.4877686500549316 +5.2484593391418457 +4.8277387619018555 +4.8340954780578613 +5.3270359039306641 +4.6859879493713379 +7.3372960090637207 +0.4357778131961823 +5.6150770187377930 +4.7082438468933105 +8.7972173690795898 +5.0466847419738770 +5.3772501945495605 +4.6353440284729004 +5.0254330635070801 +5.5872406959533691 +7.0514254570007324 +6.5702252388000488 +5.2583827972412109 +4.6366930007934570 +4.9149098396301270 +6.0742902755737305 +5.8651194572448730 +4.9258809089660645 +5.1604862213134766 +4.8096880912780762 +5.7895593643188477 +4.6877675056457520 +5.1009130477905273 +4.8922042846679688 +4.8318004608154297 +4.6095843315124512 +6.1572976112365723 +5.2787680625915527 +4.7327275276184082 +5.0999236106872559 +5.0933618545532227 +5.2889981269836426 +5.0022172927856445 +6.3092160224914551 +5.3697814941406250 +5.2807159423828125 +4.8816881179809570 +5.3241872787475586 +5.9414501190185547 +4.7112545967102051 +5.1328029632568359 +4.6453108787536621 +5.7124929428100586 +5.7877421379089355 +5.1336712837219238 +5.2903394699096680 +4.8736195564270020 +5.4805870056152344 +5.3429188728332520 +4.8716211318969727 +5.4595384597778320 +4.6754369735717773 +4.7665333747863770 +5.0394105911254883 +4.7561626434326172 +5.1490745544433594 +5.0707845687866211 +6.5110673904418945 +4.7258801460266113 +5.7084002494812012 +4.7372961044311523 +5.2224879264831543 +4.7718906402587891 +4.9585380554199219 +5.0170021057128906 +4.8717317581176758 +0.4475215971469879 +4.7245116233825684 +4.9589962959289551 +7.5129437446594238 +5.5139341354370117 +6.2577023506164551 +4.6103978157043457 +5.7167468070983887 +4.6564397811889648 +7.7681875228881836 +7.1081008911132812 +4.6241550445556641 +5.3127551078796387 +5.6272592544555664 +4.6459012031555176 +5.2487707138061523 +5.3961257934570312 +5.8407354354858398 +5.8668956756591797 +5.8036384582519531 +5.7151913642883301 +4.8665175437927246 +4.6609430313110352 +4.9525213241577148 +5.1916604042053223 +5.4816856384277344 +4.8570365905761719 +5.2090520858764648 +5.5159235000610352 +4.9247436523437500 +4.9960227012634277 +5.7045383453369141 +6.3855085372924805 +6.1173067092895508 +4.6876587867736816 +4.5707130432128906 +6.7404065132141113 +6.5128512382507324 +5.6410946846008301 +5.2455444335937500 +4.5542716979980469 +4.6628584861755371 +5.0252485275268555 +5.4397745132446289 +6.4555211067199707 +4.9536595344543457 +5.1713948249816895 +4.8819136619567871 +6.0780291557312012 +6.1417465209960938 +5.6904010772705078 +5.4468822479248047 +6.6843862533569336 +4.6915073394775391 +4.6832065582275391 +4.8366136550903320 +4.8366255760192871 +4.7054843902587891 +4.6503858566284180 +5.0349617004394531 +7.8313999176025391 +6.1887879371643066 +7.0222368240356445 +5.7344927787780762 +5.3155813217163086 +0.3783260881900787 +6.3664846420288086 +6.3653197288513184 +5.0218129158020020 +5.5301575660705566 +5.2332944869995117 +5.3218097686767578 +5.1592459678649902 +5.3127646446228027 +4.6001024246215820 +5.7995085716247559 +6.9350123405456543 +4.9088253974914551 +4.7943816184997559 +5.5255088806152344 +7.1470427513122559 +4.7665390968322754 +5.0540442466735840 +5.6313238143920898 +6.4506149291992188 +6.9510760307312012 +4.6495966911315918 +5.6983013153076172 +4.8595848083496094 +4.9163494110107422 +7.1582112312316895 +5.9980030059814453 +4.7054319381713867 +7.3319482803344727 +5.1152639389038086 +5.2908701896667480 +6.0040707588195801 +5.2685527801513672 +5.6628470420837402 +4.5701680183410645 +5.2939796447753906 +4.6370935440063477 +5.0377659797668457 +5.3096413612365723 +4.5996603965759277 +5.0458064079284668 +5.8914361000061035 +5.0132551193237305 +4.6916399002075195 +6.5177292823791504 +4.6245150566101074 +4.8943753242492676 +5.4217243194580078 +8.2495403289794922 +4.6310625076293945 +5.2799348831176758 +5.1460037231445312 +5.2004480361938477 +4.8991813659667969 +4.9551601409912109 +6.2773079872131348 +5.8464341163635254 +4.6920747756958008 +4.5792713165283203 +5.4108395576477051 +7.2013101577758789 +4.8587837219238281 +6.7709741592407227 +5.0762910842895508 +5.9641795158386230 +0.4095428287982941 +7.0014572143554688 +5.1763906478881836 +5.5030903816223145 +4.8889627456665039 +5.2233262062072754 +5.9910659790039062 +6.1149730682373047 +7.2363090515136719 +5.2384700775146484 +5.8369517326354980 +4.5986838340759277 +5.7151141166687012 +5.8155765533447266 +6.3246989250183105 +4.6481633186340332 +5.6968317031860352 +5.7069363594055176 +4.6426696777343750 +4.8179459571838379 +6.3861413002014160 +4.6507282257080078 +5.7370276451110840 +4.6675901412963867 +5.9207596778869629 +5.1985735893249512 +4.7257428169250488 +5.6495885848999023 +5.7369952201843262 +4.9236373901367188 +5.5661234855651855 +4.9954075813293457 +4.7086529731750488 +5.5184383392333984 +8.4895515441894531 +9.1111459732055664 +6.4112896919250488 +4.6951456069946289 +4.8753209114074707 +4.5836300849914551 +5.7494530677795410 +4.7020587921142578 +5.0208234786987305 +5.0777597427368164 +6.2712841033935547 +5.4185333251953125 +5.3233823776245117 +4.7128725051879883 +5.4994745254516602 +6.0876531600952148 +4.6118249893188477 +6.0735845565795898 +5.5978541374206543 +4.5911436080932617 +7.7199788093566895 +4.7628350257873535 +4.9714784622192383 +5.6035141944885254 +5.3356375694274902 +4.7882833480834961 +5.5399308204650879 +4.9694528579711914 +8.0822649002075195 +5.8434610366821289 +5.6829266548156738 +0.3906819224357605 +5.1269245147705078 +4.6313166618347168 +5.5901613235473633 +5.5508885383605957 +5.1632852554321289 +5.8609428405761719 +4.7426843643188477 +4.7147226333618164 +4.9643793106079102 +8.4729833602905273 +5.1231956481933594 +4.6000003814697266 +4.7073187828063965 +5.2683300971984863 +5.9887380599975586 +6.2993831634521484 +5.3278641700744629 +5.3965406417846680 +4.5809779167175293 +7.7666096687316895 +6.0917835235595703 +5.6029062271118164 +6.0088372230529785 +8.2008609771728516 +5.1328916549682617 +5.3854756355285645 +4.6794610023498535 +6.3366508483886719 +4.8563146591186523 +8.2106790542602539 +5.4974060058593750 +7.1889944076538086 +5.3617315292358398 +4.9988989830017090 +5.9538540840148926 +9.0311079025268555 +5.9635791778564453 +7.1137623786926270 +5.1309914588928223 +4.6381974220275879 +5.5582709312438965 +4.9549942016601562 +5.9559054374694824 +5.2112693786621094 +7.4486699104309082 +7.0503039360046387 +4.6630935668945312 +4.8933582305908203 +4.7281584739685059 +4.7588329315185547 +4.7592945098876953 +5.3360877037048340 +5.2927093505859375 +4.5970249176025391 +4.7092957496643066 +5.8653473854064941 +4.8884630203247070 +4.6742897033691406 +5.2573947906494141 +5.2451238632202148 +6.3479585647583008 +7.8236374855041504 +4.8969969749450684 +5.8602313995361328 +0.3984481394290924 +5.4640297889709473 +5.4668030738830566 +4.7841482162475586 +5.2311029434204102 +6.0136251449584961 +4.6663589477539062 +5.5838069915771484 +7.2498478889465332 +5.1520547866821289 +5.0624098777770996 +4.9730615615844727 +4.9803390502929688 +6.0629119873046875 +4.8574233055114746 +4.5814061164855957 +6.6031546592712402 +5.0041327476501465 +4.9239144325256348 +5.9514989852905273 +4.6135859489440918 +4.8323602676391602 +6.5144262313842773 +5.4918532371520996 +4.6516880989074707 +5.1212477684020996 +5.0657162666320801 +5.7323822975158691 +5.1434197425842285 +8.4052457809448242 +4.8427834510803223 +5.4134612083435059 +5.7204465866088867 +4.9497413635253906 +5.5751190185546875 +4.6552929878234863 +5.0313153266906738 +6.2407441139221191 +6.2114052772521973 +4.6627788543701172 +4.7697215080261230 +5.6450595855712891 +7.5839657783508301 +4.9216279983520508 +7.6230802536010742 +6.3066277503967285 +5.5350027084350586 +4.8118729591369629 +4.9018435478210449 +4.6884493827819824 +6.5030803680419922 +5.3884201049804688 +5.5286774635314941 +4.7170834541320801 +5.0282869338989258 +4.9543151855468750 +6.0231022834777832 +4.6143832206726074 +4.7867889404296875 +4.6838779449462891 +4.6992077827453613 +4.9396967887878418 +8.3436126708984375 +5.9273972511291504 +5.4916677474975586 +0.4098384976387024 +4.7387981414794922 +8.1759805679321289 +4.7970700263977051 +4.9968619346618652 +5.8486676216125488 +4.6407170295715332 +4.8606042861938477 +8.4210653305053711 +5.6156225204467773 +5.0156564712524414 +5.0506405830383301 +5.6727542877197266 +5.5000410079956055 +4.6460447311401367 +5.6965703964233398 +4.8075499534606934 +4.9430565834045410 +6.9769620895385742 +4.6757597923278809 +6.8313579559326172 +5.8836417198181152 +6.5388879776000977 +4.6325459480285645 +5.0701198577880859 +5.2873029708862305 +5.9217529296875000 +4.7399091720581055 +4.6138477325439453 +5.8016052246093750 +5.8594913482666016 +8.8419246673583984 +4.9629855155944824 +5.2075610160827637 +5.7321796417236328 +5.1303873062133789 +8.4686479568481445 +5.1608610153198242 +9.2221002578735352 +7.1644253730773926 +7.3700456619262695 +4.7969732284545898 +5.1672120094299316 +5.0529851913452148 +4.9100432395935059 +4.5831651687622070 +5.3385910987854004 +4.9179043769836426 +5.3623385429382324 +4.6014003753662109 +5.4829397201538086 +4.9529447555541992 +5.5240087509155273 +4.7261109352111816 +4.7962079048156738 +6.0250515937805176 +4.9905538558959961 +4.9259448051452637 +4.8594756126403809 +6.8145174980163574 +4.6979308128356934 +4.6379075050354004 +5.5800981521606445 +4.6158056259155273 +4.5969038009643555 +0.4153261184692383 +4.6543912887573242 +5.4159998893737793 +6.0671863555908203 +5.8594779968261719 +4.7694997787475586 +7.5688099861145020 +4.6087808609008789 +5.8377895355224609 +5.4457163810729980 +4.9599366188049316 +6.3575158119201660 +7.9428920745849609 +5.3426423072814941 +5.2784481048583984 +5.6800107955932617 +6.2790446281433105 +5.1556487083435059 +4.9930706024169922 +5.9817972183227539 +5.5018062591552734 +4.7514033317565918 +5.9659848213195801 +6.1416754722595215 +5.9763607978820801 +4.7448263168334961 +4.7135639190673828 +5.2204604148864746 +4.5880522727966309 +5.9484624862670898 +4.8059358596801758 +4.9272747039794922 +5.4750680923461914 +4.9742259979248047 +5.9788770675659180 +4.6746063232421875 +5.6732873916625977 +5.8755288124084473 +4.8866057395935059 +5.0102782249450684 +5.3021478652954102 +5.1954669952392578 +6.1839194297790527 +4.8817882537841797 +5.5221252441406250 +4.7670731544494629 +4.6331515312194824 +5.4958105087280273 +4.8194980621337891 +7.6663050651550293 +4.8101692199707031 +4.7673993110656738 +6.0452566146850586 +5.2892851829528809 +6.3931541442871094 +4.8405756950378418 +7.7322649955749512 +5.9233155250549316 +8.9274673461914062 +4.6292705535888672 +4.9854850769042969 +5.7322392463684082 +6.0180912017822266 +5.1229681968688965 +5.3354024887084961 +0.3969305157661438 +5.1903581619262695 +4.6327013969421387 +5.4923710823059082 +9.0790224075317383 +5.8874702453613281 +4.5563039779663086 +4.6806797981262207 +7.6166868209838867 +4.8504180908203125 +6.8425879478454590 +4.9170517921447754 +5.0266299247741699 +5.2736301422119141 +5.1338214874267578 +5.1888780593872070 +6.2179055213928223 +4.5783028602600098 +7.0431399345397949 +5.3264164924621582 +7.2064881324768066 +4.9434347152709961 +4.6948342323303223 +4.6127452850341797 +4.7445249557495117 +4.7677702903747559 +4.6286983489990234 +4.7236857414245605 +5.3209166526794434 +6.9301061630249023 +6.7281913757324219 +5.1331896781921387 +5.2096395492553711 +5.7504954338073730 +6.7452573776245117 +4.5871739387512207 +5.8145236968994141 +5.2516775131225586 +5.7235388755798340 +5.2316226959228516 +6.7202882766723633 +6.8791027069091797 +6.0095767974853516 +4.7116885185241699 +5.1976089477539062 +4.6517891883850098 +5.7202463150024414 +5.7406516075134277 +5.6312022209167480 +4.7706212997436523 +4.8397316932678223 +5.5189838409423828 +4.5857629776000977 +4.6024441719055176 +7.7578010559082031 +4.6732392311096191 +8.8545846939086914 +4.7917933464050293 +5.5321702957153320 +4.9384627342224121 +4.8680033683776855 +6.7679305076599121 +5.1050190925598145 +7.0361623764038086 +6.4196844100952148 +0.4254818558692932 +5.4532637596130371 +5.7095417976379395 +5.0053968429565430 +5.5161247253417969 +4.8340659141540527 +5.4170408248901367 +4.6945385932922363 +6.1335496902465820 +4.6340694427490234 +6.0547122955322266 +4.6171402931213379 +5.0859813690185547 +5.0576491355895996 +4.6653075218200684 +4.9561071395874023 +4.8302497863769531 +7.6355786323547363 +5.6923642158508301 +5.6002292633056641 +5.2752041816711426 +5.2741217613220215 +4.9217481613159180 +7.0033764839172363 +5.4585413932800293 +6.6445660591125488 +7.9869379997253418 +7.2849063873291016 +5.0609941482543945 +4.9764089584350586 +5.3982005119323730 +5.9649662971496582 +4.6843137741088867 +5.6394867897033691 +7.1169447898864746 +4.9873151779174805 +6.9653925895690918 +5.6885247230529785 +6.5521054267883301 +4.9082717895507812 +4.5813488960266113 +5.3846721649169922 +5.8236236572265625 +4.9713392257690430 +4.8112063407897949 +6.0765643119812012 +4.8033366203308105 +4.5871429443359375 +6.4195647239685059 +4.9646797180175781 +6.2538928985595703 +7.0804181098937988 +5.4137039184570312 +5.3533883094787598 +4.5672526359558105 +5.1635165214538574 +4.9481825828552246 +4.9722318649291992 +4.7510614395141602 +4.7317705154418945 +5.8516559600830078 +6.1993412971496582 +5.2099280357360840 +5.4476304054260254 +4.7594342231750488 +0.3913832306861877 +5.7925796508789062 +5.0642066001892090 +4.5578103065490723 +5.9154334068298340 +5.6516261100769043 +6.2008037567138672 +4.9055848121643066 +4.6233768463134766 +6.7477793693542480 +5.1046819686889648 +4.9249577522277832 +5.8238439559936523 +4.7591691017150879 +4.7319903373718262 +6.1791253089904785 +5.2644100189208984 +4.5756826400756836 +6.0627961158752441 +5.5460076332092285 +4.7201008796691895 +5.2450385093688965 +5.7784295082092285 +4.5639395713806152 +5.1871685981750488 +7.1014943122863770 +6.4170918464660645 +4.9326682090759277 +5.7102746963500977 +5.3452839851379395 +5.6262440681457520 +4.6001973152160645 +7.5509834289550781 +7.5641713142395020 +5.1183705329895020 +4.7203803062438965 +4.7665581703186035 +4.7715206146240234 +6.7393608093261719 +8.5506134033203125 +4.6110548973083496 +5.0349092483520508 +4.5849366188049316 +5.9991488456726074 +5.8085727691650391 +6.1518502235412598 +4.8218507766723633 +5.0717391967773438 +5.7668490409851074 +4.6067161560058594 +5.2581553459167480 +8.6517419815063477 +4.5684170722961426 +5.5423359870910645 +7.5644493103027344 +4.9811654090881348 +5.5513825416564941 +6.7176413536071777 +5.2166175842285156 +8.6840572357177734 +4.8237633705139160 +5.2924604415893555 +4.7295308113098145 +4.6825051307678223 +5.5757975578308105 +0.3988853096961975 +8.0508842468261719 +4.8294196128845215 +4.7606811523437500 +4.8372216224670410 +9.5709638595581055 +5.8324675559997559 +5.3892722129821777 +5.1811280250549316 +5.0414724349975586 +5.1379089355468750 +5.5580735206604004 +4.6936821937561035 +5.0588116645812988 +6.1902680397033691 +4.7223682403564453 +6.1601805686950684 +4.7193198204040527 +6.7275476455688477 +7.6931581497192383 +4.8661413192749023 +4.9154562950134277 +4.9846472740173340 +5.7228474617004395 +4.6316156387329102 +6.1036353111267090 +7.6474080085754395 +5.2389478683471680 +4.8089103698730469 +4.6357774734497070 +7.2309265136718750 +5.2227988243103027 +5.0628089904785156 +5.8868680000305176 +5.5389447212219238 +5.5614972114562988 +6.2215671539306641 +7.5249714851379395 +4.5957355499267578 +5.5325455665588379 +5.6545906066894531 +5.0725235939025879 +5.1901416778564453 +5.8739080429077148 +4.8476052284240723 +5.8820095062255859 +6.2498269081115723 +4.6975221633911133 +7.4587111473083496 +6.3121852874755859 +6.0797176361083984 +5.8343596458435059 +4.6806797981262207 +8.9927034378051758 +6.0780372619628906 +5.1360197067260742 +7.0424642562866211 +4.6161894798278809 +5.2741999626159668 +5.6504693031311035 +5.5736002922058105 +7.6381530761718750 +5.3749704360961914 +5.7781000137329102 +6.5754218101501465 +0.3656352460384369 +4.5619382858276367 +6.4262971878051758 +7.1495180130004883 +4.5889267921447754 +5.0015010833740234 +5.1860737800598145 +5.2110552787780762 +4.8021507263183594 +5.1333169937133789 +5.3472199440002441 +4.6830959320068359 +4.6704816818237305 +5.4245333671569824 +5.0273566246032715 +4.8311247825622559 +4.6849713325500488 +4.6687674522399902 +7.2429571151733398 +5.0228085517883301 +5.6039934158325195 +5.3123745918273926 +6.3988451957702637 +4.9218668937683105 +4.6562542915344238 +5.3822007179260254 +5.9609394073486328 +5.7112231254577637 +6.3349723815917969 +5.1815443038940430 +6.9358491897583008 +7.4552483558654785 +5.0413689613342285 +5.4654645919799805 +5.2261133193969727 +4.8438372611999512 +5.0792384147644043 +6.2513928413391113 +4.6305208206176758 +4.9670696258544922 +5.4011640548706055 +5.4900527000427246 +4.9121313095092773 +5.1027483940124512 +7.2399692535400391 +5.2137432098388672 +5.2409090995788574 +7.1109633445739746 +4.8017296791076660 +5.6950759887695312 +4.7902755737304688 +5.4069938659667969 +4.8927078247070312 +5.0365443229675293 +5.2531995773315430 +4.5848264694213867 +5.0831437110900879 +5.4428415298461914 +6.7663531303405762 +6.5636777877807617 +6.0696935653686523 +6.8773341178894043 +6.3993010520935059 +6.4875082969665527 +4.6639571189880371 +0.3973765075206757 +5.3470921516418457 +4.7003798484802246 +5.6393761634826660 +5.1115145683288574 +4.7078614234924316 +4.5883307456970215 +4.9376430511474609 +6.2784247398376465 +4.6098966598510742 +5.5543937683105469 +4.8672971725463867 +5.3281879425048828 +5.5458145141601562 +4.6490974426269531 +4.9324026107788086 +4.9920954704284668 +6.0215563774108887 +4.7673616409301758 +6.0690817832946777 +4.6657752990722656 +4.8784513473510742 +4.8984727859497070 +6.4601759910583496 +6.5925469398498535 +5.4959411621093750 +4.6298294067382812 +6.4420518875122070 +5.2949872016906738 +4.7080712318420410 +4.7673497200012207 +5.2075843811035156 +5.2402548789978027 +4.5811948776245117 +5.7022972106933594 +10.3035478591918945 +5.8609695434570312 +6.2288522720336914 +7.9884123802185059 +6.0814480781555176 +6.7986788749694824 +4.8863067626953125 +6.3284516334533691 +6.9125185012817383 +4.7037801742553711 +4.6406126022338867 +5.0216164588928223 +5.5593800544738770 +5.0338468551635742 +5.1822953224182129 +5.5949945449829102 +5.5907235145568848 +4.6748619079589844 +5.6337251663208008 +6.0540108680725098 +5.8137660026550293 +8.2060136795043945 +4.6737322807312012 +5.6328520774841309 +5.3591332435607910 +4.9901118278503418 +4.9507412910461426 +6.2326865196228027 +7.0032649040222168 +4.5990476608276367 +0.3745321929454803 +5.1586422920227051 +5.3483147621154785 +5.3269009590148926 +4.9820308685302734 +5.1333665847778320 +7.5949425697326660 +5.3307228088378906 +5.6792306900024414 +4.7028303146362305 +5.9113793373107910 +5.0531673431396484 +6.5656933784484863 +5.0362095832824707 +4.7069435119628906 +6.6599264144897461 +4.9326357841491699 +6.1675910949707031 +4.7934389114379883 +4.7044486999511719 +5.9534702301025391 +5.2209773063659668 +5.2724533081054688 +4.8019642829895020 +5.2732324600219727 +5.0691723823547363 +4.6093106269836426 +5.0536341667175293 +5.5587539672851562 +4.9453234672546387 +6.4427080154418945 +5.3833317756652832 +5.4137983322143555 +5.4434905052185059 +4.7195558547973633 +5.2808609008789062 +5.0549907684326172 +6.1762704849243164 +5.6108369827270508 +5.1302309036254883 +5.1275510787963867 +5.7659840583801270 +4.9324178695678711 +4.6141610145568848 +5.9354524612426758 +4.7473125457763672 +4.6240291595458984 +4.9649534225463867 +4.8899044990539551 +4.6532940864562988 +4.7172684669494629 +4.7277579307556152 +5.9800677299499512 +4.7629108428955078 +5.3622059822082520 +4.9661917686462402 +6.1953611373901367 +5.5487875938415527 +6.8627309799194336 +5.7644810676574707 +6.1319932937622070 +5.7988791465759277 +4.6322307586669922 +5.6454195976257324 +5.7087817192077637 +0.4260166883468628 +6.0008459091186523 +5.4371080398559570 +5.0357041358947754 +6.2187418937683105 +4.6007304191589355 +4.9726228713989258 +5.2124738693237305 +4.8734622001647949 +4.9263582229614258 +6.7058515548706055 +5.1618738174438477 +5.6649279594421387 +5.2830743789672852 +5.9333901405334473 +6.6083278656005859 +5.3268709182739258 +7.2558040618896484 +6.7518215179443359 +5.2218461036682129 +4.5632643699645996 +4.6148505210876465 +5.4437141418457031 +5.1068224906921387 +4.7160944938659668 +8.6128063201904297 +7.7703037261962891 +4.6741209030151367 +5.1410603523254395 +7.2008156776428223 +4.5627307891845703 +4.8035073280334473 +4.6922602653503418 +6.4323492050170898 +5.5421152114868164 +6.0031523704528809 +5.1549267768859863 +4.6076335906982422 +4.8914480209350586 +5.2606573104858398 +6.1164999008178711 +4.8590636253356934 +6.3830070495605469 +6.4336695671081543 +5.6186647415161133 +5.3944931030273438 +6.1891045570373535 +5.1834321022033691 +4.5724077224731445 +6.0899076461791992 +8.1118841171264648 +4.6414713859558105 +4.5295143127441406 +6.1454601287841797 +5.4055104255676270 +10.9577198028564453 +5.0086717605590820 +4.5396628379821777 +5.7624793052673340 +6.5528159141540527 +4.8869462013244629 +4.5938158035278320 +5.7563138008117676 +4.7128729820251465 +4.6963901519775391 +0.3688896894454956 +6.2514348030090332 +7.0605196952819824 +6.3840212821960449 +6.0202665328979492 +5.1688575744628906 +6.1246924400329590 +5.5156173706054688 +7.8428182601928711 +5.0357851982116699 +5.4632873535156250 +5.6080880165100098 +4.7805213928222656 +5.5526046752929688 +4.6396522521972656 +5.2839112281799316 +4.9834256172180176 +4.9838218688964844 +5.0528063774108887 +5.5357708930969238 +4.5880093574523926 +6.1641221046447754 +5.1171598434448242 +7.3042731285095215 +6.1672444343566895 +5.0200452804565430 +6.2831621170043945 +4.6649780273437500 +4.8947291374206543 +5.1021151542663574 +4.9142894744873047 +5.6801810264587402 +4.5891327857971191 +5.4788169860839844 +5.1298851966857910 +6.4418430328369141 +4.8665733337402344 +6.8570704460144043 +5.5953221321105957 +5.5242576599121094 +4.7528986930847168 +5.7105970382690430 +4.9305562973022461 +5.7446041107177734 +5.5824723243713379 +5.4305157661437988 +5.5070514678955078 +4.9220046997070312 +4.7638587951660156 +5.6587095260620117 +5.2660169601440430 +5.2233767509460449 +5.9706578254699707 +5.4069576263427734 +5.3665137290954590 +6.9814529418945312 +5.8261961936950684 +4.9514250755310059 +5.0943942070007324 +4.9089226722717285 +4.8013367652893066 +4.9358634948730469 +4.8865165710449219 +5.2531213760375977 +5.8753867149353027 +0.3945233523845673 +5.5440478324890137 +5.0028691291809082 +7.2413172721862793 +4.9492020606994629 +5.4060287475585938 +5.2745103836059570 +4.5642476081848145 +5.6274557113647461 +5.3892049789428711 +5.9051990509033203 +7.0501103401184082 +4.8506937026977539 +4.8450212478637695 +4.9761357307434082 +4.7779479026794434 +4.6199760437011719 +4.6725764274597168 +6.6696662902832031 +4.6375675201416016 +4.7550411224365234 +4.8004112243652344 +4.7349572181701660 +6.4702396392822266 +4.8331613540649414 +4.9626350402832031 +6.0092101097106934 +4.6353840827941895 +5.1913890838623047 +8.6114606857299805 +5.8826932907104492 +7.2721018791198730 +5.9593052864074707 +6.3607454299926758 +5.3194260597229004 +4.7075586318969727 +4.8656015396118164 +5.2210941314697266 +6.4540967941284180 +5.7066645622253418 +4.6665868759155273 +5.9333143234252930 +4.7262082099914551 +5.1681156158447266 +5.1266827583312988 +10.4323053359985352 +5.6861324310302734 +5.9418587684631348 +4.8252348899841309 +6.3192219734191895 +5.7633304595947266 +4.8120832443237305 +4.7170658111572266 +4.8799657821655273 +4.6325240135192871 +4.9987187385559082 +4.9032206535339355 +8.4181318283081055 +6.5562372207641602 +6.4225707054138184 +6.2904839515686035 +6.0474052429199219 +4.6269559860229492 +4.5938372611999512 +7.0182728767395020 +0.4209654629230499 +6.0985355377197266 +4.6422491073608398 +4.7752127647399902 +4.8208060264587402 +4.8361139297485352 +4.8190517425537109 +5.9367046356201172 +6.6230354309082031 +5.5594921112060547 +6.1830997467041016 +5.2564277648925781 +5.0323653221130371 +6.3312249183654785 +4.7427773475646973 +6.0552134513854980 +5.6168365478515625 +4.7886161804199219 +4.6581759452819824 +7.0158529281616211 +5.5317988395690918 +5.6973824501037598 +4.7880144119262695 +4.5304870605468750 +4.5742845535278320 +4.7097964286804199 +4.6309504508972168 +5.8916449546813965 +6.5641260147094727 +6.8204655647277832 +5.1721162796020508 +6.5005321502685547 +4.8185143470764160 +7.6019225120544434 +5.9344501495361328 +5.1113271713256836 +5.6047143936157227 +5.9792914390563965 +5.4744696617126465 +8.0558223724365234 +6.0106334686279297 +5.8746204376220703 +7.2076935768127441 +5.4190192222595215 +6.7034087181091309 +6.6730856895446777 +4.8744916915893555 +5.4367160797119141 +4.8814935684204102 +4.8039164543151855 +6.5768074989318848 +9.0399160385131836 +5.0418243408203125 +5.5353269577026367 +4.5513730049133301 +5.8586831092834473 +4.8357148170471191 +5.2516698837280273 +5.9629678726196289 +5.5381584167480469 +5.8047361373901367 +5.5896105766296387 +5.3492550849914551 +5.1186718940734863 +5.0457072257995605 +0.3586586117744446 +4.9239101409912109 +4.7290005683898926 +5.5568761825561523 +6.2173352241516113 +5.0560302734375000 +6.5087895393371582 +4.6815562248229980 +4.6502552032470703 +8.1435804367065430 +4.9993944168090820 +6.2094502449035645 +6.2502002716064453 +6.1838440895080566 +5.3081455230712891 +5.0359239578247070 +5.6557893753051758 +4.6315245628356934 +5.5902566909790039 +5.2648711204528809 +4.6793246269226074 +5.6234908103942871 +5.1375303268432617 +7.1589741706848145 +6.0652341842651367 +5.2467565536499023 +7.0309572219848633 +5.3850231170654297 +4.7092914581298828 +5.1584553718566895 +4.6980528831481934 +5.5436010360717773 +5.1507549285888672 +4.5916690826416016 +5.5183691978454590 +4.7544097900390625 +5.9143972396850586 +6.4985065460205078 +4.6792192459106445 +5.2232322692871094 +5.2995972633361816 +5.4574608802795410 +5.3540892601013184 +5.8960399627685547 +6.3633332252502441 +7.9481859207153320 +5.3160662651062012 +5.1526193618774414 +5.1092061996459961 +4.5573348999023438 +6.2927765846252441 +5.9366779327392578 +4.8846726417541504 +5.8136100769042969 +4.6436710357666016 +5.3298554420471191 +4.6463913917541504 +4.9384303092956543 +5.3027315139770508 +5.0193185806274414 +5.7594985961914062 +4.9981689453125000 +5.0832796096801758 +4.6034326553344727 +4.9524650573730469 +0.3811038434505463 +6.5028414726257324 +6.8414936065673828 +5.4517459869384766 +6.4952087402343750 +6.0623106956481934 +6.3093066215515137 +4.7120494842529297 +5.4863538742065430 +4.8030352592468262 +5.7743306159973145 +5.8960342407226562 +6.7378745079040527 +5.4437346458435059 +5.0737371444702148 +5.2513542175292969 +4.6804151535034180 +4.6300482749938965 +6.0305643081665039 +5.6836271286010742 +5.0328469276428223 +5.7625246047973633 +5.2900838851928711 +4.7601633071899414 +4.8973178863525391 +6.0463304519653320 +6.4479823112487793 +6.1771516799926758 +4.8969569206237793 +5.7661094665527344 +4.5627226829528809 +5.1981763839721680 +4.6152877807617188 +5.7871932983398438 +5.8267445564270020 +5.6771178245544434 +6.8476862907409668 +6.4446492195129395 +6.0352129936218262 +4.8592615127563477 +5.2483859062194824 +5.1893167495727539 +7.4191961288452148 +4.6668748855590820 +4.6364412307739258 +5.1776661872863770 +5.4843635559082031 +4.7044796943664551 +5.3508038520812988 +4.5519590377807617 +4.6402254104614258 +4.6806025505065918 +4.9464130401611328 +5.5236377716064453 +5.2791328430175781 +4.6584920883178711 +4.8965892791748047 +7.0321369171142578 +6.2233023643493652 +4.9620370864868164 +5.6976647377014160 +5.5011353492736816 +6.9448494911193848 +6.2897782325744629 +5.7694640159606934 +0.3897401988506317 +8.2550401687622070 +6.3637270927429199 +5.4302368164062500 +6.7405710220336914 +4.7488622665405273 +4.5750617980957031 +5.3172554969787598 +5.3186807632446289 +5.0144343376159668 +5.9959664344787598 +4.9261326789855957 +6.0876336097717285 +5.0675144195556641 +4.9638457298278809 +5.3231329917907715 +6.8668041229248047 +4.8572182655334473 +5.3917903900146484 +4.7673797607421875 +4.6820530891418457 +6.3190889358520508 +5.3746104240417480 +4.6037845611572266 +7.3020262718200684 +5.2827062606811523 +5.3109869956970215 +4.7038459777832031 +5.9240202903747559 +4.5538272857666016 +5.8786654472351074 +5.1683454513549805 +6.1401538848876953 +6.9068274497985840 +6.4475593566894531 +4.6245565414428711 +5.3067631721496582 +7.3882465362548828 +6.4808077812194824 +4.9517855644226074 +5.3230624198913574 +6.1925444602966309 +4.9170155525207520 +8.2038917541503906 +4.7388763427734375 +6.1787772178649902 +5.3928775787353516 +4.5981988906860352 +5.0924863815307617 +5.4214019775390625 +6.0008463859558105 +5.3390269279479980 +4.6413831710815430 +7.0995779037475586 +5.6584377288818359 +4.9761123657226562 +6.5770778656005859 +4.9917531013488770 +5.0442357063293457 +5.3012075424194336 +5.5253829956054688 +5.3010239601135254 +5.6446642875671387 +4.6619982719421387 +4.6625537872314453 +0.3918080627918243 +4.9128589630126953 +4.5858078002929688 +6.6040463447570801 +5.5730628967285156 +6.2249794006347656 +4.5709133148193359 +4.5503234863281250 +4.8222231864929199 +5.5324854850769043 +4.9782552719116211 +6.2571945190429688 +5.9607644081115723 +5.1587157249450684 +4.6624574661254883 +4.8184890747070312 +5.0730514526367188 +5.6548409461975098 +4.8896627426147461 +4.7902612686157227 +6.2974500656127930 +6.5313591957092285 +7.8844804763793945 +4.8550791740417480 +5.0465240478515625 +5.3507270812988281 +4.8752684593200684 +4.8330602645874023 +5.7677602767944336 +4.6790380477905273 +5.3334097862243652 +5.9298405647277832 +7.1006965637207031 +5.1039824485778809 +6.8301930427551270 +5.8567299842834473 +4.8961920738220215 +5.1472868919372559 +5.0231738090515137 +5.5234441757202148 +4.7734313011169434 +4.8849205970764160 +4.5877060890197754 +5.0142922401428223 +5.0054788589477539 +7.2341780662536621 +4.6180191040039062 +5.9389605522155762 +5.7191214561462402 +6.7468919754028320 +5.4967050552368164 +9.4713563919067383 +5.3476119041442871 +5.9209327697753906 +4.6659078598022461 +5.3697347640991211 +6.0433511734008789 +6.9831299781799316 +5.8553109169006348 +6.6211986541748047 +5.2854843139648438 +6.7053246498107910 +4.5642910003662109 +5.4953355789184570 +5.1057081222534180 +0.3899135887622833 +4.7096829414367676 +5.0334687232971191 +4.6395788192749023 +6.3016271591186523 +5.8316097259521484 +6.3287258148193359 +6.1511368751525879 +6.5555725097656250 +4.8042149543762207 +4.8978581428527832 +4.7944273948669434 +6.8770875930786133 +5.1616511344909668 +8.0520658493041992 +4.8156285285949707 +5.5537343025207520 +4.9972815513610840 +8.8825283050537109 +7.1091542243957520 +5.4015769958496094 +5.2960987091064453 +5.0532879829406738 +5.3035893440246582 +4.8760762214660645 +4.9068021774291992 +4.9782547950744629 +5.4072089195251465 +4.6049628257751465 +5.7524371147155762 +5.1782875061035156 +4.8882193565368652 +9.0267887115478516 +5.6808342933654785 +4.9098930358886719 +6.2114295959472656 +4.6384396553039551 +5.1563200950622559 +4.8504438400268555 +4.6321129798889160 +5.0391364097595215 +5.0779476165771484 +8.7940654754638672 +4.8221578598022461 +4.9722814559936523 +5.4069838523864746 +4.6238436698913574 +4.6187887191772461 +5.5635323524475098 +5.3346028327941895 +7.3890542984008789 +7.0425615310668945 +4.6598997116088867 +6.2836775779724121 +4.8295125961303711 +4.6341276168823242 +5.5153927803039551 +4.7207531929016113 +5.5819945335388184 +5.4074234962463379 +5.7530360221862793 +6.2729821205139160 +5.1757230758666992 +7.7160310745239258 +4.7107739448547363 +0.3867928683757782 +6.1978383064270020 +5.2284760475158691 +6.0022249221801758 +5.8785152435302734 +5.2969470024108887 +4.6523714065551758 +5.3415460586547852 +4.6749801635742188 +5.9055409431457520 +4.6054015159606934 +5.6308588981628418 +6.7753529548645020 +4.5975775718688965 +5.9568305015563965 +4.9074144363403320 +4.8336858749389648 +4.8752107620239258 +5.0537438392639160 +5.2315320968627930 +5.0077757835388184 +4.9210758209228516 +5.8442821502685547 +5.6870584487915039 +4.7386751174926758 +5.4956932067871094 +4.8285017013549805 +4.6356458663940430 +5.1107835769653320 +4.8241209983825684 +4.7177772521972656 +4.9094800949096680 +4.9908280372619629 +5.4998011589050293 +5.8046960830688477 +5.4673399925231934 +5.7773284912109375 +5.6310200691223145 +5.0168771743774414 +5.3252453804016113 +6.2598538398742676 +6.1076617240905762 +4.6667017936706543 +4.7922091484069824 +6.2675027847290039 +5.9537239074707031 +7.9930381774902344 +6.2409477233886719 +4.8716192245483398 +5.6398506164550781 +4.8846631050109863 +5.2351155281066895 +4.8291039466857910 +5.7447175979614258 +4.6459417343139648 +5.6830077171325684 +5.8957171440124512 +4.7810621261596680 +5.1044330596923828 +5.3322973251342773 +5.5360541343688965 +5.0337986946105957 +4.6187505722045898 +4.6843461990356445 +7.8918428421020508 +0.4359594583511353 +5.2252535820007324 +8.6512603759765625 +4.8360571861267090 +4.7815995216369629 +5.6104102134704590 +5.0695662498474121 +5.0080037117004395 +8.4406652450561523 +4.9465270042419434 +4.6018896102905273 +4.9842367172241211 +4.6891942024230957 +6.4118628501892090 +8.3909893035888672 +5.3604607582092285 +6.4040770530700684 +5.0508060455322266 +4.7209916114807129 +5.4056587219238281 +4.5697307586669922 +4.6819801330566406 +6.4722995758056641 +4.8094840049743652 +4.6194481849670410 +7.9661059379577637 +5.4065132141113281 +6.6671247482299805 +5.8659229278564453 +5.0042166709899902 +5.3831615447998047 +6.1982965469360352 +5.5064258575439453 +5.0388474464416504 +5.7248387336730957 +5.4785456657409668 +4.9803829193115234 +5.3390011787414551 +4.6954131126403809 +5.6814627647399902 +5.5315060615539551 +4.8358216285705566 +4.9544773101806641 +6.8254919052124023 +4.9661893844604492 +4.7435746192932129 +4.6094708442687988 +5.1381173133850098 +5.1429347991943359 +5.1114120483398438 +4.9728627204895020 +5.0585293769836426 +5.1877522468566895 +5.7660031318664551 +5.2768921852111816 +4.8240141868591309 +7.3878693580627441 +5.0383267402648926 +5.2459344863891602 +7.0473980903625488 +5.6707444190979004 +6.3477129936218262 +4.6152534484863281 +5.9476208686828613 +7.0556697845458984 +0.4009276926517487 +7.7840886116027832 +4.6625423431396484 +6.0817055702209473 +5.6143383979797363 +6.8711872100830078 +6.0860185623168945 +4.8754425048828125 +5.8324165344238281 +7.4900555610656738 +7.3868403434753418 +4.9605760574340820 +8.0406494140625000 +4.9401841163635254 +4.6076316833496094 +4.9128351211547852 +7.1930108070373535 +6.4206762313842773 +4.5988407135009766 +5.0613503456115723 +6.7032046318054199 +4.8433370590209961 +4.7710156440734863 +5.3091087341308594 +4.6193928718566895 +6.6301259994506836 +4.7415666580200195 +4.8004040718078613 +4.8029742240905762 +5.2167620658874512 +4.6166543960571289 +6.6068310737609863 +7.1773214340209961 +5.9636187553405762 +6.5252289772033691 +6.2356429100036621 +5.3663020133972168 +5.1701574325561523 +5.8137259483337402 +5.3627748489379883 +5.5214581489562988 +5.4943022727966309 +6.6178417205810547 +5.2266521453857422 +5.5522274971008301 +6.9311046600341797 +5.2506594657897949 +4.8580031394958496 +5.0968112945556641 +4.9692559242248535 +6.8099713325500488 +4.6713824272155762 +9.8889598846435547 +5.3809709548950195 +4.9220242500305176 +5.5535798072814941 +4.5650973320007324 +4.8759841918945312 +5.5530877113342285 +5.0614857673645020 +4.8468790054321289 +4.6339755058288574 +5.1369376182556152 +5.3949379920959473 +4.5490226745605469 +0.3818646371364594 +5.0061483383178711 +5.2174839973449707 +6.4178686141967773 +5.4841923713684082 +5.0625171661376953 +6.0448727607727051 +4.8361473083496094 +4.9979386329650879 +4.8143286705017090 +6.7336859703063965 +6.1533932685852051 +5.5725388526916504 +5.0077247619628906 +5.1845340728759766 +6.5212221145629883 +5.6232886314392090 +4.6389122009277344 +4.6112799644470215 +4.7291746139526367 +5.3037085533142090 +5.4645562171936035 +4.9016232490539551 +7.0852627754211426 +4.9845666885375977 +6.0345969200134277 +4.6450619697570801 +4.6969656944274902 +4.9771456718444824 +4.5635914802551270 +4.8108129501342773 +5.7861499786376953 +5.1005082130432129 +7.9606409072875977 +6.4152688980102539 +6.5683703422546387 +5.5603413581848145 +4.5775947570800781 +6.9163241386413574 +5.8281412124633789 +7.2755374908447266 +5.7520542144775391 +6.6228175163269043 +5.6683268547058105 +6.7382178306579590 +4.7890429496765137 +5.2458686828613281 +4.6365513801574707 +5.0956683158874512 +4.7979278564453125 +6.3932781219482422 +4.7214484214782715 +5.1504788398742676 +6.7936272621154785 +5.3608722686767578 +4.7233386039733887 +5.7618694305419922 +4.9348702430725098 +4.8199691772460938 +4.6573309898376465 +6.1949720382690430 +4.8810553550720215 +5.2442941665649414 +5.6518607139587402 +5.1677517890930176 +0.3970996737480164 +%% +0.4172363877296448 +4.9350113868713379 +4.7725162506103516 +5.1860518455505371 +5.3515377044677734 +6.1930727958679199 +5.8339300155639648 +5.0268068313598633 +5.2298269271850586 +4.9189176559448242 +5.1026463508605957 +5.0528607368469238 +5.2068052291870117 +4.8958697319030762 +4.5967063903808594 +4.6614403724670410 +5.5465230941772461 +5.1797933578491211 +4.6257534027099609 +4.7040357589721680 +5.0379290580749512 +5.4123191833496094 +5.2523779869079590 +4.6190180778503418 +5.5017766952514648 +4.7223701477050781 +5.9833168983459473 +4.9890379905700684 +6.1040306091308594 +6.7230134010314941 +4.6095046997070312 +4.9592657089233398 +4.8282165527343750 +5.9893932342529297 +6.2079310417175293 +5.3429899215698242 +5.1833047866821289 +4.6723790168762207 +5.3169898986816406 +4.7966456413269043 +5.0113353729248047 +4.7195301055908203 +5.2253413200378418 +6.3260717391967773 +5.7887330055236816 +5.2311820983886719 +6.3452777862548828 +8.6547718048095703 +4.7714529037475586 +6.5164518356323242 +6.4971141815185547 +5.0692806243896484 +7.8510880470275879 +5.9160370826721191 +5.5961408615112305 +6.0954198837280273 +4.7535524368286133 +4.5813822746276855 +7.9057230949401855 +6.6084856986999512 +4.6501822471618652 +4.6321020126342773 +5.8261547088623047 +7.2408814430236816 +6.9691505432128906 +0.3556748628616333 +4.9805612564086914 +5.1026024818420410 +7.4280195236206055 +5.8474755287170410 +5.0063004493713379 +6.9101848602294922 +6.4771947860717773 +6.3095541000366211 +5.0624823570251465 +5.2053847312927246 +5.3091812133789062 +6.7209315299987793 +5.7167406082153320 +6.4717202186584473 +4.7590560913085938 +6.8214006423950195 +6.9060263633728027 +5.8512773513793945 +7.3023681640625000 +4.9697966575622559 +5.2459416389465332 +4.9048876762390137 +4.7072992324829102 +4.5400500297546387 +4.9986624717712402 +5.9875764846801758 +5.1374440193176270 +5.4286332130432129 +4.6965904235839844 +5.0296173095703125 +6.0069208145141602 +5.4761881828308105 +6.2382969856262207 +7.0953445434570312 +5.2290539741516113 +5.6609225273132324 +4.6857709884643555 +6.0867171287536621 +4.9162607192993164 +5.3065209388732910 +4.5626296997070312 +4.9924030303955078 +4.8409733772277832 +5.2722415924072266 +6.0358433723449707 +4.8332548141479492 +7.4415917396545410 +4.8693342208862305 +4.8216595649719238 +5.9098110198974609 +4.8534207344055176 +5.1565213203430176 +6.6956100463867188 +6.2425169944763184 +4.9594993591308594 +4.6537127494812012 +9.2467441558837891 +4.6901082992553711 +6.2559866905212402 +6.0301475524902344 +5.5289969444274902 +4.9921875000000000 +4.7146162986755371 +5.2058706283569336 +0.4521527290344238 +5.1073417663574219 +5.6384272575378418 +4.7234454154968262 +5.5318880081176758 +4.8559417724609375 +4.9568195343017578 +6.3490729331970215 +4.7934064865112305 +5.3097405433654785 +6.1523637771606445 +5.1119885444641113 +6.8740301132202148 +4.9492673873901367 +4.6971521377563477 +4.7622790336608887 +7.7017984390258789 +5.0585842132568359 +5.4204039573669434 +5.1408605575561523 +4.8050742149353027 +4.7234520912170410 +5.5303235054016113 +4.9418516159057617 +4.7859129905700684 +5.7417387962341309 +4.9011464118957520 +5.6031517982482910 +4.7648649215698242 +4.9169893264770508 +5.8627562522888184 +5.4512410163879395 +8.1001977920532227 +5.6403007507324219 +4.6794943809509277 +5.7699794769287109 +4.8296475410461426 +5.0819869041442871 +8.7920417785644531 +4.7530975341796875 +5.9825577735900879 +4.7434687614440918 +4.9030256271362305 +4.6766247749328613 +6.4574117660522461 +4.9076857566833496 +5.6946558952331543 +5.5132174491882324 +5.7428460121154785 +5.0505490303039551 +4.6262021064758301 +6.1224222183227539 +4.9240536689758301 +5.0405011177062988 +4.9163651466369629 +4.7670297622680664 +5.3317995071411133 +5.0689921379089355 +6.0388293266296387 +4.6243138313293457 +4.6527614593505859 +5.3799443244934082 +6.0345120429992676 +5.0973844528198242 +6.8390212059020996 +0.3688806593418121 +4.6654124259948730 +6.6786069869995117 +5.6026682853698730 +5.9616322517395020 +4.7752733230590820 +5.1428637504577637 +5.7246899604797363 +7.2101082801818848 +4.5942449569702148 +5.7830815315246582 +5.5839886665344238 +7.2935595512390137 +4.6743631362915039 +6.1750798225402832 +6.4746232032775879 +5.8546414375305176 +5.7885107994079590 +4.5987777709960938 +4.8963398933410645 +5.2315263748168945 +5.6279168128967285 +5.6923441886901855 +4.8292865753173828 +5.7831358909606934 +5.9927768707275391 +6.0842795372009277 +5.1307826042175293 +5.1235880851745605 +6.1332783699035645 +4.6985921859741211 +5.0996756553649902 +4.5502595901489258 +4.8915648460388184 +5.3837852478027344 +4.5747623443603516 +5.9225358963012695 +4.9555478096008301 +6.2200651168823242 +4.8686304092407227 +8.0143337249755859 +5.2307658195495605 +5.7124471664428711 +5.8552494049072266 +4.9813346862792969 +4.6623072624206543 +5.3525919914245605 +4.6217198371887207 +5.9810047149658203 +7.7751040458679199 +8.3815937042236328 +4.6478233337402344 +7.1693787574768066 +5.9795613288879395 +6.0817708969116211 +4.8683133125305176 +4.7572989463806152 +4.5967049598693848 +5.4939274787902832 +7.4719800949096680 +4.8581690788269043 +5.1081080436706543 +4.6447949409484863 +5.2531809806823730 +5.6324295997619629 +0.3878174722194672 +5.2994999885559082 +5.0233421325683594 +5.7800030708312988 +4.8431873321533203 +5.5956277847290039 +6.3240151405334473 +6.2023768424987793 +6.2819895744323730 +6.3990168571472168 +5.1677746772766113 +5.1468544006347656 +5.8739018440246582 +5.2391662597656250 +5.4502172470092773 +5.7078752517700195 +4.8567128181457520 +5.4965982437133789 +4.9330105781555176 +4.5687780380249023 +5.7959504127502441 +4.5627536773681641 +5.7490835189819336 +6.0289263725280762 +5.3868780136108398 +6.1848983764648438 +6.7804250717163086 +4.8596611022949219 +4.6447968482971191 +7.7119979858398438 +5.7758760452270508 +5.2165665626525879 +5.6873168945312500 +5.0999498367309570 +5.0612196922302246 +10.3300867080688477 +4.6420550346374512 +4.7664685249328613 +4.8183655738830566 +7.5667500495910645 +5.2031612396240234 +4.9280133247375488 +5.0997157096862793 +4.8600754737854004 +5.2099127769470215 +4.9057760238647461 +4.7010216712951660 +6.0057644844055176 +9.6619729995727539 +6.8103575706481934 +4.6325817108154297 +5.8061194419860840 +6.2856416702270508 +4.8794388771057129 +6.1964945793151855 +4.5972447395324707 +5.0315608978271484 +4.9778122901916504 +5.2642359733581543 +5.1459846496582031 +4.6928467750549316 +4.8376421928405762 +4.6201248168945312 +5.9458522796630859 +6.7284746170043945 +0.3733122646808624 +4.8193588256835938 +5.6999859809875488 +5.9774975776672363 +5.4770116806030273 +5.5747065544128418 +7.0394473075866699 +4.7616891860961914 +5.0579142570495605 +6.0466837882995605 +4.6245074272155762 +5.9993176460266113 +5.1367993354797363 +5.5391640663146973 +7.3958292007446289 +5.3869867324829102 +5.6447381973266602 +4.5627799034118652 +5.4898486137390137 +5.9375152587890625 +5.9362068176269531 +4.6744914054870605 +5.4891209602355957 +7.2233610153198242 +8.3634157180786133 +5.4888763427734375 +7.9635009765625000 +5.1590814590454102 +6.0758204460144043 +4.8023934364318848 +5.9122347831726074 +5.3151359558105469 +5.3201642036437988 +4.7321572303771973 +4.8118295669555664 +5.8490905761718750 +6.6940293312072754 +4.6984453201293945 +5.3396525382995605 +4.6727795600891113 +5.1824135780334473 +4.5695495605468750 +5.4412078857421875 +4.8179812431335449 +4.6542897224426270 +7.0659737586975098 +5.5501694679260254 +4.8001480102539062 +5.7280716896057129 +5.6650166511535645 +5.5397963523864746 +5.1237344741821289 +6.1619534492492676 +5.4259209632873535 +6.1975789070129395 +5.7526354789733887 +4.8903589248657227 +4.9226365089416504 +5.5047578811645508 +5.1528244018554688 +6.0716233253479004 +4.8016242980957031 +4.6139006614685059 +4.9788503646850586 +5.4865832328796387 +0.3620363473892212 +5.4035162925720215 +6.0457887649536133 +6.1852655410766602 +4.6600203514099121 +4.5406198501586914 +5.5199780464172363 +6.7059259414672852 +5.2736291885375977 +5.3204870223999023 +6.7445368766784668 +7.7943644523620605 +5.0932030677795410 +6.7275147438049316 +5.7014360427856445 +6.9734759330749512 +6.6961393356323242 +4.6352581977844238 +7.0526914596557617 +6.4711585044860840 +5.7099976539611816 +6.7010583877563477 +6.5039987564086914 +4.9333443641662598 +5.0376472473144531 +4.7773380279541016 +5.7007412910461426 +4.7647285461425781 +5.3616900444030762 +4.7970409393310547 +4.7372899055480957 +4.7116909027099609 +5.2746911048889160 +5.2994227409362793 +6.4129271507263184 +6.3445873260498047 +5.2155194282531738 +5.2946643829345703 +4.6877145767211914 +5.8204245567321777 +7.5706000328063965 +5.0066199302673340 +5.6101155281066895 +5.3456530570983887 +6.2824463844299316 +5.1522092819213867 +6.7518382072448730 +6.0114960670471191 +5.1554160118103027 +4.6778688430786133 +7.2340598106384277 +5.4493126869201660 +4.7186326980590820 +5.1251907348632812 +5.3676872253417969 +4.7483549118041992 +4.5916652679443359 +5.6702713966369629 +7.9288673400878906 +5.2000675201416016 +4.8052382469177246 +5.1118631362915039 +4.8451972007751465 +4.6773791313171387 +6.4840736389160156 +0.3877965807914734 +4.7895746231079102 +6.1838607788085938 +4.6733450889587402 +5.8963418006896973 +6.0390019416809082 +4.9696025848388672 +5.5824875831604004 +5.5883517265319824 +6.3281450271606445 +4.6682081222534180 +5.1018748283386230 +6.4806032180786133 +4.7678184509277344 +5.0264863967895508 +5.0410771369934082 +4.5577502250671387 +5.5394635200500488 +5.9093198776245117 +7.5171532630920410 +5.1656603813171387 +4.5580306053161621 +4.9274458885192871 +5.3650722503662109 +7.2106699943542480 +5.2071609497070312 +5.3567137718200684 +4.7759160995483398 +5.5630130767822266 +4.6784009933471680 +6.7417273521423340 +5.8348612785339355 +5.5414743423461914 +4.5763821601867676 +6.3995923995971680 +5.0497574806213379 +5.2690486907958984 +7.1983919143676758 +6.7281365394592285 +4.9832201004028320 +5.4381628036499023 +4.9573078155517578 +5.6619935035705566 +7.1598896980285645 +4.7656183242797852 +5.9196119308471680 +5.4021286964416504 +4.9742426872253418 +5.1017580032348633 +5.2048592567443848 +5.6925182342529297 +6.6853184700012207 +5.4071450233459473 +4.7746973037719727 +4.8244609832763672 +5.6391859054565430 +5.2099552154541016 +5.4819951057434082 +5.5076351165771484 +6.0163249969482422 +4.9919323921203613 +5.2951812744140625 +7.0514116287231445 +4.9062271118164062 +4.7973079681396484 +0.3652083277702332 +5.1288228034973145 +5.8066167831420898 +4.9137568473815918 +9.8605194091796875 +5.0339760780334473 +7.4349637031555176 +5.8825216293334961 +5.1653366088867188 +7.2243194580078125 +5.1192102432250977 +4.8792009353637695 +4.7256879806518555 +5.1080703735351562 +6.6517505645751953 +6.5091032981872559 +5.1947255134582520 +5.3699407577514648 +5.8464145660400391 +5.0959539413452148 +10.1169033050537109 +6.1409969329833984 +5.1394119262695312 +4.8911504745483398 +7.2015080451965332 +5.2626118659973145 +6.9103894233703613 +4.7359075546264648 +4.8686242103576660 +4.6806244850158691 +5.0909190177917480 +6.1753406524658203 +8.5843400955200195 +7.3731594085693359 +5.8353528976440430 +4.7195301055908203 +4.7916460037231445 +4.9799242019653320 +4.5327572822570801 +5.1616907119750977 +4.7521791458129883 +5.1707506179809570 +5.3777880668640137 +5.0237145423889160 +4.6416974067687988 +5.0444684028625488 +5.1257801055908203 +6.1286678314208984 +5.4934210777282715 +6.6204109191894531 +4.9479713439941406 +5.8193774223327637 +5.4044346809387207 +4.7807526588439941 +6.9322247505187988 +5.5329642295837402 +6.3566093444824219 +6.2031183242797852 +4.6821122169494629 +5.0057196617126465 +4.6394495964050293 +7.6056342124938965 +4.8514752388000488 +5.2097773551940918 +8.0258646011352539 +0.3989003300666809 +4.6194963455200195 +4.9558954238891602 +4.7254486083984375 +4.8757367134094238 +5.4390797615051270 +4.5847978591918945 +5.2838578224182129 +5.2541613578796387 +5.7017679214477539 +4.5784530639648438 +5.2402982711791992 +5.3977265357971191 +5.2825865745544434 +4.7097182273864746 +6.1725888252258301 +5.3055315017700195 +8.4780397415161133 +5.8631672859191895 +4.8882465362548828 +7.3401446342468262 +5.2923150062561035 +4.5997152328491211 +5.2950801849365234 +7.5231947898864746 +4.7498602867126465 +5.1180438995361328 +5.1546602249145508 +5.2173099517822266 +4.9373431205749512 +5.3926682472229004 +4.9161286354064941 +9.7354555130004883 +4.7177853584289551 +5.7407078742980957 +5.5128655433654785 +4.9405965805053711 +6.0745205879211426 +5.6061353683471680 +7.0313472747802734 +5.4432177543640137 +5.1864385604858398 +5.1137380599975586 +6.7354917526245117 +4.6268858909606934 +9.1212730407714844 +8.6223812103271484 +4.7732686996459961 +6.1138792037963867 +5.3435897827148438 +4.6324238777160645 +5.4387865066528320 +4.9601845741271973 +4.7597188949584961 +5.7027626037597656 +8.0618953704833984 +5.2828993797302246 +5.1110701560974121 +5.2741236686706543 +5.2847900390625000 +4.6285672187805176 +6.8888726234436035 +5.2401304244995117 +4.7268509864807129 +4.7930574417114258 +0.4260498285293579 +4.9787988662719727 +5.6827235221862793 +6.0459818840026855 +5.2675008773803711 +4.7316579818725586 +5.5966453552246094 +4.6059632301330566 +5.0220270156860352 +4.7000718116760254 +4.5965065956115723 +4.8064017295837402 +4.7432093620300293 +4.7026586532592773 +6.5330047607421875 +6.6770372390747070 +5.3124489784240723 +5.1243457794189453 +8.6244192123413086 +4.7867932319641113 +8.4150276184082031 +5.1112270355224609 +4.9047493934631348 +6.3499369621276855 +6.2768917083740234 +4.7593436241149902 +6.2338533401489258 +4.7790608406066895 +9.3745155334472656 +4.6232495307922363 +6.9859967231750488 +6.4624261856079102 +5.0635790824890137 +5.0900926589965820 +4.6594886779785156 +7.8373675346374512 +6.2593870162963867 +5.2138509750366211 +4.8426489830017090 +4.9396343231201172 +6.5290217399597168 +4.6438703536987305 +5.0832033157348633 +5.4734292030334473 +5.7812027931213379 +4.6629791259765625 +4.7378382682800293 +5.1845812797546387 +5.1748914718627930 +5.9886207580566406 +4.9338030815124512 +4.6719789505004883 +5.0170950889587402 +5.3298449516296387 +5.3517541885375977 +4.6229019165039062 +7.0847392082214355 +4.6239848136901855 +4.5525512695312500 +6.0016942024230957 +4.9002566337585449 +4.6228389739990234 +5.2315454483032227 +5.3280315399169922 +5.8688678741455078 +0.3882398307323456 +5.0881814956665039 +4.7864651679992676 +5.4575705528259277 +5.3616995811462402 +6.5541458129882812 +5.2522535324096680 +4.8956212997436523 +6.2826118469238281 +4.6306300163269043 +5.9102792739868164 +5.3783268928527832 +5.4793295860290527 +5.4846506118774414 +10.0608835220336914 +5.0245451927185059 +5.1544289588928223 +5.9205718040466309 +5.1146302223205566 +4.6736640930175781 +5.3840937614440918 +4.9055991172790527 +4.7520537376403809 +5.1992316246032715 +6.0194935798645020 +5.4372525215148926 +4.9794473648071289 +5.6037244796752930 +5.2070531845092773 +4.7021074295043945 +5.1380949020385742 +4.7238988876342773 +5.8209452629089355 +5.2539157867431641 +5.5586719512939453 +6.6122822761535645 +7.6090850830078125 +4.7513380050659180 +4.6380462646484375 +4.6879396438598633 +6.2014589309692383 +8.0192508697509766 +4.5585064888000488 +5.5789089202880859 +6.1534528732299805 +4.5568203926086426 +6.2757167816162109 +6.7973990440368652 +5.7585234642028809 +5.5205674171447754 +6.4582147598266602 +6.4833660125732422 +6.6909718513488770 +4.9213981628417969 +6.6730542182922363 +5.0672826766967773 +8.3789873123168945 +5.9865703582763672 +5.1558651924133301 +4.8313136100769043 +4.7102870941162109 +5.9524087905883789 +4.9001569747924805 +5.6863040924072266 +5.6279554367065430 +0.4283172488212585 +5.1037063598632812 +5.0384206771850586 +4.7116632461547852 +5.4659686088562012 +5.3827247619628906 +4.6090469360351562 +4.6181864738464355 +6.0426626205444336 +5.1101846694946289 +4.7756853103637695 +5.6671729087829590 +5.7548046112060547 +5.0014619827270508 +4.6422858238220215 +7.8970451354980469 +4.9694242477416992 +4.7776503562927246 +4.9438819885253906 +4.6671919822692871 +4.5930666923522949 +5.2674388885498047 +4.8662467002868652 +5.2947454452514648 +7.7051191329956055 +5.4317421913146973 +5.7484316825866699 +5.0496983528137207 +5.2627439498901367 +5.3482780456542969 +4.7603697776794434 +5.3992228507995605 +5.2381906509399414 +5.0083179473876953 +4.7123184204101562 +5.9539351463317871 +8.0917453765869141 +5.4142541885375977 +4.8360342979431152 +6.8380231857299805 +5.5931067466735840 +6.2517108917236328 +4.6381034851074219 +4.7702474594116211 +6.9556183815002441 +8.6511783599853516 +4.9212775230407715 +4.7545843124389648 +4.8694028854370117 +4.6886558532714844 +5.3923192024230957 +5.6046786308288574 +5.4069857597351074 +4.7251815795898438 +6.1759586334228516 +7.0821018218994141 +4.7901082038879395 +5.5092377662658691 +4.8994750976562500 +4.8547992706298828 +5.2531399726867676 +4.8903183937072754 +4.8385472297668457 +5.4994440078735352 +5.0573182106018066 +0.4438266158103943 +8.7615299224853516 +4.6867327690124512 +5.1381726264953613 +4.7084541320800781 +6.3237190246582031 +5.0446152687072754 +5.0926260948181152 +5.1296930313110352 +4.8255057334899902 +4.6465687751770020 +4.9539856910705566 +5.5249166488647461 +4.7547540664672852 +6.2947459220886230 +4.9829421043395996 +6.4758501052856445 +5.0297927856445312 +5.1455354690551758 +4.6634378433227539 +4.8103895187377930 +4.9573950767517090 +4.8309154510498047 +4.7726960182189941 +6.2827653884887695 +5.3840913772583008 +4.7974677085876465 +5.5517334938049316 +6.2463688850402832 +6.1694865226745605 +6.4421691894531250 +5.2557220458984375 +5.4812521934509277 +6.0098505020141602 +5.0102047920227051 +4.6638259887695312 +5.4657702445983887 +4.7164087295532227 +4.6989769935607910 +5.1341042518615723 +6.0600104331970215 +4.8353619575500488 +4.7397866249084473 +5.9618902206420898 +6.9732670783996582 +5.5031251907348633 +5.1025285720825195 +4.6325688362121582 +5.7490220069885254 +4.6126961708068848 +6.1649804115295410 +4.6489357948303223 +4.8534359931945801 +4.9785852432250977 +5.8709902763366699 +4.9755644798278809 +6.1408386230468750 +5.9922261238098145 +4.6293153762817383 +4.5924849510192871 +5.3542990684509277 +5.8411984443664551 +4.8236336708068848 +4.6119799613952637 +4.8446388244628906 +0.4210376441478729 +5.1095099449157715 +4.6639208793640137 +4.7873892784118652 +7.3012695312500000 +5.3798294067382812 +6.5488152503967285 +5.4395608901977539 +5.7745437622070312 +4.6378335952758789 +4.8843350410461426 +7.4273490905761719 +6.4358530044555664 +4.6438798904418945 +6.0125551223754883 +6.1280479431152344 +4.8128776550292969 +4.9629893302917480 +6.0289883613586426 +5.8042616844177246 +4.8292708396911621 +5.2024364471435547 +7.7185420989990234 +4.9117732048034668 +5.0165953636169434 +7.1980881690979004 +4.9242200851440430 +5.9700698852539062 +6.1289882659912109 +4.7991299629211426 +4.9605417251586914 +5.8858447074890137 +5.8470315933227539 +5.9485526084899902 +7.1140704154968262 +4.7997941970825195 +4.6861510276794434 +5.3467020988464355 +4.6425662040710449 +4.6135640144348145 +5.1016039848327637 +5.5840134620666504 +8.5819644927978516 +5.2551927566528320 +4.6283097267150879 +5.0352282524108887 +4.8212480545043945 +5.4552965164184570 +4.7474217414855957 +8.9130792617797852 +4.7931776046752930 +6.5151414871215820 +6.5251569747924805 +5.4987483024597168 +5.1696534156799316 +7.3844389915466309 +4.7367181777954102 +5.5122733116149902 +6.4358820915222168 +5.0926041603088379 +5.5935873985290527 +5.3615946769714355 +6.2885971069335938 +5.6638727188110352 +4.7146849632263184 +0.3533430695533752 +4.6084208488464355 +6.1910376548767090 +4.7724838256835938 +4.8513946533203125 +4.6951899528503418 +4.5671634674072266 +6.4421663284301758 +6.3196873664855957 +4.9027643203735352 +5.1493463516235352 +5.6428256034851074 +4.7083077430725098 +5.4823250770568848 +6.4030704498291016 +9.1371374130249023 +5.5239119529724121 +6.0810794830322266 +5.0274796485900879 +5.8723230361938477 +5.4500684738159180 +4.8750386238098145 +4.7582674026489258 +5.1473531723022461 +6.4945125579833984 +4.8108835220336914 +4.5519332885742188 +5.6721849441528320 +4.5683612823486328 +5.0016369819641113 +5.5218710899353027 +5.8760681152343750 +6.2918405532836914 +5.8640022277832031 +5.2676610946655273 +7.2561545372009277 +6.4003524780273438 +5.5791873931884766 +5.4319853782653809 +10.7098951339721680 +5.0328116416931152 +4.8164205551147461 +5.0286779403686523 +5.4703044891357422 +6.7047224044799805 +7.7282171249389648 +5.3538355827331543 +6.0249495506286621 +5.1570734977722168 +4.6148214340209961 +6.1347131729125977 +4.7096691131591797 +5.8987188339233398 +4.6551675796508789 +5.6306843757629395 +5.2097473144531250 +4.6250867843627930 +5.1963529586791992 +5.4908151626586914 +4.8956604003906250 +5.5888390541076660 +5.3365674018859863 +5.3316092491149902 +5.1995749473571777 +5.7565460205078125 +0.3988341689109802 +5.3913440704345703 +4.7396030426025391 +6.2719516754150391 +4.9696397781372070 +5.3231949806213379 +5.8397264480590820 +7.6482872962951660 +4.7697381973266602 +6.7683596611022949 +5.4111528396606445 +4.5862512588500977 +4.6091561317443848 +7.9145689010620117 +6.3981661796569824 +5.3354339599609375 +6.4388842582702637 +4.6817755699157715 +7.7437458038330078 +7.4005393981933594 +6.2485680580139160 +4.7268772125244141 +4.9739747047424316 +4.5784044265747070 +5.0820150375366211 +4.8366913795471191 +8.6323699951171875 +4.6866798400878906 +6.7935862541198730 +5.3263468742370605 +4.6875720024108887 +5.5245547294616699 +4.7671775817871094 +4.8447327613830566 +6.9218134880065918 +6.3633837699890137 +4.9671058654785156 +4.5944786071777344 +5.1251573562622070 +5.4132428169250488 +6.2578759193420410 +4.7880201339721680 +5.3863043785095215 +5.4141225814819336 +5.0574069023132324 +5.6093826293945312 +5.1126222610473633 +6.4782691001892090 +5.0523290634155273 +6.1379990577697754 +4.8727340698242188 +5.9101943969726562 +5.0163965225219727 +5.8373203277587891 +4.6272091865539551 +6.0584435462951660 +5.5298018455505371 +6.0219869613647461 +5.0624122619628906 +8.3892021179199219 +7.0273261070251465 +4.9406304359436035 +4.8163433074951172 +4.9629468917846680 +5.9925274848937988 +0.4341366887092590 +5.5758256912231445 +6.5202989578247070 +5.0114750862121582 +5.2450733184814453 +4.6611685752868652 +5.6522078514099121 +4.6288266181945801 +5.0473246574401855 +4.6020627021789551 +5.8011336326599121 +5.0723118782043457 +5.7162456512451172 +5.0946741104125977 +5.1434788703918457 +4.6449313163757324 +4.8183717727661133 +6.8034758567810059 +5.7908248901367188 +6.0553059577941895 +4.6454663276672363 +5.5212998390197754 +5.4187784194946289 +5.2618932723999023 +4.7879142761230469 +5.3454537391662598 +8.2306346893310547 +5.2789807319641113 +6.3208184242248535 +4.7132382392883301 +4.7269363403320312 +4.9279956817626953 +5.2323594093322754 +4.8445472717285156 +4.9867324829101562 +5.5937533378601074 +5.0381312370300293 +5.2238917350769043 +5.8448543548583984 +6.2105212211608887 +4.5977349281311035 +4.7676630020141602 +4.9868726730346680 +5.0888051986694336 +4.6650776863098145 +4.7015757560729980 +4.7415232658386230 +5.6171050071716309 +5.5860710144042969 +5.5182614326477051 +4.7705464363098145 +6.4783911705017090 +5.6676545143127441 +4.6517214775085449 +4.6436686515808105 +4.7548332214355469 +4.6995348930358887 +6.7769756317138672 +5.0129504203796387 +4.9236860275268555 +5.1218609809875488 +4.6091227531433105 +5.4074311256408691 +5.9899344444274902 +4.9182114601135254 +0.4339244663715363 +7.8321967124938965 +4.8531150817871094 +6.8374204635620117 +4.6077241897583008 +4.8072800636291504 +5.9341559410095215 +4.6291546821594238 +4.6108603477478027 +6.9183220863342285 +6.1450910568237305 +4.9562554359436035 +5.7973003387451172 +4.7877645492553711 +5.2977647781372070 +5.8915824890136719 +5.2701802253723145 +5.2733139991760254 +6.0349626541137695 +4.7234945297241211 +5.8582658767700195 +6.1586890220642090 +4.8673319816589355 +6.7880325317382812 +5.1494112014770508 +6.1753125190734863 +5.1603322029113770 +6.8983154296875000 +4.9133400917053223 +4.7344446182250977 +4.7300539016723633 +5.6070885658264160 +9.8225927352905273 +4.9487686157226562 +5.1004109382629395 +5.0941905975341797 +5.0390009880065918 +4.6419320106506348 +5.0408020019531250 +4.8383994102478027 +5.2533144950866699 +5.0250267982482910 +4.8322243690490723 +4.7243227958679199 +5.6594514846801758 +5.2371973991394043 +7.4800858497619629 +6.1390547752380371 +4.7207489013671875 +5.1552152633666992 +6.2445502281188965 +6.8872880935668945 +6.8022513389587402 +4.6998310089111328 +4.7860593795776367 +5.9390516281127930 +5.1990599632263184 +4.6747570037841797 +4.6028175354003906 +4.8148512840270996 +6.0821995735168457 +5.3164119720458984 +4.7596087455749512 +5.1921358108520508 +5.2661838531494141 +0.4028917849063873 +4.9110832214355469 +4.6599745750427246 +4.7840080261230469 +4.9304046630859375 +5.2419734001159668 +5.3735222816467285 +5.1746573448181152 +5.8890366554260254 +5.7374382019042969 +5.3699817657470703 +6.1041941642761230 +4.8543481826782227 +6.4961862564086914 +5.7229280471801758 +4.6805658340454102 +6.3684201240539551 +6.5567383766174316 +4.9643392562866211 +4.9590606689453125 +6.9002161026000977 +4.7888360023498535 +4.6188597679138184 +6.9397830963134766 +4.7626976966857910 +6.6315946578979492 +4.9128222465515137 +4.6074714660644531 +5.2284007072448730 +4.6803641319274902 +4.8817791938781738 +6.4925460815429688 +6.3420567512512207 +7.3231978416442871 +5.1641454696655273 +4.7665438652038574 +5.1127424240112305 +5.8108558654785156 +5.6788043975830078 +4.8586845397949219 +4.8735580444335938 +5.9404892921447754 +5.1714763641357422 +5.2462220191955566 +6.4487924575805664 +6.4892802238464355 +5.3108263015747070 +4.8981099128723145 +5.3366060256958008 +7.3280653953552246 +4.5918269157409668 +6.4618611335754395 +4.9517879486083984 +5.5033974647521973 +4.5741081237792969 +5.2066841125488281 +4.5711383819580078 +5.5038437843322754 +5.4350156784057617 +5.3801717758178711 +6.4846205711364746 +6.7651968002319336 +6.8924989700317383 +5.0895934104919434 +6.0348434448242188 +0.3784841001033783 +4.9424409866333008 +11.8338890075683594 +5.1134901046752930 +4.7103214263916016 +4.8005847930908203 +5.9590120315551758 +4.6173944473266602 +4.7357926368713379 +7.6433963775634766 +7.5104985237121582 +4.9391169548034668 +4.8469538688659668 +4.7568130493164062 +4.9429025650024414 +6.1430530548095703 +7.9299416542053223 +6.3563113212585449 +4.8766388893127441 +5.1355385780334473 +5.9673290252685547 +5.6619248390197754 +5.2915396690368652 +7.4275560379028320 +4.7299284934997559 +4.5878224372863770 +5.4973831176757812 +4.8298411369323730 +5.3555240631103516 +4.6764707565307617 +7.2059202194213867 +6.2722682952880859 +5.8746829032897949 +4.9717860221862793 +5.6706075668334961 +4.7457504272460938 +5.3987541198730469 +4.8938956260681152 +5.2053418159484863 +4.9005632400512695 +5.0954694747924805 +5.3885116577148438 +7.4025883674621582 +5.8905267715454102 +7.2430567741394043 +4.7460803985595703 +4.9601073265075684 +5.4867630004882812 +4.7382831573486328 +4.7044425010681152 +6.0020585060119629 +5.0103220939636230 +5.0796513557434082 +4.6941676139831543 +5.7019133567810059 +4.9374084472656250 +5.3406076431274414 +4.8151574134826660 +5.3371143341064453 +4.5969638824462891 +6.1959366798400879 +5.5480589866638184 +4.9623727798461914 +5.5104827880859375 +5.2513027191162109 +0.4314683675765991 +5.3447356224060059 +5.5104365348815918 +5.4323983192443848 +4.6750764846801758 +4.9299936294555664 +5.1195402145385742 +4.9518160820007324 +6.6441712379455566 +4.9927806854248047 +5.4909467697143555 +8.5377435684204102 +5.3916373252868652 +4.7005352973937988 +5.2585272789001465 +5.0940380096435547 +5.5162611007690430 +4.6650047302246094 +4.9704103469848633 +4.9947180747985840 +5.4044966697692871 +5.1210069656372070 +5.2516055107116699 +6.4017729759216309 +6.5223155021667480 +5.6849021911621094 +4.9014739990234375 +5.3808560371398926 +6.0766530036926270 +4.7541985511779785 +6.4609856605529785 +4.6657133102416992 +5.1054673194885254 +4.9930553436279297 +4.9709134101867676 +5.3712749481201172 +5.8391585350036621 +4.8909902572631836 +5.1433978080749512 +5.2616505622863770 +6.2934389114379883 +5.0934953689575195 +4.6364626884460449 +5.5467896461486816 +4.7596287727355957 +5.9626717567443848 +5.0637698173522949 +4.9328656196594238 +4.6564426422119141 +4.7861237525939941 +4.8747935295104980 +5.4434599876403809 +4.9951562881469727 +7.2143073081970215 +6.2355985641479492 +4.8023991584777832 +4.8853902816772461 +7.8326263427734375 +5.0223908424377441 +6.3765716552734375 +4.7171626091003418 +5.4764494895935059 +4.7181129455566406 +4.6490697860717773 +4.8812174797058105 +0.4322844743728638 +6.9808115959167480 +5.1179704666137695 +5.0523233413696289 +5.3995499610900879 +4.6149702072143555 +5.3461847305297852 +5.6200370788574219 +4.8056225776672363 +5.9356260299682617 +5.0684289932250977 +5.0550136566162109 +4.6110630035400391 +5.5425891876220703 +6.9838790893554688 +5.1815829277038574 +6.2926273345947266 +4.8768558502197266 +5.7210917472839355 +4.6019682884216309 +7.1578707695007324 +4.7170591354370117 +5.4965100288391113 +5.0707249641418457 +5.8397307395935059 +5.6928935050964355 +4.6264123916625977 +5.2054433822631836 +6.6875271797180176 +4.7798533439636230 +5.5423359870910645 +6.9557547569274902 +6.3472390174865723 +4.6458535194396973 +4.6510696411132812 +4.6829218864440918 +5.0773425102233887 +4.6965894699096680 +4.8548989295959473 +6.8721628189086914 +6.1069712638854980 +5.5410647392272949 +5.1325020790100098 +4.7249565124511719 +5.3115086555480957 +7.6608552932739258 +5.2549653053283691 +5.4754214286804199 +7.1585717201232910 +9.2728891372680664 +4.6784572601318359 +5.4729914665222168 +4.8569149971008301 +4.7813615798950195 +6.6923651695251465 +5.3805451393127441 +4.9648203849792480 +7.0187811851501465 +5.1037945747375488 +6.1012601852416992 +5.5328822135925293 +4.9962334632873535 +7.0704741477966309 +5.3201427459716797 +4.8966383934020996 +0.3782436847686768 +5.6616816520690918 +4.5569467544555664 +7.2819848060607910 +5.0616035461425781 +5.3978223800659180 +4.9064478874206543 +4.7550668716430664 +5.0184836387634277 +6.1106514930725098 +5.6353836059570312 +5.5855383872985840 +4.6316199302673340 +6.2833170890808105 +5.1009387969970703 +5.8093466758728027 +4.6425147056579590 +5.6432642936706543 +7.1617379188537598 +6.5623240470886230 +5.6113405227661133 +7.3220748901367188 +4.7634115219116211 +4.5467948913574219 +5.2445240020751953 +4.5430307388305664 +7.0999531745910645 +6.7025532722473145 +5.4101576805114746 +4.5656700134277344 +7.1459255218505859 +4.7548451423645020 +5.6990227699279785 +5.9059329032897949 +4.8455295562744141 +4.9831557273864746 +5.8637752532958984 +8.8023376464843750 +5.2903599739074707 +4.5768666267395020 +4.5740680694580078 +6.7240304946899414 +6.0722918510437012 +5.6470303535461426 +5.7209105491638184 +4.9972796440124512 +6.4727039337158203 +5.2810325622558594 +5.3593149185180664 +5.0717821121215820 +5.0661520957946777 +4.7346935272216797 +5.7298059463500977 +5.1004714965820312 +5.6723370552062988 +8.0497255325317383 +4.8951549530029297 +4.6995272636413574 +4.7029857635498047 +5.0454473495483398 +4.5984783172607422 +4.9936966896057129 +5.2157669067382812 +5.1850986480712891 +5.3245105743408203 +0.4143236577510834 +5.8750576972961426 +4.5898327827453613 +5.0702714920043945 +4.8866996765136719 +4.7181191444396973 +5.3432273864746094 +7.2510986328125000 +5.1067643165588379 +5.3690824508666992 +4.7492623329162598 +5.1307158470153809 +5.1054725646972656 +5.5777869224548340 +4.5960083007812500 +5.7505292892456055 +5.1177725791931152 +6.5223355293273926 +4.6885819435119629 +4.9032869338989258 +5.3257884979248047 +5.2726082801818848 +6.9228706359863281 +5.2283692359924316 +4.9596686363220215 +5.7010602951049805 +4.7569475173950195 +4.7710614204406738 +5.6058502197265625 +6.3557410240173340 +5.6053533554077148 +6.4243283271789551 +5.6480593681335449 +6.7116460800170898 +4.6449551582336426 +5.2268571853637695 +4.7894573211669922 +9.0996055603027344 +4.6808042526245117 +5.1303143501281738 +5.4023375511169434 +4.9878654479980469 +5.5950512886047363 +9.5998954772949219 +5.1220927238464355 +5.4663214683532715 +5.7037129402160645 +5.6110677719116211 +4.7073206901550293 +5.8014602661132812 +4.6978120803833008 +5.4676728248596191 +5.1140270233154297 +4.9514641761779785 +6.6636238098144531 +4.7512798309326172 +4.9412660598754883 +5.6506438255310059 +4.7694258689880371 +5.1800599098205566 +5.2235603332519531 +5.6780824661254883 +5.3813166618347168 +5.1093878746032715 +5.0955834388732910 +0.3569416105747223 +4.7234501838684082 +5.8195562362670898 +5.2162365913391113 +5.8263716697692871 +6.6037144660949707 +5.0474843978881836 +5.1625728607177734 +8.4842720031738281 +4.9594039916992188 +4.9626746177673340 +10.0924272537231445 +6.0148663520812988 +6.6376028060913086 +5.6990375518798828 +4.5671191215515137 +4.8547258377075195 +6.4794850349426270 +4.6801414489746094 +5.6752824783325195 +4.8364820480346680 +5.8301830291748047 +8.0792827606201172 +6.0132536888122559 +5.8911423683166504 +6.0837221145629883 +5.1571779251098633 +6.0518226623535156 +5.2478561401367188 +5.3225049972534180 +5.5972228050231934 +5.4872817993164062 +6.5153617858886719 +5.9240460395812988 +4.9821233749389648 +5.1132321357727051 +4.9694209098815918 +5.2873215675354004 +4.8491969108581543 +5.1156983375549316 +5.0832648277282715 +4.9800353050231934 +5.5553154945373535 +5.2070574760437012 +5.0829100608825684 +5.4371623992919922 +5.1582574844360352 +5.1120595932006836 +5.5330853462219238 +5.3622303009033203 +5.3977527618408203 +4.8032174110412598 +5.9285273551940918 +4.6795716285705566 +7.2855067253112793 +4.7031035423278809 +4.9156861305236816 +5.9449553489685059 +4.8316178321838379 +6.7048716545104980 +5.0083189010620117 +5.3246202468872070 +5.8594613075256348 +4.6657409667968750 +4.8495755195617676 +0.4211205542087555 +4.9756107330322266 +4.5996503829956055 +4.8797497749328613 +5.5317082405090332 +5.0513601303100586 +5.5816707611083984 +5.0805869102478027 +5.1162395477294922 +4.9116086959838867 +6.4871478080749512 +6.3095560073852539 +6.6324877738952637 +4.5951528549194336 +6.1956896781921387 +5.2655491828918457 +6.6112074851989746 +6.1171870231628418 +5.8263988494873047 +4.8610553741455078 +5.3934497833251953 +5.0033059120178223 +6.0316720008850098 +5.4508109092712402 +5.3314185142517090 +7.6714587211608887 +4.8474478721618652 +4.6961226463317871 +5.2043919563293457 +4.6093726158142090 +4.7739930152893066 +5.7372627258300781 +4.6519379615783691 +4.8310961723327637 +6.5517101287841797 +5.5447878837585449 +5.1653985977172852 +4.7467856407165527 +4.8303461074829102 +6.3617877960205078 +4.6361861228942871 +4.8459997177124023 +4.8757681846618652 +4.7449493408203125 +4.7854433059692383 +5.1316819190979004 +5.3725018501281738 +5.3141522407531738 +4.5458564758300781 +6.3158879280090332 +4.9264683723449707 +5.1540160179138184 +4.7369494438171387 +4.8771429061889648 +6.6131300926208496 +6.3774247169494629 +4.6922807693481445 +5.3595132827758789 +4.5945544242858887 +5.0050716400146484 +5.4043726921081543 +5.6146354675292969 +6.2581005096435547 +6.3473091125488281 +5.2941374778747559 +0.3796644508838654 +4.9150643348693848 +5.8102803230285645 +6.0229930877685547 +7.6059994697570801 +6.4932851791381836 +4.7152419090270996 +6.9069604873657227 +4.6262845993041992 +5.1132183074951172 +6.9340419769287109 +5.0016112327575684 +6.6673560142517090 +4.7497367858886719 +7.6205182075500488 +5.5062026977539062 +6.1012687683105469 +5.2064304351806641 +4.5782198905944824 +4.7398452758789062 +6.0399141311645508 +5.8461999893188477 +4.6891927719116211 +5.9870533943176270 +5.8751101493835449 +4.6167535781860352 +6.0066385269165039 +6.0455431938171387 +5.0417013168334961 +5.8854331970214844 +4.9523568153381348 +7.5765824317932129 +5.5291085243225098 +4.8624162673950195 +6.2852921485900879 +6.3582029342651367 +9.8438568115234375 +4.9064607620239258 +5.5180311203002930 +4.9855308532714844 +6.0842828750610352 +6.3314018249511719 +4.9995427131652832 +5.7561450004577637 +6.4863810539245605 +5.3755874633789062 +4.6998748779296875 +4.9197535514831543 +5.2555809020996094 +6.0637879371643066 +4.8752698898315430 +9.5626506805419922 +4.8995809555053711 +7.2290754318237305 +4.9676718711853027 +5.8281459808349609 +4.6122837066650391 +4.7543482780456543 +5.5420246124267578 +4.5593690872192383 +5.8532376289367676 +5.5861554145812988 +4.5719156265258789 +8.2208776473999023 +5.8957858085632324 +0.3755325078964233 +5.2249884605407715 +5.6731777191162109 +7.3943042755126953 +4.7054500579833984 +9.8571701049804688 +5.7090749740600586 +7.1648664474487305 +8.4218883514404297 +4.7003545761108398 +7.2327351570129395 +4.6688995361328125 +4.8730173110961914 +5.6352677345275879 +5.4599475860595703 +6.9562253952026367 +5.7632761001586914 +5.9884133338928223 +4.9827189445495605 +5.4761614799499512 +4.7193846702575684 +4.7817015647888184 +5.2997713088989258 +6.5311746597290039 +5.7148051261901855 +4.7379627227783203 +4.8209075927734375 +6.8588151931762695 +4.8484106063842773 +4.5399823188781738 +5.7136073112487793 +4.8046951293945312 +7.9369249343872070 +5.2068986892700195 +4.8059420585632324 +4.8293304443359375 +5.3544163703918457 +5.1236896514892578 +8.0822315216064453 +5.0945525169372559 +7.0931239128112793 +4.9286303520202637 +5.7731461524963379 +4.7449851036071777 +5.2681126594543457 +5.3264737129211426 +5.9884757995605469 +5.1264224052429199 +4.8619790077209473 +4.7633099555969238 +8.0085821151733398 +5.8285455703735352 +5.1523437500000000 +5.0171627998352051 +6.3598508834838867 +5.3950133323669434 +6.3033595085144043 +4.9247870445251465 +5.3710408210754395 +4.6989893913269043 +4.6217918395996094 +6.4736118316650391 +4.8793315887451172 +4.8894829750061035 +6.7057771682739258 +0.4103604555130005 +5.5446457862854004 +6.8089494705200195 +5.2247519493103027 +4.9652094841003418 +4.7790851593017578 +5.8176655769348145 +4.8248944282531738 +4.9146494865417480 +5.1076478958129883 +4.6488261222839355 +4.8781857490539551 +5.1133446693420410 +4.6287274360656738 +7.7656335830688477 +4.6262187957763672 +5.0601425170898438 +5.8786611557006836 +5.5223159790039062 +6.9470381736755371 +5.9028468132019043 +4.7904591560363770 +5.1021785736083984 +4.5863609313964844 +5.7678489685058594 +5.4296050071716309 +5.7915787696838379 +4.9097995758056641 +4.7620410919189453 +7.1485986709594727 +5.1077857017517090 +5.3499894142150879 +4.9739274978637695 +4.8096137046813965 +5.4184780120849609 +5.2346820831298828 +5.1167030334472656 +6.6315255165100098 +5.4492597579956055 +6.6511697769165039 +5.8048582077026367 +4.7137498855590820 +4.6004657745361328 +4.6365871429443359 +4.6011734008789062 +5.3783097267150879 +7.7999286651611328 +5.0971179008483887 +5.9191036224365234 +4.7032775878906250 +5.0182948112487793 +4.8670959472656250 +6.4366416931152344 +5.0873231887817383 +4.8886632919311523 +4.7805519104003906 +6.6119852066040039 +5.7460451126098633 +4.7372322082519531 +5.5634846687316895 +6.7779870033264160 +5.7357616424560547 +6.1302437782287598 +4.7636580467224121 +5.2257695198059082 +0.4030857384204865 +4.5632257461547852 +4.7241930961608887 +4.5912938117980957 +7.6425132751464844 +5.8025798797607422 +6.4655132293701172 +5.0946788787841797 +5.0423579216003418 +6.6310081481933594 +4.9916486740112305 +5.1369814872741699 +6.6356492042541504 +4.5751509666442871 +6.8368034362792969 +4.6122221946716309 +4.6097521781921387 +6.3539581298828125 +8.2698106765747070 +4.7930216789245605 +6.2162485122680664 +6.0300388336181641 +5.3075079917907715 +6.6024985313415527 +5.1612763404846191 +4.8913135528564453 +5.2278800010681152 +5.2884173393249512 +4.6081085205078125 +6.6670465469360352 +4.6318054199218750 +6.1217041015625000 +4.5877628326416016 +6.4418349266052246 +4.9336228370666504 +7.5589318275451660 +5.1504712104797363 +6.7063765525817871 +4.7047452926635742 +6.1345911026000977 +4.8044180870056152 +4.8197641372680664 +5.6640563011169434 +5.4079294204711914 +5.1162695884704590 +6.5212574005126953 +4.6909794807434082 +5.3671412467956543 +4.9647078514099121 +5.2134599685668945 +4.6870589256286621 +5.3208794593811035 +4.8576045036315918 +4.6342024803161621 +6.1376724243164062 +5.3245658874511719 +5.0237360000610352 +4.8538813591003418 +6.0572433471679688 +6.6467752456665039 +4.7589774131774902 +6.2776308059692383 +4.8077445030212402 +4.7051215171813965 +4.6193027496337891 +0.4345825910568237 +5.7353854179382324 +4.5984358787536621 +5.4073672294616699 +4.6989297866821289 +5.0438108444213867 +4.6308526992797852 +4.9767508506774902 +5.0557065010070801 +5.0629782676696777 +6.1671361923217773 +4.9634680747985840 +7.8849701881408691 +4.8708119392395020 +6.0853676795959473 +7.0893602371215820 +4.6526679992675781 +4.6551294326782227 +5.0611724853515625 +4.6530013084411621 +5.2617249488830566 +4.9877381324768066 +7.7293286323547363 +8.4607295989990234 +5.3189697265625000 +4.6999483108520508 +5.2137579917907715 +5.3174471855163574 +6.5512862205505371 +6.3784084320068359 +4.7548818588256836 +5.6520657539367676 +5.4457559585571289 +4.6598114967346191 +6.6987833976745605 +4.7619466781616211 +5.0392570495605469 +5.0542836189270020 +4.5953998565673828 +5.3306617736816406 +4.6703157424926758 +4.8969306945800781 +4.9830341339111328 +5.5590028762817383 +5.9310607910156250 +11.1290941238403320 +6.0858478546142578 +4.8699450492858887 +5.7069697380065918 +7.2121748924255371 +4.7386345863342285 +5.3084125518798828 +5.6247410774230957 +4.9295144081115723 +4.6002931594848633 +8.7508087158203125 +8.1286134719848633 +5.2254533767700195 +4.5838613510131836 +4.6277551651000977 +5.0964856147766113 +5.4429950714111328 +4.7614669799804688 +4.6416873931884766 +4.7588491439819336 +0.4191697835922241 +7.1169056892395020 +6.4420819282531738 +6.0386142730712891 +5.9013018608093262 +5.3564195632934570 +4.6336441040039062 +4.9978871345520020 +4.6220331192016602 +5.9584379196166992 +5.6778998374938965 +7.9734215736389160 +4.6204395294189453 +4.7643036842346191 +4.7717008590698242 +4.6108546257019043 +5.9644842147827148 +5.1384010314941406 +4.6443319320678711 +5.1569209098815918 +5.8498592376708984 +5.7876973152160645 +5.6888585090637207 +6.8061122894287109 +6.8314485549926758 +4.7084441184997559 +6.5534300804138184 +4.7748246192932129 +5.5163154602050781 +4.8061637878417969 +5.5096478462219238 +6.5929174423217773 +5.6639180183410645 +5.1758260726928711 +4.5839309692382812 +5.5424466133117676 +5.0101881027221680 +5.6814799308776855 +4.8306851387023926 +5.9637703895568848 +5.6678481101989746 +5.0333819389343262 +5.1517767906188965 +5.2425856590270996 +4.6045851707458496 +5.6738266944885254 +5.1652879714965820 +4.6349778175354004 +5.7661232948303223 +5.0541954040527344 +5.9003772735595703 +5.6055169105529785 +4.6672053337097168 +4.9622278213500977 +6.7943058013916016 +5.5613088607788086 +6.2739028930664062 +4.5625438690185547 +4.8667254447937012 +5.2138905525207520 +4.6868705749511719 +4.7399101257324219 +7.0432691574096680 +5.5556244850158691 +6.1119484901428223 +0.3976427912712097 +5.1937885284423828 +5.6092271804809570 +4.8467450141906738 +4.9060907363891602 +4.9520168304443359 +5.3600301742553711 +5.6761798858642578 +6.5627832412719727 +5.0601553916931152 +8.0589857101440430 +4.7316098213195801 +6.1974282264709473 +5.1973514556884766 +6.1190862655639648 +6.6655497550964355 +7.5896053314208984 +6.6181292533874512 +4.7863330841064453 +6.2074742317199707 +4.6454310417175293 +4.8619632720947266 +4.5773072242736816 +7.4714007377624512 +6.4207038879394531 +4.7033390998840332 +4.7096185684204102 +5.0056195259094238 +4.7371020317077637 +7.4269571304321289 +5.8403010368347168 +7.5108771324157715 +6.7822909355163574 +7.5990948677062988 +6.0659308433532715 +4.7021951675415039 +6.3828830718994141 +5.0808868408203125 +5.0121302604675293 +6.3055291175842285 +4.9462566375732422 +4.6560597419738770 +5.7123918533325195 +6.1488299369812012 +7.5158019065856934 +5.5327339172363281 +5.0093965530395508 +5.7097759246826172 +6.0700860023498535 +4.6161808967590332 +4.7304272651672363 +4.8156943321228027 +4.6416153907775879 +10.0008525848388672 +4.7306880950927734 +5.7486834526062012 +4.9621958732604980 +4.7549161911010742 +4.7366008758544922 +4.6456789970397949 +4.7973365783691406 +4.7912201881408691 +4.5837607383728027 +5.1943068504333496 +6.6231231689453125 +0.4148429930210114 +5.3612227439880371 +4.6882367134094238 +7.4859519004821777 +4.7618799209594727 +4.7419753074645996 +5.3885469436645508 +4.8333754539489746 +4.8180742263793945 +5.7682337760925293 +5.0450286865234375 +5.9662499427795410 +4.7242608070373535 +4.5769920349121094 +4.8185029029846191 +5.6447911262512207 +5.4814505577087402 +5.7221221923828125 +6.9044928550720215 +5.1414747238159180 +6.9196929931640625 +8.6257982254028320 +4.6283740997314453 +5.0345025062561035 +8.6697082519531250 +5.0851683616638184 +5.3945555686950684 +5.8576545715332031 +4.9970917701721191 +4.9475312232971191 +4.8475794792175293 +5.4120726585388184 +5.7948822975158691 +6.2429456710815430 +4.9339776039123535 +6.0889973640441895 +4.8249444961547852 +4.5705704689025879 +4.7218656539916992 +5.5356245040893555 +5.3079485893249512 +5.3553628921508789 +6.4531679153442383 +6.3216938972473145 +7.4872422218322754 +5.6370797157287598 +6.6391177177429199 +6.6286659240722656 +4.7156376838684082 +4.9732875823974609 +6.4334764480590820 +4.8852882385253906 +5.7017521858215332 +6.4048132896423340 +7.4674682617187500 +5.0016417503356934 +5.3377108573913574 +6.2371840476989746 +5.7698111534118652 +4.9676518440246582 +4.9279274940490723 +4.6051969528198242 +5.1981873512268066 +5.9326915740966797 +6.6644554138183594 +0.3995843231678009 +5.0919375419616699 +4.7427492141723633 +4.5906624794006348 +5.3444480895996094 +4.9204235076904297 +6.4652404785156250 +5.7746477127075195 +7.3199925422668457 +4.6967983245849609 +4.6466960906982422 +4.6052026748657227 +7.6726961135864258 +5.4286980628967285 +4.6711230278015137 +4.8162350654602051 +10.1981525421142578 +4.5833396911621094 +7.0520939826965332 +4.7737979888916016 +4.8161168098449707 +4.6018714904785156 +4.9904370307922363 +7.5844597816467285 +4.6346268653869629 +4.9565811157226562 +5.4706711769104004 +5.0076389312744141 +5.3683257102966309 +4.7041726112365723 +7.6694450378417969 +4.6045331954956055 +4.9688596725463867 +5.4646000862121582 +4.7341542243957520 +5.5774650573730469 +4.6767749786376953 +6.4375123977661133 +4.9007668495178223 +5.8417277336120605 +5.7076745033264160 +4.8162879943847656 +4.8411836624145508 +4.9654073715209961 +6.4599957466125488 +5.4514341354370117 +7.0431780815124512 +5.1861457824707031 +4.7901043891906738 +6.0325450897216797 +6.3500971794128418 +5.6202468872070312 +4.7764239311218262 +5.5708398818969727 +4.8696289062500000 +6.2544875144958496 +5.1278610229492188 +5.2468557357788086 +4.6403765678405762 +5.2751474380493164 +6.4645571708679199 +4.9969315528869629 +4.6415767669677734 +6.9229674339294434 +7.9649224281311035 +0.4161665737628937 +8.8587675094604492 +4.9546432495117188 +6.9232530593872070 +4.6804175376892090 +7.1523556709289551 +4.9675102233886719 +4.5836992263793945 +4.7261300086975098 +5.6146979331970215 +5.3206171989440918 +4.7357692718505859 +5.8587265014648438 +5.8392496109008789 +5.2521548271179199 +4.7706079483032227 +5.0807733535766602 +7.3634653091430664 +4.9157571792602539 +5.4056138992309570 +4.6560692787170410 +4.9812006950378418 +4.6471843719482422 +5.5160160064697266 +4.9861083030700684 +5.0291695594787598 +5.4388365745544434 +5.0092806816101074 +5.5609502792358398 +6.1521582603454590 +6.8754143714904785 +4.7497992515563965 +4.7462854385375977 +5.0650534629821777 +5.5054616928100586 +5.3379378318786621 +6.3232755661010742 +4.6188006401062012 +4.7514219284057617 +5.3365817070007324 +6.2211627960205078 +7.0014576911926270 +6.7995471954345703 +4.5981101989746094 +5.9544034004211426 +7.4116401672363281 +4.5952615737915039 +4.9328699111938477 +5.4384217262268066 +6.4042191505432129 +5.8245811462402344 +4.7151141166687012 +4.8055891990661621 +5.0580806732177734 +4.6733837127685547 +4.8434567451477051 +5.8289585113525391 +6.2260880470275879 +6.0741748809814453 +5.8013515472412109 +4.5907568931579590 +7.7158765792846680 +5.4447731971740723 +5.9054207801818848 +5.5722150802612305 +0.4213387370109558 +6.2621068954467773 +4.9014010429382324 +4.6343665122985840 +4.9576282501220703 +4.9787969589233398 +7.1189303398132324 +5.1734642982482910 +5.5546693801879883 +4.8225159645080566 +4.8416180610656738 +4.6506848335266113 +5.7273287773132324 +5.0549387931823730 +5.0387072563171387 +4.6105360984802246 +5.4141635894775391 +4.6379404067993164 +5.0993657112121582 +6.6805210113525391 +5.2479801177978516 +4.6835222244262695 +7.2329297065734863 +4.8515858650207520 +4.7149319648742676 +4.6297597885131836 +5.2715897560119629 +4.7092266082763672 +5.8694591522216797 +5.2594723701477051 +5.9689955711364746 +5.0887908935546875 +5.4198656082153320 +4.6491851806640625 +4.5884337425231934 +5.0596184730529785 +5.6048693656921387 +5.1627111434936523 +4.9852957725524902 +6.8810896873474121 +4.6463632583618164 +4.7983183860778809 +4.5742473602294922 +5.9496655464172363 +6.1856322288513184 +5.8205423355102539 +4.9131994247436523 +5.5906581878662109 +4.9822049140930176 +4.9098739624023438 +4.8962984085083008 +7.9990363121032715 +5.6912293434143066 +5.4918017387390137 +6.0386610031127930 +4.7803692817687988 +5.9625687599182129 +4.6837706565856934 +6.0086188316345215 +4.6985406875610352 +5.5430598258972168 +4.7299175262451172 +7.3409781455993652 +6.5415019989013672 +6.4979248046875000 +0.3998342752456665 +5.8243026733398438 +4.8341445922851562 +6.3383789062500000 +5.6138219833374023 +5.7963037490844727 +5.5552392005920410 +4.6993999481201172 +4.5624060630798340 +4.8342952728271484 +7.4010491371154785 +6.5453987121582031 +5.8397216796875000 +4.9375185966491699 +5.3303737640380859 +5.4161815643310547 +4.6137366294860840 +4.9863634109497070 +5.1914610862731934 +4.6975193023681641 +5.3798046112060547 +6.9543242454528809 +6.6142144203186035 +4.6014347076416016 +4.7890233993530273 +8.1156692504882812 +8.1241493225097656 +5.5810241699218750 +6.6038455963134766 +4.9314136505126953 +5.3754897117614746 +4.8405303955078125 +5.2296056747436523 +5.4935212135314941 +4.7374191284179688 +5.0954508781433105 +5.8169922828674316 +5.1049132347106934 +4.7423992156982422 +5.6286888122558594 +7.0628924369812012 +4.8621053695678711 +5.1222715377807617 +4.9881005287170410 +4.6832094192504883 +4.7143607139587402 +5.1031675338745117 +4.6338133811950684 +5.0548224449157715 +4.8254590034484863 +4.7478709220886230 +5.4875779151916504 +6.7658848762512207 +5.0710525512695312 +4.8872699737548828 +6.5821509361267090 +5.2912049293518066 +6.2325339317321777 +4.7316894531250000 +5.0314874649047852 +6.7214508056640625 +5.8136663436889648 +4.7039422988891602 +5.5453252792358398 +5.1353006362915039 +0.4248380064964294 +5.3060221672058105 +5.7073698043823242 +7.7021245956420898 +5.1321086883544922 +4.6920895576477051 +5.1481266021728516 +5.1895260810852051 +5.4837632179260254 +5.0605053901672363 +5.6292710304260254 +5.7511434555053711 +5.7441515922546387 +4.9573893547058105 +4.6159806251525879 +6.0799994468688965 +5.6238765716552734 +5.0969548225402832 +4.9465284347534180 +5.8359408378601074 +4.9624328613281250 +4.8596458435058594 +4.7249989509582520 +5.8560585975646973 +4.6242957115173340 +4.8503136634826660 +5.8664946556091309 +5.6387839317321777 +5.8035125732421875 +5.5755643844604492 +4.9192552566528320 +4.7743897438049316 +5.0384421348571777 +5.1456475257873535 +5.6832728385925293 +5.4382205009460449 +5.5818600654602051 +5.6939554214477539 +4.6096525192260742 +6.9536290168762207 +5.2904872894287109 +5.5651907920837402 +5.3805480003356934 +4.7770404815673828 +4.8926153182983398 +4.7217640876770020 +4.8712668418884277 +4.9449691772460938 +7.1423430442810059 +4.8301453590393066 +5.5419220924377441 +5.5525674819946289 +6.1863074302673340 +5.3088316917419434 +4.7370333671569824 +4.9828124046325684 +6.0112700462341309 +5.0476913452148438 +5.8254299163818359 +6.5968828201293945 +5.4839119911193848 +4.8321905136108398 +5.8672299385070801 +4.7366929054260254 +5.6321702003479004 +0.3949781954288483 +7.5574169158935547 +4.9167385101318359 +6.2427396774291992 +5.6962375640869141 +6.9775805473327637 +5.7575697898864746 +4.5729594230651855 +5.4804801940917969 +5.2294521331787109 +4.7805838584899902 +5.3260540962219238 +5.8438820838928223 +6.7213439941406250 +6.5589532852172852 +5.0314302444458008 +4.7935161590576172 +5.4200258255004883 +4.9899044036865234 +5.2621793746948242 +4.7347607612609863 +4.9169120788574219 +4.7101602554321289 +5.0417814254760742 +5.4387578964233398 +4.8180732727050781 +7.7677950859069824 +4.5725908279418945 +6.2107410430908203 +4.9989304542541504 +7.0792427062988281 +8.8517646789550781 +4.7441778182983398 +6.3342318534851074 +5.8814301490783691 +5.0960040092468262 +5.2805275917053223 +5.5140776634216309 +4.7751598358154297 +6.5212259292602539 +4.5694046020507812 +5.0972380638122559 +5.3787879943847656 +4.6121687889099121 +6.3011674880981445 +5.3952035903930664 +7.1331329345703125 +5.0550861358642578 +7.0048732757568359 +5.1864871978759766 +5.6643996238708496 +4.9081096649169922 +7.2126493453979492 +5.7708210945129395 +4.8097929954528809 +4.6288361549377441 +4.7308988571166992 +5.0947427749633789 +7.3379077911376953 +5.2976436614990234 +5.4436979293823242 +6.5653491020202637 +5.0321378707885742 +5.6217312812805176 +5.3053507804870605 +0.3723965287208557 +5.0599989891052246 +6.0090699195861816 +5.0271344184875488 +5.8432688713073730 +5.4735693931579590 +5.2196564674377441 +4.9879765510559082 +5.2822046279907227 +5.1223149299621582 +6.8445916175842285 +5.5332417488098145 +5.0277252197265625 +5.1119909286499023 +8.0150442123413086 +4.8711986541748047 +4.7604637145996094 +5.7702164649963379 +4.5628318786621094 +4.6593470573425293 +6.9079589843750000 +8.0937910079956055 +4.5813970565795898 +6.0618896484375000 +4.6858720779418945 +4.7167067527770996 +7.1018257141113281 +5.1094522476196289 +4.6830844879150391 +7.5029826164245605 +7.1528768539428711 +5.9760684967041016 +4.7309389114379883 +6.4971170425415039 +4.8227844238281250 +4.5797309875488281 +4.7231502532958984 +4.7922325134277344 +5.0253763198852539 +4.8148002624511719 +5.5214810371398926 +6.0388565063476562 +4.6378459930419922 +5.1874208450317383 +5.9668841361999512 +4.8696517944335938 +4.6050229072570801 +4.9606194496154785 +5.1468200683593750 +5.8582201004028320 +4.8074650764465332 +4.7826876640319824 +4.6213846206665039 +5.4213166236877441 +5.0080904960632324 +4.7303924560546875 +4.7082605361938477 +4.8822684288024902 +7.0792384147644043 +8.1922111511230469 +5.0655069351196289 +6.4465188980102539 +5.4346642494201660 +6.2942113876342773 +5.8606166839599609 +0.4124643206596375 +5.4066395759582520 +5.0222697257995605 +5.7164392471313477 +6.0265774726867676 +6.3602404594421387 +4.7539529800415039 +5.9875650405883789 +5.3001499176025391 +4.7936305999755859 +4.7982659339904785 +5.7199811935424805 +5.2849493026733398 +7.7935032844543457 +9.1870584487915039 +5.4798169136047363 +5.2942991256713867 +5.3858532905578613 +4.6644153594970703 +4.7386560440063477 +5.2936563491821289 +6.5237517356872559 +7.4081354141235352 +4.8538718223571777 +7.5952162742614746 +4.8622145652770996 +4.9032797813415527 +4.9569215774536133 +5.4244852066040039 +5.0441946983337402 +5.1851754188537598 +7.3631858825683594 +5.0773291587829590 +5.7351207733154297 +5.5072002410888672 +5.1145982742309570 +4.8029818534851074 +5.2128033638000488 +4.7541565895080566 +5.0239977836608887 +4.7037787437438965 +5.5800218582153320 +7.6648449897766113 +5.6374955177307129 +4.9338445663452148 +5.9706072807312012 +5.7296385765075684 +6.6549839973449707 +5.6277570724487305 +4.9032793045043945 +4.6482057571411133 +4.8873243331909180 +5.1722979545593262 +6.3931393623352051 +6.6204442977905273 +6.9930877685546875 +5.1920261383056641 +4.6768803596496582 +5.5005636215209961 +5.2182350158691406 +4.7684993743896484 +5.2305688858032227 +4.5856900215148926 +5.0165176391601562 +4.9465670585632324 +0.4253169596195221 +4.6290006637573242 +9.5511407852172852 +4.9695339202880859 +4.9317216873168945 +4.9157857894897461 +4.6782770156860352 +4.5894827842712402 +4.7788839340209961 +6.2249574661254883 +5.0017018318176270 +4.6269922256469727 +5.1955280303955078 +5.8655228614807129 +4.7312474250793457 +5.9651207923889160 +5.2322216033935547 +6.7258172035217285 +5.1391000747680664 +6.8177723884582520 +4.8395652770996094 +5.7436852455139160 +5.2270483970642090 +6.1401810646057129 +4.8264260292053223 +7.2586193084716797 +4.7358484268188477 +7.4653506278991699 +5.2577590942382812 +7.4767580032348633 +5.4406890869140625 +5.0784235000610352 +5.7899880409240723 +5.6260561943054199 +5.4653973579406738 +5.3171296119689941 +5.0030479431152344 +4.6293234825134277 +7.2437152862548828 +5.0463728904724121 +4.8047466278076172 +5.7735090255737305 +5.3989772796630859 +5.6575269699096680 +4.7182517051696777 +4.6393270492553711 +6.8177304267883301 +4.5850043296813965 +4.6306037902832031 +5.2609562873840332 +4.6269564628601074 +4.8538284301757812 +5.5396175384521484 +5.2556982040405273 +4.6086049079895020 +4.6578364372253418 +4.6356611251831055 +5.8908205032348633 +7.8511071205139160 +5.0345392227172852 +7.7242627143859863 +5.0538382530212402 +5.9274759292602539 +5.1455078125000000 +5.0748319625854492 +0.4120934605598450 +4.8480939865112305 +5.8794221878051758 +5.2583675384521484 +5.5722017288208008 +4.6766376495361328 +4.8349561691284180 +4.7624244689941406 +4.9168987274169922 +6.2442641258239746 +4.8851757049560547 +6.3965706825256348 +5.2829694747924805 +5.1233096122741699 +5.5428619384765625 +5.8768687248229980 +4.7481575012207031 +5.4428544044494629 +5.3844442367553711 +5.9325628280639648 +7.2930583953857422 +5.1055855751037598 +7.1532297134399414 +6.7044434547424316 +5.0819497108459473 +5.4636564254760742 +4.6879839897155762 +6.3977327346801758 +5.2461261749267578 +4.8241910934448242 +4.8492107391357422 +5.4531555175781250 +6.3466744422912598 +4.6822633743286133 +4.5569334030151367 +4.6036643981933594 +5.2527365684509277 +4.6563949584960938 +6.3748230934143066 +5.3829045295715332 +4.6282215118408203 +5.6456484794616699 +5.9341545104980469 +5.7406311035156250 +7.0097928047180176 +4.5589141845703125 +6.5756759643554688 +5.8800182342529297 +8.9125423431396484 +6.6325850486755371 +6.0896258354187012 +8.3950719833374023 +5.7086167335510254 +5.0760908126831055 +5.5650067329406738 +4.6753015518188477 +4.5519185066223145 +7.0017619132995605 +5.0036330223083496 +5.1860885620117188 +4.6616010665893555 +5.7294912338256836 +4.8068623542785645 +5.6399989128112793 +5.4088263511657715 +0.3928565382957458 +5.0011162757873535 +4.7613549232482910 +6.7324843406677246 +8.6635522842407227 +5.0192222595214844 +4.9046473503112793 +5.7973423004150391 +5.1154508590698242 +5.9782652854919434 +4.7370834350585938 +5.8610105514526367 +4.9092073440551758 +5.5545368194580078 +5.2278485298156738 +4.9395561218261719 +4.9873890876770020 +4.6770834922790527 +4.7076878547668457 +4.5820145606994629 +5.0723490715026855 +5.3491053581237793 +4.6590075492858887 +6.1257100105285645 +7.5936861038208008 +6.1845231056213379 +4.5605278015136719 +6.0442104339599609 +5.0065307617187500 +6.6029357910156250 +6.9042153358459473 +6.8223147392272949 +5.2092614173889160 +6.4129095077514648 +5.4940981864929199 +5.4547247886657715 +5.3743071556091309 +5.5925612449645996 +5.1871170997619629 +4.8054990768432617 +5.2631926536560059 +7.0177583694458008 +5.2648873329162598 +4.8409905433654785 +5.4244737625122070 +5.3158288002014160 +4.9099655151367188 +8.5879240036010742 +5.6113305091857910 +6.7714915275573730 +5.5918340682983398 +5.0375413894653320 +4.7839827537536621 +4.6570110321044922 +4.8979516029357910 +4.6850042343139648 +4.8325567245483398 +6.9622426033020020 +5.3809695243835449 +5.0832910537719727 +8.6279182434082031 +5.0611295700073242 +7.4785647392272949 +4.5890398025512695 +5.0006604194641113 +0.3971879780292511 +5.5669140815734863 +4.5860733985900879 +5.2582354545593262 +5.5630788803100586 +5.0604128837585449 +5.7925782203674316 +4.7530426979064941 +4.6072764396667480 +4.6772422790527344 +5.0765337944030762 +5.2862882614135742 +4.8568921089172363 +4.9655809402465820 +4.8181943893432617 +6.5100746154785156 +5.0763983726501465 +8.4985532760620117 +4.9805908203125000 +4.7117390632629395 +5.2605981826782227 +7.4099068641662598 +4.7284216880798340 +5.6553349494934082 +4.9326763153076172 +4.7211575508117676 +7.8083581924438477 +5.2000570297241211 +8.4495925903320312 +4.7736630439758301 +6.4753732681274414 +6.6534504890441895 +5.3889632225036621 +5.7623615264892578 +5.2322196960449219 +4.7895021438598633 +10.0894269943237305 +5.2386484146118164 +5.1873335838317871 +5.6735200881958008 +5.0741820335388184 +5.3417844772338867 +7.2559232711791992 +5.7425498962402344 +4.6717457771301270 +5.2484517097473145 +5.2631568908691406 +5.0813431739807129 +6.0854668617248535 +4.7363457679748535 +5.2321472167968750 +5.1749553680419922 +7.3557710647583008 +4.6130146980285645 +5.0638532638549805 +5.4836449623107910 +5.5041646957397461 +5.5852003097534180 +4.6104044914245605 +5.1923017501831055 +7.4562611579895020 +4.6289339065551758 +4.6637835502624512 +4.6959028244018555 +5.0252146720886230 +0.4153592586517334 +6.9802184104919434 +7.3271741867065430 +5.0813331604003906 +6.2200808525085449 +5.6037902832031250 +4.7215657234191895 +4.7384610176086426 +4.7196264266967773 +4.7375416755676270 +5.9174757003784180 +4.6866426467895508 +5.1326656341552734 +4.9459624290466309 +5.2880449295043945 +5.0509357452392578 +4.7553391456604004 +6.9561867713928223 +5.7014408111572266 +5.5934233665466309 +4.8082623481750488 +7.8356986045837402 +4.7656183242797852 +5.4881591796875000 +5.2982916831970215 +4.5995211601257324 +5.0469307899475098 +4.6829266548156738 +4.7587623596191406 +4.9498047828674316 +4.7169222831726074 +4.5897908210754395 +5.2218675613403320 +5.1083936691284180 +5.1349701881408691 +4.7819271087646484 +6.2134537696838379 +5.3597054481506348 +4.6538362503051758 +5.1315407752990723 +4.5828557014465332 +6.1519131660461426 +4.7452793121337891 +5.3247117996215820 +4.8585004806518555 +4.6071310043334961 +4.6834073066711426 +4.9039697647094727 +4.6641674041748047 +6.5012254714965820 +4.7623624801635742 +7.1197552680969238 +5.1677908897399902 +5.9152159690856934 +4.9727649688720703 +5.4962863922119141 +5.6159958839416504 +4.9135584831237793 +9.6176977157592773 +5.3597016334533691 +5.2451291084289551 +6.0655207633972168 +5.2712082862854004 +7.9110779762268066 +4.9220438003540039 +0.4063091576099396 +5.6206083297729492 +5.1414475440979004 +5.6939692497253418 +6.6823406219482422 +8.8749246597290039 +6.3877124786376953 +6.3356881141662598 +7.3026432991027832 +4.7734713554382324 +5.5105862617492676 +5.8685741424560547 +4.6829624176025391 +5.1129026412963867 +6.0946483612060547 +5.5328693389892578 +5.6741294860839844 +10.3952131271362305 +5.0587062835693359 +5.5299038887023926 +5.1760039329528809 +4.7439770698547363 +4.9245080947875977 +4.9993014335632324 +5.9410095214843750 +5.7387642860412598 +5.6073627471923828 +7.0166659355163574 +5.4866747856140137 +6.4764013290405273 +4.6649260520935059 +5.4947133064270020 +5.4123759269714355 +5.4878034591674805 +4.6159362792968750 +5.0352292060852051 +5.6696519851684570 +4.6611599922180176 +5.4568653106689453 +4.7138738632202148 +4.8309340476989746 +4.9364833831787109 +7.5059719085693359 +4.9532594680786133 +6.0257649421691895 +5.6778116226196289 +4.7198944091796875 +4.9012165069580078 +4.8015618324279785 +6.1355581283569336 +4.5726642608642578 +5.7331075668334961 +7.9438037872314453 +6.5117931365966797 +4.7102460861206055 +5.4551963806152344 +5.0983724594116211 +6.8419752120971680 +4.6194376945495605 +5.0257077217102051 +7.4911322593688965 +4.8470745086669922 +5.1761031150817871 +4.8161439895629883 +5.0835924148559570 +0.4052280783653259 +5.3228721618652344 +4.6755700111389160 +6.8028612136840820 +5.2233099937438965 +4.8747515678405762 +5.9156007766723633 +5.3510642051696777 +4.7577953338623047 +4.7029409408569336 +7.2178945541381836 +4.6617846488952637 +5.9348096847534180 +5.9064264297485352 +5.2390232086181641 +4.6646466255187988 +4.7003750801086426 +5.7772517204284668 +5.4381880760192871 +4.9675321578979492 +6.6948404312133789 +5.0001783370971680 +5.5264739990234375 +5.6238121986389160 +5.4672584533691406 +5.0666365623474121 +7.0929484367370605 +4.7005200386047363 +5.0896949768066406 +5.4241986274719238 +4.6395220756530762 +6.1675815582275391 +5.8824844360351562 +4.8446826934814453 +5.0501670837402344 +8.8768014907836914 +6.1484937667846680 +7.3845653533935547 +4.8492527008056641 +5.7938914299011230 +5.0416440963745117 +5.4299106597900391 +4.9914550781250000 +6.1038990020751953 +5.3414354324340820 +4.6178750991821289 +5.8489475250244141 +5.4345712661743164 +5.4302701950073242 +4.5799622535705566 +4.7505083084106445 +5.7658109664916992 +4.7104496955871582 +4.7529845237731934 +4.7607374191284180 +5.1826062202453613 +5.4085354804992676 +4.6458783149719238 +4.8238248825073242 +5.2058200836181641 +5.4683294296264648 +5.3705558776855469 +5.1346731185913086 +5.5008778572082520 +4.9925298690795898 +0.4084534049034119 +6.9280405044555664 +5.2972278594970703 +4.6704607009887695 +5.8714900016784668 +7.0819225311279297 +5.6218309402465820 +4.6188554763793945 +5.7209200859069824 +7.2631907463073730 +5.2185764312744141 +5.2500615119934082 +5.5921382904052734 +4.6965723037719727 +5.2872166633605957 +4.6200551986694336 +4.7069749832153320 +5.1638226509094238 +5.3875651359558105 +7.6002006530761719 +4.8938198089599609 +4.8696074485778809 +5.3363852500915527 +6.2070217132568359 +7.4586505889892578 +4.8792018890380859 +5.7115693092346191 +4.5453867912292480 +7.2043614387512207 +6.1361956596374512 +7.0243196487426758 +4.6559000015258789 +5.3125319480895996 +4.7291235923767090 +5.0613117218017578 +4.9677200317382812 +5.2508716583251953 +5.6888341903686523 +5.0821723937988281 +5.0022325515747070 +4.8901305198669434 +6.0710716247558594 +6.8517122268676758 +5.1876344680786133 +5.6016182899475098 +4.6156134605407715 +5.3811631202697754 +4.5577955245971680 +6.2149233818054199 +4.6098041534423828 +4.6861920356750488 +4.6712574958801270 +5.8983840942382812 +4.8264946937561035 +4.9619250297546387 +6.1454582214355469 +5.7827510833740234 +5.2305088043212891 +5.2608175277709961 +6.9517240524291992 +11.3559675216674805 +7.2601246833801270 +5.5651454925537109 +4.5834994316101074 +6.6526398658752441 +0.3796290755271912 +4.7518324851989746 +8.5843982696533203 +4.7532157897949219 +7.1420149803161621 +5.4587163925170898 +5.0805616378784180 +7.1074056625366211 +5.1900296211242676 +6.2868585586547852 +5.2300825119018555 +5.0366244316101074 +9.1779146194458008 +4.6987419128417969 +5.0386328697204590 +6.0822525024414062 +4.6954035758972168 +5.9237399101257324 +4.7752509117126465 +4.9184451103210449 +5.8561520576477051 +5.9661841392517090 +5.1313366889953613 +5.2047500610351562 +5.8317203521728516 +5.6715245246887207 +5.3986010551452637 +4.8802509307861328 +6.3341040611267090 +5.8495173454284668 +4.9806699752807617 +6.9709730148315430 +6.9101662635803223 +4.9878492355346680 +5.3704204559326172 +8.0380287170410156 +5.7910971641540527 +9.0496873855590820 +4.6944141387939453 +5.1178421974182129 +5.1688761711120605 +5.9469552040100098 +6.8270211219787598 +4.9001741409301758 +4.6448020935058594 +4.5883798599243164 +5.1420841217041016 +5.2955288887023926 +5.0397663116455078 +4.7906961441040039 +6.4081602096557617 +5.0974545478820801 +5.2544384002685547 +4.7877769470214844 +4.5681929588317871 +4.7966971397399902 +4.8771095275878906 +4.7977576255798340 +4.9164862632751465 +4.7479801177978516 +4.9302248954772949 +4.7958502769470215 +5.3439211845397949 +4.7569208145141602 +5.5322484970092773 +0.4090643525123596 +4.7965836524963379 +5.0708756446838379 +6.2023425102233887 +5.9074068069458008 +6.1963109970092773 +4.6677780151367188 +5.9357466697692871 +5.5854897499084473 +6.3954949378967285 +6.0927095413208008 +5.6550378799438477 +4.6788854598999023 +4.8645815849304199 +4.6647090911865234 +4.6833024024963379 +5.9803853034973145 +5.9485034942626953 +5.4940915107727051 +4.6801767349243164 +6.0092687606811523 +9.0067386627197266 +6.7461385726928711 +7.0007205009460449 +4.6144013404846191 +4.8045411109924316 +4.6455092430114746 +7.5076861381530762 +5.6020107269287109 +5.1540064811706543 +7.2180242538452148 +6.1253218650817871 +4.9221549034118652 +5.0494718551635742 +7.0948309898376465 +4.9766535758972168 +4.7406473159790039 +6.0077962875366211 +4.8496928215026855 +6.8793025016784668 +5.0746893882751465 +7.3519034385681152 +5.5341053009033203 +4.9276413917541504 +5.1668829917907715 +5.4026184082031250 +5.1672339439392090 +5.2874059677124023 +5.4803395271301270 +5.0381979942321777 +5.8759450912475586 +6.0203371047973633 +5.5278649330139160 +4.6197867393493652 +4.8622298240661621 +5.1271524429321289 +4.8019394874572754 +5.4332609176635742 +4.6691241264343262 +6.0095191001892090 +5.1931214332580566 +4.8687767982482910 +5.3425364494323730 +5.0949234962463379 +5.8419332504272461 +0.3992297351360321 +5.2477993965148926 +5.3134312629699707 +4.8285608291625977 +5.9874510765075684 +5.3143186569213867 +5.2152976989746094 +5.5518436431884766 +4.8874726295471191 +5.6020798683166504 +4.8133430480957031 +5.2613625526428223 +5.3568696975708008 +7.1081781387329102 +6.2085490226745605 +4.7349038124084473 +5.9605569839477539 +4.9749436378479004 +5.2522439956665039 +4.7909789085388184 +5.8057761192321777 +4.6658759117126465 +5.2614579200744629 +4.6948328018188477 +7.9943099021911621 +5.5399556159973145 +4.8885774612426758 +4.8660960197448730 +4.8345398902893066 +4.6706442832946777 +5.0842638015747070 +5.3269891738891602 +6.2507896423339844 +5.1537599563598633 +5.5091819763183594 +4.9996328353881836 +4.5989456176757812 +4.6169829368591309 +5.1253108978271484 +6.0035042762756348 +4.6292152404785156 +5.5576262474060059 +5.1184129714965820 +5.0954685211181641 +5.7240552902221680 +4.8125324249267578 +6.8198995590209961 +4.6820812225341797 +6.1157135963439941 +4.9709792137145996 +5.2040309906005859 +6.0385727882385254 +4.9542665481567383 +8.5342855453491211 +4.6660599708557129 +6.4330797195434570 +4.8196754455566406 +5.0917472839355469 +5.4336934089660645 +5.0485100746154785 +5.4648408889770508 +4.9381279945373535 +4.8603053092956543 +4.8017101287841797 +4.8843007087707520 +0.4303493201732635 +5.4071073532104492 +4.8194117546081543 +6.7681989669799805 +5.3145642280578613 +5.6431803703308105 +5.8238244056701660 +4.8953638076782227 +5.5850148200988770 +5.3726105690002441 +5.0389704704284668 +4.6804327964782715 +4.9013733863830566 +7.6072063446044922 +5.6553888320922852 +5.2325973510742188 +5.9818792343139648 +5.0294418334960938 +6.0880355834960938 +5.2113180160522461 +7.0298519134521484 +6.9177589416503906 +4.5838866233825684 +5.8860020637512207 +4.8923087120056152 +4.6888084411621094 +5.0248103141784668 +6.4984178543090820 +4.6469445228576660 +6.6787457466125488 +5.5237941741943359 +5.9333004951477051 +4.6213278770446777 +7.6701207160949707 +5.4262876510620117 +5.1666002273559570 +4.8792896270751953 +5.9964013099670410 +4.6059041023254395 +5.4114918708801270 +5.3015255928039551 +5.0634722709655762 +5.1479835510253906 +5.8774166107177734 +5.7237396240234375 +6.6882438659667969 +6.9939980506896973 +6.5192260742187500 +5.7675342559814453 +4.5643897056579590 +4.7883839607238770 +7.4490017890930176 +6.1683926582336426 +4.6920433044433594 +4.8914904594421387 +5.4394311904907227 +6.0504312515258789 +6.9381532669067383 +4.6528706550598145 +5.7752084732055664 +7.2919054031372070 +4.7271442413330078 +4.7137894630432129 +4.6440730094909668 +5.1555476188659668 +0.3868679106235504 +4.9656853675842285 +4.9800171852111816 +5.8674983978271484 +5.7310562133789062 +4.8856158256530762 +5.6372570991516113 +5.1954135894775391 +4.5486879348754883 +6.1542005538940430 +4.6389269828796387 +6.3298931121826172 +5.0118837356567383 +5.0520706176757812 +6.2631578445434570 +6.5776686668395996 +4.5599637031555176 +6.0505199432373047 +5.5716242790222168 +6.9898242950439453 +4.7086548805236816 +8.8981828689575195 +5.4312462806701660 +4.7513723373413086 +4.6394481658935547 +6.3352546691894531 +5.2603311538696289 +5.1345596313476562 +5.0405783653259277 +8.2676000595092773 +4.5856032371520996 +4.6873979568481445 +6.1694831848144531 +6.5506510734558105 +4.7502837181091309 +4.8486738204956055 +4.7025065422058105 +4.7822456359863281 +4.5734481811523438 +9.7045545578002930 +4.5811796188354492 +5.7309899330139160 +6.5031437873840332 +5.6097803115844727 +7.1365981101989746 +6.5355348587036133 +4.9030084609985352 +4.8959069252014160 +4.5921974182128906 +5.2658753395080566 +6.6471881866455078 +8.9198675155639648 +5.8321595191955566 +6.5206351280212402 +4.6098947525024414 +4.6855664253234863 +4.7838792800903320 +7.3001303672790527 +4.7362627983093262 +7.6027412414550781 +4.7519841194152832 +5.0614953041076660 +5.0892901420593262 +7.2061614990234375 +5.1044273376464844 +0.3957059681415558 +4.7619171142578125 +5.8003783226013184 +7.6174359321594238 +5.4347405433654785 +5.0534377098083496 +5.0202956199645996 +4.7242560386657715 +4.9094653129577637 +4.8091278076171875 +6.3928999900817871 +4.6242074966430664 +4.8269944190979004 +4.6477508544921875 +5.3187966346740723 +5.1731696128845215 +5.5953817367553711 +6.3393106460571289 +4.7381296157836914 +5.6878013610839844 +7.7171430587768555 +5.2403383255004883 +5.2060260772705078 +5.3910794258117676 +5.0876865386962891 +6.6130166053771973 +5.9268293380737305 +4.9665465354919434 +6.2399287223815918 +5.7597799301147461 +4.7865123748779297 +5.4508628845214844 +5.7289514541625977 +5.6325426101684570 +7.1982026100158691 +4.7425360679626465 +5.0433077812194824 +4.6638302803039551 +5.0335922241210938 +5.7240009307861328 +4.6138877868652344 +5.5441431999206543 +5.2087554931640625 +4.5965232849121094 +4.7550992965698242 +4.9831333160400391 +5.0883107185363770 +6.1748809814453125 +4.6039910316467285 +4.6501212120056152 +5.1835436820983887 +5.0417265892028809 +5.9262385368347168 +5.9556884765625000 +5.5062990188598633 +4.7887382507324219 +5.4138913154602051 +5.3029356002807617 +4.9923191070556641 +5.1058349609375000 +5.2372322082519531 +8.0224895477294922 +5.1271681785583496 +8.4228105545043945 +4.6504101753234863 +0.4324452877044678 +4.8646807670593262 +5.7784895896911621 +4.6068840026855469 +5.6034379005432129 +4.5919666290283203 +5.2915496826171875 +6.3411216735839844 +6.4967937469482422 +6.1796307563781738 +6.2277650833129883 +4.7867112159729004 +4.6159410476684570 +7.8132305145263672 +4.6709556579589844 +4.9371871948242188 +5.9878869056701660 +8.5397653579711914 +5.0063114166259766 +4.6542215347290039 +5.3068122863769531 +5.5757822990417480 +4.9999437332153320 +5.0784339904785156 +4.7446546554565430 +4.9796776771545410 +4.9889492988586426 +5.5428190231323242 +5.7456650733947754 +4.8114242553710938 +5.0576567649841309 +6.2405490875244141 +4.6388773918151855 +5.3518610000610352 +5.0754251480102539 +4.9064202308654785 +6.3721160888671875 +4.9340577125549316 +5.7063565254211426 +6.5257453918457031 +9.4473342895507812 +4.6294670104980469 +4.7233228683471680 +4.9138298034667969 +4.8612246513366699 +4.6215028762817383 +5.3934617042541504 +5.6603918075561523 +4.7168521881103516 +5.2686247825622559 +4.9827995300292969 +4.7691164016723633 +5.1595110893249512 +7.3938622474670410 +5.7255883216857910 +5.2611980438232422 +4.6099581718444824 +5.1217527389526367 +4.8675231933593750 +5.9479861259460449 +4.8416213989257812 +10.4674911499023438 +5.6934022903442383 +4.6217408180236816 +5.4295320510864258 +0.4209170639514923 +8.2857074737548828 +5.0315351486206055 +4.7757163047790527 +4.9863252639770508 +5.7975487709045410 +4.6300263404846191 +6.3826355934143066 +5.1651515960693359 +4.6673135757446289 +6.9651942253112793 +6.2465128898620605 +4.8892230987548828 +5.3852329254150391 +5.3363118171691895 +5.1959180831909180 +6.1211996078491211 +8.7150993347167969 +5.5231962203979492 +5.0230813026428223 +4.6863818168640137 +8.9468040466308594 +5.1212692260742188 +5.2611379623413086 +5.2611751556396484 +4.7985463142395020 +5.5755815505981445 +4.5952749252319336 +5.0770177841186523 +5.4970064163208008 +6.8705472946166992 +5.1276464462280273 +5.0626087188720703 +5.1329650878906250 +5.4193468093872070 +4.5977873802185059 +4.8948106765747070 +4.9484348297119141 +5.9914436340332031 +5.3666787147521973 +4.7101526260375977 +4.6824383735656738 +4.8479661941528320 +5.5832858085632324 +5.3371562957763672 +4.9243893623352051 +4.7980918884277344 +6.5315885543823242 +4.7610635757446289 +4.7263355255126953 +5.6165351867675781 +5.4170069694519043 +6.1548552513122559 +6.5160279273986816 +4.5869007110595703 +4.8090624809265137 +5.3097629547119141 +4.5819382667541504 +4.8135671615600586 +5.0883140563964844 +5.1671013832092285 +6.6657247543334961 +6.7168340682983398 +5.7955303192138672 +5.3254661560058594 +0.4197379052639008 +4.6676559448242188 +5.2752442359924316 +6.1619911193847656 +5.7851262092590332 +4.6940336227416992 +5.1807160377502441 +7.8641190528869629 +5.3788528442382812 +5.2178401947021484 +5.8871626853942871 +4.9793872833251953 +6.9466309547424316 +6.3453073501586914 +4.6409502029418945 +7.2745676040649414 +6.3307371139526367 +4.8102989196777344 +4.9140214920043945 +6.0627155303955078 +5.5094923973083496 +4.5352401733398438 +4.5533285140991211 +9.2724990844726562 +5.9089965820312500 +5.7057857513427734 +5.1613969802856445 +5.2137985229492188 +5.8434777259826660 +5.0098190307617188 +8.3872957229614258 +5.2100839614868164 +4.9119715690612793 +4.6340684890747070 +6.1726031303405762 +5.4582529067993164 +6.0041732788085938 +4.5430545806884766 +5.8697447776794434 +6.5225343704223633 +5.0856800079345703 +4.9941215515136719 +5.4836235046386719 +6.6548099517822266 +4.6664443016052246 +8.3518133163452148 +6.8889894485473633 +5.6561694145202637 +5.3388533592224121 +5.5243110656738281 +5.2508931159973145 +6.7920756340026855 +5.0433235168457031 +7.7400364875793457 +4.5329284667968750 +6.5117387771606445 +7.9259891510009766 +4.7743611335754395 +4.8210330009460449 +4.5594925880432129 +4.9263148307800293 +5.2958889007568359 +7.9056820869445801 +4.6292486190795898 +5.8211560249328613 +0.3575941324234009 +5.0572853088378906 +7.2429337501525879 +4.8485550880432129 +4.7384443283081055 +4.8605065345764160 +7.0527687072753906 +5.0850458145141602 +4.9259829521179199 +8.0563468933105469 +7.1868910789489746 +5.4678549766540527 +4.8033547401428223 +5.6624813079833984 +4.7440104484558105 +4.9173712730407715 +4.6995849609375000 +5.5020322799682617 +4.6261119842529297 +5.0726375579833984 +5.4069638252258301 +4.7470059394836426 +4.7936458587646484 +4.7756700515747070 +6.5457925796508789 +5.0052623748779297 +4.6090044975280762 +5.0617523193359375 +5.2466039657592773 +6.5483775138854980 +6.8477797508239746 +4.9201183319091797 +4.8297300338745117 +5.1023116111755371 +4.7715630531311035 +5.7982392311096191 +5.6473183631896973 +5.3003611564636230 +7.1589293479919434 +5.2610692977905273 +4.9898047447204590 +5.7877607345581055 +4.6796555519104004 +5.0565428733825684 +5.8917551040649414 +4.7432413101196289 +5.5468764305114746 +6.1584839820861816 +4.8695902824401855 +4.7606024742126465 +6.7665963172912598 +4.6858520507812500 +4.9744877815246582 +4.6309103965759277 +4.9563760757446289 +7.1813955307006836 +4.6107673645019531 +4.7246627807617188 +5.4801421165466309 +5.3384227752685547 +8.5489597320556641 +4.8573966026306152 +5.4838166236877441 +4.6350255012512207 +6.2599544525146484 +0.4424279034137726 +6.4557204246520996 +4.8425354957580566 +5.5804877281188965 +4.5807180404663086 +5.3621678352355957 +4.7826814651489258 +4.6863336563110352 +5.2437787055969238 +5.9759488105773926 +4.9990644454956055 +7.0524230003356934 +6.2671327590942383 +5.0384855270385742 +4.9306640625000000 +4.5939192771911621 +5.4082946777343750 +4.7515649795532227 +4.7171201705932617 +5.3230714797973633 +5.6954016685485840 +5.2613115310668945 +4.5930175781250000 +7.1029453277587891 +5.0703821182250977 +7.1161694526672363 +4.9522066116333008 +4.5964083671569824 +5.3603982925415039 +7.1042108535766602 +5.4961752891540527 +5.5125188827514648 +5.1345195770263672 +6.1426253318786621 +5.1494455337524414 +5.0760302543640137 +5.3625569343566895 +5.2336115837097168 +5.2970676422119141 +5.0679683685302734 +5.2894678115844727 +6.0877318382263184 +6.0995726585388184 +6.4384822845458984 +5.4697823524475098 +4.9011940956115723 +5.1731905937194824 +4.7154355049133301 +4.8198189735412598 +6.1499052047729492 +4.5646729469299316 +4.6168146133422852 +4.7281012535095215 +6.1519017219543457 +7.3824734687805176 +6.9268097877502441 +5.5258326530456543 +6.1847524642944336 +6.7176322937011719 +5.6889634132385254 +5.1503415107727051 +7.1879553794860840 +4.5754318237304688 +6.1458549499511719 +5.1796908378601074 +0.3867698013782501 +6.3265905380249023 +4.6910228729248047 +10.0759878158569336 +6.8876209259033203 +5.3347539901733398 +5.2797408103942871 +8.8298168182373047 +4.5920138359069824 +4.5996251106262207 +5.6126003265380859 +6.5290980339050293 +5.5749311447143555 +5.0314402580261230 +5.2436470985412598 +5.4500279426574707 +5.1612668037414551 +5.0138359069824219 +5.3106536865234375 +5.2387790679931641 +6.0791778564453125 +6.7849855422973633 +4.8203206062316895 +4.6326956748962402 +4.9788427352905273 +6.7320995330810547 +8.1753110885620117 +5.3502564430236816 +6.6050238609313965 +5.2559604644775391 +7.6731166839599609 +4.5571641921997070 +7.3750028610229492 +5.5261893272399902 +4.7985181808471680 +5.3669404983520508 +7.2660017013549805 +4.9839448928833008 +6.5090017318725586 +5.9840278625488281 +5.1536655426025391 +4.8677387237548828 +5.2328453063964844 +7.2034740447998047 +5.1261038780212402 +4.7078843116760254 +4.7977223396301270 +5.1054263114929199 +5.2337608337402344 +4.9990401268005371 +4.8422636985778809 +4.7531247138977051 +4.6345515251159668 +5.4485836029052734 +5.1158013343811035 +5.5572175979614258 +4.6224946975708008 +7.3421125411987305 +4.8253493309020996 +4.8711810111999512 +4.6369066238403320 +5.5968222618103027 +5.4993400573730469 +4.6631793975830078 +5.3197779655456543 +0.3979627192020416 diff --git a/examples/machsuite/viterbi/neg_loop_step.py b/examples/machsuite/viterbi/neg_loop_step.py new file mode 100644 index 0000000000..4d5f865993 --- /dev/null +++ b/examples/machsuite/viterbi/neg_loop_step.py @@ -0,0 +1,16 @@ +import allo +from allo.ir.types import int32 + +N = 256 + +def compute( + x: int32[N], + y: int32[N] +): + for i in range(N-1, -1, -1): + y[i+1] = x[i+1] + + +s = allo.customize(compute) +print(s.module) + diff --git a/examples/machsuite/viterbi/read.py b/examples/machsuite/viterbi/read.py new file mode 100644 index 0000000000..d6de190d98 --- /dev/null +++ b/examples/machsuite/viterbi/read.py @@ -0,0 +1,48 @@ +import numpy as np + +def read_viterbi_input(file_path): + with open(file_path, 'r') as file: + data = file.readlines() + + sections = [section.strip() for section in ''.join(data).split('%%') if section.strip()] + + if len(sections) != 4: + raise ValueError(f"File format error: expected 4 sections, but found {len(sections)}.") + + try: + obs_data = [float(num.strip()) for num in sections[0].split('\n') if num] + init_data = [float(num.strip()) for num in sections[1].split('\n') if num] + transition_data = [float(num.strip()) for num in sections[2].split('\n') if num] + emission_data = [float(num.strip()) for num in sections[3].split('\n') if num] + except Exception as e: + raise ValueError(f"Error parsing data: {e}") + + # Compute N_STATES by taking the square root of the length of the transition data + N_STATES = len(init_data) + + # Check if N_STATES is valid + if N_STATES * N_STATES != len(transition_data): + raise ValueError(f"Invalid transition matrix size: expected {N_STATES * N_STATES} elements, got {len(transition_data)}.") + + N_TOKENS = len(emission_data) // N_STATES + N_OBS = len(obs_data) + + # Reshape data into matrices and arrays + transition = np.array(transition_data).reshape((N_STATES, N_STATES)) + emission = np.array(emission_data).reshape((N_STATES, N_TOKENS)) + init = np.array(init_data) + obs = np.array(obs_data, dtype=int) + + return init, transition, emission, obs + +# file_path = 'input.data' +# try: +# init, transition, emission, obs = read_viterbi_input(file_path) + +# # Print the parsed sections for verification +# print("Initial probabilities (log-space):\n", init) +# print("Transition matrix (log-space):\n", transition) +# print("Emission matrix (log-space):\n", emission) +# print("Observations:\n", obs) +# except ValueError as e: +# print(f"An error occurred: {e}") diff --git a/examples/machsuite/viterbi/test.data b/examples/machsuite/viterbi/test.data new file mode 100644 index 0000000000..afa6db31dd --- /dev/null +++ b/examples/machsuite/viterbi/test.data @@ -0,0 +1,19 @@ +%% +0 +1 +2 +%% +0.6 +0.4 +%% +0.7 +0.3 +0.4 +0.6 +%% +0.5 +0.4 +0.1 +0.1 +0.3 +0.6 diff --git a/examples/machsuite/viterbi/viterbi.py b/examples/machsuite/viterbi/viterbi.py new file mode 100644 index 0000000000..68ca375caa --- /dev/null +++ b/examples/machsuite/viterbi/viterbi.py @@ -0,0 +1,64 @@ +import numpy as np +from read import read_viterbi_input +from write import write_output_data + +def viterbi(obs, init, transition, emission): + N_OBS = len(obs) # Number of observations + N_STATES = len(init) # Number of states + N_TOKENS = emission.shape[1] # Number of tokens + + # Initialize log-likelihood matrix + llike = np.zeros((N_OBS, N_STATES)) + path = np.zeros(N_OBS, dtype=int) + + # Initialize with the first observation and initial probabilities + for s in range(N_STATES): + llike[0][s] = init[s] + emission[s, obs[0]] + + # Iteratively compute the probabilities over time + for t in range(1, N_OBS): + for curr in range(N_STATES): + min_p = llike[t-1][0] + transition[0, curr] + emission[curr, obs[t]] + for prev in range(1, N_STATES): + p = llike[t-1][prev] + transition[prev, curr] + emission[curr, obs[t]] + if p < min_p: + min_p = p + llike[t][curr] = min_p + + # Identify end state + min_s = 0 + min_p = llike[N_OBS-1][0] + for s in range(1, N_STATES): + p = llike[N_OBS-1][s] + if p < min_p: + min_p = p + min_s = s + path[N_OBS-1] = min_s + + # Backtrack to recover full path + for t in range(N_OBS-2, -1, -1): + min_s = 0 + min_p = llike[t][0] + transition[0, path[t+1]] + for s in range(1, N_STATES): + p = llike[t][s] + transition[s, path[t+1]] + if p < min_p: + min_p = p + min_s = s + path[t] = min_s + + return path + +if __name__ == '__main__': + inputfile = 'input.data' + init, transition, emission, obs = read_viterbi_input(inputfile) + + # Taking -log of probabilities for -log space + # init = -np.log(init) + # transition = -np.log(transition) + # emission = -np.log(emission) + + path = viterbi(obs, init, transition, emission) + print(path) + + # output_file = 'check.data' + # write_output_data(output_file, path) diff --git a/examples/machsuite/viterbi/viterbi_allo.py b/examples/machsuite/viterbi/viterbi_allo.py new file mode 100644 index 0000000000..a9e4511dee --- /dev/null +++ b/examples/machsuite/viterbi/viterbi_allo.py @@ -0,0 +1,72 @@ +import allo +from allo.ir.types import float32, int32 +import numpy as np +from read import read_viterbi_input +from write import write_output_data + +N_OBS:int32 = 140 +N_STATES:int32 = 64 +N_TOKENS:int32 = 64 + +def viterbi(obs: int32[N_OBS], init: float32[N_STATES], transition: float32[N_STATES, N_STATES], emission: float32[N_STATES, N_TOKENS]) -> int32[N_OBS]: + + llike:float32[N_OBS, N_STATES] + + for s in range(N_STATES): + llike[0, s] = init[s] + emission[s, obs[0]] + + for t in range(1, N_OBS): + for curr in range(N_STATES): + min_p:float32 = llike[t-1, 0] + transition[0, curr] + emission[curr, obs[t]] + for prev in range(1, N_STATES): + p:float32 = llike[t-1, prev] + transition[prev, curr] + emission[curr, obs[t]] + if p < min_p: + min_p = p + llike[t, curr] = min_p + + min_s:int32 = 0 + min_p:float32 = llike[N_OBS-1, 0] + for s in range(1, N_STATES): + p:float32 = llike[N_OBS-1, s] + if p < min_p: + min_p = p + min_s = s + + path:int32[N_OBS] + path[N_OBS-1] = min_s + + for t in range(N_OBS-1): + actual_t:int32 = N_OBS - 2 - t + min_s:int32 = 0 + min_p:float32 = llike[actual_t, 0] + transition[0, path[actual_t + 1]] + for s in range(1, N_STATES): + p:float32 = llike[actual_t, s] + transition[s, path[actual_t + 1]] + if p < min_p: + min_p = p + min_s = s + path[actual_t] = min_s + + return path + +s = allo.customize(viterbi) +mod = s.build() + +inputfile = 'input.data' +init, transition, emission, obs = read_viterbi_input(inputfile) + +init = np.array(init, dtype=np.float32) +transition = np.array(transition, dtype=np.float32) +emission = np.array(emission, dtype=np.float32) +obs = np.array(obs, dtype=np.int32) + +# init = -np.log(init) +# transition = -np.log(transition) +# emission = -np.log(emission) + +# print("Initial probabilities (log-space):\n", init) +# print("Transition matrix (log-space):\n", transition) +# print("Emission matrix (log-space):\n", emission) +# print("Observations:\n", obs) + +path = mod(obs, init, transition, emission) +print("Predicted path:", path) diff --git a/examples/machsuite/viterbi/write.py b/examples/machsuite/viterbi/write.py new file mode 100644 index 0000000000..7db185847d --- /dev/null +++ b/examples/machsuite/viterbi/write.py @@ -0,0 +1,6 @@ +def write_output_data(filename, path): + with open(filename, 'w') as f: + f.write("%%\n") + + for i in range(len(path)): + f.write(f"{path[i]}\n") From 310c9a1cc4e3791d10b4b6f3a2119591c4d988cd Mon Sep 17 00:00:00 2001 From: Niansong Zhang Date: Tue, 21 Oct 2025 02:20:31 -0300 Subject: [PATCH 02/16] Update file organization --- examples/machsuite/aes/__init__.py | 0 examples/machsuite/backprop/backprop.py | 126 +- examples/machsuite/backprop/check.data | 10502 ++++++++-------- examples/machsuite/backprop/check.data.old | 5257 ++++++++ examples/machsuite/backprop/run_test.py | 12 +- examples/machsuite/bfs/__init__.py | 0 examples/machsuite/check.data | 2049 --- examples/machsuite/fft/__init__.py | 0 examples/machsuite/fft/strided/__init__.py | 0 examples/machsuite/fft/transpose/__init__.py | 0 .../machsuite/fft/transpose/transpose_fft.py | 44 +- .../machsuite/{GEMM => gemm}/gemm_blocked.py | 0 .../{GEMM => gemm}/gemm_blocked_opt.py | 0 .../machsuite/{GEMM => gemm}/gemm_ncubed.py | 0 .../{GEMM => gemm}/gemm_ncubed_opt.py | 0 examples/machsuite/{GEMM => gemm}/input.data | 0 .../machsuite/{GEMM => gemm}/setup-py312.sh | 0 examples/machsuite/{GEMM => gemm}/testing.py | 0 .../{GEMM => gemm}/testing_blocked.py | 0 examples/machsuite/input.data | 2049 --- examples/machsuite/{KMP.py => kmp/kmp.py} | 12 +- examples/machsuite/md/__init__.py | 0 examples/machsuite/md/grid/__init__.py | 0 examples/machsuite/md/knn/__init__.py | 0 examples/machsuite/merge/__init__.py | 0 examples/machsuite/merge_sort | 57 - .../machsuite/{ => mergesort}/mergesort.py | 0 examples/machsuite/spmv/__init__.py | 0 examples/machsuite/spmv/crs/__init__.py | 0 examples/machsuite/spmv/ellpack/__init__.py | 0 examples/machsuite/{ => stencil}/stencil2d.py | 0 examples/machsuite/{ => stencil}/stencil3d.py | 0 examples/machsuite/testing.py | 33 - examples/machsuite/viterbi/__init__.py | 0 34 files changed, 10606 insertions(+), 9535 deletions(-) create mode 100644 examples/machsuite/aes/__init__.py create mode 100644 examples/machsuite/backprop/check.data.old create mode 100644 examples/machsuite/bfs/__init__.py delete mode 100644 examples/machsuite/check.data create mode 100644 examples/machsuite/fft/__init__.py create mode 100644 examples/machsuite/fft/strided/__init__.py create mode 100644 examples/machsuite/fft/transpose/__init__.py rename examples/machsuite/{GEMM => gemm}/gemm_blocked.py (100%) rename examples/machsuite/{GEMM => gemm}/gemm_blocked_opt.py (100%) rename examples/machsuite/{GEMM => gemm}/gemm_ncubed.py (100%) rename examples/machsuite/{GEMM => gemm}/gemm_ncubed_opt.py (100%) rename examples/machsuite/{GEMM => gemm}/input.data (100%) rename examples/machsuite/{GEMM => gemm}/setup-py312.sh (100%) rename examples/machsuite/{GEMM => gemm}/testing.py (100%) rename examples/machsuite/{GEMM => gemm}/testing_blocked.py (100%) delete mode 100644 examples/machsuite/input.data rename examples/machsuite/{KMP.py => kmp/kmp.py} (89%) create mode 100644 examples/machsuite/md/__init__.py create mode 100644 examples/machsuite/md/grid/__init__.py create mode 100644 examples/machsuite/md/knn/__init__.py create mode 100644 examples/machsuite/merge/__init__.py delete mode 100644 examples/machsuite/merge_sort rename examples/machsuite/{ => mergesort}/mergesort.py (100%) create mode 100644 examples/machsuite/spmv/__init__.py create mode 100644 examples/machsuite/spmv/crs/__init__.py create mode 100644 examples/machsuite/spmv/ellpack/__init__.py rename examples/machsuite/{ => stencil}/stencil2d.py (100%) rename examples/machsuite/{ => stencil}/stencil3d.py (100%) delete mode 100644 examples/machsuite/testing.py create mode 100644 examples/machsuite/viterbi/__init__.py diff --git a/examples/machsuite/aes/__init__.py b/examples/machsuite/aes/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/machsuite/backprop/backprop.py b/examples/machsuite/backprop/backprop.py index 29738532e0..a6f9664348 100644 --- a/examples/machsuite/backprop/backprop.py +++ b/examples/machsuite/backprop/backprop.py @@ -1,5 +1,5 @@ import allo -from allo.ir.types import float64, float32, int32 +from allo.ir.types import float32, int32 INPUT_DIMENSION = 13 POSSIBLE_OUTPUTS = 3 @@ -11,8 +11,8 @@ # TEST_SETS = 15 # NORM_PARAM = 0.05 -def soft_max(net_outputs: float64[POSSIBLE_OUTPUTS], activations: float64[POSSIBLE_OUTPUTS]): - total: float64 = 0.0 +def soft_max(net_outputs: float32[POSSIBLE_OUTPUTS], activations: float32[POSSIBLE_OUTPUTS]): + total: float32 = 0.0 for i in range(POSSIBLE_OUTPUTS): total += allo.exp(-activations[i]) @@ -20,30 +20,30 @@ def soft_max(net_outputs: float64[POSSIBLE_OUTPUTS], activations: float64[POSSIB net_outputs[i] = allo.exp(-activations[i]) / total -def RELU_NPL(activations: float64[NODES_PER_LAYER], dactivations: float64[NODES_PER_LAYER]): +def RELU_NPL(activations: float32[NODES_PER_LAYER], dactivations: float32[NODES_PER_LAYER]): for i in range(NODES_PER_LAYER): dactivations[i] = activations[i] * (1.0 - activations[i]) activations[i] = 1.0 / (1.0 + allo.exp(-activations[i])) -def RELU_PO(activations: float64[POSSIBLE_OUTPUTS], dactivations: float64[POSSIBLE_OUTPUTS]): +def RELU_PO(activations: float32[POSSIBLE_OUTPUTS], dactivations: float32[POSSIBLE_OUTPUTS]): for i in range(POSSIBLE_OUTPUTS): dactivations[i] = activations[i] * (1.0 - activations[i]) activations[i] = 1.0 / (1.0 + allo.exp(-activations[i])) -def add_bias_to_activations_NPL(biases: float64[NODES_PER_LAYER], activations: float64[NODES_PER_LAYER]): +def add_bias_to_activations_NPL(biases: float32[NODES_PER_LAYER], activations: float32[NODES_PER_LAYER]): for i in range(NODES_PER_LAYER): activations[i] = activations[i] + biases[i] -def add_bias_to_activations_PO(biases: float64[POSSIBLE_OUTPUTS], activations: float64[POSSIBLE_OUTPUTS]): +def add_bias_to_activations_PO(biases: float32[POSSIBLE_OUTPUTS], activations: float32[POSSIBLE_OUTPUTS]): for i in range(POSSIBLE_OUTPUTS): activations[i] = activations[i] + biases[i] def matrix_vector_product_with_bias_input_layer( - biases: float64[NODES_PER_LAYER], weights: float64[INPUT_DIMENSION * NODES_PER_LAYER], - activations: float64[NODES_PER_LAYER], input_sample: float64[INPUT_DIMENSION]): + biases: float32[NODES_PER_LAYER], weights: float32[INPUT_DIMENSION * NODES_PER_LAYER], + activations: float32[NODES_PER_LAYER], input_sample: float32[INPUT_DIMENSION]): for j in range(NODES_PER_LAYER): activations[j] = 0.0 @@ -53,8 +53,8 @@ def matrix_vector_product_with_bias_input_layer( def matrix_vector_product_with_bias_second_layer( - biases: float64[NODES_PER_LAYER], weights: float64[NODES_PER_LAYER * NODES_PER_LAYER], - activations: float64[NODES_PER_LAYER], input_activations: float64[NODES_PER_LAYER]): + biases: float32[NODES_PER_LAYER], weights: float32[NODES_PER_LAYER * NODES_PER_LAYER], + activations: float32[NODES_PER_LAYER], input_activations: float32[NODES_PER_LAYER]): for i in range(NODES_PER_LAYER): activations[i] = 0.0 @@ -64,8 +64,8 @@ def matrix_vector_product_with_bias_second_layer( def matrix_vector_product_with_bias_output_layer( - biases: float64[POSSIBLE_OUTPUTS], weights: float64[NODES_PER_LAYER * POSSIBLE_OUTPUTS], - activations: float64[POSSIBLE_OUTPUTS], input_activations: float64[NODES_PER_LAYER]): + biases: float32[POSSIBLE_OUTPUTS], weights: float32[NODES_PER_LAYER * POSSIBLE_OUTPUTS], + activations: float32[POSSIBLE_OUTPUTS], input_activations: float32[NODES_PER_LAYER]): for j in range(POSSIBLE_OUTPUTS): activations[j] = 0.0 @@ -75,24 +75,24 @@ def matrix_vector_product_with_bias_output_layer( def take_difference( - net_outputs: float64[POSSIBLE_OUTPUTS], solutions: float64[POSSIBLE_OUTPUTS], - output_difference: float64[POSSIBLE_OUTPUTS], dactivations: float64[POSSIBLE_OUTPUTS]): + net_outputs: float32[POSSIBLE_OUTPUTS], solutions: float32[POSSIBLE_OUTPUTS], + output_difference: float32[POSSIBLE_OUTPUTS], dactivations: float32[POSSIBLE_OUTPUTS]): for i in range(POSSIBLE_OUTPUTS): output_difference[i] = (net_outputs[i] - solutions[i]) * -1.0 * dactivations[i] def get_delta_matrix_weights3( - delta_weights3: float64[NODES_PER_LAYER * POSSIBLE_OUTPUTS], - output_difference: float64[POSSIBLE_OUTPUTS], last_activations: float64[NODES_PER_LAYER]): + delta_weights3: float32[NODES_PER_LAYER * POSSIBLE_OUTPUTS], + output_difference: float32[POSSIBLE_OUTPUTS], last_activations: float32[NODES_PER_LAYER]): for i, j in allo.grid(NODES_PER_LAYER, POSSIBLE_OUTPUTS): delta_weights3[i * POSSIBLE_OUTPUTS + j] = last_activations[i] * output_difference[j] def get_oracle_activations2( - weights3: float64[NODES_PER_LAYER * POSSIBLE_OUTPUTS], output_differences: float64[POSSIBLE_OUTPUTS], - oracle_activations: float64[NODES_PER_LAYER], dactivations: float64[NODES_PER_LAYER]): + weights3: float32[NODES_PER_LAYER * POSSIBLE_OUTPUTS], output_differences: float32[POSSIBLE_OUTPUTS], + oracle_activations: float32[NODES_PER_LAYER], dactivations: float32[NODES_PER_LAYER]): for i in range(NODES_PER_LAYER): oracle_activations[i] = 0.0 @@ -102,16 +102,16 @@ def get_oracle_activations2( def get_delta_matrix_weights2( - delta_weights2: float64[NODES_PER_LAYER * NODES_PER_LAYER], - output_difference: float64[NODES_PER_LAYER], last_activations: float64[NODES_PER_LAYER]): + delta_weights2: float32[NODES_PER_LAYER * NODES_PER_LAYER], + output_difference: float32[NODES_PER_LAYER], last_activations: float32[NODES_PER_LAYER]): for i, j in allo.grid(NODES_PER_LAYER, NODES_PER_LAYER): delta_weights2[i * NODES_PER_LAYER + j] = last_activations[i] * output_difference[j] def get_oracle_activations1( - weights2: float64[NODES_PER_LAYER * NODES_PER_LAYER], output_differences: float64[NODES_PER_LAYER], - oracle_activations: float64[NODES_PER_LAYER], dactivations: float64[NODES_PER_LAYER]): + weights2: float32[NODES_PER_LAYER * NODES_PER_LAYER], output_differences: float32[NODES_PER_LAYER], + oracle_activations: float32[NODES_PER_LAYER], dactivations: float32[NODES_PER_LAYER]): for i in range(NODES_PER_LAYER): oracle_activations[i] = 0.0 @@ -121,21 +121,21 @@ def get_oracle_activations1( def get_delta_matrix_weights1( - delta_weights1: float64[INPUT_DIMENSION * NODES_PER_LAYER], - output_difference: float64[NODES_PER_LAYER], last_activations: float64[INPUT_DIMENSION]): + delta_weights1: float32[INPUT_DIMENSION * NODES_PER_LAYER], + output_difference: float32[NODES_PER_LAYER], last_activations: float32[INPUT_DIMENSION]): for i, j in allo.grid(INPUT_DIMENSION, NODES_PER_LAYER): delta_weights1[i * NODES_PER_LAYER + j] = last_activations[i] * output_difference[j] def update_weights( - weights1: float64[INPUT_DIMENSION * NODES_PER_LAYER], weights2: float64[NODES_PER_LAYER * NODES_PER_LAYER], - weights3: float64[NODES_PER_LAYER * POSSIBLE_OUTPUTS], d_weights1: float64[INPUT_DIMENSION * NODES_PER_LAYER], - d_weights2: float64[NODES_PER_LAYER * NODES_PER_LAYER], d_weights3: float64[NODES_PER_LAYER * POSSIBLE_OUTPUTS], - biases1: float64[NODES_PER_LAYER], biases2: float64[NODES_PER_LAYER], biases3: float64[POSSIBLE_OUTPUTS], - d_biases1: float64[NODES_PER_LAYER], d_biases2: float64[NODES_PER_LAYER], d_biases3: float64[POSSIBLE_OUTPUTS]): + weights1: float32[INPUT_DIMENSION * NODES_PER_LAYER], weights2: float32[NODES_PER_LAYER * NODES_PER_LAYER], + weights3: float32[NODES_PER_LAYER * POSSIBLE_OUTPUTS], d_weights1: float32[INPUT_DIMENSION * NODES_PER_LAYER], + d_weights2: float32[NODES_PER_LAYER * NODES_PER_LAYER], d_weights3: float32[NODES_PER_LAYER * POSSIBLE_OUTPUTS], + biases1: float32[NODES_PER_LAYER], biases2: float32[NODES_PER_LAYER], biases3: float32[POSSIBLE_OUTPUTS], + d_biases1: float32[NODES_PER_LAYER], d_biases2: float32[NODES_PER_LAYER], d_biases3: float32[POSSIBLE_OUTPUTS]): - # TODO: allo.sqrt() does not currently work with float64 + # TODO: allo.sqrt() does not currently work with float32 norm1: float32 = 0.0 bias_norm1: float32 = 0.0 @@ -146,13 +146,13 @@ def update_weights( biases1[i] -= d_biases1[i] * LEARNING_RATE bias_norm1 += biases1[i] * biases1[i] - norm1 = allo.sqrt(norm1) - bias_norm1 = allo.sqrt(bias_norm1) + norm1_sqrt = allo.sqrt(norm1) + bias_norm1_sqrt = allo.sqrt(bias_norm1) for i, j in allo.grid(INPUT_DIMENSION, NODES_PER_LAYER): - weights1[i * NODES_PER_LAYER + j] = weights1[i * NODES_PER_LAYER + j] / norm1 + weights1[i * NODES_PER_LAYER + j] = weights1[i * NODES_PER_LAYER + j] / norm1_sqrt for i in range(NODES_PER_LAYER): - biases1[i] = biases1[i] / bias_norm1 + biases1[i] = biases1[i] / bias_norm1_sqrt norm2: float32 = 0.0 bias_norm2: float32 = 0.0 @@ -164,13 +164,13 @@ def update_weights( biases2[i] -= d_biases2[i] * LEARNING_RATE bias_norm2 += biases2[i] * biases2[i] - norm2 = allo.sqrt(norm2) - bias_norm2 = allo.sqrt(bias_norm2) + norm2_sqrt = allo.sqrt(norm2) + bias_norm2_sqrt = allo.sqrt(bias_norm2) for i, j in allo.grid(NODES_PER_LAYER, NODES_PER_LAYER): - weights2[i * NODES_PER_LAYER + j] = weights2[i * NODES_PER_LAYER + j] / norm2 + weights2[i * NODES_PER_LAYER + j] = weights2[i * NODES_PER_LAYER + j] / norm2_sqrt for i in range(NODES_PER_LAYER): - biases2[i] = biases2[i] / bias_norm2 + biases2[i] = biases2[i] / bias_norm2_sqrt norm3: float32 = 0.0 bias_norm3: float32 = 0.0 @@ -182,36 +182,36 @@ def update_weights( biases3[i] -= d_biases3[i] * LEARNING_RATE bias_norm3 += biases3[i] * biases3[i] - norm3 = allo.sqrt(norm3) - bias_norm3 = allo.sqrt(bias_norm3) + norm3_sqrt = allo.sqrt(norm3) + bias_norm3_sqrt = allo.sqrt(bias_norm3) for i, j in allo.grid(NODES_PER_LAYER, POSSIBLE_OUTPUTS): - weights3[i * POSSIBLE_OUTPUTS + j] = weights3[i * POSSIBLE_OUTPUTS + j] / norm3 + weights3[i * POSSIBLE_OUTPUTS + j] = weights3[i * POSSIBLE_OUTPUTS + j] / norm3_sqrt for i in range(POSSIBLE_OUTPUTS): - biases3[i] = biases3[i] / bias_norm3 + biases3[i] = biases3[i] / bias_norm3_sqrt def backprop( - weights1: float64[INPUT_DIMENSION * NODES_PER_LAYER], weights2: float64[NODES_PER_LAYER * NODES_PER_LAYER], - weights3: float64[NODES_PER_LAYER * POSSIBLE_OUTPUTS], biases1: float64[NODES_PER_LAYER], - biases2: float64[NODES_PER_LAYER], biases3: float64[POSSIBLE_OUTPUTS], - training_data: float64[TRAINING_SETS * INPUT_DIMENSION], training_targets: float64[TRAINING_SETS * POSSIBLE_OUTPUTS]): + weights1: float32[INPUT_DIMENSION * NODES_PER_LAYER], weights2: float32[NODES_PER_LAYER * NODES_PER_LAYER], + weights3: float32[NODES_PER_LAYER * POSSIBLE_OUTPUTS], biases1: float32[NODES_PER_LAYER], + biases2: float32[NODES_PER_LAYER], biases3: float32[POSSIBLE_OUTPUTS], + training_data: float32[TRAINING_SETS * INPUT_DIMENSION], training_targets: float32[TRAINING_SETS * POSSIBLE_OUTPUTS]): # Forward and training structures - activations1: float64[NODES_PER_LAYER] = 0.0 - activations2: float64[NODES_PER_LAYER] = 0.0 - activations3: float64[POSSIBLE_OUTPUTS] = 0.0 - dactivations1: float64[NODES_PER_LAYER] = 0.0 - dactivations2: float64[NODES_PER_LAYER] = 0.0 - dactivations3: float64[POSSIBLE_OUTPUTS] = 0.0 - net_outputs: float64[POSSIBLE_OUTPUTS] = 0.0 + activations1: float32[NODES_PER_LAYER] = 0.0 + activations2: float32[NODES_PER_LAYER] = 0.0 + activations3: float32[POSSIBLE_OUTPUTS] = 0.0 + dactivations1: float32[NODES_PER_LAYER] = 0.0 + dactivations2: float32[NODES_PER_LAYER] = 0.0 + dactivations3: float32[POSSIBLE_OUTPUTS] = 0.0 + net_outputs: float32[POSSIBLE_OUTPUTS] = 0.0 # Training structures - output_difference: float64[POSSIBLE_OUTPUTS] = 0.0 - delta_weights1: float64[INPUT_DIMENSION * NODES_PER_LAYER] = 0.0 - delta_weights2: float64[NODES_PER_LAYER * NODES_PER_LAYER] = 0.0 - delta_weights3: float64[NODES_PER_LAYER * POSSIBLE_OUTPUTS] = 0.0 - oracle_activations1: float64[NODES_PER_LAYER] = 0.0 - oracle_activations2: float64[NODES_PER_LAYER] = 0.0 + output_difference: float32[POSSIBLE_OUTPUTS] = 0.0 + delta_weights1: float32[INPUT_DIMENSION * NODES_PER_LAYER] = 0.0 + delta_weights2: float32[NODES_PER_LAYER * NODES_PER_LAYER] = 0.0 + delta_weights3: float32[NODES_PER_LAYER * POSSIBLE_OUTPUTS] = 0.0 + oracle_activations1: float32[NODES_PER_LAYER] = 0.0 + oracle_activations2: float32[NODES_PER_LAYER] = 0.0 for i in range(TRAINING_SETS): for j in range(NODES_PER_LAYER): @@ -220,7 +220,7 @@ def backprop( if j < POSSIBLE_OUTPUTS: activations3[j] = 0.0 - training_data_input1: float64[INPUT_DIMENSION] = 0.0 + training_data_input1: float32[INPUT_DIMENSION] = 0.0 for k in range(INPUT_DIMENSION): training_data_input1[k] = training_data[i * INPUT_DIMENSION + k] matrix_vector_product_with_bias_input_layer(biases1, weights1, activations1, training_data_input1) @@ -232,7 +232,7 @@ def backprop( RELU_PO(activations3, dactivations3) soft_max(net_outputs, activations3) - training_targets_input: float64[POSSIBLE_OUTPUTS] = 0.0 + training_targets_input: float32[POSSIBLE_OUTPUTS] = 0.0 for k in range(POSSIBLE_OUTPUTS): training_targets_input[k] = training_targets[i * POSSIBLE_OUTPUTS + k] take_difference(net_outputs, training_targets_input, output_difference, dactivations3) @@ -242,7 +242,7 @@ def backprop( get_delta_matrix_weights2(delta_weights2, oracle_activations2, activations1) get_oracle_activations1(weights2, oracle_activations2, oracle_activations1, dactivations1) - training_data_input2: float64[INPUT_DIMENSION] = 0.0 + training_data_input2: float32[INPUT_DIMENSION] = 0.0 for k in range(INPUT_DIMENSION): training_data_input2[k] = training_data[i * INPUT_DIMENSION + k] get_delta_matrix_weights1(delta_weights1, oracle_activations1, training_data_input2) diff --git a/examples/machsuite/backprop/check.data b/examples/machsuite/backprop/check.data index 430967a855..742653bcaa 100644 --- a/examples/machsuite/backprop/check.data +++ b/examples/machsuite/backprop/check.data @@ -1,5257 +1,5257 @@ %% -0.0000000033101436 -0.0000000015479249 -0.0000000001004358 -0.0000000000364163 -0.0000000000407159 -0.0000014497376937 -0.0000003035337987 -0.0000011983070851 -0.0000010490761193 -0.0000016367837014 -0.0000000132466512 -0.0000000126750943 -0.0000000048075421 -0.0000000018395992 -0.0000000004864273 -0.0000000000281399 -0.0000000201896963 --0.0000000000730134 -0.0000001272024342 -0.0000003213899017 -0.0000142248587956 -0.0000004476003093 -0.0000002151130794 -0.0000000041574232 -0.0000000160759547 -0.0000000011784375 -0.0000000006160755 -0.0000000002257905 -0.0000000000215129 -0.0000000000224720 --0.0000000000132671 -0.0000008242153168 -0.0000117506327550 -0.0000005455789965 -0.0000001210125333 -0.0000001299767681 -0.0000000509761169 -0.0000000501245280 -0.0000000008920892 -0.0000000006712727 -0.0000000011497495 -0.0000000002020437 -0.0000000000685082 --0.0000000001135434 -0.0000003899036725 -0.0000381553882461 -0.0000000346940674 -0.0000001435625174 -0.0000000194364549 -0.0000000492566898 -0.0000000141491509 -0.0000000004145226 -0.0000000015308925 --0.0000000001459076 -0.0000000000778971 -0.0000000000720425 -0.0115611891961562 -0.0000000659418916 -0.0000030881932846 -0.0000001015246746 -0.0000010529318327 -0.0000000431489449 -0.0000000150811733 -0.0000000068133704 -0.0000000004191571 -0.0000000001960107 -0.0000000000127180 -0.0000000000046113 -0.0000000000051558 -0.0000001835774978 -0.0000000384359016 -0.0000001517393231 -0.0000001328424924 -0.0000002072627321 -0.0000000016773980 -0.0000000016050227 -0.0000000006087698 -0.0000000002329449 -0.0000000000615953 -0.0000000000035633 -0.0000000025565824 --0.0000000000092455 -0.0000000161073998 -0.0000000406969856 -0.0000018012652850 -0.0000000566787668 -0.0000000272393510 -0.0000000005264465 -0.0000000020356670 -0.0000000001492232 -0.0000000000780124 -0.0000000000285914 -0.0000000000027241 -0.0000000000028456 --0.0000000000016800 -0.0000001043688015 -0.0000014879600416 -0.0000000690856074 -0.0000000153235840 -0.0000000164587054 -0.0000000064550072 -0.0000000063471719 -0.0000000001129635 -0.0000000000850020 -0.0000000001455905 -0.0000000000255844 -0.0000000000086751 --0.0000000000143778 -0.0000000493727524 -0.0000048315434808 -0.0000000043932427 -0.0000000181790451 -0.0000000024612009 -0.0000000062372793 -0.0000000017916796 -0.0000000000524902 -0.0000000001938539 --0.0000000000184760 -0.0000000000098640 -0.0000000000091226 -0.0014639711678757 -0.0000000083500950 -0.0000003910519803 -0.0000000128558727 -0.0000001333307111 -0.0000000054638674 -0.0000000019096998 -0.0000000008627639 -0.0000000005796344 -0.0000000002710548 -0.0000000000175872 -0.0000000000063768 -0.0000000000071297 -0.0000002538614621 -0.0000000531513627 -0.0000002098338134 -0.0000001837021953 -0.0000002866147651 -0.0000000023196018 -0.0000000022195172 -0.0000000008418417 -0.0000000003221295 -0.0000000000851776 -0.0000000000049275 -0.0000000035353884 --0.0000000000127853 -0.0000000222742335 -0.0000000562781189 -0.0000024908928358 -0.0000000783786401 -0.0000000376681331 -0.0000000007280003 -0.0000000028150367 -0.0000000002063544 -0.0000000001078801 -0.0000000000395378 -0.0000000000037671 -0.0000000000039350 --0.0000000000023232 -0.0000001443271471 -0.0000020576362367 -0.0000000955355305 -0.0000000211903283 -0.0000000227600394 -0.0000000089263532 -0.0000000087772324 -0.0000000001562124 -0.0000000001175456 -0.0000000002013309 -0.0000000000353796 -0.0000000000119964 --0.0000000000198824 -0.0000000682754656 -0.0000066813346241 -0.0000000060752273 -0.0000000251390232 -0.0000000034034893 -0.0000000086252666 -0.0000000024776370 -0.0000000000725865 -0.0000000002680723 --0.0000000000255497 -0.0000000000136405 -0.0000000000126153 -0.0020244630502579 -0.0000000115469889 -0.0000005407690412 -0.0000000177778362 -0.0000001843773356 -0.0000000075557484 -0.0000000026408421 -0.0000000011930793 -0.0000000033532564 -0.0000000015680857 -0.0000000001017440 -0.0000000000368906 -0.0000000000412462 -0.0000014686199826 -0.0000003074872124 -0.0000012139145848 -0.0000010627399376 -0.0000016581017039 -0.0000000134191836 -0.0000000128401811 -0.0000000048701581 -0.0000000018635590 -0.0000000004927628 -0.0000000000285064 -0.0000000204526595 --0.0000000000739644 -0.0000001288591981 -0.0000003255758845 -0.0000144101177707 -0.0000004534301345 -0.0000002179147911 -0.0000000042115719 -0.0000000162853346 -0.0000000011937859 -0.0000000006240996 -0.0000000002287313 -0.0000000000217931 -0.0000000000227647 --0.0000000000134399 -0.0000008349504117 -0.0000119036803330 -0.0000005526848140 -0.0000001225886702 -0.0000001316696321 -0.0000000516400557 -0.0000000507773727 -0.0000000009037083 -0.0000000006800157 -0.0000000011647242 -0.0000000002046752 -0.0000000000694005 --0.0000000001150223 -0.0000003949820187 -0.0000386523478467 -0.0000000351459407 -0.0000001454323586 -0.0000000196896066 -0.0000000498982317 -0.0000000143334357 -0.0000000004199216 -0.0000000015508315 --0.0000000001478079 -0.0000000000789117 -0.0000000000729808 -0.0117117693430054 -0.0000000668007600 -0.0000031284158422 -0.0000001028469753 -0.0000010666456048 -0.0000000437109374 -0.0000000152775977 -0.0000000069021108 -0.0000000265865384 -0.0000000124326831 -0.0000000008066844 -0.0000000002924898 -0.0000000003270235 -0.0000116440584336 -0.0000024379343273 -0.0000096246084936 -0.0000084260095436 -0.0000131463823804 -0.0000001063949576 -0.0000001018043077 -0.0000000386134006 -0.0000000147753638 -0.0000000039069057 -0.0000000002260154 -0.0000001621603716 --0.0000000005864317 -0.0000010216693565 -0.0000025813516554 -0.0001142517833125 -0.0000035950532160 -0.0000017277535043 -0.0000000333917507 -0.0000001291194704 -0.0000000094650196 -0.0000000049482190 -0.0000000018135126 -0.0000000001727882 -0.0000000001804915 --0.0000000001065591 -0.0000066199639786 -0.0000943791797833 -0.0000043820023719 -0.0000009719530829 -0.0000010439524062 -0.0000004094319259 -0.0000004025921055 -0.0000000071651164 -0.0000000053915538 -0.0000000092346022 -0.0000000016227822 -0.0000000005502466 --0.0000000009119623 -0.0000031316431733 -0.0003064579007845 -0.0000002786571375 -0.0000011530709059 -0.0000001561104598 -0.0000003956217690 -0.0000001136436924 -0.0000000033293788 -0.0000000122958815 --0.0000000011719060 -0.0000000006256572 -0.0000000005786337 -0.0928575997909717 -0.0000005296345972 -0.0000248038684633 -0.0000008154297771 -0.0000084569783867 -0.0000003465653487 -0.0000001211295456 -0.0000000547238896 -0.0000000009293314 -0.0000000004345840 -0.0000000000281976 -0.0000000000102240 -0.0000000000114311 -0.0000004070175500 -0.0000000852178871 -0.0000003364277663 -0.0000002945307934 -0.0000004595313006 -0.0000000037190311 -0.0000000035585654 -0.0000000013497298 -0.0000000005164723 -0.0000000001365657 -0.0000000000079004 -0.0000000056683087 --0.0000000000204987 -0.0000000357124074 -0.0000000902310335 -0.0000039936685084 -0.0000001256649271 -0.0000000603935571 -0.0000000011672072 -0.0000000045133660 -0.0000000003308494 -0.0000000001729648 -0.0000000000633913 -0.0000000000060398 -0.0000000000063091 --0.0000000000037248 -0.0000002314005495 -0.0000032990200753 -0.0000001531727244 -0.0000000339745782 -0.0000000364913163 -0.0000000143116760 -0.0000000140725908 -0.0000000002504563 -0.0000000001884615 -0.0000000003227952 -0.0000000000567243 -0.0000000000192338 --0.0000000000318776 -0.0000001094664497 -0.0000107122224335 -0.0000000097404486 -0.0000000403055439 -0.0000000054568344 -0.0000000138289429 -0.0000000039724107 -0.0000000001163783 -0.0000000004298021 --0.0000000000409639 -0.0000000000218698 -0.0000000000202261 -0.0032458333136548 -0.0000000185133540 -0.0000008670181304 -0.0000000285033154 -0.0000002956133530 -0.0000000121141776 -0.0000000042340783 -0.0000000019128714 -0.0000000008957987 -0.0000000004189030 -0.0000000000271802 -0.0000000000098551 -0.0000000000110186 -0.0000003923313392 -0.0000000821430127 -0.0000003242886113 -0.0000002839033856 -0.0000004429502126 -0.0000000035848391 -0.0000000034301633 -0.0000000013010281 -0.0000000004978366 -0.0000000001316381 -0.0000000000076153 -0.0000000054637819 --0.0000000000197591 -0.0000000344238144 -0.0000000869752722 -0.0000038495654971 -0.0000001211306222 -0.0000000582144009 -0.0000000011250914 -0.0000000043505121 -0.0000000003189115 -0.0000000001667238 -0.0000000000611039 -0.0000000000058219 -0.0000000000060814 --0.0000000000035904 -0.0000002230510391 -0.0000031799831828 -0.0000001476458550 -0.0000000327486899 -0.0000000351746148 -0.0000000137952743 -0.0000000135648156 -0.0000000002414192 -0.0000000001816614 -0.0000000003111479 -0.0000000000546775 -0.0000000000185398 --0.0000000000307274 -0.0000001055166263 -0.0000103256986654 -0.0000000093889885 -0.0000000388512184 -0.0000000052599381 -0.0000000133299592 -0.0000000038290759 -0.0000000001121791 -0.0000000004142937 --0.0000000000394858 -0.0000000000210807 -0.0000000000194963 -0.0031287155324666 -0.0000000178453459 -0.0000008357339486 -0.0000000274748424 -0.0000002849468568 -0.0000000116770671 -0.0000000040813020 -0.0000000018438501 -0.0000000000766459 -0.0000000000358420 -0.0000000000023256 -0.0000000000008432 -0.0000000000009428 -0.0000000335684560 -0.0000000070282790 -0.0000000277466185 -0.0000000242911981 -0.0000000378994775 -0.0000000003067242 -0.0000000002934899 -0.0000000001113179 -0.0000000000425956 -0.0000000000112632 -0.0000000000006516 -0.0000000004674893 --0.0000000000016906 -0.0000000029453530 -0.0000000074417343 -0.0000003293744340 -0.0000000103641171 -0.0000000049809106 -0.0000000000962645 -0.0000000003722363 -0.0000000000272865 -0.0000000000142651 -0.0000000000052281 -0.0000000000004981 -0.0000000000005203 --0.0000000000003072 -0.0000000190845804 -0.0000002720841158 -0.0000000126327987 -0.0000000028020268 -0.0000000030095923 -0.0000000011803442 -0.0000000011606258 -0.0000000000206562 -0.0000000000155432 -0.0000000000266223 -0.0000000000046783 -0.0000000000015863 --0.0000000000026291 -0.0000000090281603 -0.0000008834822167 -0.0000000008033359 -0.0000000033241683 -0.0000000004500482 -0.0000000011405312 -0.0000000003276214 -0.0000000000095982 -0.0000000000354476 --0.0000000000033785 -0.0000000000018037 -0.0000000000016681 -0.0002676975789995 -0.0000000015268745 -0.0000000715066462 -0.0000000023507884 -0.0000000243804764 -0.0000000009991073 -0.0000000003492023 -0.0000000001577626 -0.0000000004478994 -0.0000000002094515 -0.0000000000135901 -0.0000000000049275 -0.0000000000055093 -0.0000001961656696 -0.0000000410715063 -0.0000001621443057 -0.0000001419516927 -0.0000002214750997 -0.0000000017924196 -0.0000000017150816 -0.0000000006505141 -0.0000000002489183 -0.0000000000658190 -0.0000000000038076 -0.0000000027318910 --0.0000000000098795 -0.0000000172119072 -0.0000000434876361 -0.0000019247825535 -0.0000000605653111 -0.0000000291071997 -0.0000000005625457 -0.0000000021752560 -0.0000000001594557 -0.0000000000833619 -0.0000000000305520 -0.0000000000029109 -0.0000000000030407 --0.0000000000017952 -0.0000001115255196 -0.0000015899915914 -0.0000000738229256 -0.0000000163743449 -0.0000000175873070 -0.0000000068976371 -0.0000000067824077 -0.0000000001207096 -0.0000000000908307 -0.0000000001555739 -0.0000000000273388 -0.0000000000092699 --0.0000000000153637 -0.0000000527583131 -0.0000051628493327 -0.0000000046944942 -0.0000000194256091 -0.0000000026299690 -0.0000000066649795 -0.0000000019145379 -0.0000000000560895 -0.0000000002071468 --0.0000000000197429 -0.0000000000105404 -0.0000000000097482 -0.0015643577662333 -0.0000000089226730 -0.0000004178669743 -0.0000000137374210 -0.0000001424734247 -0.0000000058385335 -0.0000000020406509 -0.0000000009219250 -0.0000000016886046 -0.0000000007896435 -0.0000000000512354 -0.0000000000185771 -0.0000000000207704 -0.0000007395550827 -0.0000001548417790 -0.0000006112927182 -0.0000005351654861 -0.0000008349730279 -0.0000000067575178 -0.0000000064659497 -0.0000000024524729 -0.0000000009384353 -0.0000000002481413 -0.0000000000143550 -0.0000000102993752 --0.0000000000372463 -0.0000000648898122 -0.0000001639507177 -0.0000072565344538 -0.0000002283344673 -0.0000001097357065 -0.0000000021208275 -0.0000000082008319 -0.0000000006011567 -0.0000000003142788 -0.0000000001151826 -0.0000000000109744 -0.0000000000114636 --0.0000000000067679 -0.0000004204571830 -0.0000059943534727 -0.0000002783163950 -0.0000000617321578 -0.0000000663050920 -0.0000000260044617 -0.0000000255700410 -0.0000000004550817 -0.0000000003424366 -0.0000000005865221 -0.0000000001030686 -0.0000000000349481 --0.0000000000579219 -0.0000001989016668 -0.0000194642185494 -0.0000000176984949 -0.0000000732355875 -0.0000000099151242 -0.0000000251273304 -0.0000000072179107 -0.0000000002114606 -0.0000000007809547 --0.0000000000744319 -0.0000000000397377 -0.0000000000367511 -0.0058977125787165 -0.0000000336389551 -0.0000015753808774 -0.0000000517908144 -0.0000005371324642 -0.0000000220115845 -0.0000000076933636 -0.0000000034757068 -0.0000000002419135 -0.0000000001131262 -0.0000000000073401 -0.0000000000026614 -0.0000000000029756 -0.0000001059504406 -0.0000000221830058 -0.0000000875752656 -0.0000000766690949 -0.0000001196202141 -0.0000000009680982 -0.0000000009263274 -0.0000000003513471 -0.0000000001344425 -0.0000000000355493 -0.0000000000020565 -0.0000000014755133 --0.0000000000053360 -0.0000000092962706 -0.0000000234879743 -0.0000010395876736 -0.0000000327117451 -0.0000000157209979 -0.0000000003038348 -0.0000000011748707 -0.0000000000861231 -0.0000000000450243 -0.0000000000165013 -0.0000000000015722 -0.0000000000016423 --0.0000000000009696 -0.0000000602357077 -0.0000008587655016 -0.0000000398722673 -0.0000000088438971 -0.0000000094990248 -0.0000000037254614 -0.0000000036632251 -0.0000000000651961 -0.0000000000490583 -0.0000000000840265 -0.0000000000147659 -0.0000000000050067 --0.0000000000082980 -0.0000000284951312 -0.0000027884907826 -0.0000000025355287 -0.0000000104919061 -0.0000000014204645 -0.0000000035998013 -0.0000000010340551 -0.0000000000302943 -0.0000000001118814 --0.0000000000106633 -0.0000000000056929 -0.0000000000052650 -0.0008449204946245 -0.0000000048191976 -0.0000002256928551 -0.0000000074196754 -0.0000000769508722 -0.0000000031534322 -0.0000000011021696 -0.0000000004979380 -0.0000000007808299 -0.0000000003651401 -0.0000000000236918 -0.0000000000085902 -0.0000000000096045 -0.0000003419786521 -0.0000000716005935 -0.0000002826686811 -0.0000002474665861 -0.0000003861009818 -0.0000000031247528 -0.0000000029899284 -0.0000000011340512 -0.0000000004339431 -0.0000000001147434 -0.0000000000066379 -0.0000000047625478 --0.0000000000172231 -0.0000000300057846 -0.0000000758126700 -0.0000033555034904 -0.0000001055844455 -0.0000000507430333 -0.0000000009806947 -0.0000000037921576 -0.0000000002779817 -0.0000000001453261 -0.0000000000532617 -0.0000000000050747 -0.0000000000053009 --0.0000000000031296 -0.0000001944241667 -0.0000027718569837 -0.0000001286966526 -0.0000000285456493 -0.0000000306602253 -0.0000000120247577 -0.0000000118238766 -0.0000000002104350 -0.0000000001583465 -0.0000000002712145 -0.0000000000476601 -0.0000000000161604 --0.0000000000267838 -0.0000000919743849 -0.0000090004752580 -0.0000000081839846 -0.0000000338649656 -0.0000000045848658 -0.0000000116191622 -0.0000000033376437 -0.0000000000977818 -0.0000000003611223 --0.0000000000344181 -0.0000000000183752 -0.0000000000169941 -0.0027271691390361 -0.0000000155550341 -0.0000007284739726 -0.0000000239486592 -0.0000002483761338 -0.0000000101784060 -0.0000000035574985 -0.0000000016072062 -0.0000002850268226 -0.0000001332873008 -0.0000000086482374 -0.0000000031357010 -0.0000000035059282 -0.0001248326985218 -0.0000261364130579 -0.0001031827397061 -0.0000903328948896 -0.0001409386680492 -0.0000011406306174 -0.0000010914154658 -0.0000004139634584 -0.0000001584025307 -0.0000000418848395 -0.0000000024230476 -0.0000017384760553 --0.0000000062869704 -0.0000109530318400 -0.0000276739501795 -0.0012248606955493 -0.0000385415614679 -0.0000185227598642 -0.0000003579836216 -0.0000013842536003 -0.0000001014718139 -0.0000000530484675 -0.0000000194421599 -0.0000000018524136 -0.0000000019349989 --0.0000000011423899 -0.0000709707849956 -0.0010118128283073 -0.0000469782160099 -0.0000104200372442 -0.0000111919203665 -0.0000043894050161 -0.0000043160770809 -0.0000000768152078 -0.0000000578013377 -0.0000000990015724 -0.0000000173973926 -0.0000000058990391 --0.0000000097768928 -0.0000335734717181 -0.0032854495669690 -0.0000029874051417 -0.0000123617508003 -0.0000016736165981 -0.0000042413500757 -0.0000012183421566 -0.0000000356933375 -0.0000001318206931 --0.0000000125636751 -0.0000000067074954 -0.0000000062033702 -0.9955003941554625 -0.0000056780646004 -0.0002659153465885 -0.0000087419938490 -0.0000906648891689 -0.0000037154299774 -0.0000012985959124 -0.0000005866794735 +-0.0000000000000098 +-0.0000000000000164 +0.0000000000000109 +0.0000000000005129 +0.0000000001947615 +0.0000000000004273 +-0.0000000000000305 +0.0000000000000683 +-0.0000000000000789 +-0.0000000000368703 +-0.0000000000000566 +0.0000000000006188 +-0.0000000000000649 +-0.0000000000004516 +-0.0000000001116954 +0.0000000000000044 +0.0000000000009661 +-0.0000000000007033 +-0.0000000000001874 +0.0000000001086297 +-0.0000000000000193 +0.0000000000000030 +-0.0000000000000530 +-0.0000000000000770 +-0.0000000002672591 +-0.0000000000035510 +0.0000000000001000 +0.0000000000000109 +-0.0000000000002083 +0.0000000001066484 +-0.0000000000000114 +-0.0000000000000259 +-0.0000000000000004 +-0.0000000000000003 +0.0000000000669081 +0.0000000000000156 +0.0000000000015897 +0.0000000000000263 +-0.0000000000001533 +0.0000000000921694 +0.0000000000002495 +-0.0000000000000871 +-0.0000000000001601 +-0.0000000000005312 +0.0000000000073635 +0.0000000000000618 +-0.0000000000000037 +0.0000000000004589 +0.0000000000001451 +-0.0000000000039101 +0.0000000000000008 +-0.0000000000029292 +-0.0000000000001128 +-0.0000000000002889 +-0.0000000000206070 +-0.0000000000002777 +0.0000000000006937 +0.0000000000000006 +0.0000000000002686 +-0.0000000002246947 +0.0000000000001845 +0.0000000000000244 +0.0000000000002768 +-0.0115610146642162 +-0.0000000000000012 +-0.0000000000000021 +0.0000000000000014 +0.0000000000000650 +0.0000000000246622 +0.0000000000000541 +-0.0000000000000039 +0.0000000000000086 +-0.0000000000000100 +-0.0000000000046688 +-0.0000000000000072 +0.0000000000000784 +-0.0000000000000082 +-0.0000000000000572 +-0.0000000000141434 +0.0000000000000006 +0.0000000000001223 +-0.0000000000000891 +-0.0000000000000237 +0.0000000000137546 +-0.0000000000000024 +0.0000000000000004 +-0.0000000000000067 +-0.0000000000000097 +-0.0000000000338402 +-0.0000000000004496 +0.0000000000000127 +0.0000000000000014 +-0.0000000000000264 +0.0000000000135044 +-0.0000000000000014 +-0.0000000000000033 +-0.0000000000000000 +-0.0000000000000000 +0.0000000000084720 +0.0000000000000020 +0.0000000000002013 +0.0000000000000034 +-0.0000000000000194 +0.0000000000116718 +0.0000000000000316 +-0.0000000000000110 +-0.0000000000000203 +-0.0000000000000672 +0.0000000000009341 +0.0000000000000078 +-0.0000000000000005 +0.0000000000000581 +0.0000000000000184 +-0.0000000000004950 +0.0000000000000001 +-0.0000000000003709 +-0.0000000000000143 +-0.0000000000000366 +-0.0000000000026093 +-0.0000000000000352 +0.0000000000000878 +0.0000000000000001 +0.0000000000000340 +-0.0000000000284507 +0.0000000000000234 +0.0000000000000031 +0.0000000000000350 +-0.0014639994621174 +-0.0000000000000017 +-0.0000000000000029 +0.0000000000000019 +0.0000000000000898 +0.0000000000341043 +0.0000000000000748 +-0.0000000000000053 +0.0000000000000120 +-0.0000000000000138 +-0.0000000000064562 +-0.0000000000000099 +0.0000000000001084 +-0.0000000000000114 +-0.0000000000000791 +-0.0000000000195583 +0.0000000000000008 +0.0000000000001692 +-0.0000000000001231 +-0.0000000000000328 +0.0000000000190208 +-0.0000000000000034 +0.0000000000000005 +-0.0000000000000093 +-0.0000000000000135 +-0.0000000000467965 +-0.0000000000006217 +0.0000000000000175 +0.0000000000000019 +-0.0000000000000365 +0.0000000000186747 +-0.0000000000000020 +-0.0000000000000045 +-0.0000000000000001 +-0.0000000000000001 +0.0000000000117156 +0.0000000000000027 +0.0000000000002783 +0.0000000000000046 +-0.0000000000000268 +0.0000000000161404 +0.0000000000000437 +-0.0000000000000152 +-0.0000000000000280 +-0.0000000000000930 +0.0000000000012915 +0.0000000000000108 +-0.0000000000000006 +0.0000000000000803 +0.0000000000000254 +-0.0000000000006845 +0.0000000000000001 +-0.0000000000005129 +-0.0000000000000198 +-0.0000000000000506 +-0.0000000000036083 +-0.0000000000000486 +0.0000000000001215 +0.0000000000000001 +0.0000000000000470 +-0.0000000000393435 +0.0000000000000323 +0.0000000000000043 +0.0000000000000485 +-0.0020244944365725 +-0.0000000000000099 +-0.0000000000000167 +0.0000000000000110 +0.0000000000005197 +0.0000000001972972 +0.0000000000004328 +-0.0000000000000309 +0.0000000000000692 +-0.0000000000000799 +-0.0000000000373499 +-0.0000000000000573 +0.0000000000006268 +-0.0000000000000658 +-0.0000000000004574 +-0.0000000001131455 +0.0000000000000044 +0.0000000000009788 +-0.0000000000007124 +-0.0000000000001895 +0.0000000001100329 +-0.0000000000000196 +0.0000000000000031 +-0.0000000000000536 +-0.0000000000000780 +-0.0000000002707129 +-0.0000000000035964 +0.0000000000001013 +0.0000000000000111 +-0.0000000000002110 +0.0000000001080342 +-0.0000000000000115 +-0.0000000000000262 +-0.0000000000000004 +-0.0000000000000003 +0.0000000000677741 +0.0000000000000159 +0.0000000000016102 +0.0000000000000269 +-0.0000000000001552 +0.0000000000933770 +0.0000000000002527 +-0.0000000000000882 +-0.0000000000001621 +-0.0000000000005379 +0.0000000000074794 +0.0000000000000626 +-0.0000000000000037 +0.0000000000004647 +0.0000000000001471 +-0.0000000000039593 +0.0000000000000008 +-0.0000000000029666 +-0.0000000000001143 +-0.0000000000002925 +-0.0000000000208735 +-0.0000000000002813 +0.0000000000007027 +0.0000000000000006 +0.0000000000002721 +-0.0000000002275983 +0.0000000000001869 +0.0000000000000247 +0.0000000000002804 +-0.0117121786755768 +-0.0000000000000784 +-0.0000000000001320 +0.0000000000000875 +0.0000000000041195 +0.0000000015642941 +0.0000000000034322 +-0.0000000000002454 +0.0000000000005484 +-0.0000000000006337 +-0.0000000002961370 +-0.0000000000004548 +0.0000000000049702 +-0.0000000000005217 +-0.0000000000036270 +-0.0000000008971259 +0.0000000000000350 +0.0000000000077599 +-0.0000000000056487 +-0.0000000000015060 +0.0000000008725126 +-0.0000000000001553 +0.0000000000000244 +-0.0000000000004254 +-0.0000000000006185 +-0.0000000021466203 +-0.0000000000285226 +0.0000000000008034 +0.0000000000000876 +-0.0000000000016733 +0.0000000008565874 +-0.0000000000000914 +-0.0000000000002079 +-0.0000000000000031 +-0.0000000000000024 +0.0000000005374031 +0.0000000000001256 +0.0000000000127688 +0.0000000000002106 +-0.0000000000012311 +0.0000000007402795 +0.0000000000020043 +-0.0000000000006992 +-0.0000000000012860 +-0.0000000000042669 +0.0000000000591135 +0.0000000000004966 +-0.0000000000000296 +0.0000000000036858 +0.0000000000011656 +-0.0000000000314082 +0.0000000000000064 +-0.0000000000235276 +-0.0000000000009061 +-0.0000000000023206 +-0.0000000001655147 +-0.0000000000022303 +0.0000000000055721 +0.0000000000000051 +0.0000000000021572 +-0.0000000018047440 +0.0000000000014815 +0.0000000000001960 +0.0000000000022233 +-0.0928553649451751 +-0.0000000000000027 +-0.0000000000000046 +0.0000000000000031 +0.0000000000001440 +0.0000000000546800 +0.0000000000001200 +-0.0000000000000086 +0.0000000000000192 +-0.0000000000000222 +-0.0000000000103516 +-0.0000000000000159 +0.0000000000001737 +-0.0000000000000182 +-0.0000000000001268 +-0.0000000000313598 +0.0000000000000012 +0.0000000000002712 +-0.0000000000001975 +-0.0000000000000527 +0.0000000000305006 +-0.0000000000000054 +0.0000000000000009 +-0.0000000000000149 +-0.0000000000000216 +-0.0000000000750396 +-0.0000000000009972 +0.0000000000000281 +0.0000000000000031 +-0.0000000000000585 +0.0000000000299425 +-0.0000000000000032 +-0.0000000000000073 +-0.0000000000000001 +-0.0000000000000001 +0.0000000000187858 +0.0000000000000044 +0.0000000000004464 +0.0000000000000073 +-0.0000000000000430 +0.0000000000258752 +0.0000000000000701 +-0.0000000000000244 +-0.0000000000000450 +-0.0000000000001492 +0.0000000000020629 +0.0000000000000174 +-0.0000000000000010 +0.0000000000001289 +0.0000000000000407 +-0.0000000000010982 +0.0000000000000002 +-0.0000000000008225 +-0.0000000000000317 +-0.0000000000000812 +-0.0000000000057859 +-0.0000000000000780 +0.0000000000001948 +0.0000000000000002 +0.0000000000000754 +-0.0000000000630886 +0.0000000000000518 +0.0000000000000069 +0.0000000000000777 +-0.0032456559147978 +-0.0000000000000026 +-0.0000000000000044 +0.0000000000000029 +0.0000000000001388 +0.0000000000527069 +0.0000000000001156 +-0.0000000000000083 +0.0000000000000185 +-0.0000000000000214 +-0.0000000000099780 +-0.0000000000000153 +0.0000000000001675 +-0.0000000000000176 +-0.0000000000001222 +-0.0000000000302278 +0.0000000000000012 +0.0000000000002615 +-0.0000000000001903 +-0.0000000000000508 +0.0000000000293989 +-0.0000000000000052 +0.0000000000000008 +-0.0000000000000143 +-0.0000000000000208 +-0.0000000000723292 +-0.0000000000009611 +0.0000000000000271 +0.0000000000000030 +-0.0000000000000564 +0.0000000000288618 +-0.0000000000000031 +-0.0000000000000070 +-0.0000000000000001 +-0.0000000000000001 +0.0000000000181074 +0.0000000000000042 +0.0000000000004302 +0.0000000000000071 +-0.0000000000000415 +0.0000000000249423 +0.0000000000000675 +-0.0000000000000236 +-0.0000000000000433 +-0.0000000000001438 +0.0000000000019905 +0.0000000000000167 +-0.0000000000000010 +0.0000000000001242 +0.0000000000000393 +-0.0000000000010584 +0.0000000000000002 +-0.0000000000007928 +-0.0000000000000305 +-0.0000000000000782 +-0.0000000000055769 +-0.0000000000000751 +0.0000000000001878 +0.0000000000000002 +0.0000000000000727 +-0.0000000000608099 +0.0000000000000499 +0.0000000000000066 +0.0000000000000749 +-0.0031286039292721 +-0.0000000000000002 +-0.0000000000000004 +0.0000000000000003 +0.0000000000000119 +0.0000000000045097 +0.0000000000000099 +-0.0000000000000007 +0.0000000000000016 +-0.0000000000000018 +-0.0000000000008537 +-0.0000000000000013 +0.0000000000000143 +-0.0000000000000015 +-0.0000000000000105 +-0.0000000000025863 +0.0000000000000001 +0.0000000000000224 +-0.0000000000000163 +-0.0000000000000043 +0.0000000000025153 +-0.0000000000000004 +0.0000000000000001 +-0.0000000000000012 +-0.0000000000000018 +-0.0000000000061883 +-0.0000000000000822 +0.0000000000000023 +0.0000000000000003 +-0.0000000000000048 +0.0000000000024694 +-0.0000000000000003 +-0.0000000000000006 +-0.0000000000000000 +-0.0000000000000000 +0.0000000000015492 +0.0000000000000004 +0.0000000000000368 +0.0000000000000006 +-0.0000000000000035 +0.0000000000021342 +0.0000000000000058 +-0.0000000000000020 +-0.0000000000000037 +-0.0000000000000123 +0.0000000000001705 +0.0000000000000014 +-0.0000000000000001 +0.0000000000000106 +0.0000000000000034 +-0.0000000000000905 +0.0000000000000000 +-0.0000000000000678 +-0.0000000000000026 +-0.0000000000000067 +-0.0000000000004772 +-0.0000000000000064 +0.0000000000000161 +0.0000000000000000 +0.0000000000000062 +-0.0000000000052028 +0.0000000000000043 +0.0000000000000006 +0.0000000000000064 +-0.0002676939355446 +-0.0000000000000013 +-0.0000000000000022 +0.0000000000000015 +0.0000000000000694 +0.0000000000263534 +0.0000000000000578 +-0.0000000000000041 +0.0000000000000092 +-0.0000000000000107 +-0.0000000000049890 +-0.0000000000000077 +0.0000000000000837 +-0.0000000000000088 +-0.0000000000000611 +-0.0000000000151138 +0.0000000000000006 +0.0000000000001307 +-0.0000000000000952 +-0.0000000000000254 +0.0000000000146993 +-0.0000000000000026 +0.0000000000000004 +-0.0000000000000072 +-0.0000000000000104 +-0.0000000000361643 +-0.0000000000004805 +0.0000000000000135 +0.0000000000000015 +-0.0000000000000282 +0.0000000000144309 +-0.0000000000000015 +-0.0000000000000035 +-0.0000000000000001 +-0.0000000000000000 +0.0000000000090536 +0.0000000000000021 +0.0000000000002151 +0.0000000000000035 +-0.0000000000000207 +0.0000000000124713 +0.0000000000000338 +-0.0000000000000118 +-0.0000000000000217 +-0.0000000000000719 +0.0000000000009955 +0.0000000000000084 +-0.0000000000000005 +0.0000000000000621 +0.0000000000000196 +-0.0000000000005292 +0.0000000000000001 +-0.0000000000003964 +-0.0000000000000153 +-0.0000000000000391 +-0.0000000000027884 +-0.0000000000000376 +0.0000000000000939 +0.0000000000000001 +0.0000000000000363 +-0.0000000000304046 +0.0000000000000250 +0.0000000000000033 +0.0000000000000375 +-0.0015643098934745 +-0.0000000000000050 +-0.0000000000000084 +0.0000000000000056 +0.0000000000002616 +0.0000000000993540 +0.0000000000002180 +-0.0000000000000156 +0.0000000000000348 +-0.0000000000000403 +-0.0000000000188088 +-0.0000000000000289 +0.0000000000003157 +-0.0000000000000331 +-0.0000000000002304 +-0.0000000000569803 +0.0000000000000022 +0.0000000000004929 +-0.0000000000003588 +-0.0000000000000957 +0.0000000000554180 +-0.0000000000000099 +0.0000000000000016 +-0.0000000000000270 +-0.0000000000000393 +-0.0000000001363433 +-0.0000000000018117 +0.0000000000000510 +0.0000000000000056 +-0.0000000000001063 +0.0000000000544053 +-0.0000000000000058 +-0.0000000000000132 +-0.0000000000000002 +-0.0000000000000002 +0.0000000000341331 +0.0000000000000080 +0.0000000000008110 +0.0000000000000133 +-0.0000000000000782 +0.0000000000470167 +0.0000000000001273 +-0.0000000000000444 +-0.0000000000000817 +-0.0000000000002710 +0.0000000000037516 +0.0000000000000315 +-0.0000000000000019 +0.0000000000002341 +0.0000000000000740 +-0.0000000000019951 +0.0000000000000004 +-0.0000000000014944 +-0.0000000000000575 +-0.0000000000001474 +-0.0000000000105127 +-0.0000000000001417 +0.0000000000003539 +0.0000000000000003 +0.0000000000001370 +-0.0000000001146289 +0.0000000000000941 +0.0000000000000124 +0.0000000000001412 +-0.0058974866268355 +-0.0000000000000007 +-0.0000000000000012 +0.0000000000000008 +0.0000000000000375 +0.0000000000142336 +0.0000000000000312 +-0.0000000000000022 +0.0000000000000050 +-0.0000000000000058 +-0.0000000000026946 +-0.0000000000000041 +0.0000000000000452 +-0.0000000000000047 +-0.0000000000000330 +-0.0000000000081628 +0.0000000000000003 +0.0000000000000706 +-0.0000000000000514 +-0.0000000000000137 +0.0000000000079386 +-0.0000000000000014 +0.0000000000000002 +-0.0000000000000039 +-0.0000000000000056 +-0.0000000000195312 +-0.0000000000002595 +0.0000000000000073 +0.0000000000000008 +-0.0000000000000152 +0.0000000000077940 +-0.0000000000000008 +-0.0000000000000019 +-0.0000000000000000 +-0.0000000000000000 +0.0000000000048897 +0.0000000000000011 +0.0000000000001162 +0.0000000000000019 +-0.0000000000000112 +0.0000000000067362 +0.0000000000000182 +-0.0000000000000064 +-0.0000000000000117 +-0.0000000000000388 +0.0000000000005387 +0.0000000000000045 +-0.0000000000000003 +0.0000000000000335 +0.0000000000000106 +-0.0000000000002857 +0.0000000000000001 +-0.0000000000002141 +-0.0000000000000082 +-0.0000000000000211 +-0.0000000000015060 +-0.0000000000000203 +0.0000000000000507 +0.0000000000000000 +0.0000000000000196 +-0.0000000000164206 +0.0000000000000135 +0.0000000000000018 +0.0000000000000202 +-0.0008449250797163 +-0.0000000000000023 +-0.0000000000000039 +0.0000000000000026 +0.0000000000001210 +0.0000000000459424 +0.0000000000001008 +-0.0000000000000072 +0.0000000000000161 +-0.0000000000000186 +-0.0000000000086974 +-0.0000000000000134 +0.0000000000001460 +-0.0000000000000153 +-0.0000000000001065 +-0.0000000000263482 +0.0000000000000010 +0.0000000000002279 +-0.0000000000001659 +-0.0000000000000442 +0.0000000000256257 +-0.0000000000000046 +0.0000000000000007 +-0.0000000000000125 +-0.0000000000000182 +-0.0000000000630462 +-0.0000000000008377 +0.0000000000000236 +0.0000000000000026 +-0.0000000000000491 +0.0000000000251576 +-0.0000000000000027 +-0.0000000000000061 +-0.0000000000000001 +-0.0000000000000001 +0.0000000000157834 +0.0000000000000037 +0.0000000000003750 +0.0000000000000062 +-0.0000000000000362 +0.0000000000217412 +0.0000000000000589 +-0.0000000000000205 +-0.0000000000000378 +-0.0000000000001253 +0.0000000000017352 +0.0000000000000146 +-0.0000000000000009 +0.0000000000001083 +0.0000000000000342 +-0.0000000000009225 +0.0000000000000002 +-0.0000000000006910 +-0.0000000000000266 +-0.0000000000000682 +-0.0000000000048611 +-0.0000000000000655 +0.0000000000001637 +0.0000000000000001 +0.0000000000000634 +-0.0000000000530053 +0.0000000000000435 +0.0000000000000058 +0.0000000000000653 +-0.0027270761635947 +-0.0000000000008389 +-0.0000000000014156 +0.0000000000009384 +0.0000000000441680 +0.0000000167703098 +0.0000000000367932 +-0.0000000000026303 +0.0000000000058795 +-0.0000000000067927 +-0.0000000031747688 +-0.0000000000048744 +0.0000000000532814 +-0.0000000000055914 +-0.0000000000388808 +-0.0000000096175894 +0.0000000000003757 +0.0000000000831930 +-0.0000000000605561 +-0.0000000000161273 +0.0000000093533488 +-0.0000000000016644 +0.0000000000002618 +-0.0000000000045599 +-0.0000000000066292 +-0.0000000230118808 +-0.0000000003057362 +0.0000000000086128 +0.0000000000009405 +-0.0000000000179367 +0.0000000091830608 +-0.0000000000009787 +-0.0000000000022281 +-0.0000000000000331 +-0.0000000000000259 +0.0000000057610581 +0.0000000000013480 +0.0000000001368770 +0.0000000000022733 +-0.0000000000131969 +0.0000000079367058 +0.0000000000214857 +-0.0000000000074972 +-0.0000000000137835 +-0.0000000000457309 +0.0000000006348018 +0.0000000000053241 +-0.0000000000003170 +0.0000000000395072 +0.0000000000124983 +-0.0000000003366247 +0.0000000000000684 +-0.0000000002521971 +-0.0000000000097151 +-0.0000000000248683 +-0.0000000017743370 +-0.0000000000239119 +0.0000000000597336 +0.0000000000000544 +0.0000000000231298 +-0.0000000193469400 +0.0000000000158843 +0.0000000000021007 +0.0000000000238339 +-0.9955074257772755 %% --0.0159766908980595 --0.0159766876717542 --0.0159766871112941 --0.0159766876713955 --0.0159766875753671 --0.0159767089416718 --0.0159766877463526 --0.0160073250551973 --0.0159766877859469 --0.0159767651699631 --0.0159766882632052 --0.0159766885463628 --0.0159766870974960 --0.0159766877904846 --0.0159766906525718 --0.0159766877743875 --0.0159766869394323 --0.0159766871146967 --0.0159766874968795 --0.0159766870993232 --0.0159766905137102 --0.0159731495537249 --0.0159766882173568 --0.0159766944097071 --0.0159766906980414 --0.0159766877812873 --0.0155842566281400 --0.0159766869507633 --0.0159766869351870 --0.0159766873750173 --0.0159766897088521 --0.0159766869387253 --0.0159766881653938 --0.0159766897209257 --0.0159766877423484 --0.0159766878374504 --0.0159766869182186 --0.0160329173160141 --0.0159766869951602 --0.0159766869277664 --0.0159766898732550 --0.0159766991435967 --0.0156370520787302 --0.0159767021332008 --0.0159766869554105 --0.0159766869971443 --0.0159766869084713 --0.0159766873148399 --0.0159766876933821 --0.0162183547488910 --0.0159766877861922 --0.0159768097115938 --0.0159766869400880 --0.0159766869770068 --0.0159766904997772 --0.0159766877919417 --0.0159766897214034 --0.0159766872393662 --0.0159767053335342 --0.0159766894612017 --0.0159766877696968 --0.0159766904262806 --0.0159766877936930 --0.0159766909348899 --0.0159770092363493 --0.0159770060099797 --0.0159770054495085 --0.0159770060096210 --0.0159770059135907 --0.0159770272803211 --0.0159770060845796 --0.0160076440039583 --0.0159770061241747 --0.0159770835097330 --0.0159770066014425 --0.0159770068846057 --0.0159770054357100 --0.0159770061287124 --0.0159770089908567 --0.0159770061126150 --0.0159770052776432 --0.0159770054529111 --0.0159770058351015 --0.0159770054375373 --0.0159770088519923 --0.0159734678214435 --0.0159770065555932 --0.0159770127480669 --0.0159770090363272 --0.0159770061195150 --0.0155845671461224 --0.0159770052889745 --0.0159770052733978 --0.0159770057132369 --0.0159770080471182 --0.0159770052769362 --0.0159770065036291 --0.0159770080591920 --0.0159770060805754 --0.0159770061756792 --0.0159770052564291 --0.0160332367747729 --0.0159770053333722 --0.0159770052659771 --0.0159770082115244 --0.0159770174820508 --0.0156373636487996 --0.0159770204717145 --0.0159770052936217 --0.0159770053353563 --0.0159770052466816 --0.0159770056530583 --0.0159770060316080 --0.0162186779030259 --0.0159770061244200 --0.0159771280522513 --0.0159770052782989 --0.0159770053152184 --0.0159770088380591 --0.0159770061301696 --0.0159770080596697 --0.0159770055775831 --0.0159770236721116 --0.0159770077994628 --0.0159770061079242 --0.0159770087645610 --0.0159770061319209 --0.0159770092731804 --0.0159772706058828 --0.0159772673794604 --0.0159772668189800 --0.0159772673791017 --0.0159772672830699 --0.0159772886501502 --0.0159772674540615 --0.0160079058751740 --0.0159772674936573 --0.0159773448804829 --0.0159772679709329 --0.0159772682541007 --0.0159772668051813 --0.0159772674981951 --0.0159772703603862 --0.0159772674820974 --0.0159772666471119 --0.0159772668223827 --0.0159772672045793 --0.0159772668070087 --0.0159772702215196 --0.0159737291329823 --0.0159772679250829 --0.0159772741176579 --0.0159772704058575 --0.0159772674889975 --0.0155848220892948 --0.0159772666584434 --0.0159772666428665 --0.0159772670827127 --0.0159772694166323 --0.0159772666464049 --0.0159772678731179 --0.0159772694287063 --0.0159772674500572 --0.0159772675451626 --0.0159772666258974 --0.0160334990651052 --0.0159772667028418 --0.0159772666354456 --0.0159772695810411 --0.0159772788517194 --0.0156376194564929 --0.0159772818414320 --0.0159772666630907 --0.0159772667048260 --0.0159772666161498 --0.0159772670225332 --0.0159772674010891 --0.0162189432303109 --0.0159772674939026 --0.0159773894237306 --0.0159772666477676 --0.0159772666846877 --0.0159772702075861 --0.0159772674996523 --0.0159772694291840 --0.0159772669470567 --0.0159772850418816 --0.0159772691689728 --0.0159772674774065 --0.0159772701340868 --0.0159772675014036 --0.0159772706427145 --0.0159772821689778 --0.0159772789425530 --0.0159772783820722 --0.0159772789421943 --0.0159772788461624 --0.0159773002132582 --0.0159772790171542 --0.0160079174604442 --0.0159772790567500 --0.0159773564436316 --0.0159772795340260 --0.0159772798171940 --0.0159772783682736 --0.0159772790612878 --0.0159772819234810 --0.0159772790451901 --0.0159772782102041 --0.0159772783854749 --0.0159772787676718 --0.0159772783701009 --0.0159772817846143 --0.0159737406935138 --0.0159772794881759 --0.0159772856807555 --0.0159772819689523 --0.0159772790520902 --0.0155848333683193 --0.0159772782215355 --0.0159772782059586 --0.0159772786458052 --0.0159772809797264 --0.0159772782094970 --0.0159772794362109 --0.0159772809918004 --0.0159772790131499 --0.0159772791082554 --0.0159772781889895 --0.0160335106689011 --0.0159772782659340 --0.0159772781985377 --0.0159772811441354 --0.0159772904148204 --0.0156376307737341 --0.0159772934045351 --0.0159772782261828 --0.0159772782679182 --0.0159772781792419 --0.0159772785856255 --0.0159772789641817 --0.0162189549683410 --0.0159772790569953 --0.0159774009869116 --0.0159772782108598 --0.0159772782477799 --0.0159772817706808 --0.0159772790627450 --0.0159772809922781 --0.0159772785101490 --0.0159772966049870 --0.0159772807320668 --0.0159772790404993 --0.0159772816971815 --0.0159772790644963 --0.0159772822058096 --0.0159772813900014 --0.0159772781635768 --0.0159772776030960 --0.0159772781632181 --0.0159772780671862 --0.0159772994342809 --0.0159772782381780 --0.0160079166799841 --0.0159772782777737 --0.0159773556646516 --0.0159772787550497 --0.0159772790382177 --0.0159772775892973 --0.0159772782823116 --0.0159772811445046 --0.0159772782662139 --0.0159772774312278 --0.0159772776064987 --0.0159772779886956 --0.0159772775911247 --0.0159772810056379 --0.0159737399147089 --0.0159772787091996 --0.0159772849017789 --0.0159772811899759 --0.0159772782731139 --0.0155848326083574 --0.0159772774425593 --0.0159772774269824 --0.0159772778668289 --0.0159772802007501 --0.0159772774305208 --0.0159772786572346 --0.0159772802128240 --0.0159772782341737 --0.0159772783292791 --0.0159772774100133 --0.0160335098872014 --0.0159772774869578 --0.0159772774195615 --0.0159772803651590 --0.0159772896358436 --0.0156376300112134 --0.0159772926255582 --0.0159772774472066 --0.0159772774889419 --0.0159772774002657 --0.0159772778066493 --0.0159772781852055 --0.0162189541776618 --0.0159772782780191 --0.0159774002079294 --0.0159772774318836 --0.0159772774688037 --0.0159772809917044 --0.0159772782837688 --0.0159772802133018 --0.0159772777311728 --0.0159772958260099 --0.0159772799530905 --0.0159772782615230 --0.0159772809182051 --0.0159772782855201 --0.0159772814268331 --0.0157234901584507 --0.0157234869832698 --0.0157234864316909 --0.0157234869829168 --0.0157234868884101 --0.0157235079161414 --0.0157234870566861 --0.0157536388828166 --0.0157234870956530 --0.0157235632534316 --0.0157234875653487 --0.0157234878440192 --0.0157234864181114 --0.0157234871001188 --0.0157234899168530 --0.0157234870842768 --0.0157234862625524 --0.0157234864350396 --0.0157234868111662 --0.0157234864199097 --0.0157234897801918 --0.0157200049307433 --0.0157234875202268 --0.0157234936144522 --0.0157234899616021 --0.0157234870910672 --0.0153372744928160 --0.0157234862737039 --0.0157234862583744 --0.0157234866912351 --0.0157234889880876 --0.0157234862618566 --0.0157234874690871 --0.0157234889999699 --0.0157234870527454 --0.0157234871463404 --0.0157234862416748 --0.0157788256057826 --0.0157234863173972 --0.0157234862510714 --0.0157234891498854 --0.0157234982733280 --0.0153892333302411 --0.0157235012155584 --0.0157234862782774 --0.0157234863193499 --0.0157234862320820 --0.0157234866320113 --0.0157234870045550 --0.0159613245876811 --0.0157234870958945 --0.0157236070892496 --0.0157234862631977 --0.0157234862995315 --0.0157234897664796 --0.0157234871015529 --0.0157234890004400 --0.0157234865577335 --0.0157235043651788 --0.0157234887443615 --0.0157234870796604 --0.0157234896941477 --0.0157234871032763 --0.0157234901946974 --0.0159228291740265 --0.0159228259585965 --0.0159228254000257 --0.0159228259582390 --0.0159228258625344 --0.0159228471568169 --0.0159228260329435 --0.0159533600688478 --0.0159228260724043 --0.0159229031955726 --0.0159228265480539 --0.0159228268302570 --0.0159228253862740 --0.0159228260769267 --0.0159228289293663 --0.0159228260608839 --0.0159228252287432 --0.0159228254034168 --0.0159228257843113 --0.0159228253880951 --0.0159228287909728 --0.0159192997669434 --0.0159228265023601 --0.0159228326738370 --0.0159228289746827 --0.0159228260677604 --0.0155317177395531 --0.0159228252400360 --0.0159228252245122 --0.0159228256628599 --0.0159228279888278 --0.0159228252280385 --0.0159228264505721 --0.0159228280008606 --0.0159228260289528 --0.0159228261237342 --0.0159228252076010 --0.0159788660627736 --0.0159228252842832 --0.0159228252171166 --0.0159228281526765 --0.0159228373917695 --0.0155843352238734 --0.0159228403712961 --0.0159228252446675 --0.0159228252862606 --0.0159228251978865 --0.0159228256028854 --0.0159228259801515 --0.0161636784220983 --0.0159228260726488 --0.0159229475870613 --0.0159228252293967 --0.0159228252661910 --0.0159228287770868 --0.0159228260783790 --0.0159228280013367 --0.0159228255276660 --0.0159228435608418 --0.0159228277420121 --0.0159228260562090 --0.0159228287038380 --0.0159228260801243 --0.0159228292107328 --0.0157664036957137 --0.0157664005118680 --0.0157663999587839 --0.0157664005115141 --0.0157664004167495 --0.0157664215018637 --0.0157664005854847 --0.0157966346934234 --0.0157664006245579 --0.0157664769901648 --0.0157664010955353 --0.0157664013749664 --0.0157663999451673 --0.0157664006290359 --0.0157664034534567 --0.0157664006131506 --0.0157663997891839 --0.0157663999621417 --0.0157664003392948 --0.0157663999469705 --0.0157664033164226 --0.0157629089571063 --0.0157664010502903 --0.0157664071611464 --0.0157664034983279 --0.0157664006199596 --0.0153791340729621 --0.0157663998003658 --0.0157663997849944 --0.0157664002190364 --0.0157664025221568 --0.0157663997884861 --0.0157664009990111 --0.0157664025340715 --0.0157664005815333 --0.0157664006753836 --0.0157663997682493 --0.0158218901487812 --0.0157663998441783 --0.0157663997776715 --0.0157664026843961 --0.0157664118327359 --0.0154312347033524 --0.0157664147829953 --0.0157663998049517 --0.0157663998461363 --0.0157663997586303 --0.0157664001596509 --0.0157664005332113 --0.0160048871526861 --0.0157664006248000 --0.0157665209456071 --0.0157663997898309 --0.0157663998262638 --0.0157664033026730 --0.0157664006304739 --0.0157664025345429 --0.0157664000851705 --0.0157664179412109 --0.0157664022777656 --0.0157664006085217 --0.0157664032301437 --0.0157664006322021 --0.0157664037320594 --0.0157918312968791 --0.0157918281078999 --0.0157918275539240 --0.0157918281075454 --0.0157918280126280 --0.0157918491317396 --0.0157918281816353 --0.0158221110387377 --0.0157918282207715 --0.0157919047095096 --0.0157918286925083 --0.0157918289723899 --0.0157918275402854 --0.0157918282252567 --0.0157918310542316 --0.0157918282093458 --0.0157918273840505 --0.0157918275572872 --0.0157918279350483 --0.0157918275420916 --0.0157918309169765 --0.0157883309233853 --0.0157918286471903 --0.0157918347678995 --0.0157918310991751 --0.0157918282161658 --0.0154039372369541 --0.0157918273952504 --0.0157918273798543 --0.0157918278145960 --0.0157918301214301 --0.0157918273833516 --0.0157918285958284 --0.0157918301333639 --0.0157918281776774 --0.0157918282716791 --0.0157918273630822 --0.0158474072156584 --0.0157918274391336 --0.0157918273725195 --0.0157918302839309 --0.0157918394470214 --0.0154561218756842 --0.0157918424020378 --0.0157918273998438 --0.0157918274410948 --0.0157918273534476 --0.0157918277551149 --0.0157918281292776 --0.0160306992793606 --0.0157918282210140 --0.0157919487358253 --0.0157918273846986 --0.0157918274211902 --0.0157918309032047 --0.0157918282266970 --0.0157918301338361 --0.0157918276805143 --0.0157918455653456 --0.0157918298766448 --0.0157918282047094 --0.0157918308305584 --0.0157918282284279 --0.0157918313332834 --0.0156509794164375 --0.0156509762559497 --0.0156509757069233 --0.0156509762555984 --0.0156509761615290 --0.0156509970919550 --0.0156509763290263 --0.0156809886263732 --0.0156509763678129 --0.0156510521731732 --0.0156509768353350 --0.0156509771127161 --0.0156509756934066 --0.0156509763722580 --0.0156509791759578 --0.0156509763564893 --0.0156509755385675 --0.0156509757102564 --0.0156509760846425 --0.0156509756951965 --0.0156509790399290 --0.0156475103165114 --0.0156509767904220 --0.0156509828564465 --0.0156509792204998 --0.0156509763632483 --0.0152665506618079 --0.0156509755496673 --0.0156509755344087 --0.0156509759652664 --0.0156509782514903 --0.0156509755378748 --0.0156509767395189 --0.0156509782633175 --0.0156509763251039 --0.0156509764182657 --0.0156509755177865 --0.0157060587937464 --0.0156509755931584 --0.0156509755271395 --0.0156509784125393 --0.0156509874937634 --0.0153182691333969 --0.0156509904223787 --0.0156509755542196 --0.0156509755951021 --0.0156509755082380 --0.0156509759063166 --0.0156509762771364 --0.0158877131426279 --0.0156509763680532 --0.0156510958061420 --0.0156509755392098 --0.0156509755753754 --0.0156509790262803 --0.0156509763736854 --0.0156509782637855 --0.0156509758323826 --0.0156509935574244 --0.0156509780088920 --0.0156509763518943 --0.0156509789542831 --0.0156509763754009 --0.0156509794525165 --0.0159748964674722 --0.0159748932415291 --0.0159748926811320 --0.0159748932411705 --0.0159748931451529 --0.0159749145090584 --0.0159748933161191 --0.0160055271848760 --0.0159748933557090 --0.0159749707310362 --0.0159748938329138 --0.0159748941160395 --0.0159748926673354 --0.0159748933602462 --0.0159748962220120 --0.0159748933441509 --0.0159748925092895 --0.0159748926845342 --0.0159748930666740 --0.0159748926691624 --0.0159748960831660 --0.0159713555207753 --0.0159748937870705 --0.0159748999787255 --0.0159748962674765 --0.0159748933510499 --0.0155825062623853 --0.0159748925206192 --0.0159748925050446 --0.0159748929448255 --0.0159748952783983 --0.0159748925085825 --0.0159748937351133 --0.0159748952904705 --0.0159748933121154 --0.0159748934072067 --0.0159748924880781 --0.0160311165720907 --0.0159748925650111 --0.0159748924976249 --0.0159748954427827 --0.0159749047120835 --0.0156352957847245 --0.0159749077013519 --0.0159748925252658 --0.0159748925669950 --0.0159748924783319 --0.0159748928846549 --0.0159748932631546 --0.0162165331834853 --0.0159748933559543 --0.0159750152676656 --0.0159748925099451 --0.0159748925468597 --0.0159748960692346 --0.0159748933617032 --0.0159748952909482 --0.0159748928091897 --0.0159749109013260 --0.0159748950307757 --0.0159748933394607 --0.0159748959957463 --0.0159748933634542 --0.0159748965042984 --0.0159749989833526 --0.0159749957573890 --0.0159749951969884 --0.0159749957570304 --0.0159749956610122 --0.0159750170250535 --0.0159749958319796 --0.0160056298954425 --0.0159749958715697 --0.0159750732473887 --0.0159749963487775 --0.0159749966319050 --0.0159749951831917 --0.0159749958761069 --0.0159749987378909 --0.0159749958600115 --0.0159749950251448 --0.0159749952003906 --0.0159749955825329 --0.0159749951850188 --0.0159749985990440 --0.0159714580141489 --0.0159749963029339 --0.0159750024946283 --0.0159749987833557 --0.0159749958669106 --0.0155826062830253 --0.0159749950364746 --0.0159749950208999 --0.0159749954606836 --0.0159749977942712 --0.0159749950244378 --0.0159749962509764 --0.0159749978063435 --0.0159749958279759 --0.0159749959230677 --0.0159749950039333 --0.0160312194452890 --0.0159749950808667 --0.0159749950134801 --0.0159749979586567 --0.0159750072280164 --0.0156353961411869 --0.0159750102173038 --0.0159749950411212 --0.0159749950828506 --0.0159749949941870 --0.0159749954005126 --0.0159749957790147 --0.0162166372347366 --0.0159749958718150 --0.0159751177843012 --0.0159749950258004 --0.0159749950627152 --0.0159749985851126 --0.0159749958775639 --0.0159749978068212 --0.0159749953250469 --0.0159750134172982 --0.0159749975466470 --0.0159749958553213 --0.0159749985116237 --0.0159749958793149 --0.0159749990201791 --0.0159764204086399 --0.0159764171823893 --0.0159764166219388 --0.0159764171820307 --0.0159764170860040 --0.0159764384519462 --0.0159764172569865 --0.0160070540462161 --0.0159764172965801 --0.0159764946792839 --0.0159764177738304 --0.0159764180569831 --0.0159764166081409 --0.0159764173011177 --0.0159764201631564 --0.0159764172850209 --0.0159764164500799 --0.0159764166253413 --0.0159764170075176 --0.0159764166099681 --0.0159764200242971 --0.0159728791243667 --0.0159764177279828 --0.0159764239202280 --0.0159764202086253 --0.0159764172919206 --0.0155839927937716 --0.0159764164614107 --0.0159764164458347 --0.0159764168856575 --0.0159764192194528 --0.0159764164493729 --0.0159764176760206 --0.0159764192315261 --0.0159764172529824 --0.0159764173480828 --0.0159764164288665 --0.0160326458729764 --0.0159764165058068 --0.0159764164384142 --0.0159764193838529 --0.0159764286540373 --0.0156367873491146 --0.0159764316435907 --0.0159764164660578 --0.0159764165077909 --0.0159764164191194 --0.0159764168254811 --0.0159764172040169 --0.0162180801605595 --0.0159764172968255 --0.0159765392201592 --0.0159764164507356 --0.0159764164876537 --0.0159764200103645 --0.0159764173025749 --0.0159764192320038 --0.0159764167500087 --0.0159764348438698 --0.0159764189718065 --0.0159764172803303 --0.0159764199368691 --0.0159764173043261 --0.0159764204454697 --0.0159769565180675 --0.0159769532917085 --0.0159769527312392 --0.0159769532913499 --0.0159769531953199 --0.0159769745619799 --0.0159769533663082 --0.0160075911847525 --0.0159769534059032 --0.0159770307912066 --0.0159769538831695 --0.0159769541663317 --0.0159769527174408 --0.0159769534104409 --0.0159769562725758 --0.0159769533943436 --0.0159769525593745 --0.0159769527346418 --0.0159769531168309 --0.0159769527192681 --0.0159769561337118 --0.0159734151148288 --0.0159769538373203 --0.0159769600297736 --0.0159769563180461 --0.0159769534012435 --0.0155845157208297 --0.0159769525707057 --0.0159769525551291 --0.0159769529949667 --0.0159769553288404 --0.0159769525586675 --0.0159769537853564 --0.0159769553409141 --0.0159769533623040 --0.0159769534574075 --0.0159769525381604 --0.0160331838712546 --0.0159769526151033 --0.0159769525477084 --0.0159769554932460 --0.0159769647637419 --0.0156373120495444 --0.0159769677533957 --0.0159769525753529 --0.0159769526170874 --0.0159769525284130 --0.0159769529347883 --0.0159769533133368 --0.0162186243886245 --0.0159769534061485 --0.0159770753335781 --0.0159769525600302 --0.0159769525969496 --0.0159769561197787 --0.0159769534118981 --0.0159769553413918 --0.0159769528593134 --0.0159769709537823 --0.0159769550811858 --0.0159769533896528 --0.0159769560462808 --0.0159769534136494 --0.0159769565548985 --0.0159772009077656 --0.0159771976813572 --0.0159771971208793 --0.0159771976809985 --0.0159771975849671 --0.0159772189519542 --0.0159771977559581 --0.0160078360433048 --0.0159771977955536 --0.0159772751820414 --0.0159771982728272 --0.0159771985559938 --0.0159771971070807 --0.0159771978000914 --0.0159772006622701 --0.0159771977839938 --0.0159771969490120 --0.0159771971242820 --0.0159771975064769 --0.0159771971089080 --0.0159772005234040 --0.0159736594503269 --0.0159771982269773 --0.0159772044195254 --0.0159772007077411 --0.0159771977908938 --0.0155847541045125 --0.0159771969603434 --0.0159771969447665 --0.0159771973846109 --0.0159771997185203 --0.0159771969483049 --0.0159771981750126 --0.0159771997305942 --0.0159771977519538 --0.0159771978470588 --0.0159771969277976 --0.0160334291214967 --0.0159771970047416 --0.0159771969373457 --0.0159771998829284 --0.0159772091535662 --0.0156375512412180 --0.0159772121432657 --0.0159771969649907 --0.0159771970067258 --0.0159771969180500 --0.0159771973244316 --0.0159771977029858 --0.0162188724770366 --0.0159771977957989 --0.0159773197250946 --0.0159771969496677 --0.0159771969865876 --0.0159772005094706 --0.0159771978015486 --0.0159771997310719 --0.0159771972489554 --0.0159772153437013 --0.0159771994708619 --0.0159771977793030 --0.0159772004359717 --0.0159771978032999 --0.0159772009445972 --0.0159772836633895 --0.0159772804369644 --0.0159772798764836 --0.0159772804366058 --0.0159772803405738 --0.0159773017076716 --0.0159772805115657 --0.0160079189577238 --0.0159772805511614 --0.0159773579380503 --0.0159772810284375 --0.0159772813116055 --0.0159772798626849 --0.0159772805556993 --0.0159772834178927 --0.0159772805396016 --0.0159772797046154 --0.0159772798798863 --0.0159772802620832 --0.0159772798645123 --0.0159772832790260 --0.0159737421875940 --0.0159772809825874 --0.0159772871751675 --0.0159772834633640 --0.0159772805465016 --0.0155848348259950 --0.0159772797159468 --0.0159772797003699 --0.0159772801402166 --0.0159772824741380 --0.0159772797039083 --0.0159772809306224 --0.0159772824862120 --0.0159772805075614 --0.0159772806026668 --0.0159772796834009 --0.0160335121685764 --0.0159772797603453 --0.0159772796929491 --0.0159772826385470 --0.0159772919092329 --0.0156376322363518 --0.0159772948989479 --0.0159772797205942 --0.0159772797623295 --0.0159772796736532 --0.0159772800800369 --0.0159772804585932 --0.0162189564853766 --0.0159772805514068 --0.0159774024813344 --0.0159772797052711 --0.0159772797421912 --0.0159772832650925 --0.0159772805571565 --0.0159772824866897 --0.0159772800045604 --0.0159772980994001 --0.0159772822264784 --0.0159772805349107 --0.0159772831915932 --0.0159772805589078 --0.0159772837002213 --0.0159736432952889 --0.0159736400695988 --0.0159736395092457 --0.0159736400692402 --0.0159736399732302 --0.0159736613354602 --0.0159736401441830 --0.0160042716103522 --0.0159736401837698 --0.0159737175530285 --0.0159736406609371 --0.0159736409440406 --0.0159736394954502 --0.0159736401883066 --0.0159736430498480 --0.0159736401722126 --0.0159736393374166 --0.0159736395126476 --0.0159736398947575 --0.0159736394972771 --0.0159736429110129 --0.0159701026263057 --0.0159736406150975 --0.0159736468062668 --0.0159736430953089 --0.0159736401791110 --0.0155812838653749 --0.0159736393487455 --0.0159736393331721 --0.0159736397729186 --0.0159736421063083 --0.0159736393367097 --0.0159736405631443 --0.0159736421183795 --0.0159736401401797 --0.0159736402352635 --0.0159736393162069 --0.0160298589906166 --0.0159736393931339 --0.0159736393257530 --0.0159736422706798 --0.0159736515392537 --0.0156340692473943 --0.0159736545282876 --0.0159736393533917 --0.0159736393951176 --0.0159736393064615 --0.0159736397127526 --0.0159736400912226 --0.0162152610600697 --0.0159736401840151 --0.0159737620861649 --0.0159736393380722 --0.0159736393749839 --0.0159736428970826 --0.0159736401897635 --0.0159736421188572 --0.0159736396372933 --0.0159736577280107 --0.0159736418587051 --0.0159736401675228 --0.0159736428236000 --0.0159736401915144 --0.0159736433321122 --0.0159773019347608 --0.0159772987083320 --0.0159772981478505 --0.0159772987079733 --0.0159772986119413 --0.0159773199790635 --0.0159772987829333 --0.0160079372641297 --0.0159772988225291 --0.0159773762095065 --0.0159772992998057 --0.0159772995829741 --0.0159772981340518 --0.0159772988270669 --0.0159773016892637 --0.0159772988109692 --0.0159772979759821 --0.0159772981512532 --0.0159772985334506 --0.0159772981358791 --0.0159773015503967 --0.0159737604549152 --0.0159772992539556 --0.0159773054465428 --0.0159773017347350 --0.0159772988178693 --0.0155848526485596 --0.0159772979873136 --0.0159772979717366 --0.0159772984115838 --0.0159773007455079 --0.0159772979752751 --0.0159772992019905 --0.0159773007575819 --0.0159772987789290 --0.0159772988740346 --0.0159772979547676 --0.0160335305042510 --0.0159772980317121 --0.0159772979643158 --0.0159773009099171 --0.0159773101806135 --0.0156376501192958 --0.0159773131703320 --0.0159772979919609 --0.0159772980336963 --0.0159772979450199 --0.0159772983514041 --0.0159772987299607 --0.0162189750331267 --0.0159772988227744 --0.0159774207528416 --0.0159772979766378 --0.0159772980135580 --0.0159773015364633 --0.0159772988285242 --0.0159773007580596 --0.0159772982759275 --0.0159773163707878 --0.0159773004978480 --0.0159772988062783 --0.0159773014629639 --0.0159772988302755 --0.0159773019715926 --0.0159543763398674 --0.0159543731180676 --0.0159543725583903 --0.0159543731177094 --0.0159543730218152 --0.0159543943582818 --0.0159543731925619 --0.0159849677165495 --0.0159543732321009 --0.0159544505080506 --0.0159543737086927 --0.0159543739914548 --0.0159543725446113 --0.0159543732366322 --0.0159543760947225 --0.0159543732205576 --0.0159543723867684 --0.0159543725617881 --0.0159543729434371 --0.0159543725464361 --0.0159543759560548 --0.0159508399410066 --0.0159543736629083 --0.0159543798466110 --0.0159543761401286 --0.0159543732274477 --0.0155624901065957 --0.0159543723980836 --0.0159543723825290 --0.0159543728217451 --0.0159543751523208 --0.0159543723860624 --0.0159543736110178 --0.0159543751643774 --0.0159543731885633 --0.0159543732835324 --0.0159543723655843 --0.0160105242379335 --0.0159543724424185 --0.0159543723751188 --0.0159543753164941 --0.0159543845738898 --0.0156152118276232 --0.0159543875593188 --0.0159543724027243 --0.0159543724443998 --0.0159543723558506 --0.0159543727616518 --0.0159543731396653 --0.0161957027097334 --0.0159543732323458 --0.0159544949874791 --0.0159543723874232 --0.0159543724242904 --0.0159543759421413 --0.0159543732380873 --0.0159543751648545 --0.0159543726862834 --0.0159543907551830 --0.0159543749050161 --0.0159543732158734 --0.0159543758687474 --0.0159543732398361 --0.0159543763766463 --0.0159196483091053 --0.0159196450943175 --0.0159196445358583 --0.0159196450939601 --0.0159196449982746 --0.0159196662883038 --0.0159196451686497 --0.0159501731056111 --0.0159196452081026 --0.0159197223158661 --0.0159196456836572 --0.0159196459658039 --0.0159196445221094 --0.0159196452126241 --0.0159196480644940 --0.0159196451965844 --0.0159196443646100 --0.0159196445392487 --0.0159196449200671 --0.0159196445239301 --0.0159196479261281 --0.0159161196069949 --0.0159196456379725 --0.0159196518082167 --0.0159196481098012 --0.0159196452034596 --0.0155286149966923 --0.0159196443759006 --0.0159196443603798 --0.0159196447986400 --0.0159196471241433 --0.0159196443639055 --0.0159196455861949 --0.0159196471361737 --0.0159196451646598 --0.0159196452594223 --0.0159196443434720 --0.0159756740049121 --0.0159196444201389 --0.0159196443529857 --0.0159196472879592 --0.0159196565252068 --0.0155812219709467 --0.0159196595041383 --0.0159196443805311 --0.0159196444221159 --0.0159196443337595 --0.0159196447386774 --0.0159196451158682 --0.0161604494495434 --0.0159196452083470 --0.0159197666984879 --0.0159196443652633 --0.0159196444020503 --0.0159196479122449 --0.0159196452140760 --0.0159196471366497 --0.0159196446634731 --0.0159196626930469 --0.0159196468773769 --0.0159196451919105 --0.0159196478390106 --0.0159196452158210 --0.0159196483458042 --0.0077179447704959 --0.0077179432120889 --0.0077179429413691 --0.0077179432119156 --0.0077179431655309 --0.0077179534861282 --0.0077179432481223 --0.0077327420266926 --0.0077179432672476 --0.0077179806461619 --0.0077179434977784 --0.0077179436345524 --0.0077179429347041 --0.0077179432694394 --0.0077179446519176 --0.0077179432616640 --0.0077179428583544 --0.0077179429430126 --0.0077179431276189 --0.0077179429355867 --0.0077179445848430 --0.0077162341897005 --0.0077179434756321 --0.0077179464667321 --0.0077179446738808 --0.0077179432649968 --0.0075283858502035 --0.0077179428638276 --0.0077179428563038 --0.0077179430687556 --0.0077179441960713 --0.0077179428580129 --0.0077179434505323 --0.0077179442019032 --0.0077179432461881 --0.0077179432921254 --0.0077179428481075 --0.0077451038807536 --0.0077179428852727 --0.0077179428527194 --0.0077179442754831 --0.0077179487533497 --0.0075538879172160 --0.0077179501974225 --0.0077179428660723 --0.0077179428862311 --0.0077179428433992 --0.0077179430396881 --0.0077179432225358 --0.0078346756480130 --0.0077179432673661 --0.0077180021611707 --0.0077179428586711 --0.0077179428765040 --0.0077179445781130 --0.0077179432701433 --0.0077179442021339 --0.0077179430032319 --0.0077179517432843 --0.0077179440764483 --0.0077179432593982 --0.0077179445426118 --0.0077179432709892 --0.0077179447882861 --0.0158972176371468 --0.0158972144268882 --0.0158972138692157 --0.0158972144265313 --0.0158972143309806 --0.0158972355910154 --0.0158972145011156 --0.0159276994289256 --0.0158972145405130 --0.0158972915396435 --0.0158972150153976 --0.0158972152971467 --0.0158972138554862 --0.0158972145450281 --0.0158972173928801 --0.0158972145290110 --0.0158972136982087 --0.0158972138726014 --0.0158972142528832 --0.0158972138573043 --0.0158972172547091 --0.0158936939064354 --0.0158972149697772 --0.0158972211313285 --0.0158972174381235 --0.0158972145358765 --0.0155067352332910 --0.0158972137094833 --0.0158972136939845 --0.0158972141316272 --0.0158972164538542 --0.0158972136975052 --0.0158972149180726 --0.0158972164658677 --0.0158972144971313 --0.0158972145917603 --0.0158972136771005 --0.0159531644014238 --0.0158972137536594 --0.0158972136866008 --0.0158972166174394 --0.0158972258416731 --0.0155592680917285 --0.0158972288164077 --0.0158972137141074 --0.0158972137556336 --0.0158972136674017 --0.0158972140717491 --0.0158972144484085 --0.0161376795270184 --0.0158972145407571 --0.0158973358597370 --0.0158972136988611 --0.0158972137355963 --0.0158972172408455 --0.0158972145464780 --0.0158972164663430 --0.0158972139966508 --0.0158972320008236 --0.0158972162074355 --0.0158972145243436 --0.0158972171677144 --0.0158972145482205 --0.0158972176737940 --0.0159379296641191 --0.0159379264456473 --0.0159379258865481 --0.0159379264452895 --0.0159379263494943 --0.0159379476639210 --0.0159379265200646 --0.0159684894406029 --0.0159379265595627 --0.0159380037556889 --0.0159379270356623 --0.0159379273181323 --0.0159379258727834 --0.0159379265640894 --0.0159379294192274 --0.0159379265480314 --0.0159379257151035 --0.0159379258899424 --0.0159379262711972 --0.0159379258746062 --0.0159379292807030 --0.0159343969182443 --0.0159379269899252 --0.0159379331672403 --0.0159379294645866 --0.0159379265549144 --0.0155464481975323 --0.0159379257264070 --0.0159379257108685 --0.0159379261496309 --0.0159379284777991 --0.0159379257143982 --0.0159379269380883 --0.0159379284898433 --0.0159379265160702 --0.0159379266109412 --0.0159379256939413 --0.0159940195622715 --0.0159379257706961 --0.0159379257034659 --0.0159379286418028 --0.0159379378896360 --0.0155991154684576 --0.0159379408719812 --0.0159379257310429 --0.0159379257726754 --0.0159379256842177 --0.0159379260895996 --0.0159379264672227 --0.0161790067338189 --0.0159379265598075 --0.0159380481891715 --0.0159379257157576 --0.0159379257525867 --0.0159379292668038 --0.0159379265655430 --0.0159379284903199 --0.0159379260143091 --0.0159379440645441 --0.0159379282307500 --0.0159379265433521 --0.0159379291934857 --0.0159379265672900 --0.0159379297008600 --0.0159765378209877 --0.0159765345947132 --0.0159765340342585 --0.0159765345943545 --0.0159765344983271 --0.0159765558644273 --0.0159765346693109 --0.0160071716851162 --0.0159765347089048 --0.0159766120921809 --0.0159765351861586 --0.0159765354693134 --0.0159765340204605 --0.0159765347134425 --0.0159765375755023 --0.0159765346973455 --0.0159765338623983 --0.0159765340376611 --0.0159765344198402 --0.0159765340222877 --0.0159765374366420 --0.0159729965105255 --0.0159765351403107 --0.0159765413326017 --0.0159765376209715 --0.0159765347042452 --0.0155841073049574 --0.0159765338737292 --0.0159765338581531 --0.0159765342979792 --0.0159765366317917 --0.0159765338616913 --0.0159765350883481 --0.0159765366438651 --0.0159765346653068 --0.0159765347604078 --0.0159765338411848 --0.0160327637011516 --0.0159765339181257 --0.0159765338507325 --0.0159765367961930 --0.0159765460664460 --0.0156369022504893 --0.0159765490560215 --0.0159765338783763 --0.0159765339201098 --0.0159765338314376 --0.0159765342378023 --0.0159765346163409 --0.0162181993604770 --0.0159765347091502 --0.0159766566333856 --0.0159765338630540 --0.0159765338999724 --0.0159765374227092 --0.0159765347148996 --0.0159765366443428 --0.0159765341623293 --0.0159765522563243 --0.0159765363841436 --0.0159765346926549 --0.0159765373492133 --0.0159765347166508 --0.0159765378578177 --0.0159743828329127 --0.0159743796070739 --0.0159743790466949 --0.0159743796067152 --0.0159743795107008 --0.0159744008739158 --0.0159743796816615 --0.0160050125602318 --0.0159743797212501 --0.0159744570940763 --0.0159743801984394 --0.0159743804815560 --0.0159743790328987 --0.0159743797257871 --0.0159743825874605 --0.0159743797096923 --0.0159743788748579 --0.0159743790500970 --0.0159743794322244 --0.0159743790347257 --0.0159743824486189 --0.0159708420006680 --0.0159743801525977 --0.0159743863440525 --0.0159743826329235 --0.0159743797165911 --0.0155820053076633 --0.0159743788861873 --0.0159743788706132 --0.0159743793103799 --0.0159743816438773 --0.0159743788741510 --0.0159743801006421 --0.0159743816559490 --0.0159743796776579 --0.0159743797727461 --0.0159743788536472 --0.0160306011202808 --0.0159743789305777 --0.0159743788631937 --0.0159743818082564 --0.0159743910772576 --0.0156347931245082 --0.0159743940664293 --0.0159743788908338 --0.0159743789325615 --0.0159743788439014 --0.0159743792502112 --0.0159743796286987 --0.0162160117371816 --0.0159743797214954 --0.0159745016292662 --0.0159743788755135 --0.0159743789124269 --0.0159743824346880 --0.0159743797272441 --0.0159743816564267 --0.0159743791747484 --0.0159743972662999 --0.0159743813962626 --0.0159743797050023 --0.0159743823612020 --0.0159743797289950 --0.0159743828697377 --0.0159770759679930 --0.0159770727416098 --0.0159770721811363 --0.0159770727412512 --0.0159770726452205 --0.0159770940120402 --0.0159770728162101 --0.0160077108636570 --0.0159770728558053 --0.0159771502416872 --0.0159770733330752 --0.0159770736162395 --0.0159770721673378 --0.0159770728603431 --0.0159770757224993 --0.0159770728442456 --0.0159770720092703 --0.0159770721845390 --0.0159770725667309 --0.0159770721691651 --0.0159770755836344 --0.0159735345382839 --0.0159770732872257 --0.0159770794797252 --0.0159770757679700 --0.0159770728511456 --0.0155846322374019 --0.0159770720206016 --0.0159770720050249 --0.0159770724448658 --0.0159770747787569 --0.0159770720085633 --0.0159770732352614 --0.0159770747908307 --0.0159770728122058 --0.0159770729073101 --0.0159770719880561 --0.0160333037414515 --0.0159770720649995 --0.0159770719976042 --0.0159770749431638 --0.0159770842137290 --0.0156374289607559 --0.0159770872034051 --0.0159770720252489 --0.0159770720669837 --0.0159770719783086 --0.0159770723846870 --0.0159770727632383 --0.0162187456448820 --0.0159770728560507 --0.0159771947843916 --0.0159770720099261 --0.0159770720468457 --0.0159770755697011 --0.0159770728618003 --0.0159770747913085 --0.0159770723092114 --0.0159770904038156 --0.0159770745311005 --0.0159770728395548 --0.0159770754962027 --0.0159770728635516 --0.0159770760048242 --0.0159771774881299 --0.0159771742617263 --0.0159771737012492 --0.0159771742613676 --0.0159771741653363 --0.0159771955322920 --0.0159771743363270 --0.0160078125787656 --0.0159771743759225 --0.0159772517622968 --0.0159771748531954 --0.0159771751363615 --0.0159771736874506 --0.0159771743804603 --0.0159771772426347 --0.0159771743643627 --0.0159771735293821 --0.0159771737046518 --0.0159771740868462 --0.0159771736892779 --0.0159771771037689 --0.0159736360358821 --0.0159771748073456 --0.0159771809998845 --0.0159771772881057 --0.0159771743712627 --0.0155847312601080 --0.0159771735407135 --0.0159771735251367 --0.0159771739649804 --0.0159771762988863 --0.0159771735286750 --0.0159771747553809 --0.0159771763109602 --0.0159771743323227 --0.0159771744274276 --0.0159771735081677 --0.0160334056194445 --0.0159771735851117 --0.0159771735177158 --0.0159771764632942 --0.0159771857339184 --0.0156375283194256 --0.0159771887236136 --0.0159771735453607 --0.0159771735870958 --0.0159771734984201 --0.0159771739048011 --0.0159771742833549 --0.0162188487031709 --0.0159771743761678 --0.0159772963052848 --0.0159771735300378 --0.0159771735669577 --0.0159771770898355 --0.0159771743819175 --0.0159771763114379 --0.0159771738293251 --0.0159771919240445 --0.0159771760512283 --0.0159771743596719 --0.0159771770163367 --0.0159771743836688 --0.0159771775249614 --0.0159772479737893 --0.0159772447473714 --0.0159772441868918 --0.0159772447470127 --0.0159772446509810 --0.0159772660180310 --0.0159772448219724 --0.0160078831996373 --0.0159772448615681 --0.0159773222482840 --0.0159772453388431 --0.0159772456220105 --0.0159772441730932 --0.0159772448661059 --0.0159772477282930 --0.0159772448500083 --0.0159772440150240 --0.0159772441902945 --0.0159772445724906 --0.0159772441749205 --0.0159772475894265 --0.0159737065059108 --0.0159772452929931 --0.0159772514855594 --0.0159772477737642 --0.0159772448569083 --0.0155848000136904 --0.0159772440263554 --0.0159772440107785 --0.0159772444506242 --0.0159772467845404 --0.0159772440143169 --0.0159772452410282 --0.0159772467966144 --0.0159772448179681 --0.0159772449130734 --0.0159772439938095 --0.0160334763532752 --0.0159772440707538 --0.0159772440033577 --0.0159772469489490 --0.0159772562196142 --0.0156375973060256 --0.0159772592093225 --0.0159772440310027 --0.0159772440727380 --0.0159772439840619 --0.0159772443904447 --0.0159772447690001 --0.0162189202554959 --0.0159772448618134 --0.0159773667914686 --0.0159772440156797 --0.0159772440525997 --0.0159772475754931 --0.0159772448675631 --0.0159772467970921 --0.0159772443149683 --0.0159772624097676 --0.0159772465368813 --0.0159772448453174 --0.0159772475019940 --0.0159772448693144 --0.0159772480106209 --0.0159772848597227 --0.0159772816332973 --0.0159772810728165 --0.0159772816329387 --0.0159772815369067 --0.0159773029040061 --0.0159772817078986 --0.0160079201563538 --0.0159772817474943 --0.0159773591343890 --0.0159772822247704 --0.0159772825079385 --0.0159772810590178 --0.0159772817520322 --0.0159772846142259 --0.0159772817359345 --0.0159772809009483 --0.0159772810762192 --0.0159772814584161 --0.0159772810608451 --0.0159772844753591 --0.0159737433836616 --0.0159772821789203 --0.0159772883715009 --0.0159772846596972 --0.0159772817428345 --0.0155848359929062 --0.0159772809122797 --0.0159772808967028 --0.0159772813365494 --0.0159772836704711 --0.0159772809002412 --0.0159772821269553 --0.0159772836825451 --0.0159772817038943 --0.0159772817989998 --0.0159772808797337 --0.0160335133691254 --0.0159772809566782 --0.0159772808892819 --0.0159772838348801 --0.0159772931055666 --0.0156376334072211 --0.0159772960952819 --0.0159772809169270 --0.0159772809586624 --0.0159772808699861 --0.0159772812763698 --0.0159772816549261 --0.0162189576998300 --0.0159772817477397 --0.0159774036776765 --0.0159772809016040 --0.0159772809385241 --0.0159772844614256 --0.0159772817534894 --0.0159772836830228 --0.0159772812008933 --0.0159772992957343 --0.0159772834228114 --0.0159772817312436 --0.0159772843879263 --0.0159772817552407 --0.0159772848965544 --0.0159772846862048 --0.0159772814597795 --0.0159772808992986 --0.0159772814594208 --0.0159772813633889 --0.0159773027304880 --0.0159772815343807 --0.0160079199825044 --0.0159772815739765 --0.0159773589608703 --0.0159772820512526 --0.0159772823344206 --0.0159772808855000 --0.0159772815785143 --0.0159772844407080 --0.0159772815624166 --0.0159772807274304 --0.0159772809027013 --0.0159772812848983 --0.0159772808873273 --0.0159772843018412 --0.0159737432101821 --0.0159772820054025 --0.0159772881979830 --0.0159772844861793 --0.0159772815693167 --0.0155848358236362 --0.0159772807387619 --0.0159772807231849 --0.0159772811630316 --0.0159772834969532 --0.0159772807267234 --0.0159772819534375 --0.0159772835090272 --0.0159772815303764 --0.0159772816254819 --0.0159772807062159 --0.0160335131949990 --0.0159772807831604 --0.0159772807157641 --0.0159772836613622 --0.0159772929320487 --0.0156376332373795 --0.0159772959217639 --0.0159772807434092 --0.0159772807851445 --0.0159772806964682 --0.0159772811028520 --0.0159772814814082 --0.0162189575236970 --0.0159772815742218 --0.0159774035041573 --0.0159772807280861 --0.0159772807650063 --0.0159772842879078 --0.0159772815799715 --0.0159772835095049 --0.0159772810273754 --0.0159772991222163 --0.0159772832492936 --0.0159772815577258 --0.0159772842144084 --0.0159772815817228 --0.0159772847230366 --0.0159772911424547 --0.0159772879160281 --0.0159772873555470 --0.0159772879156694 --0.0159772878196375 --0.0159773091867452 --0.0159772879906294 --0.0160079264511311 --0.0159772880302251 --0.0159773654171502 --0.0159772885075014 --0.0159772887906696 --0.0159772873417483 --0.0159772880347630 --0.0159772908969578 --0.0159772880186653 --0.0159772871836787 --0.0159772873589497 --0.0159772877411468 --0.0159772873435757 --0.0159772907580910 --0.0159737496650012 --0.0159772884616513 --0.0159772946542343 --0.0159772909424291 --0.0159772880255653 --0.0155848421213333 --0.0159772871950102 --0.0159772871794333 --0.0159772876192801 --0.0159772899532027 --0.0159772871829717 --0.0159772884096863 --0.0159772899652766 --0.0159772879866251 --0.0159772880817306 --0.0159772871624642 --0.0160335196739654 --0.0159772872394087 --0.0159772871720124 --0.0159772901176117 --0.0159772993883019 --0.0156376395564074 --0.0159773023780183 --0.0159772871996575 --0.0159772872413929 --0.0159772871527165 --0.0159772875591004 --0.0159772879376569 --0.0162189640775832 --0.0159772880304705 --0.0159774099604553 --0.0159772871843345 --0.0159772872212546 --0.0159772907441575 --0.0159772880362202 --0.0159772899657544 --0.0159772874836239 --0.0159773055784720 --0.0159772897055429 --0.0159772880139744 --0.0159772906706581 --0.0159772880379715 --0.0159772911792865 --0.0158310806354878 --0.0158310774385830 --0.0158310768832303 --0.0158310774382276 --0.0158310773430743 --0.0158310985146730 --0.0158310775125017 --0.0158614356310731 --0.0158310775517351 --0.0158311542305695 --0.0158310780246443 --0.0158310783052215 --0.0158310768695579 --0.0158310775562315 --0.0158310803922372 --0.0158310775402810 --0.0158310767129346 --0.0158310768866019 --0.0158310772653019 --0.0158310768713685 --0.0158310802546410 --0.0158275715625732 --0.0158310779792138 --0.0158310841151346 --0.0158310804372924 --0.0158310775471180 --0.0154422225463122 --0.0158310767241624 --0.0158310767087280 --0.0158310771445502 --0.0158310794571174 --0.0158310767122340 --0.0158310779277242 --0.0158310794690809 --0.0158310775085340 --0.0158310776027693 --0.0158310766919142 --0.0158867946761254 --0.0158310767681547 --0.0158310767013750 --0.0158310796200221 --0.0158310888058854 --0.0154945368792922 --0.0158310917682459 --0.0158310767287672 --0.0158310767701207 --0.0158310766822557 --0.0158310770849212 --0.0158310774600138 --0.0160705422715051 --0.0158310775519782 --0.0158311983663030 --0.0158310767135844 --0.0158310767501667 --0.0158310802408350 --0.0158310775576753 --0.0158310794695543 --0.0158310770101353 --0.0158310949394155 --0.0158310792117237 --0.0158310775356331 --0.0158310801680081 --0.0158310775594106 --0.0158310806719825 --0.0142415912685602 --0.0142415883925941 --0.0142415878929936 --0.0142415883922744 --0.0142415883066736 --0.0142416073528456 --0.0142415884590921 --0.0142688989135277 --0.0142415884943869 --0.0142416574753973 --0.0142415889198205 --0.0142415891722304 --0.0142415878806937 --0.0142415884984318 --0.0142415910497296 --0.0142415884840827 --0.0142415877397939 --0.0142415878960267 --0.0142415882367088 --0.0142415878823226 --0.0142415909259467 --0.0142384344731333 --0.0142415888789507 --0.0142415943988836 --0.0142415910902617 --0.0142415884902332 --0.0138917710589210 --0.0142415877498945 --0.0142415877360096 --0.0142415881280794 --0.0142415902084869 --0.0142415877391637 --0.0142415888326302 --0.0142415902192494 --0.0142415884555227 --0.0142415885402977 --0.0142415877208838 --0.0142917121559344 --0.0142415877894704 --0.0142415877293948 --0.0142415903550375 --0.0142415986187278 --0.0139388334735602 --0.0142416012836955 --0.0142415877540370 --0.0142415877912391 --0.0142415877121949 --0.0142415880744366 --0.0142415884118735 --0.0144570133433608 --0.0142415884946055 --0.0142416971803239 --0.0142415877403784 --0.0142415877732882 --0.0142415909135267 --0.0142415884997307 --0.0142415902196752 --0.0142415880071585 --0.0142416041365099 --0.0142415899877284 --0.0142415884799013 --0.0142415908480110 --0.0142415885012918 --0.0142415913013912 --0.0158754931201038 --0.0158754899142493 --0.0158754893573420 --0.0158754899138930 --0.0158754898184733 --0.0158755110493410 --0.0158754899883749 --0.0159059330926390 --0.0158754900277182 --0.0158755669212121 --0.0158754905019513 --0.0158754907833140 --0.0158754893436313 --0.0158754900322271 --0.0158754928761722 --0.0158754900162321 --0.0158754891865695 --0.0158754893607230 --0.0158754897404831 --0.0158754893454469 --0.0158754927381908 --0.0158719742236605 --0.0158754904563936 --0.0158754966094917 --0.0158754929213535 --0.0158754900230881 --0.0154855463268938 --0.0158754891978287 --0.0158754891823511 --0.0158754896193934 --0.0158754919384345 --0.0158754891858670 --0.0158754904047599 --0.0158754919504315 --0.0158754899843962 --0.0158754900788953 --0.0158754891654903 --0.0159313631276447 --0.0158754892419442 --0.0158754891749776 --0.0158754921017953 --0.0158755013133741 --0.0155380071391973 --0.0158755042840276 --0.0158754892024464 --0.0158754892439157 --0.0158754891558048 --0.0158754895595975 --0.0158754899357402 --0.0161156250710746 --0.0158754900279620 --0.0158756111805020 --0.0158754891872211 --0.0158754892239058 --0.0158754927243461 --0.0158754900336751 --0.0158754919509062 --0.0158754894846022 --0.0158755074640747 --0.0158754916923539 --0.0158754900115711 --0.0158754926513154 --0.0158754900354152 --0.0158754931567007 --0.0159554470754596 --0.0159554438534444 --0.0159554432937296 --0.0159554438530862 --0.0159554437571856 --0.0159554650950787 --0.0159554439279436 --0.0159860404973880 --0.0159554439674853 --0.0159555212486016 --0.0159554444441090 --0.0159554447268900 --0.0159554432799498 --0.0159554439720169 --0.0159554468302984 --0.0159554439559412 --0.0159554431220963 --0.0159554432971277 --0.0159554436788022 --0.0159554432817746 --0.0159554466916214 --0.0159519104401619 --0.0159554443983216 --0.0159554505824377 --0.0159554468757075 --0.0159554439628319 --0.0155635346367009 --0.0159554431334123 --0.0159554431178567 --0.0159554435571021 --0.0159554458878336 --0.0159554431213902 --0.0159554443464276 --0.0159554458998911 --0.0159554439239448 --0.0159554440189203 --0.0159554431009108 --0.0160115987273539 --0.0159554431777501 --0.0159554431104460 --0.0159554460520178 --0.0159554553100325 --0.0156162598837753 --0.0159554582956612 --0.0159554431380533 --0.0159554431797316 --0.0159554430911765 --0.0159554434970047 --0.0159554438750436 --0.0161967895778049 --0.0159554439677303 --0.0159555657310039 --0.0159554431227512 --0.0159554431596208 --0.0159554466777070 --0.0159554439734722 --0.0159554459003681 --0.0159554434216314 --0.0159554614917390 --0.0159554456405124 --0.0159554439512568 --0.0159554466043081 --0.0159554439752211 --0.0159554471122410 --0.0159536205166425 --0.0159536172949999 --0.0159536167353498 --0.0159536172946417 --0.0159536171987521 --0.0159536385341780 --0.0159536173694905 --0.0159842104008287 --0.0159536174090276 --0.0159536946812076 --0.0159536178855962 --0.0159536181683445 --0.0159536167215716 --0.0159536174135587 --0.0159536202715096 --0.0159536173974849 --0.0159536165637364 --0.0159536167387475 --0.0159536171203779 --0.0159536167233962 --0.0159536201328487 --0.0159500842902935 --0.0159536178398141 --0.0159536240232151 --0.0159536203169135 --0.0159536174043747 --0.0155617533741551 --0.0159536165750510 --0.0159536165594972 --0.0159536169986919 --0.0159536193291538 --0.0159536165630304 --0.0159536177879261 --0.0159536193412099 --0.0159536173654921 --0.0159536174604566 --0.0159536165425533 --0.0160097656750855 --0.0159536166193837 --0.0159536165520873 --0.0159536194933191 --0.0159536287502632 --0.0156144725298168 --0.0159536317355467 --0.0159536165796914 --0.0159536166213650 --0.0159536165328201 --0.0159536169386014 --0.0159536173165965 --0.0161949351023115 --0.0159536174092725 --0.0159537391584663 --0.0159536165643911 --0.0159536166012565 --0.0159536201189359 --0.0159536174150137 --0.0159536193416869 --0.0159536168632368 --0.0159536349312549 --0.0159536190818613 --0.0159536173928009 --0.0159536200455455 --0.0159536174167624 --0.0159536205534197 --0.0159680736031751 --0.0159680703786105 --0.0159680698184528 --0.0159680703782520 --0.0159680702822755 --0.0159680916370522 --0.0159680704531687 --0.0159986912321361 --0.0159680704927416 --0.0159681478350066 --0.0159680709697425 --0.0159680712527472 --0.0159680698046621 --0.0159680704972768 --0.0159680733578199 --0.0159680704811884 --0.0159680696466837 --0.0159680698218536 --0.0159680702038301 --0.0159680698064884 --0.0159680732190332 --0.0159645341695144 --0.0159680709239188 --0.0159680771129281 --0.0159680734032649 --0.0159680704880845 --0.0155758510615862 --0.0159680696580086 --0.0159680696424407 --0.0159680700820337 --0.0159680724146094 --0.0159680696459771 --0.0159680708719838 --0.0159680724266764 --0.0159680704491667 --0.0159680705442173 --0.0159680696254814 --0.0160242696850194 --0.0159680697023815 --0.0159680696350241 --0.0159680725789235 --0.0159680818442636 --0.0156286180280335 --0.0159680848322547 --0.0159680696626533 --0.0159680697043646 --0.0159680696157394 --0.0159680700218888 --0.0159680704002267 --0.0162096070668568 --0.0159680704929868 --0.0159681923526056 --0.0159680696473391 --0.0159680696842379 --0.0159680732051077 --0.0159680704987332 --0.0159680724271538 --0.0159680699464558 --0.0159680880308614 --0.0159680721670925 --0.0159680704765002 --0.0159680731316508 --0.0159680705004835 --0.0159680736399856 --0.0159681359202507 --0.0159681326956779 --0.0159681321355189 --0.0159681326953195 --0.0159681325993427 --0.0159681539541736 --0.0159681327702363 --0.0159987536266118 --0.0159681328098094 --0.0159682101522703 --0.0159681332868114 --0.0159681335698169 --0.0159681321217281 --0.0159681328143446 --0.0159681356748949 --0.0159681327982561 --0.0159681319637493 --0.0159681321389196 --0.0159681325208971 --0.0159681321235544 --0.0159681355361078 --0.0159645964776205 --0.0159681332409876 --0.0159681394300126 --0.0159681357203401 --0.0159681328051522 --0.0155759123591724 --0.0159681319750743 --0.0159681319595063 --0.0159681323991004 --0.0159681347316820 --0.0159681319630427 --0.0159681331890524 --0.0159681347437490 --0.0159681327662343 --0.0159681328612852 --0.0159681319425470 --0.0160243321438906 --0.0159681320194473 --0.0159681319520897 --0.0159681348959966 --0.0159681441613601 --0.0156286794656917 --0.0159681471493587 --0.0159681319797189 --0.0159681320214303 --0.0159681319328049 --0.0159681323389553 --0.0159681327172942 --0.0162096699844347 --0.0159681328100545 --0.0159682546699820 --0.0159681319644047 --0.0159681320013036 --0.0159681355221824 --0.0159681328158010 --0.0159681347442265 --0.0159681322635221 --0.0159681503479735 --0.0159681344841645 --0.0159681327935679 --0.0159681354487252 --0.0159681328175513 --0.0159681359570613 --0.0159771276202287 --0.0159771243938352 --0.0159771238333598 --0.0159771243934765 --0.0159771242974455 --0.0159771456643345 --0.0159771244684356 --0.0160077626152972 --0.0159771245080310 --0.0159772018941639 --0.0159771249853024 --0.0159771252684677 --0.0159771238195613 --0.0159771245125688 --0.0159771273747343 --0.0159771244964713 --0.0159771236614933 --0.0159771238367625 --0.0159771242189557 --0.0159771238213886 --0.0159771272358689 --0.0159735861790287 --0.0159771249394528 --0.0159771311319724 --0.0159771274202052 --0.0159771245033713 --0.0155846826164911 --0.0159771236728246 --0.0159771236572478 --0.0159771240970902 --0.0159771264309888 --0.0159771236607862 --0.0159771248874883 --0.0159771264430627 --0.0159771244644314 --0.0159771245595359 --0.0159771236402790 --0.0160333555761380 --0.0159771237172227 --0.0159771236498270 --0.0159771265953962 --0.0159771358659915 --0.0156374795110981 --0.0159771388556773 --0.0159771236774719 --0.0159771237192068 --0.0159771236305314 --0.0159771240369111 --0.0159771244154637 --0.0162187980813806 --0.0159771245082763 --0.0159772464370130 --0.0159771236621490 --0.0159771236990688 --0.0159771272219356 --0.0159771245140260 --0.0159771264435404 --0.0159771239614354 --0.0159771420560983 --0.0159771261833316 --0.0159771244917804 --0.0159771271484370 --0.0159771245157773 --0.0159771276570601 --0.0159771675139017 --0.0159771642875001 --0.0159771637270234 --0.0159771642871414 --0.0159771641911102 --0.0159771855580526 --0.0159771643621008 --0.0160078025854294 --0.0159771644016963 --0.0159772417880223 --0.0159771648789688 --0.0159771651621348 --0.0159771637132248 --0.0159771644062341 --0.0159771672684067 --0.0159771643901365 --0.0159771635551564 --0.0159771637304260 --0.0159771641126202 --0.0159771637150521 --0.0159771671295410 --0.0159736260638629 --0.0159771648331191 --0.0159771710256542 --0.0159771673138777 --0.0159771643970365 --0.0155847215306720 --0.0159771635664878 --0.0159771635509110 --0.0159771639907544 --0.0159771663246589 --0.0159771635544493 --0.0159771647811544 --0.0159771663367328 --0.0159771643580965 --0.0159771644532013 --0.0159771635339420 --0.0160333956101452 --0.0159771636108859 --0.0159771635434901 --0.0159771664890667 --0.0159771757596851 --0.0156375185570557 --0.0159771787493784 --0.0159771635711350 --0.0159771636128701 --0.0159771635241944 --0.0159771639305752 --0.0159771643091287 --0.0162188385782094 --0.0159771644019416 --0.0159772863309825 --0.0159771635558121 --0.0159771635927320 --0.0159771671156076 --0.0159771644076913 --0.0159771663372105 --0.0159771638550992 --0.0159771819498073 --0.0159771660770010 --0.0159771643854456 --0.0159771670421088 --0.0159771644094426 --0.0159771675507332 --0.0159770811522159 --0.0159770779258317 --0.0159770773653580 --0.0159770779254731 --0.0159770778294424 --0.0159770991962690 --0.0159770780004320 --0.0160077160578044 --0.0159770780400273 --0.0159771554259342 --0.0159770785172973 --0.0159770788004617 --0.0159770773515595 --0.0159770780445650 --0.0159770809067222 --0.0159770780284676 --0.0159770771934920 --0.0159770773687607 --0.0159770777509528 --0.0159770773533868 --0.0159770807678572 --0.0159735397213596 --0.0159770784714478 --0.0159770846639493 --0.0159770809521929 --0.0159770780353675 --0.0155846372944820 --0.0159770772048233 --0.0159770771892466 --0.0159770776290876 --0.0159770799629795 --0.0159770771927849 --0.0159770784194834 --0.0159770799750533 --0.0159770779964278 --0.0159770780915320 --0.0159770771722777 --0.0160333089438898 --0.0159770772492212 --0.0159770771818258 --0.0159770801273864 --0.0159770893979546 --0.0156374340349416 --0.0159770923876317 --0.0159770772094705 --0.0159770772512054 --0.0159770771625302 --0.0159770775689088 --0.0159770779474602 --0.0162187509073925 --0.0159770780402726 --0.0159771999686531 --0.0159770771941477 --0.0159770772310674 --0.0159770807539239 --0.0159770780460222 --0.0159770799755310 --0.0159770774934332 --0.0159770955880433 --0.0159770797153230 --0.0159770780237767 --0.0159770806804255 --0.0159770780477735 --0.0159770811890472 --0.0159772522571613 --0.0159772490307426 --0.0159772484702628 --0.0159772490303839 --0.0159772489343522 --0.0159772703014079 --0.0159772491053436 --0.0160078874912485 --0.0159772491449393 --0.0159773265316760 --0.0159772496222144 --0.0159772499053819 --0.0159772484564642 --0.0159772491494772 --0.0159772520116650 --0.0159772491333795 --0.0159772482983950 --0.0159772484736655 --0.0159772488558617 --0.0159772484582915 --0.0159772518727985 --0.0159737107883304 --0.0159772495763644 --0.0159772557689324 --0.0159772520571362 --0.0159772491402795 --0.0155848041915345 --0.0159772483097264 --0.0159772482941495 --0.0159772487339953 --0.0159772510679121 --0.0159772482976879 --0.0159772495243995 --0.0159772510799861 --0.0159772491013393 --0.0159772491964446 --0.0159772482771805 --0.0160334806517696 --0.0159772483541248 --0.0159772482867287 --0.0159772512323208 --0.0159772605029884 --0.0156376014980648 --0.0159772634926976 --0.0159772483143737 --0.0159772483561090 --0.0159772482674329 --0.0159772486738158 --0.0159772490523713 --0.0162189246038701 --0.0159772491451847 --0.0159773710748726 --0.0159772482990507 --0.0159772483359707 --0.0159772518588651 --0.0159772491509344 --0.0159772510804638 --0.0159772485983394 --0.0159772666931435 --0.0159772508202530 --0.0159772491286886 --0.0159772517853659 --0.0159772491526857 --0.0159772522939930 --0.0159772763735651 --0.0159772731471415 --0.0159772725866609 --0.0159772731467828 --0.0159772730507509 --0.0159772944178389 --0.0159772732217427 --0.0160079116539132 --0.0159772732613384 --0.0159773506481920 --0.0159772737386142 --0.0159772740217822 --0.0159772725728622 --0.0159772732658762 --0.0159772761280684 --0.0159772732497786 --0.0159772724147928 --0.0159772725900636 --0.0159772729722604 --0.0159772725746896 --0.0159772759892017 --0.0159737348993864 --0.0159772736927642 --0.0159772798853415 --0.0159772761735397 --0.0159772732566786 --0.0155848277153318 --0.0159772724261242 --0.0159772724105473 --0.0159772728503937 --0.0159772751843141 --0.0159772724140857 --0.0159772736407992 --0.0159772751963881 --0.0159772732177384 --0.0159772733128438 --0.0159772723935783 --0.0160335048530816 --0.0159772724705227 --0.0159772724031264 --0.0159772753487231 --0.0159772846194047 --0.0156376251015860 --0.0159772876091183 --0.0159772724307715 --0.0159772724725069 --0.0159772723838306 --0.0159772727902141 --0.0159772731687702 --0.0162189490852179 --0.0159772732615837 --0.0159773951914558 --0.0159772724154485 --0.0159772724523686 --0.0159772759752683 --0.0159772732673335 --0.0159772751968658 --0.0159772727147376 --0.0159772908095691 --0.0159772749366546 --0.0159772732450877 --0.0159772759017689 --0.0159772732690848 --0.0159772764103968 --0.0159773092567349 --0.0159773060303046 --0.0159773054698229 --0.0159773060299459 --0.0159773059339139 --0.0159773273010459 --0.0159773061049060 --0.0160079446001394 --0.0159773061445018 --0.0159773835315146 --0.0159773066217786 --0.0159773069049471 --0.0159773054560242 --0.0159773061490396 --0.0159773090112377 --0.0159773061329419 --0.0159773052979544 --0.0159773054732256 --0.0159773058554231 --0.0159773054578515 --0.0159773088723707 --0.0159737677752668 --0.0159773065759284 --0.0159773127685185 --0.0159773090567090 --0.0159773061398420 --0.0155848597907309 --0.0159773053092859 --0.0159773052937089 --0.0159773057335563 --0.0159773080674815 --0.0159773052972473 --0.0159773065239633 --0.0159773080795555 --0.0159773061009016 --0.0159773061960073 --0.0159773052767398 --0.0160335378519861 --0.0159773053536844 --0.0159773052862881 --0.0159773082318907 --0.0159773175025914 --0.0156376572856568 --0.0159773204923112 --0.0159773053139332 --0.0159773053556686 --0.0159773052669922 --0.0159773056733765 --0.0159773060519334 --0.0162189824658221 --0.0159773061447471 --0.0159774280748701 --0.0159773052986101 --0.0159773053355303 --0.0159773088584372 --0.0159773061504968 --0.0159773080800332 --0.0159773055978999 --0.0159773236927686 --0.0159773078198214 --0.0159773061282510 --0.0159773087849378 --0.0159773061522481 --0.0159773092935667 --0.0159074058342549 --0.0159074026219394 --0.0159074020639097 --0.0159074026215823 --0.0159074025259704 --0.0159074237996269 --0.0159074026962144 --0.0159379071562371 --0.0159074027356370 --0.0159074797841023 --0.0159074032108259 --0.0159074034927556 --0.0159074020501713 --0.0159074027401550 --0.0159074055898317 --0.0159074027241277 --0.0159074018927931 --0.0159074020672975 --0.0159074024478230 --0.0159074020519907 --0.0159074054515722 --0.0159038798458267 --0.0159074031651763 --0.0159074093306754 --0.0159074056351042 --0.0159074027309976 --0.0155166732383998 --0.0159074019040750 --0.0159074018885662 --0.0159074023264893 --0.0159074046502042 --0.0159074018920891 --0.0159074031134385 --0.0159074046622254 --0.0159074026922276 --0.0159074027869172 --0.0159074018716713 --0.0159633884445458 --0.0159074019482793 --0.0159074018811778 --0.0159074048138942 --0.0159074140440380 --0.0155692397563152 --0.0159074170206786 --0.0159074019087019 --0.0159074019502548 --0.0159074018619663 --0.0159074022665728 --0.0159074026434736 --0.0161480217909746 --0.0159074027358813 --0.0159075241325924 --0.0159074018934459 --0.0159074019302046 --0.0159074054376997 --0.0159074027416059 --0.0159074046627010 --0.0159074021914264 --0.0159074202071348 --0.0159074044036276 --0.0159074027194574 --0.0159074053645218 --0.0159074027433495 --0.0159074058709256 --0.0116547825769474 --0.0116547802232920 --0.0116547798144250 --0.0116547802230303 --0.0116547801529757 --0.0116547957401298 --0.0116547802777131 --0.0116771308222512 --0.0116547803065979 --0.0116548367598128 --0.0116547806547676 --0.0116547808613368 --0.0116547798043589 --0.0116547803099082 --0.0116547823978591 --0.0116547802981651 --0.0116547796890483 --0.0116547798169072 --0.0116547800957173 --0.0116547798056920 --0.0116547822965567 --0.0116521990942350 --0.0116547806213203 --0.0116547851387658 --0.0116547824310301 --0.0116547803031986 --0.0113684944221893 --0.0116547796973145 --0.0116547796859512 --0.0116547800068164 --0.0116547817093964 --0.0116547796885325 --0.0116547805834121 --0.0116547817182043 --0.0116547802747920 --0.0116547803441708 --0.0116547796735724 --0.0116958009074147 --0.0116547797297029 --0.0116547796805378 --0.0116547818293317 --0.0116547885922346 --0.0114070096214499 --0.0116547907732116 --0.0116547797007047 --0.0116547797311504 --0.0116547796664616 --0.0116547799629158 --0.0116547802390700 --0.0118310815554080 --0.0116547803067769 --0.0116548692538389 --0.0116547796895266 --0.0116547797164596 --0.0116547822863924 --0.0116547803109713 --0.0116547817185528 --0.0116547799078562 --0.0116547931079200 --0.0116547815287304 --0.0116547802947431 --0.0116547822327751 --0.0116547803122488 --0.0116547826038159 --0.0159710194350005 --0.0159710162098407 --0.0159710156495797 --0.0159710162094822 --0.0159710161134879 --0.0159710374722059 --0.0159710162844127 --0.0160016427146354 --0.0159710163239929 --0.0159710936805319 --0.0159710168010818 --0.0159710170841388 --0.0159710156357864 --0.0159710163285290 --0.0159710191896000 --0.0159710163124376 --0.0159710154777789 --0.0159710156529811 --0.0159710160350281 --0.0159710156376131 --0.0159710190507876 --0.0159674793481164 --0.0159710167552497 --0.0159710229454012 --0.0159710192350534 --0.0159710163193349 --0.0155787245077985 --0.0159710154891059 --0.0159710154735351 --0.0159710159132092 --0.0159710182462154 --0.0159710154770721 --0.0159710167033051 --0.0159710182582846 --0.0159710162804100 --0.0159710163754781 --0.0159710154565727 --0.0160272258881957 --0.0159710155334870 --0.0159710154661172 --0.0159710184105599 --0.0159710276776099 --0.0156315012123601 --0.0159710306661524 --0.0159710154937514 --0.0159710155354704 --0.0159710154468289 --0.0159710158530532 --0.0159710162314610 --0.0162125974757260 --0.0159710163242382 --0.0159711382063468 --0.0159710154784344 --0.0159710155153400 --0.0159710190368596 --0.0159710163299856 --0.0159710182587622 --0.0159710157776063 --0.0159710338653495 --0.0159710179986529 --0.0159710163077486 --0.0159710189633891 --0.0159710163317362 --0.0159710194718178 --0.0159513833393005 --0.0159513801181059 --0.0159513795585337 --0.0159513801177478 --0.0159513800218715 --0.0159514013543301 --0.0159513801925861 --0.0159819689692895 --0.0159513802321177 --0.0159514574935510 --0.0159513807086200 --0.0159513809913290 --0.0159513795447574 --0.0159513802366482 --0.0159513830942016 --0.0159513802205766 --0.0159513793869441 --0.0159513795619308 --0.0159513799435082 --0.0159513795465817 --0.0159513829555600 --0.0159478476047600 --0.0159513806628443 --0.0159513868453853 --0.0159513831395992 --0.0159513802274655 --0.0155595707179986 --0.0159513793982571 --0.0159513793827055 --0.0159513798218391 --0.0159513821519769 --0.0159513793862382 --0.0159513806109635 --0.0159513821640313 --0.0159513801885883 --0.0159513802835396 --0.0159513793657639 --0.0160075206897457 --0.0159513794425837 --0.0159513793752967 --0.0159513823161194 --0.0159513915717761 --0.0156122825363091 --0.0159513945566443 --0.0159513794028969 --0.0159513794445646 --0.0159513793560321 --0.0159513797617570 --0.0159513801396995 --0.0161926643733257 --0.0159513802323626 --0.0159515019646239 --0.0159513793875987 --0.0159513794244590 --0.0159513829416491 --0.0159513802381030 --0.0159513821645083 --0.0159513796864028 --0.0159513977519081 --0.0159513819047187 --0.0159513802158933 --0.0159513828682689 --0.0159513802398515 --0.0159513833760725 --0.0159704847224134 --0.0159704814975689 --0.0159704809373627 --0.0159704814972104 --0.0159704814012255 --0.0159705027578554 --0.0159704815721336 --0.0160011050002195 --0.0159704816117099 --0.0159705589606862 --0.0159704820887522 --0.0159704823717815 --0.0159704809235708 --0.0159704816162456 --0.0159704844770368 --0.0159704816001558 --0.0159704807655787 --0.0159704809407637 --0.0159704813227734 --0.0159704809253972 --0.0159704843382381 --0.0159669449815161 --0.0159704820429246 --0.0159704882324709 --0.0159704845224858 --0.0159704816070524 --0.0155782269422633 --0.0159704807769046 --0.0159704807613353 --0.0159704812009664 --0.0159704835337445 --0.0159704807648720 --0.0159704819909850 --0.0159704835458125 --0.0159704815681312 --0.0159704816631901 --0.0159704807443745 --0.0160266856535553 --0.0159704808212813 --0.0159704807539180 --0.0159704836980729 --0.0159704929642170 --0.0156309987854569 --0.0159704959524673 --0.0159704807815496 --0.0159704808232645 --0.0159704807346317 --0.0159704811408163 --0.0159704815191870 --0.0162120386102990 --0.0159704816119552 --0.0159706034821481 --0.0159704807662341 --0.0159704808031361 --0.0159704843243114 --0.0159704816177021 --0.0159704835462900 --0.0159704810653767 --0.0159704991513516 --0.0159704832862062 --0.0159704815954672 --0.0159704842508481 --0.0159704816194525 --0.0159704847592271 --0.0159683794040889 --0.0159683761794628 --0.0159683756192945 --0.0159683761791043 --0.0159683760831260 --0.0159683974383101 --0.0159683762540224 --0.0159989976170506 --0.0159683762935961 --0.0159684536373363 --0.0159683767706061 --0.0159683770536162 --0.0159683756055035 --0.0159683762981314 --0.0159683791587290 --0.0159683762820427 --0.0159683754475221 --0.0159683756226953 --0.0159683760046791 --0.0159683756073298 --0.0159683790199397 --0.0159648399029158 --0.0159683767247815 --0.0159683829139089 --0.0159683792041750 --0.0159683762889389 --0.0155761493796992 --0.0159683754588472 --0.0159683754432790 --0.0159683758828804 --0.0159683782155005 --0.0159683754468154 --0.0159683766728455 --0.0159683782275678 --0.0159683762500204 --0.0159683763450728 --0.0159683754263194 --0.0160245765578026 --0.0159683755032210 --0.0159683754358623 --0.0159683783798179 --0.0159683876453346 --0.0156289173529928 --0.0159683906333827 --0.0159683754634920 --0.0159683755052041 --0.0159683754165772 --0.0159683758227343 --0.0159683762010795 --0.0162099174742197 --0.0159683762938413 --0.0159684981557845 --0.0159683754481775 --0.0159683754850770 --0.0159683790060140 --0.0159683762995878 --0.0159683782280453 --0.0159683757472999 --0.0159683938320504 --0.0159683779679790 --0.0159683762773544 --0.0159683789325556 --0.0159683763013382 --0.0159683794409002 --0.0159747320746873 --0.0159747288487778 --0.0159747282883865 --0.0159747288484192 --0.0159747287524026 --0.0159747501160860 --0.0159747289233671 --0.0160053624736038 --0.0159747289629565 --0.0159748063374793 --0.0159747294401563 --0.0159747297232791 --0.0159747282745901 --0.0159747289674936 --0.0159747318292297 --0.0159747289513985 --0.0159747281165458 --0.0159747282917887 --0.0159747286739245 --0.0159747282764171 --0.0159747316903852 --0.0159711911648063 --0.0159747293943135 --0.0159747355859041 --0.0159747318746938 --0.0159747289582975 --0.0155823459473525 --0.0159747281278754 --0.0159747281123010 --0.0159747285520773 --0.0159747308856258 --0.0159747281158388 --0.0159747293423568 --0.0159747308976979 --0.0159747289193634 --0.0159747290144537 --0.0159747280953346 --0.0160309515947282 --0.0159747281722668 --0.0159747281048813 --0.0159747310500086 --0.0159747403192130 --0.0156351349213265 --0.0159747433084503 --0.0159747281325220 --0.0159747281742507 --0.0159747280855886 --0.0159747284919073 --0.0159747288704031 --0.0162163662774603 --0.0159747289632018 --0.0159748508736456 --0.0159747281172014 --0.0159747281541156 --0.0159747316764539 --0.0159747289689506 --0.0159747308981756 --0.0159747284164429 --0.0159747465083910 --0.0159747306380058 --0.0159747289467084 --0.0159747316029663 --0.0159747289707016 --0.0159747321115132 --0.0159772138787650 --0.0159772106523540 --0.0159772100918757 --0.0159772106519954 --0.0159772105559639 --0.0159772319229683 --0.0159772107269549 --0.0160078490392543 --0.0159772107665505 --0.0159772881531013 --0.0159772112438245 --0.0159772115269913 --0.0159772100780770 --0.0159772107710883 --0.0159772136332693 --0.0159772107549907 --0.0159772099200082 --0.0159772100952783 --0.0159772104774736 --0.0159772100799044 --0.0159772134944031 --0.0159736724184421 --0.0159772111979746 --0.0159772173905277 --0.0159772136787404 --0.0159772107618907 --0.0155847667559462 --0.0159772099313396 --0.0159772099157627 --0.0159772103556075 --0.0159772126895187 --0.0159772099193012 --0.0159772111460098 --0.0159772127015927 --0.0159772107229506 --0.0159772108180557 --0.0159772098987938 --0.0160334421382905 --0.0159772099757379 --0.0159772099083419 --0.0159772128539270 --0.0159772221245723 --0.0156375639356383 --0.0159772251142743 --0.0159772099359869 --0.0159772099777221 --0.0159772098890462 --0.0159772102954281 --0.0159772106739827 --0.0162188856448793 --0.0159772107667959 --0.0159773326961908 --0.0159772099206639 --0.0159772099575839 --0.0159772134804697 --0.0159772107725456 --0.0159772127020704 --0.0159772102199519 --0.0159772283147125 --0.0159772124418602 --0.0159772107502999 --0.0159772134069707 --0.0159772107742968 --0.0159772139155966 --0.0159770122884786 --0.0159770090621083 --0.0159770085016370 --0.0159770090617496 --0.0159770089657193 --0.0159770303324539 --0.0159770091367082 --0.0160076470620787 --0.0159770091763033 --0.0159770865618768 --0.0159770096535713 --0.0159770099367345 --0.0159770084878386 --0.0159770091808411 --0.0159770120429859 --0.0159770091647437 --0.0159770083297717 --0.0159770085050396 --0.0159770088872301 --0.0159770084896658 --0.0159770119041215 --0.0159734708728803 --0.0159770096077220 --0.0159770158001968 --0.0159770120884564 --0.0159770091716436 --0.0155845701216030 --0.0159770083411030 --0.0159770083255263 --0.0159770087653655 --0.0159770110992473 --0.0159770083290647 --0.0159770095557578 --0.0159770111113210 --0.0159770091327040 --0.0159770092278079 --0.0159770083085575 --0.0160332398378992 --0.0159770083855007 --0.0159770083181056 --0.0159770112636535 --0.0159770205341817 --0.0156373666345815 --0.0159770235238459 --0.0159770083457502 --0.0159770083874849 --0.0159770082988101 --0.0159770087051869 --0.0159770090837367 --0.0162186810024517 --0.0159770091765487 --0.0159771311044038 --0.0159770083304274 --0.0159770083673469 --0.0159770118901883 --0.0159770091822983 --0.0159770111117988 --0.0159770086297116 --0.0159770267242437 --0.0159770108515918 --0.0159770091600529 --0.0159770118166902 --0.0159770091840496 --0.0159770123253097 --0.0159773150918565 --0.0159773118654250 --0.0159773113049431 --0.0159773118650664 --0.0159773117690343 --0.0159773331361741 --0.0159773119400264 --0.0160079504464948 --0.0159773119796222 --0.0159773893666635 --0.0159773124568992 --0.0159773127400678 --0.0159773112911444 --0.0159773119841601 --0.0159773148463592 --0.0159773119680624 --0.0159773111330746 --0.0159773113083458 --0.0159773116905435 --0.0159773112929717 --0.0159773147074922 --0.0159737736090898 --0.0159773124110491 --0.0159773186036414 --0.0159773148918306 --0.0159773119749624 --0.0155848654819738 --0.0159773111444060 --0.0159773111288291 --0.0159773115686766 --0.0159773139026026 --0.0159773111323675 --0.0159773123590839 --0.0159773139146766 --0.0159773119360221 --0.0159773120311278 --0.0159773111118600 --0.0160335437077267 --0.0159773111888046 --0.0159773111214082 --0.0159773140670120 --0.0159773233377161 --0.0156376629962530 --0.0159773263274370 --0.0159773111490533 --0.0159773111907888 --0.0159773111021123 --0.0159773115084968 --0.0159773118870538 --0.0162189883895747 --0.0159773119798676 --0.0159774339100353 --0.0159773111337303 --0.0159773111706505 --0.0159773146935587 --0.0159773119856173 --0.0159773139151544 --0.0159773114330202 --0.0159773295278955 --0.0159773136549425 --0.0159773119633715 --0.0159773146200592 --0.0159773119873686 --0.0159773151286883 --0.0159772746780693 --0.0159772714516460 --0.0159772708911655 --0.0159772714512873 --0.0159772713552555 --0.0159772927223412 --0.0159772715262472 --0.0160079099551645 --0.0159772715658429 --0.0159773489526883 --0.0159772720431187 --0.0159772723262866 --0.0159772708773668 --0.0159772715703808 --0.0159772744325726 --0.0159772715542831 --0.0159772707192974 --0.0159772708945682 --0.0159772712767649 --0.0159772708791942 --0.0159772742937059 --0.0159737332042667 --0.0159772719972687 --0.0159772781898453 --0.0159772744780439 --0.0159772715611831 --0.0155848260615067 --0.0159772707306288 --0.0159772707150519 --0.0159772711548983 --0.0159772734888185 --0.0159772707185903 --0.0159772719453037 --0.0159772735008924 --0.0159772715222429 --0.0159772716173483 --0.0159772706980829 --0.0160335031516152 --0.0159772707750273 --0.0159772707076311 --0.0159772736532274 --0.0159772829239080 --0.0156376234421550 --0.0159772859136213 --0.0159772707352761 --0.0159772707770115 --0.0159772706883352 --0.0159772710947187 --0.0159772714732747 --0.0162189473640597 --0.0159772715660883 --0.0159773934959474 --0.0159772707199531 --0.0159772707568732 --0.0159772742797725 --0.0159772715718380 --0.0159772735013702 --0.0159772710192422 --0.0159772891140717 --0.0159772732411590 --0.0159772715495922 --0.0159772742062732 --0.0159772715735893 --0.0159772747149010 --0.0159772757327529 --0.0159772725063294 --0.0159772719458489 --0.0159772725059708 --0.0159772724099389 --0.0159772937770261 --0.0159772725809306 --0.0160079110118826 --0.0159772726205264 --0.0159773500073768 --0.0159772730978022 --0.0159772733809701 --0.0159772719320502 --0.0159772726250642 --0.0159772754872563 --0.0159772726089665 --0.0159772717739808 --0.0159772719492516 --0.0159772723314483 --0.0159772719338775 --0.0159772753483895 --0.0159737342587151 --0.0159772730519521 --0.0159772792445292 --0.0159772755327275 --0.0159772726158666 --0.0155848270901352 --0.0159772717853122 --0.0159772717697353 --0.0159772722095817 --0.0159772745435020 --0.0159772717732737 --0.0159772729999871 --0.0159772745555760 --0.0159772725769263 --0.0159772726720318 --0.0159772717527663 --0.0160335042100332 --0.0159772718297107 --0.0159772717623144 --0.0159772747079109 --0.0159772839785922 --0.0156376244742880 --0.0159772869683057 --0.0159772717899595 --0.0159772718316949 --0.0159772717430186 --0.0159772721494021 --0.0159772725279582 --0.0162189484347962 --0.0159772726207717 --0.0159773945506389 --0.0159772717746365 --0.0159772718115566 --0.0159772753344561 --0.0159772726265214 --0.0159772745560537 --0.0159772720739256 --0.0159772901687563 --0.0159772742958425 --0.0159772726042756 --0.0159772752609568 --0.0159772726282727 --0.0159772757695847 -0.0000008907034567 -0.0000008907036787 -0.0000008907037172 -0.0000008907036787 -0.0000008907036853 -0.0000008907022151 -0.0000008907036736 -0.0000008885800597 -0.0000008907036708 -0.0000008906983460 -0.0000008907036380 -0.0000008907036185 -0.0000008907037182 -0.0000008907036705 -0.0000008907034736 -0.0000008907036716 -0.0000008907037291 -0.0000008907037170 -0.0000008907036907 -0.0000008907037181 -0.0000008907034831 -0.0000008909469312 -0.0000008907036411 -0.0000008907032150 -0.0000008907034704 -0.0000008907036711 -0.0000009153708297 -0.0000008907037283 -0.0000008907037294 -0.0000008907036991 -0.0000008907035385 -0.0000008907037291 -0.0000008907036447 -0.0000008907035377 -0.0000008907036738 -0.0000008907036673 -0.0000008907037305 -0.0000008867820107 -0.0000008907037252 -0.0000008907037299 -0.0000008907035272 -0.0000008907028893 -0.0000009123161218 -0.0000008907026836 -0.0000008907037280 -0.0000008907037251 -0.0000008907037312 -0.0000008907037032 -0.0000008907036772 -0.0000008730371644 -0.0000008907036708 -0.0000008906952809 -0.0000008907037290 -0.0000008907037265 -0.0000008907034841 -0.0000008907036704 -0.0000008907035376 -0.0000008907037084 -0.0000008907024634 -0.0000008907035556 -0.0000008907036719 -0.0000008907034891 -0.0000008907036703 -0.0000008907034541 --0.0159653945821168 --0.0159653913580922 --0.0159653907980284 --0.0159653913577338 --0.0159653912617733 --0.0159654126129733 --0.0159653914326379 --0.0159960070828515 --0.0159653914722042 --0.0159654688015149 --0.0159653919491252 --0.0159653922320825 --0.0159653907842400 --0.0159653914767387 --0.0159653943368026 --0.0159653914606530 --0.0159653906262881 --0.0159653908014286 --0.0159653911833411 --0.0159653907860660 --0.0159653941980392 --0.0159618557412895 --0.0159653919033092 --0.0159653980912819 --0.0159653943822401 --0.0159653914675479 --0.0155732377405979 --0.0159653906376111 --0.0159653906220458 --0.0159653910615651 --0.0159653933937501 --0.0159653906255815 --0.0159653918513829 --0.0159653934058151 --0.0159653914286366 --0.0159653915236713 --0.0159653906050893 --0.0160215812515875 --0.0159653906819765 --0.0159653906146304 --0.0159653935580368 --0.0159654028218249 --0.0156259958676089 --0.0159654058093155 --0.0159653906422549 --0.0159653906839592 --0.0159653905953489 --0.0159653910014303 --0.0159653913797048 --0.0162068875927879 --0.0159653914724494 --0.0159655133116574 --0.0159653906269433 --0.0159653906638360 --0.0159653941841161 --0.0159653914781948 --0.0159653934062925 --0.0159653909260099 --0.0159654090073865 --0.0159653931462747 --0.0159653914559656 --0.0159653941106714 --0.0159653914799448 --0.0159653946189211 --0.0154539289514870 --0.0154539258307341 --0.0154539252886102 --0.0154539258303872 --0.0154539257375005 --0.0154539464047810 --0.0154539259028920 --0.0154835608762403 --0.0154539259411909 --0.0154540007934970 --0.0154539264028352 --0.0154539266767289 --0.0154539252752635 --0.0154539259455801 --0.0154539287140307 --0.0154539259300096 --0.0154539251223710 --0.0154539252919015 --0.0154539256615806 --0.0154539252770309 --0.0154539285797121 --0.0154505034664519 --0.0154539263584868 --0.0154539323482469 --0.0154539287580128 --0.0154539259366837 --0.0150743337124401 --0.0154539251333313 --0.0154539251182646 --0.0154539255437053 --0.0154539278011860 --0.0154539251216871 --0.0154539263082237 --0.0154539278128645 --0.0154539258990188 --0.0154539259910094 --0.0154539251018513 --0.0155083158570190 --0.0154539251762757 --0.0154539251110868 --0.0154539279602102 --0.0154539369272617 --0.0151254018780288 --0.0154539398190573 --0.0154539251378264 --0.0154539251781949 --0.0154539250924229 --0.0154539254854967 --0.0154539258516544 --0.0156876865160981 --0.0154539259414282 --0.0154540438778952 --0.0154539251230053 --0.0154539251587162 --0.0154539285662350 --0.0154539259469896 --0.0154539278133266 --0.0154539254124922 --0.0154539429146880 --0.0154539275616377 --0.0154539259254724 --0.0154539284951430 --0.0154539259486835 --0.0154539289871125 --0.0159588749632761 --0.0159588717405707 --0.0159588711807360 --0.0159588717402124 --0.0159588716442912 --0.0159588929867556 --0.0159588718150859 --0.0159894749392356 --0.0159588718546360 --0.0159589491523084 --0.0159588723313618 --0.0159588726142034 --0.0159588711669532 --0.0159588718591686 --0.0159588747180624 --0.0159588718430895 --0.0159588710090659 --0.0159588711841348 --0.0159588715658911 --0.0159588711687784 --0.0159588745793557 --0.0159553375703151 --0.0159588722855646 --0.0159588784710055 --0.0159588747634812 --0.0159588718499816 --0.0155668785527200 --0.0159588710203843 --0.0159588710048254 --0.0159588714441649 --0.0159588737753957 --0.0159588710083597 --0.0159588722336595 --0.0159588737874557 --0.0159588718110862 --0.0159588719060820 --0.0159588709878759 --0.0160150386444254 --0.0159588710647316 --0.0159588709974130 --0.0159588739396151 --0.0159588831996131 --0.0156196150980793 --0.0159588861858814 --0.0159588710250263 --0.0159588710667135 --0.0159588709781394 --0.0159588713840547 --0.0159588717621745 --0.0162002691639767 --0.0159588718548810 --0.0159589936442403 --0.0159588710097209 --0.0159588710465985 --0.0159588745654383 --0.0159588718606241 --0.0159588737879329 --0.0159588713086651 --0.0159588893826440 --0.0159588735280215 --0.0159588718384040 --0.0159588744920237 --0.0159588718623734 --0.0159588750000654 --0.0157761116148746 --0.0157761084291002 --0.0157761078756810 --0.0157761084287460 --0.0157761083339240 --0.0157761294318114 --0.0157761085027615 --0.0158063609250820 --0.0157761085418583 --0.0157761849537270 --0.0157761090131211 --0.0157761092927214 --0.0157761078620562 --0.0157761085463390 --0.0157761113724709 --0.0157761085304441 --0.0157761077059782 --0.0157761078790408 --0.0157761082564224 --0.0157761078638605 --0.0157761112353537 --0.0157726147591642 --0.0157761089678486 --0.0157761150824066 --0.0157761114173692 --0.0157761085372572 --0.0153886072030565 --0.0157761077171669 --0.0157761077017862 --0.0157761081360911 --0.0157761104406068 --0.0157761077052801 --0.0157761089165384 --0.0157761104525287 --0.0157761084988076 --0.0157761085927148 --0.0157761076850310 --0.0158316316770906 --0.0157761077610060 --0.0157761076944589 --0.0157761106029444 --0.0157761197568261 --0.0154407394411587 --0.0157761227088728 --0.0157761077217556 --0.0157761077629652 --0.0157761076754061 --0.0157761080766697 --0.0157761084504564 --0.0160147394616579 --0.0157761085421006 --0.0157762289357971 --0.0157761077066257 --0.0157761077430806 --0.0157761112215958 --0.0157761085477779 --0.0157761104530004 --0.0157761080021441 --0.0157761258690016 --0.0157761101960675 --0.0157761085258124 --0.0157761111490225 --0.0157761085495071 --0.0157761116512423 --0.0159693598203275 --0.0159693565955104 --0.0159693560353089 --0.0159693565951519 --0.0159693564991679 --0.0159693778556166 --0.0159693566700745 --0.0159999798462533 --0.0159693567096505 --0.0159694340579711 --0.0159693571866887 --0.0159693574697156 --0.0159693560215171 --0.0159693567141861 --0.0159693595749531 --0.0159693566980964 --0.0159693558635264 --0.0159693560387099 --0.0159693564207164 --0.0159693560233435 --0.0159693594361555 --0.0159658201095388 --0.0159693571408614 --0.0159693633303553 --0.0159693596204017 --0.0159693567049930 --0.0155771065268215 --0.0159693558748522 --0.0159693558592830 --0.0159693562989104 --0.0159693586316687 --0.0159693558628197 --0.0159693570889223 --0.0159693586437367 --0.0159693566660721 --0.0159693567611302 --0.0159693558423224 --0.0160255603011620 --0.0159693559192285 --0.0159693558518659 --0.0159693587959958 --0.0159693680620613 --0.0156298776352145 --0.0159693710502863 --0.0159693558794972 --0.0159693559212117 --0.0159693558325796 --0.0159693562387608 --0.0159693566171284 --0.0162109121763776 --0.0159693567098957 --0.0159694785790556 --0.0159693558641818 --0.0159693559010835 --0.0159693594222290 --0.0159693567156426 --0.0159693586442142 --0.0159693561633219 --0.0159693742491434 --0.0159693583841325 --0.0159693566934079 --0.0159693593487663 --0.0159693567173930 --0.0159693598571409 --0.0159745640059234 --0.0159745607800477 --0.0159745602196624 --0.0159745607796891 --0.0159745606836736 --0.0159745820471327 --0.0159745608546362 --0.0160051940832999 --0.0159745608942253 --0.0159746382679358 --0.0159745613714201 --0.0159745616545399 --0.0159745602058660 --0.0159745608987623 --0.0159745637604684 --0.0159745608826674 --0.0159745600478234 --0.0159745602230645 --0.0159745606051963 --0.0159745602076930 --0.0159745636216253 --0.0159710231332131 --0.0159745613255778 --0.0159745675171033 --0.0159745638059320 --0.0159745608895663 --0.0155821819981187 --0.0159745600591529 --0.0159745600435787 --0.0159745604833504 --0.0159745628168744 --0.0159745600471165 --0.0159745612736216 --0.0159745628289463 --0.0159745608506326 --0.0159745609457219 --0.0159745600266125 --0.0160307829358094 --0.0159745601035439 --0.0159745600361591 --0.0159745629812554 --0.0159745722503625 --0.0156349704178273 --0.0159745752395684 --0.0159745600637994 --0.0159745601055277 --0.0159745600168665 --0.0159745604231810 --0.0159745608016728 --0.0162161956723378 --0.0159745608944706 --0.0159746828036345 --0.0159745600484790 --0.0159745600853929 --0.0159745636076942 --0.0159745609002193 --0.0159745628294240 --0.0159745603477173 --0.0159745784394756 --0.0159745625692569 --0.0159745608779773 --0.0159745635342074 --0.0159745609019703 --0.0159745640427489 --0.0159760580080058 --0.0159760547818283 --0.0159760542213905 --0.0159760547814697 --0.0159760546854451 --0.0159760760509029 --0.0159760548564238 --0.0160066909509024 --0.0159760548960165 --0.0159761322769655 --0.0159760553732560 --0.0159760556564023 --0.0159760542075929 --0.0159760549005540 --0.0159760577625278 --0.0159760548844576 --0.0159760540495355 --0.0159760542247930 --0.0159760546069606 --0.0159760542094201 --0.0159760576236717 --0.0159725168040385 --0.0159760553274094 --0.0159760615195142 --0.0159760578079956 --0.0159760548913571 --0.0155836392924608 --0.0159760540608661 --0.0159760540452904 --0.0159760544851032 --0.0159760568188456 --0.0159760540488285 --0.0159760552754484 --0.0159760568309186 --0.0159760548524198 --0.0159760549475180 --0.0159760540283226 --0.0160322821973184 --0.0159760541052612 --0.0159760540378701 --0.0159760569832419 --0.0159760662532162 --0.0156364326505207 --0.0159760692427017 --0.0159760540655130 --0.0159760541072452 --0.0159760540185757 --0.0159760544249282 --0.0159760548034554 --0.0162177122798737 --0.0159760548962619 --0.0159761768168307 --0.0159760540501912 --0.0159760540871085 --0.0159760576097393 --0.0159760549020111 --0.0159760568313963 --0.0159760543494575 --0.0159760724429083 --0.0159760565712049 --0.0159760548797671 --0.0159760575362456 --0.0159760549037623 --0.0159760580448347 +-0.0230289932934938 +0.0049203964988968 +-0.0252930057550963 +-0.0046460658563544 +-0.0066800347195709 +0.0010820087054782 +-0.0256042178678607 +0.0020045539272132 +-0.0002800579057567 +-0.0209124274776235 +-0.0221550297762456 +-0.0056549445794095 +-0.0107610190364864 +-0.0183689079995457 +-0.0049531465093816 +0.0252557144836619 +0.0259831260799702 +-0.0118947325227342 +0.0029722930374244 +0.0126844326505232 +0.0165163432604053 +-0.0146925778944128 +0.0143831481903726 +-0.0153474803511679 +-0.0001139710316259 +0.0128796321825670 +0.0186933114507096 +0.0101632282454286 +0.0144399633237420 +-0.0113199612000717 +-0.0092665808696961 +-0.0137016194118561 +-0.0152409707751563 +0.0183973205761362 +-0.0120657579476518 +0.0126794155910072 +-0.0217466042453201 +0.0092891677300844 +0.0030416145368810 +-0.0155799494208842 +0.0046872945741323 +0.0255105177541773 +-0.0220114237907462 +-0.0199163518634336 +0.0263862038732587 +0.0204969242595706 +-0.0211859789906072 +-0.0061345284151877 +0.0122583934211206 +-0.0166487653930138 +0.0042665818402627 +-0.0179336733248837 +-0.0204722120636469 +0.0151512498724603 +0.0106941451000012 +0.0159265136755592 +0.0002538996563997 +0.0062890112695094 +0.0081323337206767 +0.0090114254520141 +0.0215622961930607 +0.0074872786584855 +0.0247090927692855 +-0.0113066555839721 +-0.0202003260184811 +-0.0061953039447422 +-0.0174163628156024 +-0.0174118098699416 +-0.0055719440337579 +-0.0135989390080610 +0.0206601778578890 +0.0035822199101666 +-0.0026063911620806 +-0.0205734594009415 +-0.0182096744357109 +-0.0056086259256552 +0.0190524092080634 +0.0075758163128700 +-0.0018952547879010 +0.0056437925327552 +0.0195765613486430 +0.0072856712748139 +-0.0057330424061124 +0.0123466999397734 +-0.0199903730956204 +-0.0192348441986010 +-0.0282721227949390 +-0.0144286382630304 +0.0165617299383194 +0.0079911312557735 +-0.0058852594882458 +-0.0265267094856982 +-0.0065059074037435 +-0.0215566880657410 +0.0186255651844200 +0.0083978620295524 +0.0047414306872064 +0.0031699499348425 +0.0255343795441899 +0.0075313354612483 +-0.0152506150050121 +0.0010175610407458 +-0.0256917851814969 +-0.0218588932185900 +-0.0039562568862428 +0.0048110748810502 +0.0135599771927556 +0.0154914012054748 +0.0234946774620076 +-0.0108029096661851 +-0.0179755640540235 +0.0002228435423324 +-0.0212713962550744 +-0.0148044883240214 +-0.0243961055242261 +-0.0183484054356525 +-0.0044517741937024 +-0.0213404564762497 +-0.0091461796308047 +0.0263453031982833 +0.0071234535822363 +0.0002810474060267 +-0.0144661378173476 +0.0105301741347964 +-0.0150268954649960 +-0.0094116707483257 +-0.0241964768578217 +-0.0023670386366501 +0.0204198103222754 +0.0255863755651393 +-0.0178091271964281 +-0.0156877445472026 +0.0204955532573535 +0.0180102840986019 +0.0165394700879749 +-0.0237939507964704 +0.0145095287655403 +-0.0074223780228428 +0.0190596189076836 +0.0054724221371635 +-0.0195665443638778 +-0.0255511993525618 +-0.0213760126600069 +-0.0023504982331528 +0.0183880200855849 +-0.0045357462105218 +-0.0103012450855618 +0.0037303962385665 +-0.0140001099066123 +-0.0060096597058019 +0.0089316026742586 +0.0141424511791213 +0.0147871112342324 +0.0045823593816658 +-0.0087945786446617 +0.0159005185906595 +0.0085996314398568 +-0.0044514532739155 +0.0011622630303242 +-0.0116462340699541 +-0.0075925178917415 +-0.0003097610652456 +-0.0111867184074314 +-0.0159010359628223 +-0.0062537669944258 +0.0186671923492290 +0.0105412481144269 +0.0133464318652822 +0.0087234084733394 +0.0199847764307513 +-0.0153236156396416 +0.0055078050916277 +0.0085468172462252 +0.0067122279076925 +0.0008515991064569 +-0.0114933336550629 +-0.0121732177807085 +0.0064680510856668 +-0.0241323252189244 +-0.0111754272431440 +-0.0082487427558894 +0.0247878717386618 +-0.0034808182610767 +0.0249682660988951 +0.0238774039215953 +0.0046324657799903 +0.0202027857295147 +0.0073639833248214 +-0.0119882549528798 +0.0059697346752884 +-0.0238285930174423 +0.0172956642029705 +0.0161168960904532 +0.0263092600065899 +0.0091531945690388 +-0.0143729936241082 +-0.0205499472170225 +0.0060380698475340 +-0.0121361721359997 +-0.0004472506895536 +0.0256403674406298 +-0.0189698502631130 +-0.0136233660021267 +0.0178958292683414 +-0.0098156006788757 +0.0224348718302955 +-0.0249390734261250 +0.0127988229749576 +0.0254704075576967 +0.0046845598902151 +-0.0051585542204291 +-0.0210396765184014 +0.0017097711462203 +0.0233177411081579 +-0.0149622423763491 +0.0094863320749287 +0.0178993318071789 +0.0187820995413578 +-0.0184764571378056 +-0.0122459056445474 +-0.0216372627643502 +0.0158313758939892 +-0.0196694390973492 +0.0211432121345832 +-0.0015774047240281 +-0.0135921806211156 +-0.0050860520180162 +-0.0074717257595007 +0.0177505176100729 +0.0203034914261778 +-0.0143561868789394 +0.0054861988558431 +0.0007510881863759 +0.0234193078309706 +0.0013527182944794 +-0.0019493719623586 +-0.0033039022332759 +0.0177822445761462 +-0.0112827537114195 +0.0239650484491413 +0.0138172606297070 +0.0164793304425519 +-0.0084302238014661 +-0.0115362880034352 +-0.0153634381448155 +0.0083192253649585 +-0.0166048299811556 +0.0056615054208231 +-0.0259339191607105 +-0.0149440761525126 +0.0174956368280773 +0.0074802788037110 +0.0107631928437156 +-0.0054147370329202 +0.0190086705877227 +0.0011085153356183 +0.0100177261274636 +0.0073379309685956 +-0.0078926122466742 +-0.0169540590640057 +-0.0246548522486844 +0.0189558451475336 +0.0212352536224179 +-0.0120316524714313 +0.0121610310833694 +-0.0003264133505880 +0.0174336816688523 +-0.0269347615426049 +0.0042883102363326 +-0.0157413560215356 +0.0210010477471727 +0.0171046983475711 +0.0082516076265757 +0.0261937046397057 +0.0068051196316823 +-0.0070719879629139 +0.0221637383890486 +0.0106630469015646 +-0.0205549073350619 +-0.0088349029404799 +0.0164720728339162 +-0.0075026278239385 +0.0212210214465814 +-0.0026323390357148 +-0.0075106200833055 +-0.0259623094548307 +0.0231429745036762 +0.0074160707504879 +0.0120061387668628 +0.0013302056154139 +-0.0213590501220574 +0.0189507893210957 +0.0007345919630844 +-0.0127661955604804 +0.0145321830634532 +-0.0191130561003273 +0.0242197011087558 +0.0063564031597583 +0.0106133287350510 +0.0240822988725392 +-0.0191396825587780 +-0.0098498104536725 +0.0258037103771592 +-0.0092277089738501 +-0.0123807997789851 +0.0167388118399546 +-0.0045844491937819 +-0.0145911734480372 +0.0158495966470044 +0.0101954083872849 +0.0076104990455199 +0.0307553857557510 +0.0130774238675818 +-0.0200506033124389 +0.0105999423243250 +0.0205048597075333 +-0.0086366977036642 +0.0075935640000159 +-0.0196425351728101 +0.0158971971608083 +0.0233709220935511 +-0.0001509173140552 +-0.0061539361730337 +0.0167592508532625 +-0.0250218229591685 +-0.0239214027580377 +-0.0005811889432557 +0.0045332220543230 +-0.0167722442644459 +-0.0246585696595307 +-0.0027176309011969 +0.0000742681004030 +-0.0140917333512305 +0.0236177616675910 +-0.0106667864680967 +-0.0143280801638231 +-0.0043908946829375 +0.0017335172852093 +0.0038831108169188 +0.0225245403562988 +-0.0229980456584995 +0.0244996624301240 +0.0107515025546664 +-0.0012840368974250 +-0.0153606493702780 +-0.0209144577298593 +-0.0130127756150735 +0.0139703530845800 +0.0055663046754990 +-0.0077114768762088 +0.0233519956733970 +0.0162663934179466 +-0.0020706962332610 +-0.0076433138787008 +-0.0201617661933203 +0.0149965495875946 +-0.0170426533256265 +-0.0067614956504235 +0.0194255545333975 +-0.0162942856567218 +-0.0003445840089486 +0.0188425513168102 +0.0113285205916580 +0.0095206182878768 +0.0210543220296225 +-0.0179544775489536 +-0.0086881682930089 +-0.0208441545573753 +0.0215774699701298 +-0.0112939308417015 +0.0082994112268992 +0.0157128742642499 +-0.0109328067152915 +-0.0269473950032601 +0.0018336005726039 +0.0182932275299450 +0.0189825005096954 +-0.0150548728613698 +0.0001455968035728 +0.0061757461304544 +-0.0164262068529981 +-0.0126968677504728 +0.0214871938268868 +-0.0260440265530515 +-0.0165202973826937 +0.0069684277795671 +0.0207467609030715 +-0.0077352115580400 +-0.0148647070434838 +-0.0134437396843384 +-0.0247866705285729 +-0.0014088378845184 +-0.0255574660391388 +-0.0074808979192799 +0.0050464845442972 +0.0045109589395427 +-0.0108058242177167 +0.0256009781555193 +-0.0082261390766246 +0.0245435337321476 +-0.0114049707638612 +0.0021907699054918 +-0.0264169979979619 +-0.0168850470355974 +0.0052876735138722 +-0.0211215630399125 +0.0135206240491723 +0.0158147902009648 +-0.0217775704260972 +-0.0190099290878595 +0.0029823181418118 +-0.0187823615256787 +0.0000946563994132 +-0.0218275254507357 +0.0247340052771125 +-0.0262533940800777 +-0.0232821436160948 +-0.0051232599326056 +-0.0065599853263820 +-0.0048490652930101 +-0.0255215871671399 +0.0172232129519255 +0.0255138702044354 +0.0101142840978257 +0.0319135964684049 +-0.0111453659328068 +0.0245556987252588 +0.0115388244863220 +-0.0055405213958257 +0.0161385681844719 +-0.0137628715750016 +-0.0260371057844308 +-0.0180739281009697 +0.0090178764688011 +-0.0070082337495715 +-0.0165211481400862 +0.0198139732497241 +-0.0137989642043273 +0.0130489468125525 +-0.0167898967354569 +0.0132529680386321 +-0.0079336318863398 +-0.0127260517330658 +-0.0260513110248979 +-0.0238345061763697 +-0.0098182625413107 +-0.0147280964974526 +-0.0253424680246826 +-0.0070247915375145 +0.0016105525305598 +-0.0158135869986001 +-0.0044822033258170 +0.0218225808723691 +-0.0164065813137390 +0.0188211031785409 +0.0216474939558860 +-0.0004158606858080 +-0.0102278161277198 +-0.0102286404859014 +0.0135017399601736 +0.0049669948845306 +0.0070263470552009 +-0.0243640114707192 +0.0177144105384036 +0.0210256769782699 +-0.0239295395332271 +-0.0199568876558316 +-0.0269610670649270 +0.0163267948572941 +0.0263530519152263 +-0.0075760885477319 +-0.0254911134882701 +0.0179338803290151 +-0.0009178612191400 +0.0240246015344738 +-0.0255941245770363 +0.0141054781671395 +0.0226167303909556 +0.0037022135169088 +0.0265513169676279 +0.0023459377908899 +0.0034094237496907 +0.0145691526173077 +0.0194202324794817 +-0.0077526254628140 +0.0229057377108606 +-0.0134086706845011 +-0.0149537283579391 +0.0273277215926099 +-0.0033504417296292 +0.0225905499261507 +0.0067094540152274 +-0.0258251154911390 +0.0200657895393493 +0.0065399712948054 +-0.0220394325585513 +0.0106781382534688 +0.0016084629471295 +0.0247231313143395 +0.0030774590578663 +0.0199846215728637 +-0.0298532739346692 +-0.0002381006126481 +0.0196263937583255 +-0.0031404412881542 +0.0022006352919269 +0.0248289881644622 +0.0092667484617005 +-0.0010548910859345 +0.0216963979642626 +-0.0091049676105028 +0.0036254192353997 +-0.0212055590597774 +-0.0174442320592389 +-0.0125326221501140 +0.0029973369394207 +-0.0026433693820777 +-0.0255643769313937 +-0.0040658528023171 +-0.0189242822129291 +-0.0186234652514790 +-0.0052888950964393 +0.0195820313621253 +0.0177125137090902 +-0.0108390994785817 +-0.0163036674641659 +0.0208182171245464 +0.0167359572015172 +-0.0217001486154045 +-0.0099721345333223 +0.0222243880547939 +-0.0234838449325536 +0.0178495837015621 +-0.0114884916143379 +0.0155203555775290 +0.0169115737640464 +0.0038435703404618 +-0.0163033773125908 +0.0145558562492244 +-0.0083652505468150 +0.0257716067047821 +0.0023123338370212 +-0.0235474905458017 +-0.0239452632554436 +0.0004248754046620 +-0.0036579239998685 +-0.0182685109074012 +-0.0085230289254241 +0.0220697073806082 +0.0221110129142299 +0.0128441803733467 +0.0084916604510594 +0.0210530989287947 +-0.0026287094752735 +-0.0198537947445001 +0.0265310663835564 +-0.0038131675267505 +-0.0046835044720153 +-0.0077794578225968 +-0.0103489788077358 +0.0093912098722938 +-0.0059832108606326 +0.0107118985131609 +-0.0096846982933751 +-0.0212634275742343 +-0.0064938076164558 +-0.0179974602358234 +-0.0099992158725159 +-0.0179293924263019 +-0.0170669488122845 +-0.0081055915209089 +0.0039840246128149 +0.0106261314729440 +-0.0137746150683753 +-0.0110717750192263 +-0.0074229152019494 +-0.0196485047348712 +0.0123514781329053 +-0.0016410479574692 +0.0268068189649103 +0.0208021446522604 +0.0042243220536651 +-0.0245040985695241 +0.0135016381861126 +0.0063122838937911 +0.0121400495871064 +0.0179567083356844 +0.0050563763239215 +-0.0224164001828947 +-0.0139218951660991 +0.0105529664254367 +-0.0227072618110624 +0.0094284656187222 +-0.0105815598523080 +0.0072572858639159 +0.0025075824767072 +-0.0035860663715126 +-0.0247204695992550 +-0.0136122873703888 +0.0244762371081510 +-0.0186970524066474 +0.0093324500000421 +0.0212579012874979 +-0.0133011859304103 +-0.0036756274417674 +-0.0002472301789777 +0.0219304096382740 +-0.0157959157385321 +-0.0117194959183286 +-0.0001468405126882 +0.0186931409392993 +-0.0018871943145870 +-0.0198738776781856 +0.0112867284029655 +0.0011229236993603 +0.0228617918634937 +0.0050808103716020 +-0.0169581221742125 +-0.0080418966007481 +-0.0059323332789922 +0.0192366938871936 +0.0084619038767883 +0.0096020919898927 +0.0096874884058280 +0.0009783965863932 +-0.0221950663295195 +-0.0083242431038233 +-0.0188868487763506 +-0.0184306174011506 +-0.0050758258970121 +-0.0246791210133353 +-0.0044343623384888 +0.0163442682695966 +0.0230993845291261 +-0.0002444201746181 +0.0090834411856579 +-0.0036805039483261 +0.0252364831078320 +-0.0106667194312357 +-0.0101413398842137 +-0.0082420825289993 +0.0091870129836894 +0.0107512415996395 +-0.0159710630492942 +0.0229270856211565 +0.0013365741986074 +0.0158303913982821 +0.0164251829772458 +0.0097142077772579 +0.0058587309345706 +-0.0114027411431942 +0.0138196888226340 +-0.0121688907670401 +-0.0093056539785922 +-0.0000164856391086 +-0.0113533839709042 +0.0221817201425074 +0.0140237094720944 +-0.0169832020155928 +-0.0204498772209786 +-0.0246038403835319 +-0.0039063088544682 +0.0215073377608782 +-0.0018840477418876 +0.0246791438442134 +0.0071654226617148 +0.0051130414741833 +-0.0166954260539430 +-0.0105130325312640 +0.0094132719738352 +0.0001717531126411 +-0.0108015397251326 +-0.0263048891417431 +0.0105149854524560 +-0.0149120445510102 +-0.0154148878801123 +0.0266916803187058 +-0.0051509037347264 +0.0161984313598709 +-0.0118901759005034 +-0.0026065641073792 +0.0083500861323994 +0.0191578485912314 +-0.0159682806167687 +-0.0232867326969315 +0.0198350315786938 +0.0064184489072277 +0.0186134507710604 +-0.0044032100006290 +0.0157571489547043 +0.0020312438282217 +0.0135572082770700 +0.0165808157192508 +0.0155043205478052 +0.0022992862708415 +-0.0128964944753062 +0.0204264924528541 +0.0191881521124445 +0.0231367101067566 +-0.0076067345174730 +0.0176440830995405 +-0.0161727747190489 +0.0139731411219730 +-0.0201843821552811 +-0.0095267906273823 +-0.0168176520622294 +0.0268015087994085 +-0.0187371382827236 +0.0241485049776809 +-0.0213957291344041 +0.0174547557964997 +-0.0093336355003229 +-0.0255942396940584 +0.0063627213410072 +-0.0180263159349326 +0.0077927286327281 +0.0139626791483900 +0.0197883891021696 +0.0072254298124162 +0.0069442185672158 +0.0073297714679506 +-0.0240227863966999 +-0.0297577871663501 +0.0040038476809208 +-0.0243525481066120 +-0.0108726824003734 +0.0089076815953961 +-0.0155865178813678 +0.0180278979483006 +-0.0082591444126564 +0.0261992474575092 +-0.0251671959512587 +0.0191836634745696 +-0.0076149326853094 +-0.0177305342959661 +0.0139347252089146 +-0.0037344866275631 +0.0039452005680212 +-0.0132107753156680 +0.0077399143303150 +-0.0184627096375609 +-0.0225021760906489 +-0.0129210574902971 +-0.0197703178479109 +-0.0075502711311304 +-0.0114771708889093 +-0.0085591895187107 +-0.0063198749260804 +0.0232575534681917 +0.0055343327370207 +-0.0202244880201269 +-0.0153480384413811 +0.0185923279493500 +0.0158356704807122 +-0.0083168234145021 +0.0107603454461490 +-0.0202278384909177 +-0.0172250386767594 +0.0191146844179765 +0.0319706087956207 +-0.0245886157682323 +0.0207184837304437 +0.0101382821932442 +0.0077927280170279 +-0.0173520818721101 +0.0280099559953806 +0.0168768990075073 +-0.0055228174906739 +0.0147589920304813 +0.0010902697376745 +0.0262644166780143 +-0.0231986427144222 +0.0148733073479502 +-0.0101392637776862 +-0.0165945962976575 +0.0145291724431328 +-0.0229877784015941 +-0.0158503170316109 +-0.0118624018382282 +0.0003507088363377 +0.0037886430800068 +-0.0076975136427026 +-0.0038456738993479 +-0.0128237308845589 +-0.0236332148644066 +-0.0078033694094788 +-0.0019495918606238 +0.0267757097506795 +-0.0108640985937417 +0.0117933154915389 +0.0254905027314041 +0.0263344106855498 +-0.0142967753676619 +0.0159678804411420 +-0.0108829203714957 +-0.0164422298899932 +-0.0213300228912849 +0.0056689448562015 +-0.0129494293503493 +-0.0155917282259145 +-0.0161353833038108 +0.0258516439939182 +0.0153004238193108 +-0.0051869570223076 +-0.0195694438273817 +0.0258458408022135 +-0.0178622117350312 +0.0212760258394379 +-0.0064924287808996 +-0.0089259393490476 +0.0156998715075135 +0.0233696818140040 +0.0095717629506461 +0.0003857563940435 +0.0040864941345366 +0.0262404725601786 +-0.0129442126256114 +0.0022907564504689 +-0.0029255430402877 +0.0093430154569473 +-0.0171430499124091 +0.0215822625007632 +0.0214011457425758 +0.0031124234745712 +0.0094594803286452 +-0.0054405230950507 +-0.0246886303571479 +0.0243338667155399 +-0.0082773112632992 +-0.0055162584801036 +-0.0120708138663811 +-0.0219640477785319 +-0.0223929261326208 +0.0147785965539655 +-0.0100497058007821 +-0.0136883344662581 +0.0056873211232547 +-0.0220718264786779 +0.0276506018783924 +-0.0007585274578369 +0.0158588007059276 +-0.0223847762797498 +0.0330389773275083 +-0.0150470384190409 +-0.0109916216094796 +0.0048734597441790 +-0.0242438932588460 +-0.0160395347574705 +-0.0170323036810836 +-0.0088386220672843 +0.0064647234590357 +0.0194850159233221 +-0.0185524663860466 +-0.0167215990826729 +-0.0265074486860823 +-0.0118364366026495 +-0.0207205627802208 +0.0180078818591818 +-0.0086812699595664 +0.0152851108034427 +0.0101048651315888 +-0.0239364678513465 +0.0171663426137495 +-0.0017711854780526 +-0.0049583260223123 +-0.0197159586613590 +0.0245000663412325 +-0.0012392939146962 +0.0191998712842798 +0.0246408313878020 +-0.0249279931492201 +-0.0141031364786540 +0.0189915434660366 +0.0011567057787839 +-0.0140539722134892 +-0.0234646169275947 +-0.0134619785538811 +-0.0170320805230929 +-0.0016567294265141 +-0.0001313461676081 +-0.0010714869146726 +-0.0148555452614322 +0.0101687038420283 +0.0087287968248959 +-0.0197381546992559 +-0.0065248319058515 +-0.0146439965148938 +0.0062407396534183 +-0.0174043928555270 +0.0088542743436868 +0.0032945601093264 +-0.0214800226149538 +0.0242724283772956 +-0.0203951698972347 +-0.0091148647693836 +0.0249003358481925 +-0.0224514900897261 +0.0034205481264996 +0.0135558295563537 +-0.0118260436515352 +0.0221924413972622 +0.0248629528721488 +-0.0209241548850510 +0.0061810025808180 +-0.0251414181882197 +-0.0190531248253857 +0.0086639252723058 +0.0029655810606961 +-0.0165614967624412 +0.0013342074095919 +-0.0093161053554040 +-0.0035049460296593 +-0.0136719918971277 +-0.0156824568609215 +-0.0227627748640991 +0.0003980744642603 +0.0211894791174620 +-0.0069362158970090 +0.0064873722698073 +-0.0073927340342712 +0.0056062098917696 +-0.0238014521117205 +-0.0146005818450932 +0.0070646669845375 +-0.0246362717190371 +-0.0172388639257203 +-0.0262417784522695 +0.0022450500463594 +-0.0078681784540594 +0.0074790113921076 +-0.0106746988531718 +-0.0168143871255590 +0.0016653353287787 +-0.0017531408369062 +-0.0075771194527548 +0.0226651387890338 +-0.0219351214546393 +-0.0029008566044612 +0.0020011700800345 +-0.0065832340721316 +0.0204806331797920 +-0.0192967862341404 +-0.0021991599825855 +-0.0096022404631081 +0.0091345593795212 +0.0203821370204286 +-0.0062078689532644 +0.0267378533303002 +0.0064268076370876 +-0.0020295377231449 +0.0123553792246762 +0.0076709008105196 +-0.0164714859786055 +-0.0145363107913901 +-0.0003117577458165 +0.0029555715465821 +-0.0227932784678708 +-0.0247932443018406 +-0.0036641849086711 +0.0256737735012923 +-0.0162670206597157 +-0.0015724338001182 +0.0174398569063486 +-0.0269724914631975 +-0.0273588930667105 +-0.0121786440368679 +0.0168442377728683 +-0.0288311104224838 +-0.0198597479698797 +0.0115393933739280 +0.0300525600871476 +0.0189694354711065 +-0.0260246865974173 +0.0165763484642221 +0.0167717102733267 +0.0195942943504231 +-0.0032194706553198 +-0.0163257793000466 +0.0042011997502268 +-0.0181730201069018 +-0.0039926125087261 +0.0265480894844469 +0.0223362947464999 +-0.0145349016258025 +0.0209886461652668 +-0.0019129575096693 +-0.0097247447666271 +-0.0120694433781953 +-0.0182206127522414 +-0.0006051628045453 +0.0093472323699163 +-0.0186989595377292 +-0.0289803650185922 +0.0039803351526371 +0.0174215350434439 +0.0266689618095380 +0.0176526442072158 +0.0044108929279606 +0.0012950730157294 +-0.0029937132815582 +-0.0064510923680106 +0.0183036515706847 +-0.0040156944046173 +0.0223217692260544 +0.0067829266317595 +0.0080555591084140 +0.0021541958352263 +0.0100649919342545 +-0.0082812908933151 +-0.0024947279475291 +-0.0147740087308324 +0.0130229656759675 +-0.0264037072386709 +-0.0072103709012519 +-0.0182167333392525 +-0.0177381927045675 +-0.0011825558714762 +-0.0000661635494782 +-0.0184469135191488 +-0.0129209789361904 +0.0241400413127740 +0.0066455252691874 +0.0139410345844642 +-0.0022097167492562 +-0.0084931289090129 +0.0171598708755814 +0.0161648287109844 +-0.0010879396391532 +-0.0197815572017166 +-0.0079878078066356 +-0.0230602618722429 +-0.0046364040601256 +0.0244021726385214 +-0.0055195302465072 +-0.0074916395864582 +-0.0236923947147420 +-0.0021455541601259 +0.0250889883031397 +0.0117002211894700 +-0.0118362220587241 +-0.0176038485194963 +0.0157766025918554 +-0.0095007708028786 +0.0077747961064340 +-0.0235964870992403 +0.0178863755920799 +-0.0143375571702220 +0.0096288200567155 +-0.0046428407241143 +0.0134597507987659 +-0.0108915200415172 +0.0158875613262902 +-0.0130331368419179 +-0.0030341655257479 +0.0007054817037885 +-0.0168787634358371 +-0.0182654733067160 +0.0094205455367958 +-0.0174423739897469 +-0.0228154622271660 +-0.0074869205507972 +-0.0048077511168748 +0.0022937643733038 +0.0163556994495638 +0.0220843757845068 +0.0039998149927406 +0.0238143481343248 +-0.0155422062920401 +-0.0261497436544151 +0.0108314144567609 +0.0189843042378146 +0.0050045703073368 +0.0170882994594618 +-0.0050450588328033 +-0.0128557154020971 +-0.0060181884793562 +-0.0024652389787884 +-0.0029536715138202 +0.0058348201511042 +0.0195839253096492 +0.0164693774534421 +0.0141600492046651 +-0.0225161907565207 +-0.0046834209181812 +0.0080193137057055 +0.0108337263184666 +0.0244589219605113 +0.0158177074170769 +-0.0014782216164537 +0.0199179590191242 +-0.0041564143202124 +0.0125415407485372 +-0.0061244176995570 +0.0257591716916182 +0.0013616422909135 +-0.0147938776057467 +0.0005398790076621 +-0.0086652469918795 +0.0226724857472423 +0.0252462628219263 +-0.0164110238575337 +-0.0040505173894455 +-0.0032034013170858 +-0.0051195996926932 +0.0157473384438102 +-0.0039283211826736 +-0.0135699075990637 +-0.0259114177636029 +-0.0016523735353257 +-0.0003703072610801 +-0.0206022846131115 +-0.0266527471966907 +0.0185143013379212 +0.0064910203179389 +-0.0185462217050762 +0.0133161644611772 +0.0258728272192848 +0.0256770800404790 +0.0061647770090458 +-0.0011538560384099 +0.0128118163729149 +0.0177180315080450 +-0.0188498164897527 +-0.0037045247137865 +0.0076332267570987 +0.0128578152721088 +0.0208034637285267 +-0.0072170766373704 +0.0261900927975742 +0.0234503125182236 +-0.0157504485039100 +0.0040789766554078 +0.0097346001745708 +0.0211082765476979 +-0.0175389634972083 +0.0002899394797891 +0.0030082356900886 +-0.0247843129138942 +-0.0180450535129823 +0.0265246470231466 +0.0232067905506489 +-0.0194949468934849 +0.0206260673756139 +0.0085164392566364 +0.0226819770375403 +-0.0106068593949073 +0.0240675290381256 +0.0055688031513851 +-0.0005034622536857 +-0.0140200306336242 +-0.0242332091515538 +0.0068263165744033 +0.0019022457443214 +-0.0106679544962165 +0.0005488833372232 +-0.0076282560166434 +0.0033904134149874 +-0.0200958015949964 +-0.0090466203109858 +0.0009961742121134 +-0.0140960584094042 +-0.0129269541844041 +-0.0103692147518660 +0.0145099102874978 +-0.0131156792777253 +-0.0141056919223237 +0.0051004476296427 +-0.0069566656582021 +0.0122442016180120 +-0.0184904188411558 +0.0074923806319608 +0.0209049080727697 +-0.0172722393843321 +0.0089958054863490 +-0.0156072219049478 +0.0249773158117126 +0.0141780642604844 +0.0007571685295463 +0.0135017689182051 +0.0096366335288614 +0.0099308356541411 +0.0009486173024858 +0.0248187467409847 +0.0196537681574590 +-0.0207791643437176 +0.0105715300715383 +-0.0158630162782477 +0.0161957269325690 +0.0226015363823107 +-0.0171077337716052 +0.0205071365612031 +0.0181698660691232 +0.0353029845649202 +-0.0030222337259769 +0.0046715751973445 +0.0237222310393897 +0.0261795231530965 +0.0015605905564185 +0.0051060369141964 +0.0120198884780798 +0.0086434710658011 +0.0166541467842005 +0.0056209653930421 +-0.0039732971382465 +-0.0174209541398732 +-0.0323163470929017 +0.0083917005907536 +0.0157428326778130 +0.0035566528267882 +0.0238007992610862 +-0.0195027533042119 +0.0124243582858532 +0.0182194910036844 +0.0215282609025178 +0.0204291830646877 +0.0194582015823216 +0.0074954601904511 +0.0031109471479560 +0.0217063131961972 +-0.0030751754806385 +-0.0244587765236576 +-0.0022263669642863 +0.0125193000243777 +0.0073272882754068 +0.0256163843130293 +-0.0028122710943111 +0.0324672495175743 +0.0243381148294611 +-0.0026666863006674 +-0.0147079371165815 +0.0074061444826537 +-0.0054209628958996 +-0.0020107497348383 +0.0198612479524659 +-0.0009502192112472 +0.0234806568841186 +-0.0262091882154356 +-0.0050236766974830 +0.0200340157974488 +-0.0000650166411396 +0.0146296728323875 +0.0126190522364858 +0.0057203313614979 +-0.0013284599592641 +0.0187961323576249 +0.0222747686277418 +-0.0227688202564034 +0.0040769700055178 +-0.0201116582117833 +0.0010682974899826 +-0.0134520885845816 +-0.0131333485301285 +0.0028629960809074 +-0.0100754916827182 +-0.0188750400845847 +-0.0105449766181241 +0.0093815483549357 +0.0120136267172211 +-0.0202390222127653 +0.0183931029941697 +-0.0265339471598291 +0.0135582059121639 +-0.0095596412051426 +-0.0056428915501172 +0.0003037771922435 +-0.0203993093845649 +-0.0243735451106732 +0.0247791236862332 +0.0122512764078618 +0.0005705781646944 +0.0004260651703583 +0.0178135810452660 +0.0241907395483577 +0.0206293553598955 +0.0157743974187501 +0.0090082301602115 +-0.0016927020232008 +0.0195770461078776 +-0.0222769691102231 +0.0007850485400590 +0.0129892392693366 +-0.0273044546737765 +-0.0073910325493133 +-0.0092571020096517 +0.0211701624093246 +0.0051760543683377 +-0.0095758010902127 +-0.0072791548141644 +0.0141025611147349 +-0.0236129167724862 +0.0149973083607350 +-0.0133270738889861 +-0.0037863119987755 +-0.0197549525645819 +0.0135110544550434 +0.0095759653827792 +0.0003535552672258 +-0.0023542243938280 +-0.0099810494298778 +-0.0210550263538879 +0.0182829904685402 +0.0071662921680947 +0.0028830343354070 +0.0042445952156096 +-0.0262627754102198 +-0.0250015848626069 +0.0007016974962957 +0.0239866154698188 +0.0028486727417281 +0.0187230198985437 +-0.0031440691125169 +0.0248705399043976 +-0.0101192613732353 +0.0191075259915484 +-0.0007244713408864 +0.0004486335427950 +0.0024409988688820 +-0.0128561248185502 +-0.0043124738104944 +-0.0226563712898226 +0.0203772430693797 +-0.0137372575770590 +-0.0186975646044267 +-0.0018249394447819 +-0.0170201899114172 +-0.0163752456433651 +0.0097842013250916 +0.0200817289063759 +0.0143050195153176 +0.0167708297830863 +0.0268033001121960 +0.0187055418635758 +0.0268027376347173 +0.0218106132650417 +-0.0041508769759795 +-0.0256148432141921 +-0.0243237135027417 +0.0121135742810782 +-0.0220821592334860 +0.0102115153817322 +-0.0013662728544438 +-0.0263980635829353 +0.0230463268138109 +0.0055308998037158 +-0.0078811157284485 +0.0220480249887228 +0.0231911847356414 +-0.0247592956287908 +0.0010958447047949 +-0.0172128607596436 +0.0261651155269397 +0.0229948406910921 +-0.0140473165138505 +0.0011214792919774 +0.0139587779601826 +-0.0027855004802806 +0.0177063663770367 +-0.0024811371660231 +-0.0067481104281005 +-0.0219474903486991 +0.0040964173604216 +0.0133789464190910 +0.0177527240758674 +0.0015383019608196 +0.0085658057912974 +0.0185755985072959 +0.0126734964417626 +-0.0137703109960572 +0.0247711993403658 +0.0201898125581186 +-0.0108607715536677 +0.0262838470236069 +-0.0244862145271882 +0.0180612028208811 +-0.0222158745602447 +-0.0029265155942689 +0.0008306941303175 +-0.0059036401732253 +0.0120397022534946 +-0.0213779314944040 +0.0148511508892147 +0.0231243967734258 +-0.0005691996148602 +0.0075600579465501 +0.0247295844940854 +-0.0091926357344773 +-0.0243114528924953 +0.0005017742833438 +-0.0133527376742169 +0.0078949377116879 +0.0051876332509875 +-0.0168479986409290 +-0.0048843136915906 +0.0009400355534636 +0.0157161711166217 +0.0154472097968231 +-0.0007699560232882 +0.0222893188180696 +-0.0234524096386409 +0.0026833146813527 +-0.0075407511594306 +0.0212106965439745 +-0.0261727386337204 +0.0074855659637714 +-0.0023582322282269 +0.0248945979524844 +0.0079561599083067 +-0.0069530445479767 +-0.0014402687259073 +0.0172461227359952 +0.0127650227796099 +-0.0147524677314393 +-0.0124429846477484 +0.0117647584862171 +0.0055612825468295 +0.0139802552803517 +-0.0105487061023414 +0.0223177177498514 +0.0129278170113041 +0.0118389836485510 +0.0157237411099276 +0.0277974090860569 +-0.0156004067324961 +0.0002212644391130 +0.0184554803459942 +0.0053883012229115 +0.0012163558239288 +0.0000720694174545 +0.0073673502476942 +-0.0171916561650183 +-0.0044174476074322 +0.0005706189266663 +0.0143980448615580 +-0.0005159850861843 +-0.0119269441974425 +0.0218525163504568 +0.0048388069449997 +0.0255249118781557 +-0.0089111423398539 +-0.0105317315936788 +0.0014824013612746 +-0.0000937317111512 +0.0141429783775988 +-0.0007309671265742 +-0.0012438255205910 +0.0141219685069207 +-0.0040500551848635 +0.0234767960334112 +0.0299678342824437 +0.0090920321511433 +0.0200577396475988 +0.0025919218850163 +0.0069331250922513 +-0.0187448974103257 +0.0209725773848666 +-0.0086434602569295 +0.0203399125465578 +0.0020943334441971 +0.0212126651933006 +0.0108646094537839 +0.0090361917453633 +0.0072562824539783 +-0.0135765880054329 +0.0290376979253143 +0.0100174243886582 +-0.0199896265236663 +-0.0058884199777873 +-0.0230661101727503 +0.0269876955499814 +-0.0074247046898118 +0.0264731256581724 +-0.0248318042131597 +-0.0025986836756558 +-0.0150417334030420 +0.0254579298518347 +0.0013395929995539 +-0.0030944790757575 +-0.0112660501457101 +-0.0097817855624719 +-0.0132350871344881 +-0.0090786032008242 +0.0147583034010675 +0.0314978024566040 +0.0099418927722241 +0.0032092737678833 +-0.0028674402026365 +0.0150795319807256 +0.0025312458371512 +-0.0082597225094992 +0.0094569613905836 +0.0021618374613027 +-0.0103994351164407 +-0.0204470681764872 +-0.0159138110447910 +0.0168477880987164 +0.0252530935284165 +-0.0206109021094570 +-0.0193520422053846 +-0.0082372151560844 +-0.0001577624082686 +0.0260016411780939 +0.0212134442368518 +0.0063555349041799 +-0.0052073020610962 +-0.0224351702068600 +0.0082550899170341 +0.0014610941622970 +0.0149760908846181 +-0.0155170328943751 +-0.0164109341169337 +-0.0100069937441726 +-0.0051472806671571 +-0.0096887068619690 +0.0203373452590451 +0.0202272333744174 +0.0112254715706231 +0.0130111727426532 +0.0188132032585960 +0.0212746538172546 +0.0062267717991982 +-0.0249857933468090 +-0.0166897906826537 +-0.0200091553724581 +-0.0107762938590299 +-0.0019770732534859 +0.0052643146800200 +-0.0183584832503701 +-0.0102290734437642 +0.0053283004868705 +-0.0029548404949663 +-0.0007634742494117 +-0.0088036158644177 +0.0022182386932484 +-0.0003575834855786 +0.0258187654975323 +-0.0118498183341248 +0.0125016866921391 +-0.0143709869913313 +-0.0224293258484873 +0.0158540413715632 +0.0045829646291710 +-0.0089149529564222 +-0.0171145546422728 +-0.0247084215861223 +0.0213289123989118 +-0.0099368971000279 +0.0195070740222966 +0.0087023462707793 +-0.0229108787368703 +-0.0128314591938512 +0.0201301575533621 +-0.0235938631269127 +0.0026983219140476 +-0.0009658108246096 +-0.0190968024915392 +-0.0004021666600006 +-0.0108864604667943 +0.0268270561072283 +-0.0034468184425621 +0.0234408079341445 +0.0071765492763116 +-0.0011295811197548 +0.0261585292517215 +0.0067403081186962 +-0.0126573060456083 +0.0082157135578768 +0.0209280247784222 +-0.0194034490284212 +0.0206403049162277 +0.0116235634120599 +-0.0041633090815313 +-0.0218809424850689 +0.0235980163657811 +-0.0007672616681485 +0.0032425829198052 +0.0017988963632060 +0.0227481677629075 +0.0107486628710401 +-0.0166135411405105 +-0.0137313868302370 +0.0206982149067779 +0.0265864950204451 +-0.0036698713927188 +-0.0226906334334579 +0.0133650321351339 +-0.0210805662638216 +0.0079611254574405 +-0.0137085229769565 +0.0047518286995909 +-0.0293610350895429 +0.0023528197373213 +0.0022825022776035 +0.0112536702770854 +0.0050881279169838 +-0.0146515028400387 +-0.0219154953696149 +-0.0229969006108898 +0.0024047393940172 +-0.0096599266205004 +0.0252179038052610 +-0.0177328204016340 +0.0223358433103371 +-0.0095140391379447 +-0.0096924361801851 +0.0231063035911658 +0.0149740758792360 +-0.0180072680351614 +0.0227860411990119 +-0.0102154642393768 +0.0218607040384597 +-0.0134711222624547 +0.0016005199164896 +0.0183946643383174 +-0.0088892126411743 +-0.0105288240990685 +0.0101210863561884 +-0.0077394279319481 +0.0074020855547527 +0.0190786423374928 +-0.0064938764939608 +-0.0259637607988387 +-0.0261270525640072 +-0.0185849361409339 +0.0197098777736472 +0.0120319503325635 +0.0252751918489901 +-0.0105536753789451 +0.0195196170834363 +0.0067711219378358 +0.0048354458454435 +-0.0173326055550087 +-0.0044826780465985 +-0.0019500543548414 +0.0188643200684146 +-0.0064155097917191 +-0.0152712162568439 +0.0237558548468389 +-0.0155806744788372 +-0.0081501474253864 +0.0247918773420680 +-0.0247113097360543 +0.0166119341698820 +0.0086211199900030 +-0.0081738254183240 +-0.0023164651185551 +0.0155503577439307 +-0.0068726136675150 +0.0085514487249705 +-0.0253912214572613 +-0.0123376845655026 +-0.0096456367639803 +0.0153069536584029 +0.0035922721985200 +0.0227897037710573 +-0.0078679608303328 +-0.0070049212405864 +0.0022177861217205 +-0.0124016367189742 +0.0174899602260283 +0.0189075105094390 +0.0086030216004748 +-0.0258278117529832 +0.0032861117008889 +0.0243436690252608 +-0.0164227001618866 +-0.0250944171647347 +-0.0016265692778276 +-0.0039104428881790 +0.0246907192077790 +-0.0248082702550138 +-0.0135355658480353 +-0.0107165266156283 +-0.0143421675925093 +-0.0254298364589507 +0.0107568667125603 +-0.0046545916940613 +0.0209072634209894 +-0.0162445246070641 +0.0130970118405289 +-0.0255986737982587 +-0.0074602566672153 +-0.0232762267969951 +-0.0078003469344250 +0.0075009161226617 +-0.0155948882667142 +-0.0264076867693686 +-0.0163406997118086 +-0.0227327595470254 +0.0038296687521688 +0.0229200756477796 +-0.0062978314289838 +0.0095214376994688 +-0.0137064921521042 +0.0016901543347825 +-0.0237655577621723 +-0.0226252345573791 +0.0181724419196047 +0.0112338151645274 +0.0183244051213778 +0.0208596542170896 +0.0170074558895431 +-0.0024953842380200 +-0.0011775291500578 +0.0249753507710713 +0.0303449098097463 +-0.0113098558269128 +0.0123528989530333 +0.0192294717455491 +-0.0001883784055542 +0.0003409861568995 +-0.0178983127317668 +-0.0245087547115582 +0.0114227431377582 +-0.0123774961549056 +-0.0171607974375957 +-0.0052826848792687 +-0.0050185051698653 +0.0088802741436206 +0.0004822024783436 +-0.0063253335059966 +0.0204742398201266 +-0.0036119555965767 +-0.0240038604334715 +-0.0036521291771198 +0.0058116469842478 +0.0103990313915891 +0.0105020915273350 +-0.0151473809328855 +-0.0200724541356803 +0.0070410422153170 +0.0104206372269694 +-0.0135914164546330 +0.0240195014528706 +0.0139262551758104 +-0.0191552997878135 +-0.0057116058747303 +0.0226697939322730 +0.0040549417699883 +0.0054094779846471 +-0.0102696566500124 +0.0035196854315493 +-0.0256855103409850 +0.0140312600525819 +-0.0038100277167902 +-0.0101994970024936 +0.0097246962618189 +-0.0072140286052533 +0.0225042242798918 +0.0069545840095572 +-0.0165698163454947 +-0.0165327590326636 +0.0221754753826954 +0.0172011486284178 +-0.0084810191610423 +-0.0241630097087661 +0.0111043467418931 +-0.0243645145217250 +-0.0174862172430100 +-0.0064481927994054 +0.0151991471455480 +0.0118249611072536 +0.0209044220895892 +-0.0194726443732609 +-0.0030981179886374 +-0.0062794456588448 +0.0191845843535371 +0.0070122269644934 +0.0097312434854643 +-0.0143682411964284 +0.0245643741905636 +0.0166075979965877 +0.0211005873096540 +0.0204429463890617 +0.0102849887529926 +-0.0256744834917619 +-0.0130359450653384 +-0.0055333147772900 +-0.0165696194226501 +0.0184956628118402 +-0.0255480102733623 +0.0162290543033157 +0.0082162583364027 +-0.0119264452254291 +0.0233679376343993 +0.0133042531663072 +-0.0257952235417186 +-0.0080444799627582 +0.0076637044728438 +0.0062927459300679 +-0.0090139830363939 +-0.0058499078396507 +0.0229835470534791 +0.0100530960223689 +-0.0226122936066458 +0.0215004044033847 +-0.0213577036963511 +-0.0124888511527960 +-0.0195220279203286 +0.0241093803856128 +0.0059540793841498 +-0.0005398353121608 +-0.0129706094484465 +0.0183015419908140 +0.0247307861446312 +-0.0110366324449350 +-0.0119308340538486 +-0.0262256904439129 +0.0095801108380927 +0.0013855725377071 +-0.0101801538415930 +0.0039990531053476 +-0.0258683163677165 +0.0029918863792623 +-0.0261898167994867 +-0.0229228834836461 +-0.0236309529080816 +0.0162500647947486 +0.0029447817686903 +0.0066120084723385 +0.0117560263300417 +0.0265533860832896 +-0.0018570557852809 +0.0112814498019609 +-0.0025723454325873 +0.0256605015063974 +-0.0052120742505418 +0.0096712245213868 +-0.0059977992716913 +0.0194061305198454 +0.0158858762366607 +-0.0144128659782513 +0.0086211589699159 +0.0109841739457364 +0.0135838055027499 +-0.0210297469878729 +0.0206911098035257 +0.0237118101217601 +-0.0072118441736143 +0.0248348283820297 +0.0258343254285712 +-0.0108152200113841 +0.0226746877213238 +-0.0037652038737754 +-0.0148894879266646 +-0.0117859727695213 +0.0174280152662507 +-0.0242262916692112 +0.0252812950325337 +-0.0117377639110302 +-0.0043754999358235 +0.0097000563876018 +-0.0177750842266778 +-0.0251648318463775 +-0.0018835361407035 +-0.0004309947178456 +-0.0090937019530002 +0.0062708343118241 +-0.0212671951405715 +-0.0050620519957523 +0.0181477402748332 +-0.0144178055071966 +-0.0159241180067508 +-0.0120425050136058 +0.0151225359894849 +0.0191930359346051 +0.0009217539774089 +0.0326526035989342 +-0.0148198841794293 +0.0151708118936929 +0.0118592779719005 +-0.0053926124643473 +0.0085041637791213 +-0.0155319000517192 +0.0207436396568968 +-0.0142874754271881 +-0.0127724527943919 +0.0098076418491638 +0.0072197773111015 +-0.0039855311509550 +0.0015360059789842 +-0.0159769718220029 +0.0121045997691162 +-0.0055996348426651 +0.0169480504500588 +0.0229017720990423 +-0.0052883354283561 +0.0146814371110221 +-0.0246793121181343 +0.0114712552927498 +0.0163424893335660 +-0.0149845431935930 +0.0026655820415473 +-0.0184816424631695 +0.0133221104019167 +-0.0247829575628576 +-0.0131280115480183 +-0.0153131302657624 +0.0242298718555528 +0.0087174756989745 +-0.0121258346116212 +-0.0144754645566216 +0.0038178346445430 +-0.0021608806507896 +0.0168919207924523 +0.0016137423299578 +0.0229156532545813 +-0.0033581499187878 +-0.0264829358958387 +-0.0125002801509422 +0.0198013685046653 +0.0205945606495612 +-0.0163727659939759 +0.0122812908130188 +-0.0174580861842918 +0.0099324011537775 +0.0002739005884356 +-0.0004268616582883 +0.0050675664490840 +0.0038072989398287 +-0.0168817344752582 +-0.0020830803945666 +-0.0236537841767238 +0.0107024500998315 +0.0213304306217029 +0.0254620525778210 +0.0189168809328015 +0.0181265522343334 +0.0247042195948637 +0.0199498290514628 +-0.0011627977262296 +-0.0222363918571097 +-0.0207939803234913 +0.0043128051321196 +0.0020164058160442 +-0.0101743602669777 +-0.0207725758928195 +0.0265444840368582 +-0.0113604027343118 +0.0007452667172419 +-0.0096999957704583 +0.0012278668758824 +-0.0203357677579046 +-0.0215321556364537 +-0.0139554266648039 +0.0205728460451225 +0.0023467034250480 +0.0236173992545390 +-0.0094769234010097 +-0.0099362562291311 +-0.0080375455698573 +0.0178037824168393 +0.0146870249944720 +-0.0056515073383979 +0.0269159318622444 +0.0257128267993250 +-0.0246081346875739 +0.0224208216312203 +-0.0265650121298003 +0.0167831198518633 +-0.0060445463346723 +0.0108946292544756 +0.0136499031730714 +-0.0206949753689070 +0.0050740320181454 +-0.0222579651815669 +-0.0183329226616472 +0.0197922356712494 +-0.0042759021813430 +-0.0094579111796450 +0.0082950278844058 +-0.0057648452015340 +0.0150134176026536 +-0.0032462176671702 +0.0213705376402178 +-0.0154675342497103 +0.0244976390586748 +-0.0145856336936651 +0.0252634958863660 +0.0056859503277384 +0.0067623140639024 +0.0227274579528627 +0.0102971273651788 +0.0150809586744879 +-0.0243951087584360 +-0.0009183855447626 +-0.0013093661484239 +0.0102379323975629 +-0.0223312886492032 +-0.0052218981621523 +-0.0204016945073596 +-0.0250415985505706 +-0.0233971994628202 +0.0053903165332425 +0.0082372869535932 +-0.0043024363850508 +-0.0140094639573314 +0.0203322201091104 +-0.0086986106334894 +-0.0228393375969046 +0.0078566953459264 +-0.0224294008702442 +-0.0098441420383703 +-0.0196453010535769 +0.0107444247418291 +0.0252821014905368 +-0.0032864755930940 +-0.0118703733633037 +0.0084804142773222 +0.0146335742431145 +-0.0151437462017225 +0.0150746915871344 +0.0251915343731033 +-0.0185892270573597 +0.0086679519183028 +-0.0171542273353039 +-0.0228044975673700 +-0.0040875673145663 +-0.0027900869971507 +0.0257686386249407 +0.0023513566653011 +0.0092997562966268 +0.0080540144695645 +0.0170744814845458 +0.0180374172711715 +-0.0122840182287526 +-0.0166026581891408 +0.0011213711975485 +-0.0049857495274085 +0.0168599037659743 +-0.0078815624963519 +-0.0113371766528035 +0.0053663637190944 +0.0265710394423251 +-0.0133406094130987 +-0.0090797483756242 +-0.0166566617043994 +0.0111081430349846 +0.0231975546972278 +-0.0209341229906561 +0.0041564712025390 +0.0101022969353632 +-0.0118458634680906 +0.0167945054724607 +0.0181401517208377 +-0.0164413820389450 +-0.0004872356619466 +0.0254848170338497 +-0.0150598274537423 +0.0000846329199010 +-0.0115503005716463 +0.0266443619282604 +0.0017756607324379 +-0.0227346954008053 +-0.0186418251710071 +0.0103019514824478 +-0.0098612653943239 +-0.0024361729778886 +-0.0084580167878609 +0.0242971157823186 +-0.0244137655601224 +-0.0241763244882502 +0.0039452252876008 +0.0188667292719683 +0.0167912769773796 +0.0163131050908307 +-0.0210382859823645 +-0.0259374594522175 +0.0241786629310266 +0.0064641276149163 +0.0257928260559336 +-0.0142056599956556 +-0.0114827195133547 +-0.0159655124818306 +0.0145564106171278 +0.0054564767966800 +-0.0106990012037061 +0.0244582565301281 +-0.0001969485334864 +-0.0260738829906509 +0.0262720757804756 +-0.0066829277283511 +-0.0242854549872615 +0.0080567845500899 +-0.0068921582185431 +-0.0207137775833286 +0.0005930754965040 +-0.0261854906481241 +0.0143923031274505 +-0.0010902465203200 +0.0184585800536270 +0.0208488324386540 +-0.0074853865063041 +0.0164802810154838 +-0.0252999357349466 +0.0142002562996020 +0.0171377768664308 +0.0138246703914031 +-0.0267557577288205 +-0.0119335299238958 +-0.0035240449797067 +0.0022174220907788 +0.0063124536926775 +0.0032728790746451 +-0.0069905845190965 +0.0201044652606530 +0.0057437778354153 +-0.0164370695117905 +0.0189167247483447 +-0.0161577820399199 +0.0189981064409871 +-0.0211465040349362 +-0.0246776389040383 +0.0048352426166065 +-0.0181964098270899 +0.0220686509158083 +-0.0159157815769921 +-0.0252106647942024 +-0.0005667744320003 +0.0155178227405958 +0.0187341216111015 +-0.0232771237072161 +0.0000038560152630 +0.0119072495527857 +-0.0144084803583307 +-0.0072736137859088 +-0.0062228963390089 +-0.0170227403907790 +-0.0243115786664715 +0.0217046397285252 +-0.0074725181570890 +-0.0145080184660772 +0.0039985918889759 +-0.0012190317212830 +-0.0130283504513580 +0.0094906473218115 +-0.0130374858657331 +-0.0169567168033236 +0.0185412486613533 +-0.0232552669312419 +-0.0176951503801092 +-0.0156371853797415 +-0.0118029732792867 +0.0193854347551677 +-0.0264663216103241 +-0.0189481888460034 +0.0019517370950374 +-0.0228008235881185 +0.0259798445193749 +-0.0015819075616894 +-0.0097589683912802 +-0.0081401324673594 +-0.0244726636459000 +0.0070509780286141 +-0.0104939308623724 +-0.0194456665179288 +0.0236381149923092 +0.0249891918621540 +-0.0187218010356667 +-0.0229912125739027 +0.0240132671460281 +0.0064946795703979 +0.0008001163027587 +0.0026477942723599 +0.0137984376669877 +0.0026031445034811 +-0.0104203532729550 +0.0190163181138697 +0.0277190723524535 +-0.0059661414851368 +0.0096880659293688 +0.0120433568167028 +0.0125348458124329 +0.0214624548191550 +-0.0215223712863453 +0.0089959249683723 +-0.0081970454969324 +0.0103789823597059 +0.0213466835610843 +-0.0033500711164470 +-0.0137314528345546 +-0.0099772543105178 +-0.0179366381548931 +0.0020888346440088 +-0.0219048120818428 +-0.0240082558729043 +0.0062201149864233 +-0.0056746181259716 +0.0004902400439850 +0.0136174518498627 +0.0051257199251053 +-0.0170788310145518 +0.0230954065000724 +0.0085221511646983 +-0.0039521501206989 +-0.0057291961774339 +0.0108249267654386 +0.0042214688663477 +-0.0230211103553421 +0.0009826153644850 +0.0002765126019447 +-0.0227289981192313 +0.0153344474926669 +-0.0095358758154585 +0.0158886611766285 +-0.0038694789878892 +0.0115580718289862 +0.0063970273704137 +-0.0002306611680171 +0.0255883650074496 +0.0048977065617250 +-0.0050381402590089 +-0.0209473206207919 +-0.0196890705446783 +-0.0154437091321544 +-0.0217605344988063 +-0.0184118677661985 +-0.0191452434101005 +0.0214643672207286 +0.0120814109465998 +-0.0025138537003612 +0.0198011621752233 +-0.0086779223901191 +0.0040481280715002 +0.0194562719467311 +0.0252738749669532 +0.0097248844655963 +-0.0173730260721280 +0.0241161689891958 +-0.0068225384775995 +0.0125812352890882 +-0.0019974290252562 +-0.0067765230205722 +0.0221772665036354 +0.0100919965880058 +0.0071192259887229 +-0.0146601465063050 +0.0156691149017753 +-0.0152841974468848 +0.0201511976583622 +0.0112564654075466 +-0.0223331536235231 +-0.0138683122008285 +0.0225891910283591 +-0.0190378290471063 +-0.0023973220610861 +0.0183289936361645 +0.0176182448888836 +-0.0020413697921215 +-0.0002738793043991 +0.0245973461586343 +-0.0028207793422390 +-0.0280528901556233 +-0.0125326489102649 +-0.0154478010384513 +-0.0252026369471752 +-0.0155239397371342 +-0.0229317366536776 +0.0107456721498605 +-0.0229712919047596 +-0.0221896808249983 +0.0165504980001176 +0.0214389756040466 +0.0035469426346336 +-0.0075812300052171 +0.0061394152403443 +0.0013596066894194 +-0.0074639806627515 +-0.0079831775429489 +0.0198015757439012 +-0.0084096257009855 +-0.0149683812607937 +-0.0120915243082119 +-0.0289869403432726 +0.0195670633029144 +-0.0091830732806352 +0.0003839057263232 +0.0070952394150512 +0.0082837491257077 +-0.0171726043114256 +-0.0223062545718514 +0.0345226772688091 +-0.0235913587754209 +0.0024834300295152 +-0.0048803146726147 +-0.0025769251363673 +0.0076681971325558 +0.0027077743740608 +-0.0240407742549480 +-0.0026819613304890 +-0.0098849275023325 +0.0210343617544900 +-0.0134695444123310 +0.0053357724476678 +-0.0270471270568031 +0.0056100658552241 +0.0264514172527268 +-0.0211250871555416 +0.0151618627768453 +-0.0165751123630427 +0.0103772040195573 +0.0211243175944808 +-0.0114691789230379 +0.0037203868830252 +0.0000064798675256 +0.0040209235405264 +0.0181645693955742 +0.0073614419989453 +-0.0066650234409180 +0.0100303636287771 +-0.0185644555634388 +-0.0007896541431584 +-0.0059791012427664 +-0.0040215375793822 +0.0203169322384012 +0.0073004473980708 +0.0054848038733274 +-0.0158415125732689 +-0.0060073216292796 +0.0043620448266103 +0.0043562748036438 +-0.0119803766599959 +0.0109411788940009 +0.0204569132599813 +-0.0132097064869472 +0.0169123476178915 +0.0248649617438109 +0.0073288627307034 +0.0128460531274666 +0.0238181280399520 +0.0204274275551321 +0.0206437946535688 +-0.0133521023878376 +0.0181260168403925 +-0.0015649561271290 +0.0100815100110431 +-0.0163111924096407 +-0.0097790709810296 +-0.0217847579067841 +-0.0105772297973559 +-0.0117509331927451 +-0.0110467783438345 +0.0241865868340919 +-0.0083575349176363 +-0.0093389980064177 +0.0229239340103408 +-0.0128015499699003 +-0.0033671812434300 +0.0056077062553237 +-0.0164387571172151 +0.0263227812598018 +0.0097097010905770 +0.0022367997925866 +0.0134367252255394 +0.0112908413118156 +-0.0180354435167405 +0.0032255749035406 +-0.0084139517148155 +-0.0072601912252097 +-0.0137874365660167 +-0.0121586680536941 +-0.0036370122660179 +-0.0194098051450574 +-0.0218218728954072 +-0.0064531228073920 +0.0253198273825564 +0.0242527370247739 +-0.0032546524153746 +0.0031145039149536 +-0.0249404546268063 +0.0191299217904150 +0.0022466428817082 +-0.0232468479346574 +0.0251157051512367 +0.0138935080888208 +0.0189898435878960 +-0.0188659323163765 +-0.0074180171192521 +-0.0146536645064452 +0.0013974949933637 +0.0226823677349699 +0.0106572489857069 +-0.0009264035559906 +-0.0159672033770333 +0.0117434983759188 +-0.0188159341025941 +-0.0191107171459837 +-0.0088112089096726 +-0.0042919893903490 +-0.0167688363151869 +0.0013042379827633 +0.0246210205430275 +-0.0156139853049326 +-0.0254206288492246 +0.0212814851707421 +0.0270446512216768 +-0.0160973598145986 +-0.0044799278738820 +-0.0268873046099917 +0.0063755905667579 +0.0262033326589179 +-0.0111407355255542 +-0.0198329095172985 +0.0103936694415592 +0.0236357884029944 +-0.0111435602440384 +0.0175034240251334 +0.0185161047791613 +-0.0034302986463094 +-0.0173459465461808 +-0.0226866694213822 +-0.0183334854636693 +-0.0148487451668135 +0.0015144582620884 +-0.0160144638752439 +-0.0068228855268493 +-0.0249380008927295 +0.0054899652313798 +-0.0059546059299436 +-0.0086989881320250 +0.0148850075018806 +-0.0068371809435327 +0.0225540793755766 +-0.0009418323073326 +0.0082639388300346 +0.0080923816196694 +0.0057994158761989 +-0.0067821991065540 +0.0252767056980276 +-0.0162487466905654 +0.0038010638913092 +-0.0236625524053177 +-0.0162053971314599 +0.0190346301029588 +0.0038734215042787 +0.0047664125832740 +0.0105657845853608 +-0.0101039827081613 +0.0250794096527909 +-0.0036913552816545 +0.0007798200486042 +-0.0187172189039672 +0.0126099159745840 +-0.0141948927639948 +-0.0091914555581946 +-0.0064018731555770 +0.0188411219213274 +-0.0099482392978998 +0.0099996391914364 +-0.0121407215910607 +-0.0078830178659410 +-0.0094925558609502 +-0.0064001368731157 +0.0083694872494997 +0.0166861375526239 +-0.0116986854627266 +-0.0004653855438334 +0.0010398183386696 +-0.0137578987029134 +-0.0031484638333128 +-0.0027993300108242 +-0.0222685814380953 +-0.0112534410505532 +0.0094718714030496 +0.0043196932390529 +0.0074475582539071 +0.0147840039730254 +0.0096491028599436 +0.0154225700108286 +-0.0002757169702604 +-0.0128742125979137 +-0.0000461792923304 +-0.0068384381129170 +0.0184190588841562 +-0.0222245158941248 +0.0099292670011565 +-0.0057644496813374 +-0.0007448423469077 +0.0265869907003080 +-0.0084701920369021 +-0.0031795702062750 +-0.0130265585420930 +-0.0225959991552878 +0.0166418888763762 +0.0143107466787569 +0.0095524701733377 +0.0101362649551659 +0.0248052514775037 +0.0302684084450165 +-0.0212244874596961 +0.0279810239653519 +0.0176187239417810 +0.0098552740935522 +0.0194519110124057 +-0.0170497281282413 +0.0170367090686632 +0.0096707322432444 +0.0022211685532981 +-0.0264974998125634 +-0.0123081366088257 +-0.0233178179291474 +-0.0133965579085866 +-0.0179607080622565 +-0.0010295448640757 +0.0205756311235817 +0.0135559609173447 +0.0014191790146494 +-0.0191205058982356 +-0.0096356331672718 +0.0226178086138937 +-0.0129150834706869 +0.0196183935228625 +0.0029667524432529 +0.0039767570850423 +-0.0269719451421531 +-0.0090886214312414 +-0.0131489043721370 +0.0151953611772767 +-0.0172321175925679 +-0.0104501089777222 +0.0158365514311908 +0.0201081351960383 +0.0130882219457078 +0.0243660950342195 +0.0086826848140411 +0.0121324611088751 +-0.0258120668164944 +-0.0194999120437118 +-0.0185562407704495 +-0.0170884154544411 +-0.0145202051022121 +0.0241984846493076 +0.0263286150486206 +-0.0222256956779201 +0.0213523857342847 +-0.0152419731846341 +0.0237267424512233 +0.0173997029747480 +0.0154213199661642 +0.0149822525109112 +0.0154920531659180 +-0.0130139818027566 +-0.0199478892296197 +-0.0066609261404342 +-0.0160448681464499 +-0.0012012411125427 +0.0051211427636588 +-0.0182149164836950 +0.0160545753094671 +-0.0151133925222791 +-0.0089655513297889 +0.0142098619165010 +0.0200354081677910 +-0.0225485868468400 +-0.0073754739225412 +-0.0104008492188063 +0.0143241235398410 +0.0262283184043820 +0.0240688037558946 +0.0174070567755042 +0.0212131486110277 +-0.0238224523762094 +-0.0064408128977818 +-0.0189711364541631 +0.0128875720628164 +-0.0251184925907206 +-0.0138943697461573 +0.0047183329718648 +-0.0113411723524218 +-0.0143737378506746 +-0.0061121684612285 +-0.0180188326558697 +-0.0161031615634589 +-0.0129465068067252 +-0.0216851301288642 +-0.0050068704207537 +-0.0209339498286528 +-0.0222850073955722 +0.0105891010443396 +-0.0104168262400350 +0.0103005131673324 +0.0115669467850287 +-0.0201374724280150 +-0.0289742356664893 +0.0050163575391066 +-0.0070687591384951 +0.0253180924495363 +-0.0120134693690417 +0.0125216699366729 +-0.0011365380245521 +-0.0136486748855051 +-0.0073200215301783 +-0.0121950392973585 +-0.0118912148776925 +-0.0038325375606203 +0.0024186054923987 +0.0085723778896805 +-0.0160736382036825 +0.0086722661061478 +0.0166273467450474 +-0.0077908662996980 +-0.0061408701375338 +0.0055896853475461 +-0.0190160192440924 +0.0170231994925055 +0.0202678720468968 +-0.0253393174354422 +0.0071760214122611 +-0.0164051287242687 +-0.0172315441562356 +-0.0166172612725730 +0.0005193987509155 +0.0057833449506745 +-0.0090646305526741 +0.0151157260511907 +-0.0081447329265898 +0.0072319970572181 +0.0190301934999901 +-0.0046820396872567 +0.0020213356971091 +-0.0294778077949530 +-0.0150058670574031 +0.0014122219918294 +-0.0203689555652207 +-0.0039458832313976 +0.0168423399544762 +-0.0146991214762292 +0.0028912599406633 +0.0241905729834576 +-0.0073075142495642 +0.0165614194676545 +-0.0114255742051991 +-0.0219199725917693 +0.0200534609379641 +0.0004101972214836 +0.0056534539882561 +-0.0066699213082372 +-0.0029340469179286 +-0.0114469729339170 +-0.0181954399593306 +-0.0252105237537627 +-0.0037068276461159 +0.0020738092571566 +-0.0014017247922911 +0.0258299262087514 +-0.0195960885073449 +-0.0136732421004739 +0.0086563127898839 +-0.0118229596184431 +0.0220668407052172 +-0.0023470441322680 +0.0223761880059359 +0.0094940290423852 +-0.0018679170803685 +0.0070416738943848 +-0.0108260727882653 +0.0070306767751040 +0.0009755937578306 +0.0233131595048421 +0.0085602354542277 +0.0296807788702112 +-0.0194943662161203 +-0.0218562270902451 +-0.0053591813003720 +-0.0192351801335163 +-0.0042253195018809 +-0.0166991954986740 +0.0190345961364480 +-0.0078222288065852 +0.0148539398958922 +-0.0109402953943518 +-0.0128777750563907 +-0.0205239095141436 +-0.0049464288367108 +0.0048682687273549 +0.0022114803105441 +0.0202149374939958 +0.0229844005655369 +-0.0218570393062679 +-0.0096783983883168 +0.0143407826951510 +-0.0118744929629601 +0.0027622914171357 +0.0160026647397177 +0.0046523854206474 +-0.0146776687848529 +-0.0171223663719877 +-0.0142517306873163 +0.0109602999140684 +0.0011271323327300 +0.0229986437473148 +-0.0113350844937380 +-0.0119450102158669 +-0.0095216362630914 +-0.0216329116249700 +-0.0186757143263591 +-0.0146996396844963 +0.0125604230431377 +-0.0001954383195180 +0.0010164082556720 +-0.0240617427465202 +0.0210842318596076 +0.0225597621718832 +0.0017760931724743 +-0.0058260402790775 +0.0189088144404451 +-0.0029416241287025 +0.0268323562172481 +0.0222561262503344 +0.0202631587871037 +0.0095359567791072 +-0.0066216911934200 +-0.0009424600231349 +0.0214109088517404 +0.0112239145837225 +-0.0223062819441500 +-0.0166919044366705 +0.0087696639111804 +-0.0098773775891652 +-0.0061633288286371 +-0.0221892561672759 +-0.0173786060566469 +-0.0110406308733333 +-0.0153458790757579 +-0.0255384167617771 +-0.0181520880061458 +-0.0049822139281959 +-0.0210310932326621 +0.0172021550009131 +0.0255707231035967 +-0.0019610846855937 +-0.0017407995219177 +0.0069511567082596 +-0.0141885212051531 +0.0101190446528492 +-0.0153114430470756 +0.0052738367963569 +0.0087195576969885 +-0.0021999546556721 +-0.0216900506899972 +0.0126917888884564 +-0.0034402530862540 +0.0164934129745563 +0.0203778618794930 +-0.0176257826001247 +-0.0033186212284054 +0.0242143029428185 +-0.0235360669735178 +-0.0008950003404859 +-0.0018024416936050 +0.0193854644644328 +-0.0134441853011527 +0.0268288294689884 +-0.0160387540825461 +-0.0223486323114380 +-0.0188746900959388 +0.0231308920807415 +-0.0016442070967690 +-0.0238809438543974 +-0.0189518177291567 +0.0092196386412943 +-0.0020607403430850 +-0.0165443398540873 +0.0099987618480828 +-0.0257170910977278 +0.0178420441761484 +-0.0162617484892061 +-0.0037441396230051 +0.0244535674349451 +0.0041332503236012 +-0.0045384478917687 +-0.0142811387056078 +-0.0024434656028777 +0.0222567577356102 +-0.0224951523936894 +-0.0091513731688239 +0.0083265137943444 +-0.0198136469181439 +0.0078350428468048 +0.0061200423200155 +-0.0013333359657149 +-0.0065583683664220 +-0.0015017779074034 +-0.0089073701926732 +0.0211632890058263 +0.0213969414179608 +0.0138136361525773 +0.0102921899710260 +0.0252155896072709 +-0.0200157292740656 +-0.0079100814059175 +-0.0169436057100583 +0.0259124223064375 +0.0269013612924962 +0.0140667306928361 +-0.0066036720552049 +0.0081345849072731 +-0.0171340476363275 +-0.0137966561081384 +0.0024002160688212 +0.0212473779461457 +0.0142246458820589 +0.0048262286830941 +-0.0091629776218933 +0.0113520466414272 +0.0156627636156944 +-0.0175663076507452 +-0.0194982222504781 +-0.0249122922318152 +0.0127280170694028 +0.0058506473623601 +-0.0027877510378718 +0.0120721372862177 +0.0135749216444652 +-0.0109579934721803 +0.0202532632374500 +-0.0023317402557771 +0.0017502546267933 +-0.0289461361265164 +-0.0118117483140401 +0.0110766915312121 +0.0020629087824025 +0.0065968158776028 +-0.0047227247297047 +0.0135582212089713 +0.0116657751347903 +0.0250557839755909 +0.0142955682548532 +0.0059492626382418 +-0.0231582585559530 +0.0249863588444934 +-0.0134722317616081 +-0.0102587598716470 +-0.0225352988434470 +-0.0062505025407488 +-0.0315408658795446 +-0.0029194132001685 +-0.0152645073113159 +0.0209555811374320 +-0.0058235674577518 +-0.0148177905793521 +-0.0218369189422601 +-0.0122298092616993 +-0.0193366434050095 +-0.0009044067128389 +-0.0207851646422491 +0.0267548268101918 +-0.0058252438237606 +0.0038268548223840 +-0.0015811851481884 +0.0186120772303864 +0.0060815419928203 +0.0260216110805523 +-0.0177243826825515 +-0.0122903487357623 +-0.0179632039173087 +-0.0160396039845791 +-0.0087689719909664 +0.0157606965642732 +0.0115438581677106 +0.0133037144007398 +-0.0217329883525603 +0.0023596448861998 +-0.0252820582507397 +0.0146143718728576 +-0.0073002240457425 +0.0073044230221961 +-0.0237965961182303 +-0.0229117412789216 +-0.0038276595753383 +-0.0086391522816969 +0.0054524876380414 +0.0063782051315719 +0.0108690149967086 +0.0146551578581743 +0.0073447786229512 +-0.0106203080104737 +0.0240984760746384 +-0.0090595657003228 +0.0038226420109936 +0.0111806480238273 +0.0104310639389582 +-0.0172668323414913 +0.0221972031376616 +0.0023198523949346 +0.0127999113412894 +0.0224329796231858 +0.0061558108491792 +0.0047803535676826 +-0.0262085911849608 +0.0139244399761247 +0.0078053185358014 +-0.0043198808024834 +0.0230427018605590 +0.0232910641018591 +-0.0074879225311259 +-0.0024794431776583 +-0.0241079094695752 +-0.0226840379567316 +0.0211889595913667 +-0.0174791986701232 +0.0136029901498247 +0.0226711068209738 +-0.0065137661381228 +0.0183547771624813 +-0.0077845532615479 +-0.0040810586388027 +-0.0106803163448324 +-0.0172108726046213 +0.0018192858068538 +-0.0247095611168281 +0.0187614268732569 +0.0174689897221700 +-0.0164992022900186 +0.0002993907285690 +-0.0146950142980749 +-0.0126382705659663 +-0.0002042497593086 +0.0236090200022682 +-0.0014904371581822 +0.0228372328298264 +-0.0124192562797675 +0.0264054813692115 +-0.0076273403974288 +-0.0208809334952081 +0.0268934234930164 +-0.0131223866716643 +0.0125516780567865 +0.0155832854150930 +0.0137873382821010 +0.0069781099219221 +0.0015270456792960 +0.0086843025155847 +0.0122231262344392 +-0.0114813139341756 +-0.0088295510133881 +0.0198874726899216 +-0.0050710508370633 +0.0157627244425779 +0.0248076218948919 +0.0053599328699760 +0.0158689637042016 +0.0208048770023908 +0.0122769751210083 +0.0093589090119085 +-0.0045031446964414 +-0.0109317154507817 +-0.0078281789604199 +0.0084001163976606 +-0.0009876973538139 +-0.0168401705616855 +-0.0148933260332047 +0.0233051400818339 +0.0173027774085968 +-0.0168618299386728 +-0.0135467825681274 +-0.0253147106367879 +-0.0164437658865473 +0.0140523331447435 +-0.0080100963260433 +0.0133837173683430 +0.0011866503675889 +0.0155512375470242 +-0.0098494899687930 +0.0242907074164913 +-0.0088411272507025 +-0.0120159376372246 +0.0178099275875536 +0.0054811969262213 +-0.0011176973810460 +-0.0058209932255556 +0.0079703165717294 +0.0258704022698211 +0.0224170852668967 +-0.0249789525994817 +-0.0117103610958032 +0.0016172470908809 +-0.0259023755519399 +0.0154293351459133 +0.0159462049137609 +-0.0079979480500256 +0.0054657694515795 +0.0071378003140981 +-0.0259434403561328 +0.0096904446023784 +0.0247558855650174 +0.0083152178112349 +0.0206289098668489 +-0.0185110947972519 +-0.0257327724129671 +-0.0027170309003478 +-0.0183807356743513 +0.0061155186426678 +0.0189462268850059 +-0.0039628179207499 +0.0263999116157811 +0.0207295333716607 +-0.0187353413328215 +0.0150830931538794 +0.0238952172068023 +-0.0250402500490620 +-0.0038517376556398 +-0.0203831643698046 +-0.0123679907692906 +0.0077497945385043 +-0.0033435033485962 +-0.0164188623911716 +-0.0061728644141565 +0.0064654852870650 +0.0083783032151224 +-0.0027144019438132 +0.0201354014123453 +-0.0094002540015549 +-0.0065577646196960 +0.0138900474623738 +0.0095744487496396 +-0.0213032583028774 +0.0089510914513149 +0.0178995512159343 +0.0239282789726196 +0.0031383273792736 +0.0032620838391062 +0.0042230100383267 +0.0087093505367002 +0.0057727714460048 +0.0015415131347203 +-0.0109772753011512 +-0.0005984727665795 +0.0144528276289443 +-0.0238212944682503 +0.0067204969359762 +0.0001931978955437 +-0.0224429151669938 +-0.0091613893703510 +-0.0178437716589847 +0.0242251622270760 +-0.0133351121235716 +-0.0224640680001042 +0.0267428424329441 +-0.0248269190677545 +0.0215778704815280 +-0.0152839381923961 +-0.0085162249699782 +-0.0220182137639470 +-0.0153622880819927 +0.0116639148749406 +-0.0124938192239126 +-0.0242303494995583 +-0.0238200587049157 +0.0084868954672072 +-0.0253432058961700 +0.0094083645735531 +0.0234785263508913 +0.0102786831001466 +-0.0231379074639846 +-0.0186806655279799 +0.0239991391279501 +0.0050837527198133 +-0.0209058081632969 +0.0128481872174367 +0.0158381858065304 +-0.0016886665534555 +0.0229166395970860 +-0.0202502809851711 +0.0172986551171576 +0.0146236255348049 +0.0145596186934333 +0.0004583210858547 +0.0231577854522075 +-0.0201886429003971 +-0.0230368995866972 +-0.0141025915048326 +-0.0195318336754935 +-0.0004661418385596 +-0.0193638305853516 +-0.0026860878991559 +-0.0068047109951757 +-0.0067984628074703 +-0.0202150002362860 +0.0020954537148250 +-0.0099128971017901 +-0.0219390483235666 +-0.0003060138876135 +0.0196973322513976 +0.0027129060166141 +0.0083102971819890 +-0.0197697197379776 +0.0204311770945281 +-0.0267396321405247 +-0.0052479209679611 +0.0096836147161152 +-0.0123403728139327 +0.0254600764964355 +0.0096351635215119 +-0.0074183186442611 +0.0024880488242916 +0.0127991113692117 +0.0225798267320665 +0.0028846287204724 +-0.0031631487530903 +0.0267773656340839 +-0.0016305172308956 +0.0075106767848399 +0.0010781505334630 +-0.0187041746153795 +-0.0090357862249264 +0.0051905404740849 +-0.0149792269869728 +0.0175248442172870 +0.0076030277919134 +0.0144060665490437 +-0.0209233750401916 +-0.0159513386127933 +0.0035211248793751 +0.0084424732103922 +0.0023910894155349 +-0.0212011960382294 +-0.0084197919217857 +0.0228756479013511 +0.0241426261152831 +0.0187997399662704 +-0.0014458825238557 +-0.0052952350398471 +0.0136771384251181 +-0.0227683140339507 +0.0083995389681315 +-0.0218118982022016 +0.0223296612401402 +0.0279516815653371 +0.0075049738738707 +0.0305985736268671 +0.0141532168155229 +-0.0176446007568503 +0.0045525696872156 +-0.0234047924863452 +-0.0164316423893645 +-0.0199067106821083 +-0.0241223875863193 +-0.0193524050099492 +-0.0228418616985435 +-0.0107249775164352 +-0.0207577676406940 +-0.0092359145120583 +-0.0189895160693280 +0.0131989755246222 +0.0001807541112662 +0.0229383377926695 +0.0118645497374963 +0.0141302940799172 +-0.0182436654803717 +0.0203701802566860 +0.0028620339551733 +-0.0212396908548801 +-0.0044104141146438 +0.0184721838169898 +-0.0157803310882305 +0.0097447410610605 +0.0124845795931772 +0.0217238356791734 +-0.0190856546590262 +0.0120551375368906 +0.0005380729706366 +-0.0088027267197287 +0.0031348593652036 +-0.0203940404035481 +-0.0041890699796126 +0.0113171918209725 +0.0175653188954030 +0.0022278988019756 +-0.0055159206924435 +-0.0166068844987757 +-0.0118146671019041 +0.0111331557145128 +0.0009859233861710 +0.0110335685275417 +0.0048277831081969 +0.0066185614980177 +0.0127137298716632 +0.0132874519749194 +0.0264618884896627 +0.0207718675780107 +-0.0065325548667918 +0.0027209559353438 +0.0244328651450420 +0.0209007119038961 +0.0070065222686682 +-0.0036614959286873 +0.0029285526235817 +0.0246106907882676 +-0.0053659253297731 +0.0124921477125821 +-0.0138102218328132 +0.0167964539331187 +-0.0161925294614210 +-0.0166345053120670 +0.0245166600651946 +0.0033633111493953 +0.0151821610832843 +-0.0120690522110902 +-0.0142851290202578 +-0.0020620524455191 +-0.0013313044530114 +0.0158028766570307 +0.0079406190322513 +0.0197654249543627 +0.0012100450086849 +-0.0176707204886469 +-0.0107330229739993 +0.0011200145725821 +-0.0177832231943985 +-0.0260763422593679 +0.0169658893314293 +-0.0193683934636807 +-0.0189440673227152 +0.0060937094485086 +-0.0249416713031772 +-0.0128618703300186 +-0.0077979886944922 +-0.0153201050288750 +0.0182414676639195 +0.0266947644806453 +-0.0250797095495613 +-0.0196374889712919 +0.0231245796931437 +0.0240817725186582 +-0.0114664972893555 +-0.0231126011963885 +-0.0221747493691526 +-0.0152542278115349 +0.0069412096367881 +0.0029868000418762 +-0.0240448149729144 +-0.0128754812660933 +0.0061537404090517 +-0.0220381220321920 +-0.0196886044483222 +-0.0179026447679425 +0.0042521862490680 +-0.0002855138559270 +-0.0026868795217441 +-0.0210137699045768 +-0.0107528385150947 +-0.0193521462319146 +0.0154743957609461 +-0.0216042780402099 +-0.0219673523961676 +-0.0127686365944157 +-0.0235912132827686 +0.0073170755081015 +-0.0010075742411831 +0.0093967566012548 +0.0174758261335272 +0.0255754936941205 +0.0065389596288345 +-0.0145778429525829 +0.0020092319251963 +-0.0052040421840401 +0.0179821086870695 +0.0052888410320362 +-0.0148510800475870 +-0.0062191267337265 +-0.0173991876554951 +-0.0228146312089688 +-0.0007032540878569 +-0.0098036052181299 +0.0090544237234699 +-0.0030222840066871 +0.0244438919557999 +0.0064787743860985 +0.0119521323054135 +-0.0017474240631642 +-0.0150027144478997 +0.0123201470762861 +-0.0240885156135281 +0.0108445305813928 +0.0122896018295269 +-0.0137447491692246 +0.0115861391817651 +0.0015350590816156 +-0.0208899667928230 +-0.0174046368417888 +0.0073293706981065 +0.0198199925844686 +-0.0264582651360337 +0.0182923823161836 +-0.0175549086587395 +-0.0148695448781063 +-0.0074091121829949 +0.0065332049099556 +0.0217090974232929 +0.0028853621853172 +0.0086341931531611 +0.0060357710343818 +-0.0076070095340685 +0.0212337535999936 +-0.0054918384096160 +0.0151303454832211 +0.0113336605962970 +-0.0174670901332277 +0.0176963089862756 +-0.0000480912956947 +-0.0153894442860573 +0.0053776034927462 +-0.0214410253015484 +0.0115131817535580 +0.0225382214276394 +0.0193999634626967 +-0.0243296985783133 +0.0075056064183772 +-0.0028978319479784 +0.0048155476250145 +0.0175158639872576 +0.0213055296323984 +-0.0054548781227342 +0.0116492942176170 +0.0182789412418441 +-0.0095965307295863 +0.0136438738244518 +-0.0069629487443513 +0.0193242658395128 +0.0128902923095392 +-0.0115561317097142 +-0.0036612562323987 +-0.0253325631453924 +-0.0075824600707392 +0.0233544297886128 +-0.0099742515903462 +0.0162505217385398 +0.0067373588188358 +-0.0133593619602581 +0.0197886172368751 +0.0133161695441657 +0.0235477125985655 +-0.0184600013394005 +0.0130529920005291 +-0.0085249780115524 +-0.0050153185906516 +-0.0095849322916946 +0.0077695754438180 +0.0257276481265512 +-0.0152166881361087 +0.0126002610916432 +0.0082599351046692 +0.0127688450853410 +0.0191647989594114 +-0.0010112691712227 +0.0069982916359429 +-0.0139947047298336 +0.0262663452019758 +0.0247286948214866 +-0.0017029633216388 +-0.0150133160389597 +0.0035927450049999 +-0.0215741002714139 +-0.0206236873809343 +0.0201983108827730 +-0.0205219346220776 +-0.0084970286108914 +-0.0141150999708153 +0.0151435504529708 +0.0020611829463128 +-0.0105392267622792 +-0.0232634119434568 +0.0232089088817539 +-0.0114917474001520 +-0.0081759826409969 +-0.0239247685226530 +0.0195325097486789 +-0.0165649254931282 +-0.0192650411800313 +-0.0126606332527548 +-0.0114806211530439 +0.0232706662265888 +0.0104104411285693 +-0.0002529615738327 +-0.0089583413829309 +-0.0100665509851922 +0.0129342292090293 +-0.0117405945572761 +-0.0145464948567891 +-0.0156357852333997 +0.0028105668053073 +0.0027832436110577 +-0.0160951831360471 +0.0186429717582664 +0.0034640870117673 +0.0258029550678899 +0.0105130129823563 +-0.0039237839879481 +0.0244451892359883 +-0.0135271569889009 +0.0080640229251716 +-0.0170156279603559 +-0.0025050831369424 +-0.0179677664978671 +-0.0120945939388038 +0.0072358956739226 +0.0195709233106188 +-0.0033181851089118 +0.0240270192178711 +-0.0169198020302514 +-0.0247802050229526 +-0.0256860863262160 +0.0282695173991151 +-0.0243729476037315 +-0.0142101710923429 +-0.0139459658241641 +0.0114686463699996 +0.0158847387513599 +0.0218235572673346 +-0.0066244513301607 +-0.0290936519900117 +0.0115790020936267 +0.0018275733969521 +0.0218720289880106 +-0.0029465313315700 +-0.0087029041266689 +0.0163877239970314 +-0.0014261324178386 +0.0073647095696339 +-0.0110101416002475 +0.0130713386313085 +-0.0074636553416041 +-0.0176362215437541 +-0.0167797213363210 +-0.0208471955327267 +-0.0188525600883785 +0.0018455696472708 +0.0063562907128516 +-0.0127665942650072 +-0.0002581220643931 +-0.0051772230859848 +-0.0099771995937403 +0.0235774701566656 +-0.0050295366802799 +0.0102645231194991 +0.0240054197988456 +-0.0115126218390441 +0.0263081912390168 +-0.0106913455087033 +-0.0143164081391905 +-0.0037024434307072 +-0.0165446545080663 +-0.0187235119239653 +0.0123804456752800 +0.0221530775422148 +-0.0318554279587426 +-0.0112384882554979 +0.0087045076286584 +-0.0106563917396521 +0.0080810829062711 +0.0045908601956583 +-0.0332576948667892 +0.0222974915122276 +0.0181033400124161 +0.0162786830623844 +-0.0244842252651818 +0.0018151573726538 +0.0049624058816256 +0.0013946922949408 +0.0106335177574537 +0.0186451627389994 +-0.0144290772131486 +-0.0247516287329205 +-0.0239221141883389 +0.0226259519099637 +-0.0115195670328727 +-0.0101011512709511 +0.0104558879882653 +-0.0164737887631995 +0.0259371742853356 +0.0063115188832204 +0.0080563430885887 +-0.0022073875645669 +0.0024696546273278 +0.0140056954896748 +0.0125591462734443 +0.0204600046491242 +-0.0139020992914475 +-0.0235609008409175 +0.0074395891129090 +0.0139129644517164 +-0.0100546478848068 +-0.0134113107297835 +-0.0057528289429634 +-0.0080096772001762 +-0.0219646829436666 +0.0161230567938139 +0.0048041689003487 +-0.0184949924233485 +0.0218723403511243 +-0.0147087030219972 +0.0062290416627963 +-0.0073649412209244 +-0.0241750171453204 +-0.0040875442015971 +-0.0091367848569377 +0.0363262385739983 +-0.0051906372531754 +-0.0131546402041914 +-0.0155112111670918 +0.0198142707488352 +-0.0060577013651770 +-0.0232416874612225 +-0.0253969579168947 +-0.0062624982223149 +-0.0252903907557907 +0.0043168490823278 +-0.0155454193007985 +0.0144264668489362 +-0.0205484128384107 +-0.0023621907884219 +0.0056319864902606 +0.0162695887253484 +0.0178462980356989 +-0.0132010092314091 +-0.0272058074016910 +0.0189407335317401 +-0.0011384797047700 +0.0220343449285830 +0.0010384269451237 +0.0113188466492502 +0.0132673468504682 +-0.0221157869595389 +-0.0075445799463578 +0.0136762275584367 +-0.0106624476261989 +-0.0076920974434237 +-0.0098333485196792 +0.0029764188845241 +-0.0162591713409692 +0.0024782964059314 +-0.0180236927385180 +-0.0109102983020963 +0.0123595520815785 +0.0096005833218460 +-0.0065992686924553 +0.0001394669372628 +-0.0157229659491264 +0.0088095102013973 +0.0219681331901258 +0.0051799052474457 +-0.0064748571427398 +-0.0086754957551430 +-0.0046000776143593 +-0.0148207791097546 +-0.0166177107427640 +0.0208185023085616 +0.0261718080778477 +-0.0071599509866806 +-0.0202927732680011 +-0.0013481608366886 +-0.0028384818610357 +-0.0245172802106995 +-0.0252714574112762 +0.0032803619815640 +-0.0172975091640447 +-0.0105023933293773 +-0.0226180442763478 +-0.0209091501439055 +0.0212448992277898 +-0.0117113151255638 +-0.0182206935225386 +-0.0099503963016864 +-0.0226638033977915 +-0.0195443241953498 +0.0089386549196138 +0.0052787034415186 +0.0151790312505901 +-0.0104070911627498 +0.0152272891721746 +-0.0012336330328211 +0.0138596841431303 +0.0167127738816096 +0.0104722783360372 +-0.0016305286983771 +0.0058697883625696 +-0.0197646382913569 +-0.0142276438663169 +-0.0007237960789449 +-0.0085208054992844 +0.0189141180108643 +-0.0104852435309057 +-0.0222832792107902 +0.0060728010692527 +-0.0199506907743841 +-0.0057848827072966 +-0.0206014538235055 +-0.0148856024432327 +0.0010139855245457 +0.0191334191705794 +-0.0214917875648919 +-0.0082089230524475 +0.0173866238726921 +0.0026481125128113 +0.0035397055123739 +0.0147457127417400 +0.0234306812976104 +-0.0082543311204874 +-0.0250739015091105 +0.0010700369180211 +0.0131188694745357 +0.0034912285419586 +0.0080903684386957 +0.0201488639351129 +-0.0211726339135267 +0.0164237074519848 +0.0127516617325109 +-0.0164222924862159 +0.0209644136067029 +-0.0128411200158743 +-0.0139912782329592 +0.0086199007666391 +-0.0078776483956603 +-0.0073254677926962 +-0.0176764125264707 +0.0206838398502527 +0.0006067140506509 +-0.0195158586229969 +0.0160861680421437 +0.0101513295305040 +0.0058326255487149 +0.0260907487042503 +-0.0070471677327457 +-0.0130616994026353 +-0.0132332346664959 +0.0031548537719236 +0.0269574468767518 +0.0081017828443850 +-0.0031726695844065 +-0.0230167449097588 +0.0009708928097197 +-0.0025668171613542 +0.0159074316807284 +-0.0075206738523802 +0.0227825756908342 +-0.0210619149400166 +-0.0118613589793336 +-0.0141575870789201 +0.0253491057710139 +-0.0104383517986216 +0.0047204714476573 +0.0032588296213791 +-0.0238517090484179 +-0.0273171175764132 +0.0081200560003151 +-0.0030752421543097 +0.0109384377278021 +-0.0094333127122846 +-0.0133791622577360 +-0.0045346387033103 +0.0082088128332611 +0.0039936678974568 +0.0009587226064972 +-0.0098932739641713 +-0.0204216070635994 +-0.0040824752253792 +0.0159661721075482 +0.0138711812735916 +-0.0093152122459410 +0.0006721589451992 +-0.0061464395952198 +-0.0066754576700972 +-0.0148512723303808 +0.0068000953207554 +-0.0022998947041662 +-0.0228179489948510 +0.0098793176045882 +0.0140813747282661 +-0.0027343591134024 +0.0027601305694110 +-0.0120081588661410 +0.0096101314790620 +-0.0266615884288363 +0.0055291516166398 +-0.0238723049313313 +-0.0129326380690898 +0.0014998870592820 +-0.0233500585553346 +0.0027768666596476 +0.0107192010507907 +0.0172590185272709 +0.0031301023798477 +-0.0208415568868258 +-0.0194533661620976 +0.0006506404924729 +-0.0041678353126302 +-0.0126793286103564 +0.0034971632570352 +-0.0267642305970580 +-0.0162636534152869 +0.0023859079279271 +0.0103952155187494 +-0.0231947563705851 +-0.0011644225901271 +-0.0219504867609446 +0.0167475520052147 +0.0112544526904250 +0.0190133315586312 +0.0035919598242032 +-0.0166640209550071 +-0.0257739307393340 +-0.0238203530605170 +-0.0123892932315583 +0.0175382611314799 +0.0142963083837878 +0.0072553561401232 +0.0264989862458557 +0.0016724562223667 +0.0159199144634349 +0.0013566390758085 +-0.0041342669208213 +0.0057846915100358 +0.0003418893338606 +-0.0236271512346827 +-0.0059340573895468 +-0.0204068474855542 +0.0077215622484040 +-0.0121981815706283 +-0.0027078518096838 +0.0122014705681661 +-0.0220248029104968 +-0.0071602033488082 +-0.0106514902630576 +-0.0178115041368240 +0.0208012327432472 +0.0091195037557073 +0.0228073940780478 +-0.0244358239652995 +0.0116856634661082 +0.0009481061510448 +-0.0302510563611030 +-0.0127523970622144 +0.0217724235490216 +0.0092038083171169 +0.0160568669068322 +0.0123335802397542 +-0.0042202240621053 +0.0256722438193095 +-0.0000263599320083 +0.0001615872555299 +-0.0098446809436389 +0.0264802254453833 +0.0005009759819526 +-0.0037942740483502 +-0.0042267559572155 +0.0190256290085297 +-0.0164166204248837 +0.0022979816768889 +-0.0260020708226323 +-0.0126311576407920 +0.0117298065919455 +-0.0235308823203143 +0.0098852262606669 +0.0258350893181090 +-0.0005790124197215 +-0.0259804826982287 +0.0175416758109652 +0.0040293065225001 +0.0027981849830589 +0.0013272352489915 +0.0099205751380510 +-0.0036273932063529 +0.0131951562280479 +-0.0267640591560160 +0.0192234073431767 +-0.0175911298091806 +-0.0062610997894556 +0.0178864145401431 +-0.0160611420646416 +-0.0040304433979705 +-0.0231098570085930 +-0.0111613912497364 +0.0020275971666657 +0.0057416072354775 +-0.0187227267043062 +0.0232254932818851 +0.0142773077544666 +-0.0230716017554892 +-0.0018114468904332 +0.0230291771099257 +-0.0052370690700419 +0.0090949266429119 +0.0190062292379599 +-0.0123680016602422 +-0.0252140581463739 +0.0000131125590171 +0.0123012877868205 +-0.0011414008159983 +-0.0000424129347583 +0.0262924647698728 +-0.0215200139806397 +0.0010192162634234 +0.0182822521741933 +0.0166484451595216 +-0.0131042494800108 +0.0091956695890171 +-0.0109472860119317 +-0.0145079100308718 +-0.0022994354751548 +0.0196589870090607 +-0.0069465999752664 +0.0259860621680633 +0.0087169903710595 +0.0213512207591330 +0.0262992905739267 +0.0168685399907670 +0.0192846093221625 +0.0208689597473719 +-0.0226714263999207 +-0.0206573748220629 +-0.0010843106288352 +0.0082147243684824 +-0.0261212007681238 +0.0168333174284498 +-0.0258633350412501 +0.0049964269217687 +0.0231747723997208 +-0.0166595581640268 +-0.0164457769390537 +0.0165507467693402 +-0.0166005737161075 +0.0176502483842694 +-0.0264532499644927 +0.0253490217920770 +-0.0220964573080307 +-0.0187909834208742 +0.0089234847082104 +0.0054827276829542 +0.0233246433618297 +-0.0320088023886584 +-0.0169076327624351 +0.0098595724036614 +0.0137920130070378 +0.0149001699087007 +-0.0199359131802880 +0.0174520338749243 +0.0060347482414115 +-0.0030116561730763 +-0.0085236789319611 +0.0227755119448010 +0.0028625579217598 +-0.0141995546163667 +0.0110888405827789 +0.0224755605189410 +0.0080420641556079 +-0.0014339102878643 +-0.0026530647742899 +0.0231025499101912 +-0.0227151226080389 +0.0229649283447485 +0.0262565930404624 +-0.0145187623863736 +0.0110461757190742 +0.0231602902152217 +0.0002263888725896 +-0.0022823502062323 +-0.0128591765257330 +-0.0209909031501594 +0.0044698807192405 +0.0154954719207173 +-0.0053064496420848 +-0.0028236413750265 +-0.0197183655754655 +-0.0002797908180479 +0.0111504803474940 +-0.0173610655985604 +0.0228116080181857 +-0.0129998111180329 +-0.0034161666221274 +-0.0057367692307001 +-0.0058509286745034 +-0.0268823540565413 +0.0066263054244075 +0.0024361498611632 +-0.0135998651222386 +0.0037143193890076 +0.0205959630986055 +-0.0039587473569595 +0.0106370670393752 +0.0169949615277379 +0.0011367465721220 +-0.0145987174485674 +-0.0046209607722976 +0.0080349245886306 +-0.0081537186806762 +0.0009425905535612 +0.0192839132267024 +0.0029714244578414 +0.0182366412140244 +-0.0120197506363203 +-0.0004037593172366 +-0.0073938145747186 +-0.0198673566393149 +-0.0244184892391461 +0.0170535394878406 +0.0224223962865367 +0.0198744955912909 +-0.0166255141861807 +-0.0253046311436627 +0.0264915411685190 +-0.0077974741104751 +-0.0160790752532903 +0.0263228891657082 +-0.0173705251285988 +-0.0088388318031273 +-0.0264993567398170 +-0.0186161917075556 +-0.0207152815539610 +0.0110361249420054 +-0.0202645972250490 +0.0083011797363911 +-0.0283100230780800 +-0.0135670175103026 +0.0037168757426447 +0.0226756943378717 +0.0194767513545138 +-0.0130620879859947 +0.0140997604655013 +-0.0089332923871186 +-0.0079431857796963 +-0.0109434360242310 +0.0050268523038467 +0.0024217732347540 +0.0204445616775661 +-0.0065408223488867 +-0.0026762313223312 +0.0232168106409765 +0.0253855454939854 +-0.0139846729549337 +0.0051433478401574 +0.0185533509640942 +-0.0084036374179598 +-0.0102475215883120 +0.0092863321239268 +0.0242965599417870 +-0.0251130984714471 +0.0064517058843997 +0.0172747677942267 +0.0106109236403443 +0.0265582937235056 +0.0265564572531999 +0.0000701019978918 +0.0137759657316986 +-0.0002813502479210 +-0.0136023952687637 +-0.0027110880861318 +-0.0095000111183264 +0.0052078672676517 +0.0004763942541288 +-0.0015756037488042 +0.0184702848824460 +-0.0026164016995310 +0.0011464025371413 +0.0083711573014835 +0.0230960345708364 +-0.0133156688215127 +-0.0251246008289150 +-0.0105362654623834 +0.0150425954471409 +-0.0132175787191393 +-0.0081702366317568 +-0.0127298842705907 +0.0236106472089976 +0.0115018422434700 +-0.0216910042819230 +-0.0242691428547290 +0.0137861056019568 +0.0185142707843335 +-0.0051021938986578 +-0.0149744123437211 +-0.0022617847352161 +0.0206888863559600 +-0.0163972299421140 +-0.0224452828067931 +0.0196497261006893 +-0.0077384783429631 +0.0132138424197032 +0.0150937244617484 +0.0085672605875216 +0.0122415120395085 +0.0157759066036375 +-0.0033452370462080 +0.0073322680561496 +0.0006277611375481 +-0.0276870340663593 +0.0224414269544086 +-0.0003535702517576 +0.0213448342535823 +-0.0192938820432564 +0.0076521076348160 +0.0034895520645824 +0.0049336736022698 +0.0166027747742970 +0.0247961769333059 +0.0118414648988174 +-0.0052732167047215 +0.0193053617905619 +-0.0164277453684467 +0.0101242542780903 +-0.0187956025881013 +0.0048360440871095 +0.0040316798342105 +0.0236178752879650 +0.0205888707639304 +0.0107638925880613 +0.0156855468963731 +0.0184781956938699 +-0.0168151323809876 +0.0087036459171811 +0.0185040135298720 +-0.0055060013863553 +-0.0183344685883909 +-0.0157159048016225 +-0.0182044447087577 +0.0011792127180446 +-0.0041575867377568 +-0.0137786012043226 +0.0088564134956767 +0.0262423668201111 +-0.0043105795157815 +0.0214000840999503 +0.0148682377705626 +0.0046892532567150 +-0.0063375108420902 +0.0148488080645232 +0.0240942625965234 +-0.0137992234448456 +-0.0283783132990159 +-0.0048180888429992 +0.0075273827629055 +0.0275203770618024 +-0.0099722350616107 +0.0233679810556951 +0.0140279513956306 +0.0092374566012577 +-0.0121289283851190 +0.0093109506640591 +-0.0157168938737163 +-0.0137582881660591 +0.0243780018016793 +0.0262918196643167 +-0.0021146395814029 +-0.0117926662377082 +0.0152650140565182 +0.0253132021674602 +0.0144526689215001 +0.0182833260574105 +0.0047866328295071 +0.0225917072813932 +0.0167930892061715 +-0.0234167368624602 +-0.0027303303863483 +-0.0194465318470675 +-0.0040594662514948 +-0.0106240323396795 +0.0239264578438571 +0.0128539091572273 +-0.0238238937998063 +-0.0184944931825506 +0.0236496739602064 +-0.0140613035587314 +-0.0154973716656591 +0.0157540565457520 +0.0097739411307419 +-0.0142923168988701 +-0.0111142174524924 +0.0150094554587315 +0.0020220341110201 +-0.0246161812636231 +0.0116822135038426 +0.0078732000834658 +-0.0230614091980932 +0.0112066384736556 +-0.0135369722659683 +-0.0154320053941533 +0.0163490786862151 +0.0099529339965382 +-0.0123464997569353 +-0.0117642010750010 +-0.0132149851924523 +-0.0226854972635427 +0.0162284508276086 +0.0215309341233478 +-0.0019175709441099 +0.0237608660537189 +0.0253474954600293 +0.0050596773040580 +-0.0071731874943283 +-0.0259811651323213 +0.0005085711539708 +0.0244261421737438 +0.0073431252560696 +0.0153928658133076 +-0.0044740473850188 +0.0186155659570184 +-0.0262638276282918 %% --0.0223352195595191 --0.0189255130441532 -0.1215125954702671 --0.0223352207405905 --0.0189255140448308 -0.1215126018954801 --0.0223352209457610 --0.0189255142186641 -0.1215126030116396 --0.0223352207407218 --0.0189255140449421 -0.1215126018961944 --0.0223352207758754 --0.0189255140747264 -0.1215126020874354 --0.0223352129541597 --0.0189255074476792 -0.1215125595360812 --0.0223352207132819 --0.0189255140216932 -0.1215126017469168 --0.0223239200832957 --0.0189159394155230 -0.1214511245398641 --0.0223352206987874 --0.0189255140094126 -0.1215126016680645 --0.0223351923698759 --0.0189254900073851 -0.1215124475543635 --0.0223352205240749 --0.0189255138613852 -0.1215126007176012 --0.0223352204204179 --0.0189255137735605 -0.1215126001536910 --0.0223352209508122 --0.0189255142229438 -0.1215126030391188 --0.0223352206971262 --0.0189255140080052 -0.1215126016590277 --0.0223352196493862 --0.0189255131202942 -0.1215125959591582 --0.0223352207030190 --0.0189255140129979 -0.1215126016910851 --0.0223352210086753 --0.0189255142719691 -0.1215126033539035 --0.0223352209445154 --0.0189255142176088 -0.1215126030048634 --0.0223352208046078 --0.0189255140990703 -0.1215126022437441 --0.0223352209501433 --0.0189255142223771 -0.1215126030354798 --0.0223352197002200 --0.0189255131633639 -0.1215125962357024 --0.0223365148349868 --0.0189266104825608 -0.1215196419708059 --0.0223352205408588 --0.0189255138756057 -0.1215126008089086 --0.0223352182739887 --0.0189255119549714 -0.1215125884767812 --0.0223352196327409 --0.0189255131061913 -0.1215125958686051 --0.0223352207004931 --0.0189255140108578 -0.1215126016773442 --0.0224660714834908 --0.0190363781275911 -0.1222244476040273 --0.0223352210045273 --0.0189255142684547 -0.1215126033313377 --0.0223352210102294 --0.0189255142732858 -0.1215126033623580 --0.0223352208492185 --0.0189255141368673 -0.1215126024864334 --0.0223352199948590 --0.0189255134130004 -0.1215125978385843 --0.0223352210089342 --0.0189255142721884 -0.1215126033553115 --0.0223352205598812 --0.0189255138917226 -0.1215126009123935 --0.0223352199904392 --0.0189255134092557 -0.1215125978145398 --0.0223352207147477 --0.0189255140229352 -0.1215126017548911 --0.0223352206799332 --0.0189255139934382 -0.1215126015654949 --0.0223352210164412 --0.0189255142785488 -0.1215126033961508 --0.0223143476047288 --0.0189078290006959 -0.1213990487246676 --0.0223352209882748 --0.0189255142546844 -0.1215126032429211 --0.0223352210129459 --0.0189255142755874 -0.1215126033771362 --0.0223352199346751 --0.0189255133620089 -0.1215125975111745 --0.0223352165410212 --0.0189255104866928 -0.1215125790491674 --0.0224499097263093 --0.0190226851018155 -0.1221365258504805 --0.0223352154465942 --0.0189255095594257 -0.1215125730953138 --0.0223352210028261 --0.0189255142670133 -0.1215126033220829 --0.0223352209875484 --0.0189255142540691 -0.1215126032389698 --0.0223352210200094 --0.0189255142815720 -0.1215126034155625 --0.0223352208712480 --0.0189255141555320 -0.1215126026062770 --0.0223352207326730 --0.0189255140381227 -0.1215126018524079 --0.0222410429919522 --0.0188457204477017 -0.1210002592384944 --0.0223352206986976 --0.0189255140093365 -0.1215126016675759 --0.0223351760634897 --0.0189254761915937 -0.1215123588450769 --0.0223352210084353 --0.0189255142717657 -0.1215126033525976 --0.0223352209949203 --0.0189255142603149 -0.1215126032790737 --0.0223352197053206 --0.0189255131676853 -0.1215125962634500 --0.0223352206965928 --0.0189255140075532 -0.1215126016561257 --0.0223352199902643 --0.0189255134091075 -0.1215125978135884 --0.0223352208988770 --0.0189255141789411 -0.1215126027565834 --0.0223352142750222 --0.0189255085667965 -0.1215125667217790 --0.0223352200855178 --0.0189255134898122 -0.1215125983317823 --0.0223352207047361 --0.0189255140144528 -0.1215126017004267 --0.0223352197322259 --0.0189255131904812 -0.1215125964098191 --0.0223352206959517 --0.0189255140070101 -0.1215126016526381 --0.0223352195460364 --0.0189255130327298 -0.1215125953969190 +-0.0996242233515387 +-0.0817821197780310 +-0.0455174544276039 +-0.1114324042049003 +0.0766048232674654 +-0.0439524216106873 +0.0027304161678876 +-0.0317386917725348 +-0.0334554406351420 +-0.0546258588139816 +0.0830800107304671 +0.0319865070674455 +-0.0868698181695295 +0.0725721256200354 +0.0348895423550227 +0.0979672993210382 +-0.0794406289530291 +-0.0955330588213792 +0.0021521349785970 +-0.0379705852151622 +0.0646064385608485 +-0.0968017708620578 +-0.1106019399869623 +-0.0507717495240567 +0.0161693594245545 +-0.0531655451902914 +-0.0402618007629529 +0.0606906227667691 +0.0130161147900480 +-0.1021005606428112 +0.0988383062544555 +-0.0371921699877359 +0.0897392598626670 +-0.0442416588815535 +-0.0522426252608418 +-0.0949823896171889 +-0.0184157832463320 +-0.0980072567173928 +-0.1010589184604436 +-0.0286122250246738 +-0.1156955790074707 +0.0097817330666166 +0.0166471378674858 +-0.0225154878356736 +-0.1082820578920273 +-0.0262120850908840 +-0.0610000122907991 +-0.0096806807701121 +-0.0771171568697014 +0.0919445335664225 +-0.0710364313787617 +-0.0489222967289398 +0.0121383580352452 +0.0885773338456361 +-0.0380150773930497 +0.0588228801959581 +-0.0508320051394339 +-0.0204234343916550 +0.0132508904133637 +-0.0635861478049636 +-0.0211598745543321 +0.0857999478949351 +-0.0912931078842257 +-0.0202266220389991 +-0.0462211363866931 +-0.1271336326300125 +-0.1061884309887289 +-0.0107634001015808 +0.0981990457521548 +-0.1209854860574763 +-0.0758962251204688 +-0.0260785683459919 +0.0850337271703734 +-0.1048085904421392 +-0.1219282780067493 +0.0731893997342861 +0.0450075746812974 +0.1008820796989350 +0.0549907244571834 +-0.1111217323719918 +0.0774612577743134 +-0.0186055111252823 +0.0983072419343468 +-0.0456496698208664 +0.0507762605060868 +-0.0913228859288330 +-0.0972356980525529 +0.1048492537143617 +0.0220525306191408 +-0.0330751400574861 +0.0607542331454814 +-0.0087842162790798 +-0.0330252830230428 +-0.0462523247364146 +0.0243023746255071 +-0.1002022670029692 +-0.0747910459292012 +0.0673208933987902 +-0.0709463046205057 +-0.0586500963564134 +0.1185414748601943 +-0.0797545580024285 +-0.0712191451875383 +0.0361486143895155 +-0.1294923110724241 +0.0458306078073747 +0.0769206847589116 +0.0335320788965017 +0.0810950189962810 +-0.0240098353141223 +-0.1010181437494433 +-0.0037475981404372 +0.1106574445420127 +-0.0504658293388195 +0.0239848214697703 +0.1246782076706689 +-0.0631946345253666 +-0.0519393524883510 +0.0323381988771888 +0.0020345994664599 +0.0682850170738396 +-0.0899800788388185 +-0.0600963845370220 +0.1017346857194354 +-0.0196799238982154 +-0.0295395174695756 +0.0707254538940238 +-0.0008332286287597 +-0.1302535569819279 +-0.0837400555490177 +0.0988260401396923 +0.0761712426855129 +0.0017606171089582 +0.0717430589069526 +0.0296059740208071 +0.0229266338419653 +0.0147321949071016 +-0.0675994756220992 +0.1117236769137300 +0.0878914364466302 +0.0279258340549578 +0.0966381811094455 +0.1016483978917747 +0.0731812025849822 +-0.0385449506928364 +-0.0192742387789933 +0.0668406998673063 +-0.0477885780338232 +0.1138475815682988 +0.0920542151251691 +0.0902559249598058 +-0.0881045886406484 +0.0233830544700254 +0.0142003895492596 +0.1226049462672931 +-0.0281809397152875 +0.0462843925849212 +0.1158098787378031 +-0.1270305628371781 +-0.0992972430353542 +0.1215506212048056 +0.0621985853469889 +0.1026255550165789 +0.1229755556270680 +-0.1125957480084335 +0.0429777935525003 +-0.0436219811981006 +0.0646915942342532 +-0.0609462921381673 +0.0072727068175614 +-0.0125084823620952 +0.0860216770824451 +-0.0473254777053108 +-0.0849340208701452 +-0.1010218530023032 +0.0234041273680978 +-0.0857571690238310 +-0.1008787010606095 +0.0590569775313079 +0.0763082342015973 +-0.0447611169935454 +-0.1123711461379975 +0.0323733047508968 +0.0138166227934286 +0.0408139237853330 +0.0937771641998500 +0.0559064074344851 +0.0117843657576928 +0.0182272495679219 +0.0815899188363977 +-0.0313239410401142 +-0.0088204963097987 %% -0.0000002860515429 -0.0000001336923965 -0.0000000086825011 -0.0000000031474389 -0.0000000035227788 -0.0001253960836368 -0.0000262543699298 -0.0001036484182358 -0.0000907387047426 -0.0001413510538386 -0.0000011456969965 -0.0000010956060781 -0.0000004156118037 -0.0000001589596450 -0.0000000420240903 -0.0000000024325447 -0.0000017463208003 --0.0000000063149758 -0.0000110024640267 -0.0000277988468344 -0.0012237898106768 -0.0000387151851673 -0.0000185810900032 -0.0000003594970814 -0.0000013889375324 -0.0000001017729949 -0.0000000532367727 -0.0000000195062862 -0.0000000018605114 -0.0000000019438707 --0.0000000011477865 -0.0000712910851704 -0.0010163792685161 -0.0000471245446582 -0.0000104643762336 -0.0000112266862765 -0.0000044064970721 -0.0000043316804395 -0.0000000771244344 -0.0000000580161255 -0.0000000992841434 -0.0000000174619020 -0.0000000059206197 --0.0000000098213873 -0.0000337237896365 -0.0033002772275274 -0.0000029991124506 -0.0000124144984307 -0.0000016792804727 -0.0000042568583938 -0.0000012227028352 -0.0000000358335915 -0.0000001322583757 --0.0000000126041656 -0.0000000067318724 -0.0000000062299183 -0.9999932153359626 -0.0000057036923494 -0.0002671154604164 -0.0000087723167142 -0.0000909511293817 -0.0000037292412118 -0.0000013034513990 -0.0000005887752391 +0.0000024309959634 +0.0000011940519482 +0.0000001835964163 +0.0000108914375019 +0.0000015824130228 +-0.0000112183862325 +-0.0000003048377791 +-0.0000032240606776 +-0.0000014808618573 +-0.0000058013332860 +0.0000046067771100 +-0.0000079444806809 +0.0000016193699661 +-0.0000043251616924 +0.0000018027826634 +0.0000000850751456 +-0.0000228687501904 +-0.0000138252445695 +-0.0000216209120993 +0.0000081005109307 +-0.0000030817482935 +-0.0000001779390965 +-0.0000008644527965 +0.0000041928362689 +-0.0000053264952537 +0.0000433187601799 +-0.0000031216279523 +0.0000074869803423 +-0.0000059398079659 +0.0000040586353165 +-0.0000021404250008 +0.0000002646219662 +-0.0000000183310864 +-0.0000000635114084 +0.0000013310358376 +-0.0000014806401489 +0.0000312406515020 +0.0000190399625647 +0.0000024094945359 +-0.0000087874416011 +0.0000121746326526 +0.0000032995718352 +0.0000036567540018 +-0.0000137894573085 +-0.0000043481944107 +-0.0000024287213155 +0.0000017102711078 +-0.0000059164248252 +-0.0000066574534314 +0.0000008885581472 +0.0000002993277631 +-0.0000371986149118 +-0.0000035217156887 +-0.0000154233341633 +-0.0000072709602701 +0.0000208477681882 +0.0000123386416501 +0.0000000259503844 +-0.0000050702074382 +-0.0000008393952697 +-0.0000163966484635 +0.0000006453034441 +-0.0000094373978362 +-0.9999999958668438 %% --0.1250485269999813 --0.1250485017387021 --0.1250484973504203 --0.1250485017358938 --0.1250485009840124 --0.1250486682775984 --0.1250485023227919 --0.1252883862387800 --0.1250485026328068 --0.1250491085330709 --0.1250485063696373 --0.1250485085867000 --0.1250484972423835 --0.1250485026683358 --0.1250485250778653 --0.1250485025422989 --0.1250484960047790 --0.1250484973770616 --0.1250485003694706 --0.1250484972566906 --0.1250485239906086 --0.1250207990375155 --0.1250485060106542 --0.1250485544954296 --0.1250485254338826 --0.1250485025963228 --0.1219759042419306 --0.1250484960934984 --0.1250484959715390 --0.1250484994153161 --0.1250485176887426 --0.1250484959992431 --0.1250485056037944 --0.1250485177832757 --0.1250485022914402 --0.1250485030360682 --0.1250484958386799 --0.1254887690039716 --0.1250484964411162 --0.1250484959134374 --0.1250485189759819 --0.1250485915607708 --0.1223892680712233 --0.1250486149687297 --0.1250484961298845 --0.1250484964566514 --0.1250484957623608 --0.1250484989441400 --0.1250485019080441 --0.1269407269019648 --0.1250485026347276 --0.1250494572844961 --0.1250484960099129 --0.1250484962989789 --0.1250485238815167 --0.1250485026797450 --0.1250485177870162 --0.1250484983531969 --0.1250486400266543 --0.1250485157496926 --0.1250485025055717 --0.1250485233060540 --0.1250485026934568 --0.1250485272883554 +-0.1291860857293672 +-0.1661243489694474 +-0.0109893322364429 +-0.0904286424884022 +0.0266196518153837 +-0.1236332889001019 +-0.0004742635525526 +0.1842010831345166 +-0.0148344529531679 +-0.0222432251069605 +0.2180704823748636 +-0.0762323941389193 +0.1817535051708827 +-0.0277200797700905 +0.1046528476424183 +0.0783089095366353 +-0.1569878709889131 +0.0676528919360666 +-0.0809013576661838 +-0.0713090379014212 +-0.0269990306639233 +0.1512114058392098 +-0.1690754419472432 +0.1994093671051502 +0.0811495839896686 +-0.0873706577845418 +0.0003474412823032 +0.1976319650195778 +0.1179921460420619 +0.0291047138411761 +-0.1705519894640977 +-0.0570983721268356 +0.1179423017022843 +0.0701383897200756 +-0.1407872467453951 +-0.1184027538871611 +0.0000295658419040 +-0.1997738049680240 +-0.1332803993448991 +0.1848835315203122 +-0.0691583324942884 +0.0242693473945267 +0.2040966885869867 +0.0025209169134761 +-0.1747364665414304 +-0.0724595107049931 +-0.0831161040256126 +-0.0390092000074772 +-0.0257426019140296 +0.1979944816170387 +0.1877451150684942 +-0.1212929783019899 +0.1520626153089170 +-0.2487334851015169 +0.0749656685321286 +0.0209108556652802 +-0.0324820934238170 +0.1560181358291263 +0.0337530990901357 +-0.2494894964489852 +0.0222917406317489 +-0.0703419110163263 +0.1837842278782003 +-0.1211776786853548 %% --0.1786819872446880 --0.1514298249324479 -0.9721840132172598 \ No newline at end of file +0.5005328769699818 +0.0744359889193578 +-0.8625115202858165 diff --git a/examples/machsuite/backprop/check.data.old b/examples/machsuite/backprop/check.data.old new file mode 100644 index 0000000000..430967a855 --- /dev/null +++ b/examples/machsuite/backprop/check.data.old @@ -0,0 +1,5257 @@ +%% +0.0000000033101436 +0.0000000015479249 +0.0000000001004358 +0.0000000000364163 +0.0000000000407159 +0.0000014497376937 +0.0000003035337987 +0.0000011983070851 +0.0000010490761193 +0.0000016367837014 +0.0000000132466512 +0.0000000126750943 +0.0000000048075421 +0.0000000018395992 +0.0000000004864273 +0.0000000000281399 +0.0000000201896963 +-0.0000000000730134 +0.0000001272024342 +0.0000003213899017 +0.0000142248587956 +0.0000004476003093 +0.0000002151130794 +0.0000000041574232 +0.0000000160759547 +0.0000000011784375 +0.0000000006160755 +0.0000000002257905 +0.0000000000215129 +0.0000000000224720 +-0.0000000000132671 +0.0000008242153168 +0.0000117506327550 +0.0000005455789965 +0.0000001210125333 +0.0000001299767681 +0.0000000509761169 +0.0000000501245280 +0.0000000008920892 +0.0000000006712727 +0.0000000011497495 +0.0000000002020437 +0.0000000000685082 +-0.0000000001135434 +0.0000003899036725 +0.0000381553882461 +0.0000000346940674 +0.0000001435625174 +0.0000000194364549 +0.0000000492566898 +0.0000000141491509 +0.0000000004145226 +0.0000000015308925 +-0.0000000001459076 +0.0000000000778971 +0.0000000000720425 +0.0115611891961562 +0.0000000659418916 +0.0000030881932846 +0.0000001015246746 +0.0000010529318327 +0.0000000431489449 +0.0000000150811733 +0.0000000068133704 +0.0000000004191571 +0.0000000001960107 +0.0000000000127180 +0.0000000000046113 +0.0000000000051558 +0.0000001835774978 +0.0000000384359016 +0.0000001517393231 +0.0000001328424924 +0.0000002072627321 +0.0000000016773980 +0.0000000016050227 +0.0000000006087698 +0.0000000002329449 +0.0000000000615953 +0.0000000000035633 +0.0000000025565824 +-0.0000000000092455 +0.0000000161073998 +0.0000000406969856 +0.0000018012652850 +0.0000000566787668 +0.0000000272393510 +0.0000000005264465 +0.0000000020356670 +0.0000000001492232 +0.0000000000780124 +0.0000000000285914 +0.0000000000027241 +0.0000000000028456 +-0.0000000000016800 +0.0000001043688015 +0.0000014879600416 +0.0000000690856074 +0.0000000153235840 +0.0000000164587054 +0.0000000064550072 +0.0000000063471719 +0.0000000001129635 +0.0000000000850020 +0.0000000001455905 +0.0000000000255844 +0.0000000000086751 +-0.0000000000143778 +0.0000000493727524 +0.0000048315434808 +0.0000000043932427 +0.0000000181790451 +0.0000000024612009 +0.0000000062372793 +0.0000000017916796 +0.0000000000524902 +0.0000000001938539 +-0.0000000000184760 +0.0000000000098640 +0.0000000000091226 +0.0014639711678757 +0.0000000083500950 +0.0000003910519803 +0.0000000128558727 +0.0000001333307111 +0.0000000054638674 +0.0000000019096998 +0.0000000008627639 +0.0000000005796344 +0.0000000002710548 +0.0000000000175872 +0.0000000000063768 +0.0000000000071297 +0.0000002538614621 +0.0000000531513627 +0.0000002098338134 +0.0000001837021953 +0.0000002866147651 +0.0000000023196018 +0.0000000022195172 +0.0000000008418417 +0.0000000003221295 +0.0000000000851776 +0.0000000000049275 +0.0000000035353884 +-0.0000000000127853 +0.0000000222742335 +0.0000000562781189 +0.0000024908928358 +0.0000000783786401 +0.0000000376681331 +0.0000000007280003 +0.0000000028150367 +0.0000000002063544 +0.0000000001078801 +0.0000000000395378 +0.0000000000037671 +0.0000000000039350 +-0.0000000000023232 +0.0000001443271471 +0.0000020576362367 +0.0000000955355305 +0.0000000211903283 +0.0000000227600394 +0.0000000089263532 +0.0000000087772324 +0.0000000001562124 +0.0000000001175456 +0.0000000002013309 +0.0000000000353796 +0.0000000000119964 +-0.0000000000198824 +0.0000000682754656 +0.0000066813346241 +0.0000000060752273 +0.0000000251390232 +0.0000000034034893 +0.0000000086252666 +0.0000000024776370 +0.0000000000725865 +0.0000000002680723 +-0.0000000000255497 +0.0000000000136405 +0.0000000000126153 +0.0020244630502579 +0.0000000115469889 +0.0000005407690412 +0.0000000177778362 +0.0000001843773356 +0.0000000075557484 +0.0000000026408421 +0.0000000011930793 +0.0000000033532564 +0.0000000015680857 +0.0000000001017440 +0.0000000000368906 +0.0000000000412462 +0.0000014686199826 +0.0000003074872124 +0.0000012139145848 +0.0000010627399376 +0.0000016581017039 +0.0000000134191836 +0.0000000128401811 +0.0000000048701581 +0.0000000018635590 +0.0000000004927628 +0.0000000000285064 +0.0000000204526595 +-0.0000000000739644 +0.0000001288591981 +0.0000003255758845 +0.0000144101177707 +0.0000004534301345 +0.0000002179147911 +0.0000000042115719 +0.0000000162853346 +0.0000000011937859 +0.0000000006240996 +0.0000000002287313 +0.0000000000217931 +0.0000000000227647 +-0.0000000000134399 +0.0000008349504117 +0.0000119036803330 +0.0000005526848140 +0.0000001225886702 +0.0000001316696321 +0.0000000516400557 +0.0000000507773727 +0.0000000009037083 +0.0000000006800157 +0.0000000011647242 +0.0000000002046752 +0.0000000000694005 +-0.0000000001150223 +0.0000003949820187 +0.0000386523478467 +0.0000000351459407 +0.0000001454323586 +0.0000000196896066 +0.0000000498982317 +0.0000000143334357 +0.0000000004199216 +0.0000000015508315 +-0.0000000001478079 +0.0000000000789117 +0.0000000000729808 +0.0117117693430054 +0.0000000668007600 +0.0000031284158422 +0.0000001028469753 +0.0000010666456048 +0.0000000437109374 +0.0000000152775977 +0.0000000069021108 +0.0000000265865384 +0.0000000124326831 +0.0000000008066844 +0.0000000002924898 +0.0000000003270235 +0.0000116440584336 +0.0000024379343273 +0.0000096246084936 +0.0000084260095436 +0.0000131463823804 +0.0000001063949576 +0.0000001018043077 +0.0000000386134006 +0.0000000147753638 +0.0000000039069057 +0.0000000002260154 +0.0000001621603716 +-0.0000000005864317 +0.0000010216693565 +0.0000025813516554 +0.0001142517833125 +0.0000035950532160 +0.0000017277535043 +0.0000000333917507 +0.0000001291194704 +0.0000000094650196 +0.0000000049482190 +0.0000000018135126 +0.0000000001727882 +0.0000000001804915 +-0.0000000001065591 +0.0000066199639786 +0.0000943791797833 +0.0000043820023719 +0.0000009719530829 +0.0000010439524062 +0.0000004094319259 +0.0000004025921055 +0.0000000071651164 +0.0000000053915538 +0.0000000092346022 +0.0000000016227822 +0.0000000005502466 +-0.0000000009119623 +0.0000031316431733 +0.0003064579007845 +0.0000002786571375 +0.0000011530709059 +0.0000001561104598 +0.0000003956217690 +0.0000001136436924 +0.0000000033293788 +0.0000000122958815 +-0.0000000011719060 +0.0000000006256572 +0.0000000005786337 +0.0928575997909717 +0.0000005296345972 +0.0000248038684633 +0.0000008154297771 +0.0000084569783867 +0.0000003465653487 +0.0000001211295456 +0.0000000547238896 +0.0000000009293314 +0.0000000004345840 +0.0000000000281976 +0.0000000000102240 +0.0000000000114311 +0.0000004070175500 +0.0000000852178871 +0.0000003364277663 +0.0000002945307934 +0.0000004595313006 +0.0000000037190311 +0.0000000035585654 +0.0000000013497298 +0.0000000005164723 +0.0000000001365657 +0.0000000000079004 +0.0000000056683087 +-0.0000000000204987 +0.0000000357124074 +0.0000000902310335 +0.0000039936685084 +0.0000001256649271 +0.0000000603935571 +0.0000000011672072 +0.0000000045133660 +0.0000000003308494 +0.0000000001729648 +0.0000000000633913 +0.0000000000060398 +0.0000000000063091 +-0.0000000000037248 +0.0000002314005495 +0.0000032990200753 +0.0000001531727244 +0.0000000339745782 +0.0000000364913163 +0.0000000143116760 +0.0000000140725908 +0.0000000002504563 +0.0000000001884615 +0.0000000003227952 +0.0000000000567243 +0.0000000000192338 +-0.0000000000318776 +0.0000001094664497 +0.0000107122224335 +0.0000000097404486 +0.0000000403055439 +0.0000000054568344 +0.0000000138289429 +0.0000000039724107 +0.0000000001163783 +0.0000000004298021 +-0.0000000000409639 +0.0000000000218698 +0.0000000000202261 +0.0032458333136548 +0.0000000185133540 +0.0000008670181304 +0.0000000285033154 +0.0000002956133530 +0.0000000121141776 +0.0000000042340783 +0.0000000019128714 +0.0000000008957987 +0.0000000004189030 +0.0000000000271802 +0.0000000000098551 +0.0000000000110186 +0.0000003923313392 +0.0000000821430127 +0.0000003242886113 +0.0000002839033856 +0.0000004429502126 +0.0000000035848391 +0.0000000034301633 +0.0000000013010281 +0.0000000004978366 +0.0000000001316381 +0.0000000000076153 +0.0000000054637819 +-0.0000000000197591 +0.0000000344238144 +0.0000000869752722 +0.0000038495654971 +0.0000001211306222 +0.0000000582144009 +0.0000000011250914 +0.0000000043505121 +0.0000000003189115 +0.0000000001667238 +0.0000000000611039 +0.0000000000058219 +0.0000000000060814 +-0.0000000000035904 +0.0000002230510391 +0.0000031799831828 +0.0000001476458550 +0.0000000327486899 +0.0000000351746148 +0.0000000137952743 +0.0000000135648156 +0.0000000002414192 +0.0000000001816614 +0.0000000003111479 +0.0000000000546775 +0.0000000000185398 +-0.0000000000307274 +0.0000001055166263 +0.0000103256986654 +0.0000000093889885 +0.0000000388512184 +0.0000000052599381 +0.0000000133299592 +0.0000000038290759 +0.0000000001121791 +0.0000000004142937 +-0.0000000000394858 +0.0000000000210807 +0.0000000000194963 +0.0031287155324666 +0.0000000178453459 +0.0000008357339486 +0.0000000274748424 +0.0000002849468568 +0.0000000116770671 +0.0000000040813020 +0.0000000018438501 +0.0000000000766459 +0.0000000000358420 +0.0000000000023256 +0.0000000000008432 +0.0000000000009428 +0.0000000335684560 +0.0000000070282790 +0.0000000277466185 +0.0000000242911981 +0.0000000378994775 +0.0000000003067242 +0.0000000002934899 +0.0000000001113179 +0.0000000000425956 +0.0000000000112632 +0.0000000000006516 +0.0000000004674893 +-0.0000000000016906 +0.0000000029453530 +0.0000000074417343 +0.0000003293744340 +0.0000000103641171 +0.0000000049809106 +0.0000000000962645 +0.0000000003722363 +0.0000000000272865 +0.0000000000142651 +0.0000000000052281 +0.0000000000004981 +0.0000000000005203 +-0.0000000000003072 +0.0000000190845804 +0.0000002720841158 +0.0000000126327987 +0.0000000028020268 +0.0000000030095923 +0.0000000011803442 +0.0000000011606258 +0.0000000000206562 +0.0000000000155432 +0.0000000000266223 +0.0000000000046783 +0.0000000000015863 +-0.0000000000026291 +0.0000000090281603 +0.0000008834822167 +0.0000000008033359 +0.0000000033241683 +0.0000000004500482 +0.0000000011405312 +0.0000000003276214 +0.0000000000095982 +0.0000000000354476 +-0.0000000000033785 +0.0000000000018037 +0.0000000000016681 +0.0002676975789995 +0.0000000015268745 +0.0000000715066462 +0.0000000023507884 +0.0000000243804764 +0.0000000009991073 +0.0000000003492023 +0.0000000001577626 +0.0000000004478994 +0.0000000002094515 +0.0000000000135901 +0.0000000000049275 +0.0000000000055093 +0.0000001961656696 +0.0000000410715063 +0.0000001621443057 +0.0000001419516927 +0.0000002214750997 +0.0000000017924196 +0.0000000017150816 +0.0000000006505141 +0.0000000002489183 +0.0000000000658190 +0.0000000000038076 +0.0000000027318910 +-0.0000000000098795 +0.0000000172119072 +0.0000000434876361 +0.0000019247825535 +0.0000000605653111 +0.0000000291071997 +0.0000000005625457 +0.0000000021752560 +0.0000000001594557 +0.0000000000833619 +0.0000000000305520 +0.0000000000029109 +0.0000000000030407 +-0.0000000000017952 +0.0000001115255196 +0.0000015899915914 +0.0000000738229256 +0.0000000163743449 +0.0000000175873070 +0.0000000068976371 +0.0000000067824077 +0.0000000001207096 +0.0000000000908307 +0.0000000001555739 +0.0000000000273388 +0.0000000000092699 +-0.0000000000153637 +0.0000000527583131 +0.0000051628493327 +0.0000000046944942 +0.0000000194256091 +0.0000000026299690 +0.0000000066649795 +0.0000000019145379 +0.0000000000560895 +0.0000000002071468 +-0.0000000000197429 +0.0000000000105404 +0.0000000000097482 +0.0015643577662333 +0.0000000089226730 +0.0000004178669743 +0.0000000137374210 +0.0000001424734247 +0.0000000058385335 +0.0000000020406509 +0.0000000009219250 +0.0000000016886046 +0.0000000007896435 +0.0000000000512354 +0.0000000000185771 +0.0000000000207704 +0.0000007395550827 +0.0000001548417790 +0.0000006112927182 +0.0000005351654861 +0.0000008349730279 +0.0000000067575178 +0.0000000064659497 +0.0000000024524729 +0.0000000009384353 +0.0000000002481413 +0.0000000000143550 +0.0000000102993752 +-0.0000000000372463 +0.0000000648898122 +0.0000001639507177 +0.0000072565344538 +0.0000002283344673 +0.0000001097357065 +0.0000000021208275 +0.0000000082008319 +0.0000000006011567 +0.0000000003142788 +0.0000000001151826 +0.0000000000109744 +0.0000000000114636 +-0.0000000000067679 +0.0000004204571830 +0.0000059943534727 +0.0000002783163950 +0.0000000617321578 +0.0000000663050920 +0.0000000260044617 +0.0000000255700410 +0.0000000004550817 +0.0000000003424366 +0.0000000005865221 +0.0000000001030686 +0.0000000000349481 +-0.0000000000579219 +0.0000001989016668 +0.0000194642185494 +0.0000000176984949 +0.0000000732355875 +0.0000000099151242 +0.0000000251273304 +0.0000000072179107 +0.0000000002114606 +0.0000000007809547 +-0.0000000000744319 +0.0000000000397377 +0.0000000000367511 +0.0058977125787165 +0.0000000336389551 +0.0000015753808774 +0.0000000517908144 +0.0000005371324642 +0.0000000220115845 +0.0000000076933636 +0.0000000034757068 +0.0000000002419135 +0.0000000001131262 +0.0000000000073401 +0.0000000000026614 +0.0000000000029756 +0.0000001059504406 +0.0000000221830058 +0.0000000875752656 +0.0000000766690949 +0.0000001196202141 +0.0000000009680982 +0.0000000009263274 +0.0000000003513471 +0.0000000001344425 +0.0000000000355493 +0.0000000000020565 +0.0000000014755133 +-0.0000000000053360 +0.0000000092962706 +0.0000000234879743 +0.0000010395876736 +0.0000000327117451 +0.0000000157209979 +0.0000000003038348 +0.0000000011748707 +0.0000000000861231 +0.0000000000450243 +0.0000000000165013 +0.0000000000015722 +0.0000000000016423 +-0.0000000000009696 +0.0000000602357077 +0.0000008587655016 +0.0000000398722673 +0.0000000088438971 +0.0000000094990248 +0.0000000037254614 +0.0000000036632251 +0.0000000000651961 +0.0000000000490583 +0.0000000000840265 +0.0000000000147659 +0.0000000000050067 +-0.0000000000082980 +0.0000000284951312 +0.0000027884907826 +0.0000000025355287 +0.0000000104919061 +0.0000000014204645 +0.0000000035998013 +0.0000000010340551 +0.0000000000302943 +0.0000000001118814 +-0.0000000000106633 +0.0000000000056929 +0.0000000000052650 +0.0008449204946245 +0.0000000048191976 +0.0000002256928551 +0.0000000074196754 +0.0000000769508722 +0.0000000031534322 +0.0000000011021696 +0.0000000004979380 +0.0000000007808299 +0.0000000003651401 +0.0000000000236918 +0.0000000000085902 +0.0000000000096045 +0.0000003419786521 +0.0000000716005935 +0.0000002826686811 +0.0000002474665861 +0.0000003861009818 +0.0000000031247528 +0.0000000029899284 +0.0000000011340512 +0.0000000004339431 +0.0000000001147434 +0.0000000000066379 +0.0000000047625478 +-0.0000000000172231 +0.0000000300057846 +0.0000000758126700 +0.0000033555034904 +0.0000001055844455 +0.0000000507430333 +0.0000000009806947 +0.0000000037921576 +0.0000000002779817 +0.0000000001453261 +0.0000000000532617 +0.0000000000050747 +0.0000000000053009 +-0.0000000000031296 +0.0000001944241667 +0.0000027718569837 +0.0000001286966526 +0.0000000285456493 +0.0000000306602253 +0.0000000120247577 +0.0000000118238766 +0.0000000002104350 +0.0000000001583465 +0.0000000002712145 +0.0000000000476601 +0.0000000000161604 +-0.0000000000267838 +0.0000000919743849 +0.0000090004752580 +0.0000000081839846 +0.0000000338649656 +0.0000000045848658 +0.0000000116191622 +0.0000000033376437 +0.0000000000977818 +0.0000000003611223 +-0.0000000000344181 +0.0000000000183752 +0.0000000000169941 +0.0027271691390361 +0.0000000155550341 +0.0000007284739726 +0.0000000239486592 +0.0000002483761338 +0.0000000101784060 +0.0000000035574985 +0.0000000016072062 +0.0000002850268226 +0.0000001332873008 +0.0000000086482374 +0.0000000031357010 +0.0000000035059282 +0.0001248326985218 +0.0000261364130579 +0.0001031827397061 +0.0000903328948896 +0.0001409386680492 +0.0000011406306174 +0.0000010914154658 +0.0000004139634584 +0.0000001584025307 +0.0000000418848395 +0.0000000024230476 +0.0000017384760553 +-0.0000000062869704 +0.0000109530318400 +0.0000276739501795 +0.0012248606955493 +0.0000385415614679 +0.0000185227598642 +0.0000003579836216 +0.0000013842536003 +0.0000001014718139 +0.0000000530484675 +0.0000000194421599 +0.0000000018524136 +0.0000000019349989 +-0.0000000011423899 +0.0000709707849956 +0.0010118128283073 +0.0000469782160099 +0.0000104200372442 +0.0000111919203665 +0.0000043894050161 +0.0000043160770809 +0.0000000768152078 +0.0000000578013377 +0.0000000990015724 +0.0000000173973926 +0.0000000058990391 +-0.0000000097768928 +0.0000335734717181 +0.0032854495669690 +0.0000029874051417 +0.0000123617508003 +0.0000016736165981 +0.0000042413500757 +0.0000012183421566 +0.0000000356933375 +0.0000001318206931 +-0.0000000125636751 +0.0000000067074954 +0.0000000062033702 +0.9955003941554625 +0.0000056780646004 +0.0002659153465885 +0.0000087419938490 +0.0000906648891689 +0.0000037154299774 +0.0000012985959124 +0.0000005866794735 +%% +-0.0159766908980595 +-0.0159766876717542 +-0.0159766871112941 +-0.0159766876713955 +-0.0159766875753671 +-0.0159767089416718 +-0.0159766877463526 +-0.0160073250551973 +-0.0159766877859469 +-0.0159767651699631 +-0.0159766882632052 +-0.0159766885463628 +-0.0159766870974960 +-0.0159766877904846 +-0.0159766906525718 +-0.0159766877743875 +-0.0159766869394323 +-0.0159766871146967 +-0.0159766874968795 +-0.0159766870993232 +-0.0159766905137102 +-0.0159731495537249 +-0.0159766882173568 +-0.0159766944097071 +-0.0159766906980414 +-0.0159766877812873 +-0.0155842566281400 +-0.0159766869507633 +-0.0159766869351870 +-0.0159766873750173 +-0.0159766897088521 +-0.0159766869387253 +-0.0159766881653938 +-0.0159766897209257 +-0.0159766877423484 +-0.0159766878374504 +-0.0159766869182186 +-0.0160329173160141 +-0.0159766869951602 +-0.0159766869277664 +-0.0159766898732550 +-0.0159766991435967 +-0.0156370520787302 +-0.0159767021332008 +-0.0159766869554105 +-0.0159766869971443 +-0.0159766869084713 +-0.0159766873148399 +-0.0159766876933821 +-0.0162183547488910 +-0.0159766877861922 +-0.0159768097115938 +-0.0159766869400880 +-0.0159766869770068 +-0.0159766904997772 +-0.0159766877919417 +-0.0159766897214034 +-0.0159766872393662 +-0.0159767053335342 +-0.0159766894612017 +-0.0159766877696968 +-0.0159766904262806 +-0.0159766877936930 +-0.0159766909348899 +-0.0159770092363493 +-0.0159770060099797 +-0.0159770054495085 +-0.0159770060096210 +-0.0159770059135907 +-0.0159770272803211 +-0.0159770060845796 +-0.0160076440039583 +-0.0159770061241747 +-0.0159770835097330 +-0.0159770066014425 +-0.0159770068846057 +-0.0159770054357100 +-0.0159770061287124 +-0.0159770089908567 +-0.0159770061126150 +-0.0159770052776432 +-0.0159770054529111 +-0.0159770058351015 +-0.0159770054375373 +-0.0159770088519923 +-0.0159734678214435 +-0.0159770065555932 +-0.0159770127480669 +-0.0159770090363272 +-0.0159770061195150 +-0.0155845671461224 +-0.0159770052889745 +-0.0159770052733978 +-0.0159770057132369 +-0.0159770080471182 +-0.0159770052769362 +-0.0159770065036291 +-0.0159770080591920 +-0.0159770060805754 +-0.0159770061756792 +-0.0159770052564291 +-0.0160332367747729 +-0.0159770053333722 +-0.0159770052659771 +-0.0159770082115244 +-0.0159770174820508 +-0.0156373636487996 +-0.0159770204717145 +-0.0159770052936217 +-0.0159770053353563 +-0.0159770052466816 +-0.0159770056530583 +-0.0159770060316080 +-0.0162186779030259 +-0.0159770061244200 +-0.0159771280522513 +-0.0159770052782989 +-0.0159770053152184 +-0.0159770088380591 +-0.0159770061301696 +-0.0159770080596697 +-0.0159770055775831 +-0.0159770236721116 +-0.0159770077994628 +-0.0159770061079242 +-0.0159770087645610 +-0.0159770061319209 +-0.0159770092731804 +-0.0159772706058828 +-0.0159772673794604 +-0.0159772668189800 +-0.0159772673791017 +-0.0159772672830699 +-0.0159772886501502 +-0.0159772674540615 +-0.0160079058751740 +-0.0159772674936573 +-0.0159773448804829 +-0.0159772679709329 +-0.0159772682541007 +-0.0159772668051813 +-0.0159772674981951 +-0.0159772703603862 +-0.0159772674820974 +-0.0159772666471119 +-0.0159772668223827 +-0.0159772672045793 +-0.0159772668070087 +-0.0159772702215196 +-0.0159737291329823 +-0.0159772679250829 +-0.0159772741176579 +-0.0159772704058575 +-0.0159772674889975 +-0.0155848220892948 +-0.0159772666584434 +-0.0159772666428665 +-0.0159772670827127 +-0.0159772694166323 +-0.0159772666464049 +-0.0159772678731179 +-0.0159772694287063 +-0.0159772674500572 +-0.0159772675451626 +-0.0159772666258974 +-0.0160334990651052 +-0.0159772667028418 +-0.0159772666354456 +-0.0159772695810411 +-0.0159772788517194 +-0.0156376194564929 +-0.0159772818414320 +-0.0159772666630907 +-0.0159772667048260 +-0.0159772666161498 +-0.0159772670225332 +-0.0159772674010891 +-0.0162189432303109 +-0.0159772674939026 +-0.0159773894237306 +-0.0159772666477676 +-0.0159772666846877 +-0.0159772702075861 +-0.0159772674996523 +-0.0159772694291840 +-0.0159772669470567 +-0.0159772850418816 +-0.0159772691689728 +-0.0159772674774065 +-0.0159772701340868 +-0.0159772675014036 +-0.0159772706427145 +-0.0159772821689778 +-0.0159772789425530 +-0.0159772783820722 +-0.0159772789421943 +-0.0159772788461624 +-0.0159773002132582 +-0.0159772790171542 +-0.0160079174604442 +-0.0159772790567500 +-0.0159773564436316 +-0.0159772795340260 +-0.0159772798171940 +-0.0159772783682736 +-0.0159772790612878 +-0.0159772819234810 +-0.0159772790451901 +-0.0159772782102041 +-0.0159772783854749 +-0.0159772787676718 +-0.0159772783701009 +-0.0159772817846143 +-0.0159737406935138 +-0.0159772794881759 +-0.0159772856807555 +-0.0159772819689523 +-0.0159772790520902 +-0.0155848333683193 +-0.0159772782215355 +-0.0159772782059586 +-0.0159772786458052 +-0.0159772809797264 +-0.0159772782094970 +-0.0159772794362109 +-0.0159772809918004 +-0.0159772790131499 +-0.0159772791082554 +-0.0159772781889895 +-0.0160335106689011 +-0.0159772782659340 +-0.0159772781985377 +-0.0159772811441354 +-0.0159772904148204 +-0.0156376307737341 +-0.0159772934045351 +-0.0159772782261828 +-0.0159772782679182 +-0.0159772781792419 +-0.0159772785856255 +-0.0159772789641817 +-0.0162189549683410 +-0.0159772790569953 +-0.0159774009869116 +-0.0159772782108598 +-0.0159772782477799 +-0.0159772817706808 +-0.0159772790627450 +-0.0159772809922781 +-0.0159772785101490 +-0.0159772966049870 +-0.0159772807320668 +-0.0159772790404993 +-0.0159772816971815 +-0.0159772790644963 +-0.0159772822058096 +-0.0159772813900014 +-0.0159772781635768 +-0.0159772776030960 +-0.0159772781632181 +-0.0159772780671862 +-0.0159772994342809 +-0.0159772782381780 +-0.0160079166799841 +-0.0159772782777737 +-0.0159773556646516 +-0.0159772787550497 +-0.0159772790382177 +-0.0159772775892973 +-0.0159772782823116 +-0.0159772811445046 +-0.0159772782662139 +-0.0159772774312278 +-0.0159772776064987 +-0.0159772779886956 +-0.0159772775911247 +-0.0159772810056379 +-0.0159737399147089 +-0.0159772787091996 +-0.0159772849017789 +-0.0159772811899759 +-0.0159772782731139 +-0.0155848326083574 +-0.0159772774425593 +-0.0159772774269824 +-0.0159772778668289 +-0.0159772802007501 +-0.0159772774305208 +-0.0159772786572346 +-0.0159772802128240 +-0.0159772782341737 +-0.0159772783292791 +-0.0159772774100133 +-0.0160335098872014 +-0.0159772774869578 +-0.0159772774195615 +-0.0159772803651590 +-0.0159772896358436 +-0.0156376300112134 +-0.0159772926255582 +-0.0159772774472066 +-0.0159772774889419 +-0.0159772774002657 +-0.0159772778066493 +-0.0159772781852055 +-0.0162189541776618 +-0.0159772782780191 +-0.0159774002079294 +-0.0159772774318836 +-0.0159772774688037 +-0.0159772809917044 +-0.0159772782837688 +-0.0159772802133018 +-0.0159772777311728 +-0.0159772958260099 +-0.0159772799530905 +-0.0159772782615230 +-0.0159772809182051 +-0.0159772782855201 +-0.0159772814268331 +-0.0157234901584507 +-0.0157234869832698 +-0.0157234864316909 +-0.0157234869829168 +-0.0157234868884101 +-0.0157235079161414 +-0.0157234870566861 +-0.0157536388828166 +-0.0157234870956530 +-0.0157235632534316 +-0.0157234875653487 +-0.0157234878440192 +-0.0157234864181114 +-0.0157234871001188 +-0.0157234899168530 +-0.0157234870842768 +-0.0157234862625524 +-0.0157234864350396 +-0.0157234868111662 +-0.0157234864199097 +-0.0157234897801918 +-0.0157200049307433 +-0.0157234875202268 +-0.0157234936144522 +-0.0157234899616021 +-0.0157234870910672 +-0.0153372744928160 +-0.0157234862737039 +-0.0157234862583744 +-0.0157234866912351 +-0.0157234889880876 +-0.0157234862618566 +-0.0157234874690871 +-0.0157234889999699 +-0.0157234870527454 +-0.0157234871463404 +-0.0157234862416748 +-0.0157788256057826 +-0.0157234863173972 +-0.0157234862510714 +-0.0157234891498854 +-0.0157234982733280 +-0.0153892333302411 +-0.0157235012155584 +-0.0157234862782774 +-0.0157234863193499 +-0.0157234862320820 +-0.0157234866320113 +-0.0157234870045550 +-0.0159613245876811 +-0.0157234870958945 +-0.0157236070892496 +-0.0157234862631977 +-0.0157234862995315 +-0.0157234897664796 +-0.0157234871015529 +-0.0157234890004400 +-0.0157234865577335 +-0.0157235043651788 +-0.0157234887443615 +-0.0157234870796604 +-0.0157234896941477 +-0.0157234871032763 +-0.0157234901946974 +-0.0159228291740265 +-0.0159228259585965 +-0.0159228254000257 +-0.0159228259582390 +-0.0159228258625344 +-0.0159228471568169 +-0.0159228260329435 +-0.0159533600688478 +-0.0159228260724043 +-0.0159229031955726 +-0.0159228265480539 +-0.0159228268302570 +-0.0159228253862740 +-0.0159228260769267 +-0.0159228289293663 +-0.0159228260608839 +-0.0159228252287432 +-0.0159228254034168 +-0.0159228257843113 +-0.0159228253880951 +-0.0159228287909728 +-0.0159192997669434 +-0.0159228265023601 +-0.0159228326738370 +-0.0159228289746827 +-0.0159228260677604 +-0.0155317177395531 +-0.0159228252400360 +-0.0159228252245122 +-0.0159228256628599 +-0.0159228279888278 +-0.0159228252280385 +-0.0159228264505721 +-0.0159228280008606 +-0.0159228260289528 +-0.0159228261237342 +-0.0159228252076010 +-0.0159788660627736 +-0.0159228252842832 +-0.0159228252171166 +-0.0159228281526765 +-0.0159228373917695 +-0.0155843352238734 +-0.0159228403712961 +-0.0159228252446675 +-0.0159228252862606 +-0.0159228251978865 +-0.0159228256028854 +-0.0159228259801515 +-0.0161636784220983 +-0.0159228260726488 +-0.0159229475870613 +-0.0159228252293967 +-0.0159228252661910 +-0.0159228287770868 +-0.0159228260783790 +-0.0159228280013367 +-0.0159228255276660 +-0.0159228435608418 +-0.0159228277420121 +-0.0159228260562090 +-0.0159228287038380 +-0.0159228260801243 +-0.0159228292107328 +-0.0157664036957137 +-0.0157664005118680 +-0.0157663999587839 +-0.0157664005115141 +-0.0157664004167495 +-0.0157664215018637 +-0.0157664005854847 +-0.0157966346934234 +-0.0157664006245579 +-0.0157664769901648 +-0.0157664010955353 +-0.0157664013749664 +-0.0157663999451673 +-0.0157664006290359 +-0.0157664034534567 +-0.0157664006131506 +-0.0157663997891839 +-0.0157663999621417 +-0.0157664003392948 +-0.0157663999469705 +-0.0157664033164226 +-0.0157629089571063 +-0.0157664010502903 +-0.0157664071611464 +-0.0157664034983279 +-0.0157664006199596 +-0.0153791340729621 +-0.0157663998003658 +-0.0157663997849944 +-0.0157664002190364 +-0.0157664025221568 +-0.0157663997884861 +-0.0157664009990111 +-0.0157664025340715 +-0.0157664005815333 +-0.0157664006753836 +-0.0157663997682493 +-0.0158218901487812 +-0.0157663998441783 +-0.0157663997776715 +-0.0157664026843961 +-0.0157664118327359 +-0.0154312347033524 +-0.0157664147829953 +-0.0157663998049517 +-0.0157663998461363 +-0.0157663997586303 +-0.0157664001596509 +-0.0157664005332113 +-0.0160048871526861 +-0.0157664006248000 +-0.0157665209456071 +-0.0157663997898309 +-0.0157663998262638 +-0.0157664033026730 +-0.0157664006304739 +-0.0157664025345429 +-0.0157664000851705 +-0.0157664179412109 +-0.0157664022777656 +-0.0157664006085217 +-0.0157664032301437 +-0.0157664006322021 +-0.0157664037320594 +-0.0157918312968791 +-0.0157918281078999 +-0.0157918275539240 +-0.0157918281075454 +-0.0157918280126280 +-0.0157918491317396 +-0.0157918281816353 +-0.0158221110387377 +-0.0157918282207715 +-0.0157919047095096 +-0.0157918286925083 +-0.0157918289723899 +-0.0157918275402854 +-0.0157918282252567 +-0.0157918310542316 +-0.0157918282093458 +-0.0157918273840505 +-0.0157918275572872 +-0.0157918279350483 +-0.0157918275420916 +-0.0157918309169765 +-0.0157883309233853 +-0.0157918286471903 +-0.0157918347678995 +-0.0157918310991751 +-0.0157918282161658 +-0.0154039372369541 +-0.0157918273952504 +-0.0157918273798543 +-0.0157918278145960 +-0.0157918301214301 +-0.0157918273833516 +-0.0157918285958284 +-0.0157918301333639 +-0.0157918281776774 +-0.0157918282716791 +-0.0157918273630822 +-0.0158474072156584 +-0.0157918274391336 +-0.0157918273725195 +-0.0157918302839309 +-0.0157918394470214 +-0.0154561218756842 +-0.0157918424020378 +-0.0157918273998438 +-0.0157918274410948 +-0.0157918273534476 +-0.0157918277551149 +-0.0157918281292776 +-0.0160306992793606 +-0.0157918282210140 +-0.0157919487358253 +-0.0157918273846986 +-0.0157918274211902 +-0.0157918309032047 +-0.0157918282266970 +-0.0157918301338361 +-0.0157918276805143 +-0.0157918455653456 +-0.0157918298766448 +-0.0157918282047094 +-0.0157918308305584 +-0.0157918282284279 +-0.0157918313332834 +-0.0156509794164375 +-0.0156509762559497 +-0.0156509757069233 +-0.0156509762555984 +-0.0156509761615290 +-0.0156509970919550 +-0.0156509763290263 +-0.0156809886263732 +-0.0156509763678129 +-0.0156510521731732 +-0.0156509768353350 +-0.0156509771127161 +-0.0156509756934066 +-0.0156509763722580 +-0.0156509791759578 +-0.0156509763564893 +-0.0156509755385675 +-0.0156509757102564 +-0.0156509760846425 +-0.0156509756951965 +-0.0156509790399290 +-0.0156475103165114 +-0.0156509767904220 +-0.0156509828564465 +-0.0156509792204998 +-0.0156509763632483 +-0.0152665506618079 +-0.0156509755496673 +-0.0156509755344087 +-0.0156509759652664 +-0.0156509782514903 +-0.0156509755378748 +-0.0156509767395189 +-0.0156509782633175 +-0.0156509763251039 +-0.0156509764182657 +-0.0156509755177865 +-0.0157060587937464 +-0.0156509755931584 +-0.0156509755271395 +-0.0156509784125393 +-0.0156509874937634 +-0.0153182691333969 +-0.0156509904223787 +-0.0156509755542196 +-0.0156509755951021 +-0.0156509755082380 +-0.0156509759063166 +-0.0156509762771364 +-0.0158877131426279 +-0.0156509763680532 +-0.0156510958061420 +-0.0156509755392098 +-0.0156509755753754 +-0.0156509790262803 +-0.0156509763736854 +-0.0156509782637855 +-0.0156509758323826 +-0.0156509935574244 +-0.0156509780088920 +-0.0156509763518943 +-0.0156509789542831 +-0.0156509763754009 +-0.0156509794525165 +-0.0159748964674722 +-0.0159748932415291 +-0.0159748926811320 +-0.0159748932411705 +-0.0159748931451529 +-0.0159749145090584 +-0.0159748933161191 +-0.0160055271848760 +-0.0159748933557090 +-0.0159749707310362 +-0.0159748938329138 +-0.0159748941160395 +-0.0159748926673354 +-0.0159748933602462 +-0.0159748962220120 +-0.0159748933441509 +-0.0159748925092895 +-0.0159748926845342 +-0.0159748930666740 +-0.0159748926691624 +-0.0159748960831660 +-0.0159713555207753 +-0.0159748937870705 +-0.0159748999787255 +-0.0159748962674765 +-0.0159748933510499 +-0.0155825062623853 +-0.0159748925206192 +-0.0159748925050446 +-0.0159748929448255 +-0.0159748952783983 +-0.0159748925085825 +-0.0159748937351133 +-0.0159748952904705 +-0.0159748933121154 +-0.0159748934072067 +-0.0159748924880781 +-0.0160311165720907 +-0.0159748925650111 +-0.0159748924976249 +-0.0159748954427827 +-0.0159749047120835 +-0.0156352957847245 +-0.0159749077013519 +-0.0159748925252658 +-0.0159748925669950 +-0.0159748924783319 +-0.0159748928846549 +-0.0159748932631546 +-0.0162165331834853 +-0.0159748933559543 +-0.0159750152676656 +-0.0159748925099451 +-0.0159748925468597 +-0.0159748960692346 +-0.0159748933617032 +-0.0159748952909482 +-0.0159748928091897 +-0.0159749109013260 +-0.0159748950307757 +-0.0159748933394607 +-0.0159748959957463 +-0.0159748933634542 +-0.0159748965042984 +-0.0159749989833526 +-0.0159749957573890 +-0.0159749951969884 +-0.0159749957570304 +-0.0159749956610122 +-0.0159750170250535 +-0.0159749958319796 +-0.0160056298954425 +-0.0159749958715697 +-0.0159750732473887 +-0.0159749963487775 +-0.0159749966319050 +-0.0159749951831917 +-0.0159749958761069 +-0.0159749987378909 +-0.0159749958600115 +-0.0159749950251448 +-0.0159749952003906 +-0.0159749955825329 +-0.0159749951850188 +-0.0159749985990440 +-0.0159714580141489 +-0.0159749963029339 +-0.0159750024946283 +-0.0159749987833557 +-0.0159749958669106 +-0.0155826062830253 +-0.0159749950364746 +-0.0159749950208999 +-0.0159749954606836 +-0.0159749977942712 +-0.0159749950244378 +-0.0159749962509764 +-0.0159749978063435 +-0.0159749958279759 +-0.0159749959230677 +-0.0159749950039333 +-0.0160312194452890 +-0.0159749950808667 +-0.0159749950134801 +-0.0159749979586567 +-0.0159750072280164 +-0.0156353961411869 +-0.0159750102173038 +-0.0159749950411212 +-0.0159749950828506 +-0.0159749949941870 +-0.0159749954005126 +-0.0159749957790147 +-0.0162166372347366 +-0.0159749958718150 +-0.0159751177843012 +-0.0159749950258004 +-0.0159749950627152 +-0.0159749985851126 +-0.0159749958775639 +-0.0159749978068212 +-0.0159749953250469 +-0.0159750134172982 +-0.0159749975466470 +-0.0159749958553213 +-0.0159749985116237 +-0.0159749958793149 +-0.0159749990201791 +-0.0159764204086399 +-0.0159764171823893 +-0.0159764166219388 +-0.0159764171820307 +-0.0159764170860040 +-0.0159764384519462 +-0.0159764172569865 +-0.0160070540462161 +-0.0159764172965801 +-0.0159764946792839 +-0.0159764177738304 +-0.0159764180569831 +-0.0159764166081409 +-0.0159764173011177 +-0.0159764201631564 +-0.0159764172850209 +-0.0159764164500799 +-0.0159764166253413 +-0.0159764170075176 +-0.0159764166099681 +-0.0159764200242971 +-0.0159728791243667 +-0.0159764177279828 +-0.0159764239202280 +-0.0159764202086253 +-0.0159764172919206 +-0.0155839927937716 +-0.0159764164614107 +-0.0159764164458347 +-0.0159764168856575 +-0.0159764192194528 +-0.0159764164493729 +-0.0159764176760206 +-0.0159764192315261 +-0.0159764172529824 +-0.0159764173480828 +-0.0159764164288665 +-0.0160326458729764 +-0.0159764165058068 +-0.0159764164384142 +-0.0159764193838529 +-0.0159764286540373 +-0.0156367873491146 +-0.0159764316435907 +-0.0159764164660578 +-0.0159764165077909 +-0.0159764164191194 +-0.0159764168254811 +-0.0159764172040169 +-0.0162180801605595 +-0.0159764172968255 +-0.0159765392201592 +-0.0159764164507356 +-0.0159764164876537 +-0.0159764200103645 +-0.0159764173025749 +-0.0159764192320038 +-0.0159764167500087 +-0.0159764348438698 +-0.0159764189718065 +-0.0159764172803303 +-0.0159764199368691 +-0.0159764173043261 +-0.0159764204454697 +-0.0159769565180675 +-0.0159769532917085 +-0.0159769527312392 +-0.0159769532913499 +-0.0159769531953199 +-0.0159769745619799 +-0.0159769533663082 +-0.0160075911847525 +-0.0159769534059032 +-0.0159770307912066 +-0.0159769538831695 +-0.0159769541663317 +-0.0159769527174408 +-0.0159769534104409 +-0.0159769562725758 +-0.0159769533943436 +-0.0159769525593745 +-0.0159769527346418 +-0.0159769531168309 +-0.0159769527192681 +-0.0159769561337118 +-0.0159734151148288 +-0.0159769538373203 +-0.0159769600297736 +-0.0159769563180461 +-0.0159769534012435 +-0.0155845157208297 +-0.0159769525707057 +-0.0159769525551291 +-0.0159769529949667 +-0.0159769553288404 +-0.0159769525586675 +-0.0159769537853564 +-0.0159769553409141 +-0.0159769533623040 +-0.0159769534574075 +-0.0159769525381604 +-0.0160331838712546 +-0.0159769526151033 +-0.0159769525477084 +-0.0159769554932460 +-0.0159769647637419 +-0.0156373120495444 +-0.0159769677533957 +-0.0159769525753529 +-0.0159769526170874 +-0.0159769525284130 +-0.0159769529347883 +-0.0159769533133368 +-0.0162186243886245 +-0.0159769534061485 +-0.0159770753335781 +-0.0159769525600302 +-0.0159769525969496 +-0.0159769561197787 +-0.0159769534118981 +-0.0159769553413918 +-0.0159769528593134 +-0.0159769709537823 +-0.0159769550811858 +-0.0159769533896528 +-0.0159769560462808 +-0.0159769534136494 +-0.0159769565548985 +-0.0159772009077656 +-0.0159771976813572 +-0.0159771971208793 +-0.0159771976809985 +-0.0159771975849671 +-0.0159772189519542 +-0.0159771977559581 +-0.0160078360433048 +-0.0159771977955536 +-0.0159772751820414 +-0.0159771982728272 +-0.0159771985559938 +-0.0159771971070807 +-0.0159771978000914 +-0.0159772006622701 +-0.0159771977839938 +-0.0159771969490120 +-0.0159771971242820 +-0.0159771975064769 +-0.0159771971089080 +-0.0159772005234040 +-0.0159736594503269 +-0.0159771982269773 +-0.0159772044195254 +-0.0159772007077411 +-0.0159771977908938 +-0.0155847541045125 +-0.0159771969603434 +-0.0159771969447665 +-0.0159771973846109 +-0.0159771997185203 +-0.0159771969483049 +-0.0159771981750126 +-0.0159771997305942 +-0.0159771977519538 +-0.0159771978470588 +-0.0159771969277976 +-0.0160334291214967 +-0.0159771970047416 +-0.0159771969373457 +-0.0159771998829284 +-0.0159772091535662 +-0.0156375512412180 +-0.0159772121432657 +-0.0159771969649907 +-0.0159771970067258 +-0.0159771969180500 +-0.0159771973244316 +-0.0159771977029858 +-0.0162188724770366 +-0.0159771977957989 +-0.0159773197250946 +-0.0159771969496677 +-0.0159771969865876 +-0.0159772005094706 +-0.0159771978015486 +-0.0159771997310719 +-0.0159771972489554 +-0.0159772153437013 +-0.0159771994708619 +-0.0159771977793030 +-0.0159772004359717 +-0.0159771978032999 +-0.0159772009445972 +-0.0159772836633895 +-0.0159772804369644 +-0.0159772798764836 +-0.0159772804366058 +-0.0159772803405738 +-0.0159773017076716 +-0.0159772805115657 +-0.0160079189577238 +-0.0159772805511614 +-0.0159773579380503 +-0.0159772810284375 +-0.0159772813116055 +-0.0159772798626849 +-0.0159772805556993 +-0.0159772834178927 +-0.0159772805396016 +-0.0159772797046154 +-0.0159772798798863 +-0.0159772802620832 +-0.0159772798645123 +-0.0159772832790260 +-0.0159737421875940 +-0.0159772809825874 +-0.0159772871751675 +-0.0159772834633640 +-0.0159772805465016 +-0.0155848348259950 +-0.0159772797159468 +-0.0159772797003699 +-0.0159772801402166 +-0.0159772824741380 +-0.0159772797039083 +-0.0159772809306224 +-0.0159772824862120 +-0.0159772805075614 +-0.0159772806026668 +-0.0159772796834009 +-0.0160335121685764 +-0.0159772797603453 +-0.0159772796929491 +-0.0159772826385470 +-0.0159772919092329 +-0.0156376322363518 +-0.0159772948989479 +-0.0159772797205942 +-0.0159772797623295 +-0.0159772796736532 +-0.0159772800800369 +-0.0159772804585932 +-0.0162189564853766 +-0.0159772805514068 +-0.0159774024813344 +-0.0159772797052711 +-0.0159772797421912 +-0.0159772832650925 +-0.0159772805571565 +-0.0159772824866897 +-0.0159772800045604 +-0.0159772980994001 +-0.0159772822264784 +-0.0159772805349107 +-0.0159772831915932 +-0.0159772805589078 +-0.0159772837002213 +-0.0159736432952889 +-0.0159736400695988 +-0.0159736395092457 +-0.0159736400692402 +-0.0159736399732302 +-0.0159736613354602 +-0.0159736401441830 +-0.0160042716103522 +-0.0159736401837698 +-0.0159737175530285 +-0.0159736406609371 +-0.0159736409440406 +-0.0159736394954502 +-0.0159736401883066 +-0.0159736430498480 +-0.0159736401722126 +-0.0159736393374166 +-0.0159736395126476 +-0.0159736398947575 +-0.0159736394972771 +-0.0159736429110129 +-0.0159701026263057 +-0.0159736406150975 +-0.0159736468062668 +-0.0159736430953089 +-0.0159736401791110 +-0.0155812838653749 +-0.0159736393487455 +-0.0159736393331721 +-0.0159736397729186 +-0.0159736421063083 +-0.0159736393367097 +-0.0159736405631443 +-0.0159736421183795 +-0.0159736401401797 +-0.0159736402352635 +-0.0159736393162069 +-0.0160298589906166 +-0.0159736393931339 +-0.0159736393257530 +-0.0159736422706798 +-0.0159736515392537 +-0.0156340692473943 +-0.0159736545282876 +-0.0159736393533917 +-0.0159736393951176 +-0.0159736393064615 +-0.0159736397127526 +-0.0159736400912226 +-0.0162152610600697 +-0.0159736401840151 +-0.0159737620861649 +-0.0159736393380722 +-0.0159736393749839 +-0.0159736428970826 +-0.0159736401897635 +-0.0159736421188572 +-0.0159736396372933 +-0.0159736577280107 +-0.0159736418587051 +-0.0159736401675228 +-0.0159736428236000 +-0.0159736401915144 +-0.0159736433321122 +-0.0159773019347608 +-0.0159772987083320 +-0.0159772981478505 +-0.0159772987079733 +-0.0159772986119413 +-0.0159773199790635 +-0.0159772987829333 +-0.0160079372641297 +-0.0159772988225291 +-0.0159773762095065 +-0.0159772992998057 +-0.0159772995829741 +-0.0159772981340518 +-0.0159772988270669 +-0.0159773016892637 +-0.0159772988109692 +-0.0159772979759821 +-0.0159772981512532 +-0.0159772985334506 +-0.0159772981358791 +-0.0159773015503967 +-0.0159737604549152 +-0.0159772992539556 +-0.0159773054465428 +-0.0159773017347350 +-0.0159772988178693 +-0.0155848526485596 +-0.0159772979873136 +-0.0159772979717366 +-0.0159772984115838 +-0.0159773007455079 +-0.0159772979752751 +-0.0159772992019905 +-0.0159773007575819 +-0.0159772987789290 +-0.0159772988740346 +-0.0159772979547676 +-0.0160335305042510 +-0.0159772980317121 +-0.0159772979643158 +-0.0159773009099171 +-0.0159773101806135 +-0.0156376501192958 +-0.0159773131703320 +-0.0159772979919609 +-0.0159772980336963 +-0.0159772979450199 +-0.0159772983514041 +-0.0159772987299607 +-0.0162189750331267 +-0.0159772988227744 +-0.0159774207528416 +-0.0159772979766378 +-0.0159772980135580 +-0.0159773015364633 +-0.0159772988285242 +-0.0159773007580596 +-0.0159772982759275 +-0.0159773163707878 +-0.0159773004978480 +-0.0159772988062783 +-0.0159773014629639 +-0.0159772988302755 +-0.0159773019715926 +-0.0159543763398674 +-0.0159543731180676 +-0.0159543725583903 +-0.0159543731177094 +-0.0159543730218152 +-0.0159543943582818 +-0.0159543731925619 +-0.0159849677165495 +-0.0159543732321009 +-0.0159544505080506 +-0.0159543737086927 +-0.0159543739914548 +-0.0159543725446113 +-0.0159543732366322 +-0.0159543760947225 +-0.0159543732205576 +-0.0159543723867684 +-0.0159543725617881 +-0.0159543729434371 +-0.0159543725464361 +-0.0159543759560548 +-0.0159508399410066 +-0.0159543736629083 +-0.0159543798466110 +-0.0159543761401286 +-0.0159543732274477 +-0.0155624901065957 +-0.0159543723980836 +-0.0159543723825290 +-0.0159543728217451 +-0.0159543751523208 +-0.0159543723860624 +-0.0159543736110178 +-0.0159543751643774 +-0.0159543731885633 +-0.0159543732835324 +-0.0159543723655843 +-0.0160105242379335 +-0.0159543724424185 +-0.0159543723751188 +-0.0159543753164941 +-0.0159543845738898 +-0.0156152118276232 +-0.0159543875593188 +-0.0159543724027243 +-0.0159543724443998 +-0.0159543723558506 +-0.0159543727616518 +-0.0159543731396653 +-0.0161957027097334 +-0.0159543732323458 +-0.0159544949874791 +-0.0159543723874232 +-0.0159543724242904 +-0.0159543759421413 +-0.0159543732380873 +-0.0159543751648545 +-0.0159543726862834 +-0.0159543907551830 +-0.0159543749050161 +-0.0159543732158734 +-0.0159543758687474 +-0.0159543732398361 +-0.0159543763766463 +-0.0159196483091053 +-0.0159196450943175 +-0.0159196445358583 +-0.0159196450939601 +-0.0159196449982746 +-0.0159196662883038 +-0.0159196451686497 +-0.0159501731056111 +-0.0159196452081026 +-0.0159197223158661 +-0.0159196456836572 +-0.0159196459658039 +-0.0159196445221094 +-0.0159196452126241 +-0.0159196480644940 +-0.0159196451965844 +-0.0159196443646100 +-0.0159196445392487 +-0.0159196449200671 +-0.0159196445239301 +-0.0159196479261281 +-0.0159161196069949 +-0.0159196456379725 +-0.0159196518082167 +-0.0159196481098012 +-0.0159196452034596 +-0.0155286149966923 +-0.0159196443759006 +-0.0159196443603798 +-0.0159196447986400 +-0.0159196471241433 +-0.0159196443639055 +-0.0159196455861949 +-0.0159196471361737 +-0.0159196451646598 +-0.0159196452594223 +-0.0159196443434720 +-0.0159756740049121 +-0.0159196444201389 +-0.0159196443529857 +-0.0159196472879592 +-0.0159196565252068 +-0.0155812219709467 +-0.0159196595041383 +-0.0159196443805311 +-0.0159196444221159 +-0.0159196443337595 +-0.0159196447386774 +-0.0159196451158682 +-0.0161604494495434 +-0.0159196452083470 +-0.0159197666984879 +-0.0159196443652633 +-0.0159196444020503 +-0.0159196479122449 +-0.0159196452140760 +-0.0159196471366497 +-0.0159196446634731 +-0.0159196626930469 +-0.0159196468773769 +-0.0159196451919105 +-0.0159196478390106 +-0.0159196452158210 +-0.0159196483458042 +-0.0077179447704959 +-0.0077179432120889 +-0.0077179429413691 +-0.0077179432119156 +-0.0077179431655309 +-0.0077179534861282 +-0.0077179432481223 +-0.0077327420266926 +-0.0077179432672476 +-0.0077179806461619 +-0.0077179434977784 +-0.0077179436345524 +-0.0077179429347041 +-0.0077179432694394 +-0.0077179446519176 +-0.0077179432616640 +-0.0077179428583544 +-0.0077179429430126 +-0.0077179431276189 +-0.0077179429355867 +-0.0077179445848430 +-0.0077162341897005 +-0.0077179434756321 +-0.0077179464667321 +-0.0077179446738808 +-0.0077179432649968 +-0.0075283858502035 +-0.0077179428638276 +-0.0077179428563038 +-0.0077179430687556 +-0.0077179441960713 +-0.0077179428580129 +-0.0077179434505323 +-0.0077179442019032 +-0.0077179432461881 +-0.0077179432921254 +-0.0077179428481075 +-0.0077451038807536 +-0.0077179428852727 +-0.0077179428527194 +-0.0077179442754831 +-0.0077179487533497 +-0.0075538879172160 +-0.0077179501974225 +-0.0077179428660723 +-0.0077179428862311 +-0.0077179428433992 +-0.0077179430396881 +-0.0077179432225358 +-0.0078346756480130 +-0.0077179432673661 +-0.0077180021611707 +-0.0077179428586711 +-0.0077179428765040 +-0.0077179445781130 +-0.0077179432701433 +-0.0077179442021339 +-0.0077179430032319 +-0.0077179517432843 +-0.0077179440764483 +-0.0077179432593982 +-0.0077179445426118 +-0.0077179432709892 +-0.0077179447882861 +-0.0158972176371468 +-0.0158972144268882 +-0.0158972138692157 +-0.0158972144265313 +-0.0158972143309806 +-0.0158972355910154 +-0.0158972145011156 +-0.0159276994289256 +-0.0158972145405130 +-0.0158972915396435 +-0.0158972150153976 +-0.0158972152971467 +-0.0158972138554862 +-0.0158972145450281 +-0.0158972173928801 +-0.0158972145290110 +-0.0158972136982087 +-0.0158972138726014 +-0.0158972142528832 +-0.0158972138573043 +-0.0158972172547091 +-0.0158936939064354 +-0.0158972149697772 +-0.0158972211313285 +-0.0158972174381235 +-0.0158972145358765 +-0.0155067352332910 +-0.0158972137094833 +-0.0158972136939845 +-0.0158972141316272 +-0.0158972164538542 +-0.0158972136975052 +-0.0158972149180726 +-0.0158972164658677 +-0.0158972144971313 +-0.0158972145917603 +-0.0158972136771005 +-0.0159531644014238 +-0.0158972137536594 +-0.0158972136866008 +-0.0158972166174394 +-0.0158972258416731 +-0.0155592680917285 +-0.0158972288164077 +-0.0158972137141074 +-0.0158972137556336 +-0.0158972136674017 +-0.0158972140717491 +-0.0158972144484085 +-0.0161376795270184 +-0.0158972145407571 +-0.0158973358597370 +-0.0158972136988611 +-0.0158972137355963 +-0.0158972172408455 +-0.0158972145464780 +-0.0158972164663430 +-0.0158972139966508 +-0.0158972320008236 +-0.0158972162074355 +-0.0158972145243436 +-0.0158972171677144 +-0.0158972145482205 +-0.0158972176737940 +-0.0159379296641191 +-0.0159379264456473 +-0.0159379258865481 +-0.0159379264452895 +-0.0159379263494943 +-0.0159379476639210 +-0.0159379265200646 +-0.0159684894406029 +-0.0159379265595627 +-0.0159380037556889 +-0.0159379270356623 +-0.0159379273181323 +-0.0159379258727834 +-0.0159379265640894 +-0.0159379294192274 +-0.0159379265480314 +-0.0159379257151035 +-0.0159379258899424 +-0.0159379262711972 +-0.0159379258746062 +-0.0159379292807030 +-0.0159343969182443 +-0.0159379269899252 +-0.0159379331672403 +-0.0159379294645866 +-0.0159379265549144 +-0.0155464481975323 +-0.0159379257264070 +-0.0159379257108685 +-0.0159379261496309 +-0.0159379284777991 +-0.0159379257143982 +-0.0159379269380883 +-0.0159379284898433 +-0.0159379265160702 +-0.0159379266109412 +-0.0159379256939413 +-0.0159940195622715 +-0.0159379257706961 +-0.0159379257034659 +-0.0159379286418028 +-0.0159379378896360 +-0.0155991154684576 +-0.0159379408719812 +-0.0159379257310429 +-0.0159379257726754 +-0.0159379256842177 +-0.0159379260895996 +-0.0159379264672227 +-0.0161790067338189 +-0.0159379265598075 +-0.0159380481891715 +-0.0159379257157576 +-0.0159379257525867 +-0.0159379292668038 +-0.0159379265655430 +-0.0159379284903199 +-0.0159379260143091 +-0.0159379440645441 +-0.0159379282307500 +-0.0159379265433521 +-0.0159379291934857 +-0.0159379265672900 +-0.0159379297008600 +-0.0159765378209877 +-0.0159765345947132 +-0.0159765340342585 +-0.0159765345943545 +-0.0159765344983271 +-0.0159765558644273 +-0.0159765346693109 +-0.0160071716851162 +-0.0159765347089048 +-0.0159766120921809 +-0.0159765351861586 +-0.0159765354693134 +-0.0159765340204605 +-0.0159765347134425 +-0.0159765375755023 +-0.0159765346973455 +-0.0159765338623983 +-0.0159765340376611 +-0.0159765344198402 +-0.0159765340222877 +-0.0159765374366420 +-0.0159729965105255 +-0.0159765351403107 +-0.0159765413326017 +-0.0159765376209715 +-0.0159765347042452 +-0.0155841073049574 +-0.0159765338737292 +-0.0159765338581531 +-0.0159765342979792 +-0.0159765366317917 +-0.0159765338616913 +-0.0159765350883481 +-0.0159765366438651 +-0.0159765346653068 +-0.0159765347604078 +-0.0159765338411848 +-0.0160327637011516 +-0.0159765339181257 +-0.0159765338507325 +-0.0159765367961930 +-0.0159765460664460 +-0.0156369022504893 +-0.0159765490560215 +-0.0159765338783763 +-0.0159765339201098 +-0.0159765338314376 +-0.0159765342378023 +-0.0159765346163409 +-0.0162181993604770 +-0.0159765347091502 +-0.0159766566333856 +-0.0159765338630540 +-0.0159765338999724 +-0.0159765374227092 +-0.0159765347148996 +-0.0159765366443428 +-0.0159765341623293 +-0.0159765522563243 +-0.0159765363841436 +-0.0159765346926549 +-0.0159765373492133 +-0.0159765347166508 +-0.0159765378578177 +-0.0159743828329127 +-0.0159743796070739 +-0.0159743790466949 +-0.0159743796067152 +-0.0159743795107008 +-0.0159744008739158 +-0.0159743796816615 +-0.0160050125602318 +-0.0159743797212501 +-0.0159744570940763 +-0.0159743801984394 +-0.0159743804815560 +-0.0159743790328987 +-0.0159743797257871 +-0.0159743825874605 +-0.0159743797096923 +-0.0159743788748579 +-0.0159743790500970 +-0.0159743794322244 +-0.0159743790347257 +-0.0159743824486189 +-0.0159708420006680 +-0.0159743801525977 +-0.0159743863440525 +-0.0159743826329235 +-0.0159743797165911 +-0.0155820053076633 +-0.0159743788861873 +-0.0159743788706132 +-0.0159743793103799 +-0.0159743816438773 +-0.0159743788741510 +-0.0159743801006421 +-0.0159743816559490 +-0.0159743796776579 +-0.0159743797727461 +-0.0159743788536472 +-0.0160306011202808 +-0.0159743789305777 +-0.0159743788631937 +-0.0159743818082564 +-0.0159743910772576 +-0.0156347931245082 +-0.0159743940664293 +-0.0159743788908338 +-0.0159743789325615 +-0.0159743788439014 +-0.0159743792502112 +-0.0159743796286987 +-0.0162160117371816 +-0.0159743797214954 +-0.0159745016292662 +-0.0159743788755135 +-0.0159743789124269 +-0.0159743824346880 +-0.0159743797272441 +-0.0159743816564267 +-0.0159743791747484 +-0.0159743972662999 +-0.0159743813962626 +-0.0159743797050023 +-0.0159743823612020 +-0.0159743797289950 +-0.0159743828697377 +-0.0159770759679930 +-0.0159770727416098 +-0.0159770721811363 +-0.0159770727412512 +-0.0159770726452205 +-0.0159770940120402 +-0.0159770728162101 +-0.0160077108636570 +-0.0159770728558053 +-0.0159771502416872 +-0.0159770733330752 +-0.0159770736162395 +-0.0159770721673378 +-0.0159770728603431 +-0.0159770757224993 +-0.0159770728442456 +-0.0159770720092703 +-0.0159770721845390 +-0.0159770725667309 +-0.0159770721691651 +-0.0159770755836344 +-0.0159735345382839 +-0.0159770732872257 +-0.0159770794797252 +-0.0159770757679700 +-0.0159770728511456 +-0.0155846322374019 +-0.0159770720206016 +-0.0159770720050249 +-0.0159770724448658 +-0.0159770747787569 +-0.0159770720085633 +-0.0159770732352614 +-0.0159770747908307 +-0.0159770728122058 +-0.0159770729073101 +-0.0159770719880561 +-0.0160333037414515 +-0.0159770720649995 +-0.0159770719976042 +-0.0159770749431638 +-0.0159770842137290 +-0.0156374289607559 +-0.0159770872034051 +-0.0159770720252489 +-0.0159770720669837 +-0.0159770719783086 +-0.0159770723846870 +-0.0159770727632383 +-0.0162187456448820 +-0.0159770728560507 +-0.0159771947843916 +-0.0159770720099261 +-0.0159770720468457 +-0.0159770755697011 +-0.0159770728618003 +-0.0159770747913085 +-0.0159770723092114 +-0.0159770904038156 +-0.0159770745311005 +-0.0159770728395548 +-0.0159770754962027 +-0.0159770728635516 +-0.0159770760048242 +-0.0159771774881299 +-0.0159771742617263 +-0.0159771737012492 +-0.0159771742613676 +-0.0159771741653363 +-0.0159771955322920 +-0.0159771743363270 +-0.0160078125787656 +-0.0159771743759225 +-0.0159772517622968 +-0.0159771748531954 +-0.0159771751363615 +-0.0159771736874506 +-0.0159771743804603 +-0.0159771772426347 +-0.0159771743643627 +-0.0159771735293821 +-0.0159771737046518 +-0.0159771740868462 +-0.0159771736892779 +-0.0159771771037689 +-0.0159736360358821 +-0.0159771748073456 +-0.0159771809998845 +-0.0159771772881057 +-0.0159771743712627 +-0.0155847312601080 +-0.0159771735407135 +-0.0159771735251367 +-0.0159771739649804 +-0.0159771762988863 +-0.0159771735286750 +-0.0159771747553809 +-0.0159771763109602 +-0.0159771743323227 +-0.0159771744274276 +-0.0159771735081677 +-0.0160334056194445 +-0.0159771735851117 +-0.0159771735177158 +-0.0159771764632942 +-0.0159771857339184 +-0.0156375283194256 +-0.0159771887236136 +-0.0159771735453607 +-0.0159771735870958 +-0.0159771734984201 +-0.0159771739048011 +-0.0159771742833549 +-0.0162188487031709 +-0.0159771743761678 +-0.0159772963052848 +-0.0159771735300378 +-0.0159771735669577 +-0.0159771770898355 +-0.0159771743819175 +-0.0159771763114379 +-0.0159771738293251 +-0.0159771919240445 +-0.0159771760512283 +-0.0159771743596719 +-0.0159771770163367 +-0.0159771743836688 +-0.0159771775249614 +-0.0159772479737893 +-0.0159772447473714 +-0.0159772441868918 +-0.0159772447470127 +-0.0159772446509810 +-0.0159772660180310 +-0.0159772448219724 +-0.0160078831996373 +-0.0159772448615681 +-0.0159773222482840 +-0.0159772453388431 +-0.0159772456220105 +-0.0159772441730932 +-0.0159772448661059 +-0.0159772477282930 +-0.0159772448500083 +-0.0159772440150240 +-0.0159772441902945 +-0.0159772445724906 +-0.0159772441749205 +-0.0159772475894265 +-0.0159737065059108 +-0.0159772452929931 +-0.0159772514855594 +-0.0159772477737642 +-0.0159772448569083 +-0.0155848000136904 +-0.0159772440263554 +-0.0159772440107785 +-0.0159772444506242 +-0.0159772467845404 +-0.0159772440143169 +-0.0159772452410282 +-0.0159772467966144 +-0.0159772448179681 +-0.0159772449130734 +-0.0159772439938095 +-0.0160334763532752 +-0.0159772440707538 +-0.0159772440033577 +-0.0159772469489490 +-0.0159772562196142 +-0.0156375973060256 +-0.0159772592093225 +-0.0159772440310027 +-0.0159772440727380 +-0.0159772439840619 +-0.0159772443904447 +-0.0159772447690001 +-0.0162189202554959 +-0.0159772448618134 +-0.0159773667914686 +-0.0159772440156797 +-0.0159772440525997 +-0.0159772475754931 +-0.0159772448675631 +-0.0159772467970921 +-0.0159772443149683 +-0.0159772624097676 +-0.0159772465368813 +-0.0159772448453174 +-0.0159772475019940 +-0.0159772448693144 +-0.0159772480106209 +-0.0159772848597227 +-0.0159772816332973 +-0.0159772810728165 +-0.0159772816329387 +-0.0159772815369067 +-0.0159773029040061 +-0.0159772817078986 +-0.0160079201563538 +-0.0159772817474943 +-0.0159773591343890 +-0.0159772822247704 +-0.0159772825079385 +-0.0159772810590178 +-0.0159772817520322 +-0.0159772846142259 +-0.0159772817359345 +-0.0159772809009483 +-0.0159772810762192 +-0.0159772814584161 +-0.0159772810608451 +-0.0159772844753591 +-0.0159737433836616 +-0.0159772821789203 +-0.0159772883715009 +-0.0159772846596972 +-0.0159772817428345 +-0.0155848359929062 +-0.0159772809122797 +-0.0159772808967028 +-0.0159772813365494 +-0.0159772836704711 +-0.0159772809002412 +-0.0159772821269553 +-0.0159772836825451 +-0.0159772817038943 +-0.0159772817989998 +-0.0159772808797337 +-0.0160335133691254 +-0.0159772809566782 +-0.0159772808892819 +-0.0159772838348801 +-0.0159772931055666 +-0.0156376334072211 +-0.0159772960952819 +-0.0159772809169270 +-0.0159772809586624 +-0.0159772808699861 +-0.0159772812763698 +-0.0159772816549261 +-0.0162189576998300 +-0.0159772817477397 +-0.0159774036776765 +-0.0159772809016040 +-0.0159772809385241 +-0.0159772844614256 +-0.0159772817534894 +-0.0159772836830228 +-0.0159772812008933 +-0.0159772992957343 +-0.0159772834228114 +-0.0159772817312436 +-0.0159772843879263 +-0.0159772817552407 +-0.0159772848965544 +-0.0159772846862048 +-0.0159772814597795 +-0.0159772808992986 +-0.0159772814594208 +-0.0159772813633889 +-0.0159773027304880 +-0.0159772815343807 +-0.0160079199825044 +-0.0159772815739765 +-0.0159773589608703 +-0.0159772820512526 +-0.0159772823344206 +-0.0159772808855000 +-0.0159772815785143 +-0.0159772844407080 +-0.0159772815624166 +-0.0159772807274304 +-0.0159772809027013 +-0.0159772812848983 +-0.0159772808873273 +-0.0159772843018412 +-0.0159737432101821 +-0.0159772820054025 +-0.0159772881979830 +-0.0159772844861793 +-0.0159772815693167 +-0.0155848358236362 +-0.0159772807387619 +-0.0159772807231849 +-0.0159772811630316 +-0.0159772834969532 +-0.0159772807267234 +-0.0159772819534375 +-0.0159772835090272 +-0.0159772815303764 +-0.0159772816254819 +-0.0159772807062159 +-0.0160335131949990 +-0.0159772807831604 +-0.0159772807157641 +-0.0159772836613622 +-0.0159772929320487 +-0.0156376332373795 +-0.0159772959217639 +-0.0159772807434092 +-0.0159772807851445 +-0.0159772806964682 +-0.0159772811028520 +-0.0159772814814082 +-0.0162189575236970 +-0.0159772815742218 +-0.0159774035041573 +-0.0159772807280861 +-0.0159772807650063 +-0.0159772842879078 +-0.0159772815799715 +-0.0159772835095049 +-0.0159772810273754 +-0.0159772991222163 +-0.0159772832492936 +-0.0159772815577258 +-0.0159772842144084 +-0.0159772815817228 +-0.0159772847230366 +-0.0159772911424547 +-0.0159772879160281 +-0.0159772873555470 +-0.0159772879156694 +-0.0159772878196375 +-0.0159773091867452 +-0.0159772879906294 +-0.0160079264511311 +-0.0159772880302251 +-0.0159773654171502 +-0.0159772885075014 +-0.0159772887906696 +-0.0159772873417483 +-0.0159772880347630 +-0.0159772908969578 +-0.0159772880186653 +-0.0159772871836787 +-0.0159772873589497 +-0.0159772877411468 +-0.0159772873435757 +-0.0159772907580910 +-0.0159737496650012 +-0.0159772884616513 +-0.0159772946542343 +-0.0159772909424291 +-0.0159772880255653 +-0.0155848421213333 +-0.0159772871950102 +-0.0159772871794333 +-0.0159772876192801 +-0.0159772899532027 +-0.0159772871829717 +-0.0159772884096863 +-0.0159772899652766 +-0.0159772879866251 +-0.0159772880817306 +-0.0159772871624642 +-0.0160335196739654 +-0.0159772872394087 +-0.0159772871720124 +-0.0159772901176117 +-0.0159772993883019 +-0.0156376395564074 +-0.0159773023780183 +-0.0159772871996575 +-0.0159772872413929 +-0.0159772871527165 +-0.0159772875591004 +-0.0159772879376569 +-0.0162189640775832 +-0.0159772880304705 +-0.0159774099604553 +-0.0159772871843345 +-0.0159772872212546 +-0.0159772907441575 +-0.0159772880362202 +-0.0159772899657544 +-0.0159772874836239 +-0.0159773055784720 +-0.0159772897055429 +-0.0159772880139744 +-0.0159772906706581 +-0.0159772880379715 +-0.0159772911792865 +-0.0158310806354878 +-0.0158310774385830 +-0.0158310768832303 +-0.0158310774382276 +-0.0158310773430743 +-0.0158310985146730 +-0.0158310775125017 +-0.0158614356310731 +-0.0158310775517351 +-0.0158311542305695 +-0.0158310780246443 +-0.0158310783052215 +-0.0158310768695579 +-0.0158310775562315 +-0.0158310803922372 +-0.0158310775402810 +-0.0158310767129346 +-0.0158310768866019 +-0.0158310772653019 +-0.0158310768713685 +-0.0158310802546410 +-0.0158275715625732 +-0.0158310779792138 +-0.0158310841151346 +-0.0158310804372924 +-0.0158310775471180 +-0.0154422225463122 +-0.0158310767241624 +-0.0158310767087280 +-0.0158310771445502 +-0.0158310794571174 +-0.0158310767122340 +-0.0158310779277242 +-0.0158310794690809 +-0.0158310775085340 +-0.0158310776027693 +-0.0158310766919142 +-0.0158867946761254 +-0.0158310767681547 +-0.0158310767013750 +-0.0158310796200221 +-0.0158310888058854 +-0.0154945368792922 +-0.0158310917682459 +-0.0158310767287672 +-0.0158310767701207 +-0.0158310766822557 +-0.0158310770849212 +-0.0158310774600138 +-0.0160705422715051 +-0.0158310775519782 +-0.0158311983663030 +-0.0158310767135844 +-0.0158310767501667 +-0.0158310802408350 +-0.0158310775576753 +-0.0158310794695543 +-0.0158310770101353 +-0.0158310949394155 +-0.0158310792117237 +-0.0158310775356331 +-0.0158310801680081 +-0.0158310775594106 +-0.0158310806719825 +-0.0142415912685602 +-0.0142415883925941 +-0.0142415878929936 +-0.0142415883922744 +-0.0142415883066736 +-0.0142416073528456 +-0.0142415884590921 +-0.0142688989135277 +-0.0142415884943869 +-0.0142416574753973 +-0.0142415889198205 +-0.0142415891722304 +-0.0142415878806937 +-0.0142415884984318 +-0.0142415910497296 +-0.0142415884840827 +-0.0142415877397939 +-0.0142415878960267 +-0.0142415882367088 +-0.0142415878823226 +-0.0142415909259467 +-0.0142384344731333 +-0.0142415888789507 +-0.0142415943988836 +-0.0142415910902617 +-0.0142415884902332 +-0.0138917710589210 +-0.0142415877498945 +-0.0142415877360096 +-0.0142415881280794 +-0.0142415902084869 +-0.0142415877391637 +-0.0142415888326302 +-0.0142415902192494 +-0.0142415884555227 +-0.0142415885402977 +-0.0142415877208838 +-0.0142917121559344 +-0.0142415877894704 +-0.0142415877293948 +-0.0142415903550375 +-0.0142415986187278 +-0.0139388334735602 +-0.0142416012836955 +-0.0142415877540370 +-0.0142415877912391 +-0.0142415877121949 +-0.0142415880744366 +-0.0142415884118735 +-0.0144570133433608 +-0.0142415884946055 +-0.0142416971803239 +-0.0142415877403784 +-0.0142415877732882 +-0.0142415909135267 +-0.0142415884997307 +-0.0142415902196752 +-0.0142415880071585 +-0.0142416041365099 +-0.0142415899877284 +-0.0142415884799013 +-0.0142415908480110 +-0.0142415885012918 +-0.0142415913013912 +-0.0158754931201038 +-0.0158754899142493 +-0.0158754893573420 +-0.0158754899138930 +-0.0158754898184733 +-0.0158755110493410 +-0.0158754899883749 +-0.0159059330926390 +-0.0158754900277182 +-0.0158755669212121 +-0.0158754905019513 +-0.0158754907833140 +-0.0158754893436313 +-0.0158754900322271 +-0.0158754928761722 +-0.0158754900162321 +-0.0158754891865695 +-0.0158754893607230 +-0.0158754897404831 +-0.0158754893454469 +-0.0158754927381908 +-0.0158719742236605 +-0.0158754904563936 +-0.0158754966094917 +-0.0158754929213535 +-0.0158754900230881 +-0.0154855463268938 +-0.0158754891978287 +-0.0158754891823511 +-0.0158754896193934 +-0.0158754919384345 +-0.0158754891858670 +-0.0158754904047599 +-0.0158754919504315 +-0.0158754899843962 +-0.0158754900788953 +-0.0158754891654903 +-0.0159313631276447 +-0.0158754892419442 +-0.0158754891749776 +-0.0158754921017953 +-0.0158755013133741 +-0.0155380071391973 +-0.0158755042840276 +-0.0158754892024464 +-0.0158754892439157 +-0.0158754891558048 +-0.0158754895595975 +-0.0158754899357402 +-0.0161156250710746 +-0.0158754900279620 +-0.0158756111805020 +-0.0158754891872211 +-0.0158754892239058 +-0.0158754927243461 +-0.0158754900336751 +-0.0158754919509062 +-0.0158754894846022 +-0.0158755074640747 +-0.0158754916923539 +-0.0158754900115711 +-0.0158754926513154 +-0.0158754900354152 +-0.0158754931567007 +-0.0159554470754596 +-0.0159554438534444 +-0.0159554432937296 +-0.0159554438530862 +-0.0159554437571856 +-0.0159554650950787 +-0.0159554439279436 +-0.0159860404973880 +-0.0159554439674853 +-0.0159555212486016 +-0.0159554444441090 +-0.0159554447268900 +-0.0159554432799498 +-0.0159554439720169 +-0.0159554468302984 +-0.0159554439559412 +-0.0159554431220963 +-0.0159554432971277 +-0.0159554436788022 +-0.0159554432817746 +-0.0159554466916214 +-0.0159519104401619 +-0.0159554443983216 +-0.0159554505824377 +-0.0159554468757075 +-0.0159554439628319 +-0.0155635346367009 +-0.0159554431334123 +-0.0159554431178567 +-0.0159554435571021 +-0.0159554458878336 +-0.0159554431213902 +-0.0159554443464276 +-0.0159554458998911 +-0.0159554439239448 +-0.0159554440189203 +-0.0159554431009108 +-0.0160115987273539 +-0.0159554431777501 +-0.0159554431104460 +-0.0159554460520178 +-0.0159554553100325 +-0.0156162598837753 +-0.0159554582956612 +-0.0159554431380533 +-0.0159554431797316 +-0.0159554430911765 +-0.0159554434970047 +-0.0159554438750436 +-0.0161967895778049 +-0.0159554439677303 +-0.0159555657310039 +-0.0159554431227512 +-0.0159554431596208 +-0.0159554466777070 +-0.0159554439734722 +-0.0159554459003681 +-0.0159554434216314 +-0.0159554614917390 +-0.0159554456405124 +-0.0159554439512568 +-0.0159554466043081 +-0.0159554439752211 +-0.0159554471122410 +-0.0159536205166425 +-0.0159536172949999 +-0.0159536167353498 +-0.0159536172946417 +-0.0159536171987521 +-0.0159536385341780 +-0.0159536173694905 +-0.0159842104008287 +-0.0159536174090276 +-0.0159536946812076 +-0.0159536178855962 +-0.0159536181683445 +-0.0159536167215716 +-0.0159536174135587 +-0.0159536202715096 +-0.0159536173974849 +-0.0159536165637364 +-0.0159536167387475 +-0.0159536171203779 +-0.0159536167233962 +-0.0159536201328487 +-0.0159500842902935 +-0.0159536178398141 +-0.0159536240232151 +-0.0159536203169135 +-0.0159536174043747 +-0.0155617533741551 +-0.0159536165750510 +-0.0159536165594972 +-0.0159536169986919 +-0.0159536193291538 +-0.0159536165630304 +-0.0159536177879261 +-0.0159536193412099 +-0.0159536173654921 +-0.0159536174604566 +-0.0159536165425533 +-0.0160097656750855 +-0.0159536166193837 +-0.0159536165520873 +-0.0159536194933191 +-0.0159536287502632 +-0.0156144725298168 +-0.0159536317355467 +-0.0159536165796914 +-0.0159536166213650 +-0.0159536165328201 +-0.0159536169386014 +-0.0159536173165965 +-0.0161949351023115 +-0.0159536174092725 +-0.0159537391584663 +-0.0159536165643911 +-0.0159536166012565 +-0.0159536201189359 +-0.0159536174150137 +-0.0159536193416869 +-0.0159536168632368 +-0.0159536349312549 +-0.0159536190818613 +-0.0159536173928009 +-0.0159536200455455 +-0.0159536174167624 +-0.0159536205534197 +-0.0159680736031751 +-0.0159680703786105 +-0.0159680698184528 +-0.0159680703782520 +-0.0159680702822755 +-0.0159680916370522 +-0.0159680704531687 +-0.0159986912321361 +-0.0159680704927416 +-0.0159681478350066 +-0.0159680709697425 +-0.0159680712527472 +-0.0159680698046621 +-0.0159680704972768 +-0.0159680733578199 +-0.0159680704811884 +-0.0159680696466837 +-0.0159680698218536 +-0.0159680702038301 +-0.0159680698064884 +-0.0159680732190332 +-0.0159645341695144 +-0.0159680709239188 +-0.0159680771129281 +-0.0159680734032649 +-0.0159680704880845 +-0.0155758510615862 +-0.0159680696580086 +-0.0159680696424407 +-0.0159680700820337 +-0.0159680724146094 +-0.0159680696459771 +-0.0159680708719838 +-0.0159680724266764 +-0.0159680704491667 +-0.0159680705442173 +-0.0159680696254814 +-0.0160242696850194 +-0.0159680697023815 +-0.0159680696350241 +-0.0159680725789235 +-0.0159680818442636 +-0.0156286180280335 +-0.0159680848322547 +-0.0159680696626533 +-0.0159680697043646 +-0.0159680696157394 +-0.0159680700218888 +-0.0159680704002267 +-0.0162096070668568 +-0.0159680704929868 +-0.0159681923526056 +-0.0159680696473391 +-0.0159680696842379 +-0.0159680732051077 +-0.0159680704987332 +-0.0159680724271538 +-0.0159680699464558 +-0.0159680880308614 +-0.0159680721670925 +-0.0159680704765002 +-0.0159680731316508 +-0.0159680705004835 +-0.0159680736399856 +-0.0159681359202507 +-0.0159681326956779 +-0.0159681321355189 +-0.0159681326953195 +-0.0159681325993427 +-0.0159681539541736 +-0.0159681327702363 +-0.0159987536266118 +-0.0159681328098094 +-0.0159682101522703 +-0.0159681332868114 +-0.0159681335698169 +-0.0159681321217281 +-0.0159681328143446 +-0.0159681356748949 +-0.0159681327982561 +-0.0159681319637493 +-0.0159681321389196 +-0.0159681325208971 +-0.0159681321235544 +-0.0159681355361078 +-0.0159645964776205 +-0.0159681332409876 +-0.0159681394300126 +-0.0159681357203401 +-0.0159681328051522 +-0.0155759123591724 +-0.0159681319750743 +-0.0159681319595063 +-0.0159681323991004 +-0.0159681347316820 +-0.0159681319630427 +-0.0159681331890524 +-0.0159681347437490 +-0.0159681327662343 +-0.0159681328612852 +-0.0159681319425470 +-0.0160243321438906 +-0.0159681320194473 +-0.0159681319520897 +-0.0159681348959966 +-0.0159681441613601 +-0.0156286794656917 +-0.0159681471493587 +-0.0159681319797189 +-0.0159681320214303 +-0.0159681319328049 +-0.0159681323389553 +-0.0159681327172942 +-0.0162096699844347 +-0.0159681328100545 +-0.0159682546699820 +-0.0159681319644047 +-0.0159681320013036 +-0.0159681355221824 +-0.0159681328158010 +-0.0159681347442265 +-0.0159681322635221 +-0.0159681503479735 +-0.0159681344841645 +-0.0159681327935679 +-0.0159681354487252 +-0.0159681328175513 +-0.0159681359570613 +-0.0159771276202287 +-0.0159771243938352 +-0.0159771238333598 +-0.0159771243934765 +-0.0159771242974455 +-0.0159771456643345 +-0.0159771244684356 +-0.0160077626152972 +-0.0159771245080310 +-0.0159772018941639 +-0.0159771249853024 +-0.0159771252684677 +-0.0159771238195613 +-0.0159771245125688 +-0.0159771273747343 +-0.0159771244964713 +-0.0159771236614933 +-0.0159771238367625 +-0.0159771242189557 +-0.0159771238213886 +-0.0159771272358689 +-0.0159735861790287 +-0.0159771249394528 +-0.0159771311319724 +-0.0159771274202052 +-0.0159771245033713 +-0.0155846826164911 +-0.0159771236728246 +-0.0159771236572478 +-0.0159771240970902 +-0.0159771264309888 +-0.0159771236607862 +-0.0159771248874883 +-0.0159771264430627 +-0.0159771244644314 +-0.0159771245595359 +-0.0159771236402790 +-0.0160333555761380 +-0.0159771237172227 +-0.0159771236498270 +-0.0159771265953962 +-0.0159771358659915 +-0.0156374795110981 +-0.0159771388556773 +-0.0159771236774719 +-0.0159771237192068 +-0.0159771236305314 +-0.0159771240369111 +-0.0159771244154637 +-0.0162187980813806 +-0.0159771245082763 +-0.0159772464370130 +-0.0159771236621490 +-0.0159771236990688 +-0.0159771272219356 +-0.0159771245140260 +-0.0159771264435404 +-0.0159771239614354 +-0.0159771420560983 +-0.0159771261833316 +-0.0159771244917804 +-0.0159771271484370 +-0.0159771245157773 +-0.0159771276570601 +-0.0159771675139017 +-0.0159771642875001 +-0.0159771637270234 +-0.0159771642871414 +-0.0159771641911102 +-0.0159771855580526 +-0.0159771643621008 +-0.0160078025854294 +-0.0159771644016963 +-0.0159772417880223 +-0.0159771648789688 +-0.0159771651621348 +-0.0159771637132248 +-0.0159771644062341 +-0.0159771672684067 +-0.0159771643901365 +-0.0159771635551564 +-0.0159771637304260 +-0.0159771641126202 +-0.0159771637150521 +-0.0159771671295410 +-0.0159736260638629 +-0.0159771648331191 +-0.0159771710256542 +-0.0159771673138777 +-0.0159771643970365 +-0.0155847215306720 +-0.0159771635664878 +-0.0159771635509110 +-0.0159771639907544 +-0.0159771663246589 +-0.0159771635544493 +-0.0159771647811544 +-0.0159771663367328 +-0.0159771643580965 +-0.0159771644532013 +-0.0159771635339420 +-0.0160333956101452 +-0.0159771636108859 +-0.0159771635434901 +-0.0159771664890667 +-0.0159771757596851 +-0.0156375185570557 +-0.0159771787493784 +-0.0159771635711350 +-0.0159771636128701 +-0.0159771635241944 +-0.0159771639305752 +-0.0159771643091287 +-0.0162188385782094 +-0.0159771644019416 +-0.0159772863309825 +-0.0159771635558121 +-0.0159771635927320 +-0.0159771671156076 +-0.0159771644076913 +-0.0159771663372105 +-0.0159771638550992 +-0.0159771819498073 +-0.0159771660770010 +-0.0159771643854456 +-0.0159771670421088 +-0.0159771644094426 +-0.0159771675507332 +-0.0159770811522159 +-0.0159770779258317 +-0.0159770773653580 +-0.0159770779254731 +-0.0159770778294424 +-0.0159770991962690 +-0.0159770780004320 +-0.0160077160578044 +-0.0159770780400273 +-0.0159771554259342 +-0.0159770785172973 +-0.0159770788004617 +-0.0159770773515595 +-0.0159770780445650 +-0.0159770809067222 +-0.0159770780284676 +-0.0159770771934920 +-0.0159770773687607 +-0.0159770777509528 +-0.0159770773533868 +-0.0159770807678572 +-0.0159735397213596 +-0.0159770784714478 +-0.0159770846639493 +-0.0159770809521929 +-0.0159770780353675 +-0.0155846372944820 +-0.0159770772048233 +-0.0159770771892466 +-0.0159770776290876 +-0.0159770799629795 +-0.0159770771927849 +-0.0159770784194834 +-0.0159770799750533 +-0.0159770779964278 +-0.0159770780915320 +-0.0159770771722777 +-0.0160333089438898 +-0.0159770772492212 +-0.0159770771818258 +-0.0159770801273864 +-0.0159770893979546 +-0.0156374340349416 +-0.0159770923876317 +-0.0159770772094705 +-0.0159770772512054 +-0.0159770771625302 +-0.0159770775689088 +-0.0159770779474602 +-0.0162187509073925 +-0.0159770780402726 +-0.0159771999686531 +-0.0159770771941477 +-0.0159770772310674 +-0.0159770807539239 +-0.0159770780460222 +-0.0159770799755310 +-0.0159770774934332 +-0.0159770955880433 +-0.0159770797153230 +-0.0159770780237767 +-0.0159770806804255 +-0.0159770780477735 +-0.0159770811890472 +-0.0159772522571613 +-0.0159772490307426 +-0.0159772484702628 +-0.0159772490303839 +-0.0159772489343522 +-0.0159772703014079 +-0.0159772491053436 +-0.0160078874912485 +-0.0159772491449393 +-0.0159773265316760 +-0.0159772496222144 +-0.0159772499053819 +-0.0159772484564642 +-0.0159772491494772 +-0.0159772520116650 +-0.0159772491333795 +-0.0159772482983950 +-0.0159772484736655 +-0.0159772488558617 +-0.0159772484582915 +-0.0159772518727985 +-0.0159737107883304 +-0.0159772495763644 +-0.0159772557689324 +-0.0159772520571362 +-0.0159772491402795 +-0.0155848041915345 +-0.0159772483097264 +-0.0159772482941495 +-0.0159772487339953 +-0.0159772510679121 +-0.0159772482976879 +-0.0159772495243995 +-0.0159772510799861 +-0.0159772491013393 +-0.0159772491964446 +-0.0159772482771805 +-0.0160334806517696 +-0.0159772483541248 +-0.0159772482867287 +-0.0159772512323208 +-0.0159772605029884 +-0.0156376014980648 +-0.0159772634926976 +-0.0159772483143737 +-0.0159772483561090 +-0.0159772482674329 +-0.0159772486738158 +-0.0159772490523713 +-0.0162189246038701 +-0.0159772491451847 +-0.0159773710748726 +-0.0159772482990507 +-0.0159772483359707 +-0.0159772518588651 +-0.0159772491509344 +-0.0159772510804638 +-0.0159772485983394 +-0.0159772666931435 +-0.0159772508202530 +-0.0159772491286886 +-0.0159772517853659 +-0.0159772491526857 +-0.0159772522939930 +-0.0159772763735651 +-0.0159772731471415 +-0.0159772725866609 +-0.0159772731467828 +-0.0159772730507509 +-0.0159772944178389 +-0.0159772732217427 +-0.0160079116539132 +-0.0159772732613384 +-0.0159773506481920 +-0.0159772737386142 +-0.0159772740217822 +-0.0159772725728622 +-0.0159772732658762 +-0.0159772761280684 +-0.0159772732497786 +-0.0159772724147928 +-0.0159772725900636 +-0.0159772729722604 +-0.0159772725746896 +-0.0159772759892017 +-0.0159737348993864 +-0.0159772736927642 +-0.0159772798853415 +-0.0159772761735397 +-0.0159772732566786 +-0.0155848277153318 +-0.0159772724261242 +-0.0159772724105473 +-0.0159772728503937 +-0.0159772751843141 +-0.0159772724140857 +-0.0159772736407992 +-0.0159772751963881 +-0.0159772732177384 +-0.0159772733128438 +-0.0159772723935783 +-0.0160335048530816 +-0.0159772724705227 +-0.0159772724031264 +-0.0159772753487231 +-0.0159772846194047 +-0.0156376251015860 +-0.0159772876091183 +-0.0159772724307715 +-0.0159772724725069 +-0.0159772723838306 +-0.0159772727902141 +-0.0159772731687702 +-0.0162189490852179 +-0.0159772732615837 +-0.0159773951914558 +-0.0159772724154485 +-0.0159772724523686 +-0.0159772759752683 +-0.0159772732673335 +-0.0159772751968658 +-0.0159772727147376 +-0.0159772908095691 +-0.0159772749366546 +-0.0159772732450877 +-0.0159772759017689 +-0.0159772732690848 +-0.0159772764103968 +-0.0159773092567349 +-0.0159773060303046 +-0.0159773054698229 +-0.0159773060299459 +-0.0159773059339139 +-0.0159773273010459 +-0.0159773061049060 +-0.0160079446001394 +-0.0159773061445018 +-0.0159773835315146 +-0.0159773066217786 +-0.0159773069049471 +-0.0159773054560242 +-0.0159773061490396 +-0.0159773090112377 +-0.0159773061329419 +-0.0159773052979544 +-0.0159773054732256 +-0.0159773058554231 +-0.0159773054578515 +-0.0159773088723707 +-0.0159737677752668 +-0.0159773065759284 +-0.0159773127685185 +-0.0159773090567090 +-0.0159773061398420 +-0.0155848597907309 +-0.0159773053092859 +-0.0159773052937089 +-0.0159773057335563 +-0.0159773080674815 +-0.0159773052972473 +-0.0159773065239633 +-0.0159773080795555 +-0.0159773061009016 +-0.0159773061960073 +-0.0159773052767398 +-0.0160335378519861 +-0.0159773053536844 +-0.0159773052862881 +-0.0159773082318907 +-0.0159773175025914 +-0.0156376572856568 +-0.0159773204923112 +-0.0159773053139332 +-0.0159773053556686 +-0.0159773052669922 +-0.0159773056733765 +-0.0159773060519334 +-0.0162189824658221 +-0.0159773061447471 +-0.0159774280748701 +-0.0159773052986101 +-0.0159773053355303 +-0.0159773088584372 +-0.0159773061504968 +-0.0159773080800332 +-0.0159773055978999 +-0.0159773236927686 +-0.0159773078198214 +-0.0159773061282510 +-0.0159773087849378 +-0.0159773061522481 +-0.0159773092935667 +-0.0159074058342549 +-0.0159074026219394 +-0.0159074020639097 +-0.0159074026215823 +-0.0159074025259704 +-0.0159074237996269 +-0.0159074026962144 +-0.0159379071562371 +-0.0159074027356370 +-0.0159074797841023 +-0.0159074032108259 +-0.0159074034927556 +-0.0159074020501713 +-0.0159074027401550 +-0.0159074055898317 +-0.0159074027241277 +-0.0159074018927931 +-0.0159074020672975 +-0.0159074024478230 +-0.0159074020519907 +-0.0159074054515722 +-0.0159038798458267 +-0.0159074031651763 +-0.0159074093306754 +-0.0159074056351042 +-0.0159074027309976 +-0.0155166732383998 +-0.0159074019040750 +-0.0159074018885662 +-0.0159074023264893 +-0.0159074046502042 +-0.0159074018920891 +-0.0159074031134385 +-0.0159074046622254 +-0.0159074026922276 +-0.0159074027869172 +-0.0159074018716713 +-0.0159633884445458 +-0.0159074019482793 +-0.0159074018811778 +-0.0159074048138942 +-0.0159074140440380 +-0.0155692397563152 +-0.0159074170206786 +-0.0159074019087019 +-0.0159074019502548 +-0.0159074018619663 +-0.0159074022665728 +-0.0159074026434736 +-0.0161480217909746 +-0.0159074027358813 +-0.0159075241325924 +-0.0159074018934459 +-0.0159074019302046 +-0.0159074054376997 +-0.0159074027416059 +-0.0159074046627010 +-0.0159074021914264 +-0.0159074202071348 +-0.0159074044036276 +-0.0159074027194574 +-0.0159074053645218 +-0.0159074027433495 +-0.0159074058709256 +-0.0116547825769474 +-0.0116547802232920 +-0.0116547798144250 +-0.0116547802230303 +-0.0116547801529757 +-0.0116547957401298 +-0.0116547802777131 +-0.0116771308222512 +-0.0116547803065979 +-0.0116548367598128 +-0.0116547806547676 +-0.0116547808613368 +-0.0116547798043589 +-0.0116547803099082 +-0.0116547823978591 +-0.0116547802981651 +-0.0116547796890483 +-0.0116547798169072 +-0.0116547800957173 +-0.0116547798056920 +-0.0116547822965567 +-0.0116521990942350 +-0.0116547806213203 +-0.0116547851387658 +-0.0116547824310301 +-0.0116547803031986 +-0.0113684944221893 +-0.0116547796973145 +-0.0116547796859512 +-0.0116547800068164 +-0.0116547817093964 +-0.0116547796885325 +-0.0116547805834121 +-0.0116547817182043 +-0.0116547802747920 +-0.0116547803441708 +-0.0116547796735724 +-0.0116958009074147 +-0.0116547797297029 +-0.0116547796805378 +-0.0116547818293317 +-0.0116547885922346 +-0.0114070096214499 +-0.0116547907732116 +-0.0116547797007047 +-0.0116547797311504 +-0.0116547796664616 +-0.0116547799629158 +-0.0116547802390700 +-0.0118310815554080 +-0.0116547803067769 +-0.0116548692538389 +-0.0116547796895266 +-0.0116547797164596 +-0.0116547822863924 +-0.0116547803109713 +-0.0116547817185528 +-0.0116547799078562 +-0.0116547931079200 +-0.0116547815287304 +-0.0116547802947431 +-0.0116547822327751 +-0.0116547803122488 +-0.0116547826038159 +-0.0159710194350005 +-0.0159710162098407 +-0.0159710156495797 +-0.0159710162094822 +-0.0159710161134879 +-0.0159710374722059 +-0.0159710162844127 +-0.0160016427146354 +-0.0159710163239929 +-0.0159710936805319 +-0.0159710168010818 +-0.0159710170841388 +-0.0159710156357864 +-0.0159710163285290 +-0.0159710191896000 +-0.0159710163124376 +-0.0159710154777789 +-0.0159710156529811 +-0.0159710160350281 +-0.0159710156376131 +-0.0159710190507876 +-0.0159674793481164 +-0.0159710167552497 +-0.0159710229454012 +-0.0159710192350534 +-0.0159710163193349 +-0.0155787245077985 +-0.0159710154891059 +-0.0159710154735351 +-0.0159710159132092 +-0.0159710182462154 +-0.0159710154770721 +-0.0159710167033051 +-0.0159710182582846 +-0.0159710162804100 +-0.0159710163754781 +-0.0159710154565727 +-0.0160272258881957 +-0.0159710155334870 +-0.0159710154661172 +-0.0159710184105599 +-0.0159710276776099 +-0.0156315012123601 +-0.0159710306661524 +-0.0159710154937514 +-0.0159710155354704 +-0.0159710154468289 +-0.0159710158530532 +-0.0159710162314610 +-0.0162125974757260 +-0.0159710163242382 +-0.0159711382063468 +-0.0159710154784344 +-0.0159710155153400 +-0.0159710190368596 +-0.0159710163299856 +-0.0159710182587622 +-0.0159710157776063 +-0.0159710338653495 +-0.0159710179986529 +-0.0159710163077486 +-0.0159710189633891 +-0.0159710163317362 +-0.0159710194718178 +-0.0159513833393005 +-0.0159513801181059 +-0.0159513795585337 +-0.0159513801177478 +-0.0159513800218715 +-0.0159514013543301 +-0.0159513801925861 +-0.0159819689692895 +-0.0159513802321177 +-0.0159514574935510 +-0.0159513807086200 +-0.0159513809913290 +-0.0159513795447574 +-0.0159513802366482 +-0.0159513830942016 +-0.0159513802205766 +-0.0159513793869441 +-0.0159513795619308 +-0.0159513799435082 +-0.0159513795465817 +-0.0159513829555600 +-0.0159478476047600 +-0.0159513806628443 +-0.0159513868453853 +-0.0159513831395992 +-0.0159513802274655 +-0.0155595707179986 +-0.0159513793982571 +-0.0159513793827055 +-0.0159513798218391 +-0.0159513821519769 +-0.0159513793862382 +-0.0159513806109635 +-0.0159513821640313 +-0.0159513801885883 +-0.0159513802835396 +-0.0159513793657639 +-0.0160075206897457 +-0.0159513794425837 +-0.0159513793752967 +-0.0159513823161194 +-0.0159513915717761 +-0.0156122825363091 +-0.0159513945566443 +-0.0159513794028969 +-0.0159513794445646 +-0.0159513793560321 +-0.0159513797617570 +-0.0159513801396995 +-0.0161926643733257 +-0.0159513802323626 +-0.0159515019646239 +-0.0159513793875987 +-0.0159513794244590 +-0.0159513829416491 +-0.0159513802381030 +-0.0159513821645083 +-0.0159513796864028 +-0.0159513977519081 +-0.0159513819047187 +-0.0159513802158933 +-0.0159513828682689 +-0.0159513802398515 +-0.0159513833760725 +-0.0159704847224134 +-0.0159704814975689 +-0.0159704809373627 +-0.0159704814972104 +-0.0159704814012255 +-0.0159705027578554 +-0.0159704815721336 +-0.0160011050002195 +-0.0159704816117099 +-0.0159705589606862 +-0.0159704820887522 +-0.0159704823717815 +-0.0159704809235708 +-0.0159704816162456 +-0.0159704844770368 +-0.0159704816001558 +-0.0159704807655787 +-0.0159704809407637 +-0.0159704813227734 +-0.0159704809253972 +-0.0159704843382381 +-0.0159669449815161 +-0.0159704820429246 +-0.0159704882324709 +-0.0159704845224858 +-0.0159704816070524 +-0.0155782269422633 +-0.0159704807769046 +-0.0159704807613353 +-0.0159704812009664 +-0.0159704835337445 +-0.0159704807648720 +-0.0159704819909850 +-0.0159704835458125 +-0.0159704815681312 +-0.0159704816631901 +-0.0159704807443745 +-0.0160266856535553 +-0.0159704808212813 +-0.0159704807539180 +-0.0159704836980729 +-0.0159704929642170 +-0.0156309987854569 +-0.0159704959524673 +-0.0159704807815496 +-0.0159704808232645 +-0.0159704807346317 +-0.0159704811408163 +-0.0159704815191870 +-0.0162120386102990 +-0.0159704816119552 +-0.0159706034821481 +-0.0159704807662341 +-0.0159704808031361 +-0.0159704843243114 +-0.0159704816177021 +-0.0159704835462900 +-0.0159704810653767 +-0.0159704991513516 +-0.0159704832862062 +-0.0159704815954672 +-0.0159704842508481 +-0.0159704816194525 +-0.0159704847592271 +-0.0159683794040889 +-0.0159683761794628 +-0.0159683756192945 +-0.0159683761791043 +-0.0159683760831260 +-0.0159683974383101 +-0.0159683762540224 +-0.0159989976170506 +-0.0159683762935961 +-0.0159684536373363 +-0.0159683767706061 +-0.0159683770536162 +-0.0159683756055035 +-0.0159683762981314 +-0.0159683791587290 +-0.0159683762820427 +-0.0159683754475221 +-0.0159683756226953 +-0.0159683760046791 +-0.0159683756073298 +-0.0159683790199397 +-0.0159648399029158 +-0.0159683767247815 +-0.0159683829139089 +-0.0159683792041750 +-0.0159683762889389 +-0.0155761493796992 +-0.0159683754588472 +-0.0159683754432790 +-0.0159683758828804 +-0.0159683782155005 +-0.0159683754468154 +-0.0159683766728455 +-0.0159683782275678 +-0.0159683762500204 +-0.0159683763450728 +-0.0159683754263194 +-0.0160245765578026 +-0.0159683755032210 +-0.0159683754358623 +-0.0159683783798179 +-0.0159683876453346 +-0.0156289173529928 +-0.0159683906333827 +-0.0159683754634920 +-0.0159683755052041 +-0.0159683754165772 +-0.0159683758227343 +-0.0159683762010795 +-0.0162099174742197 +-0.0159683762938413 +-0.0159684981557845 +-0.0159683754481775 +-0.0159683754850770 +-0.0159683790060140 +-0.0159683762995878 +-0.0159683782280453 +-0.0159683757472999 +-0.0159683938320504 +-0.0159683779679790 +-0.0159683762773544 +-0.0159683789325556 +-0.0159683763013382 +-0.0159683794409002 +-0.0159747320746873 +-0.0159747288487778 +-0.0159747282883865 +-0.0159747288484192 +-0.0159747287524026 +-0.0159747501160860 +-0.0159747289233671 +-0.0160053624736038 +-0.0159747289629565 +-0.0159748063374793 +-0.0159747294401563 +-0.0159747297232791 +-0.0159747282745901 +-0.0159747289674936 +-0.0159747318292297 +-0.0159747289513985 +-0.0159747281165458 +-0.0159747282917887 +-0.0159747286739245 +-0.0159747282764171 +-0.0159747316903852 +-0.0159711911648063 +-0.0159747293943135 +-0.0159747355859041 +-0.0159747318746938 +-0.0159747289582975 +-0.0155823459473525 +-0.0159747281278754 +-0.0159747281123010 +-0.0159747285520773 +-0.0159747308856258 +-0.0159747281158388 +-0.0159747293423568 +-0.0159747308976979 +-0.0159747289193634 +-0.0159747290144537 +-0.0159747280953346 +-0.0160309515947282 +-0.0159747281722668 +-0.0159747281048813 +-0.0159747310500086 +-0.0159747403192130 +-0.0156351349213265 +-0.0159747433084503 +-0.0159747281325220 +-0.0159747281742507 +-0.0159747280855886 +-0.0159747284919073 +-0.0159747288704031 +-0.0162163662774603 +-0.0159747289632018 +-0.0159748508736456 +-0.0159747281172014 +-0.0159747281541156 +-0.0159747316764539 +-0.0159747289689506 +-0.0159747308981756 +-0.0159747284164429 +-0.0159747465083910 +-0.0159747306380058 +-0.0159747289467084 +-0.0159747316029663 +-0.0159747289707016 +-0.0159747321115132 +-0.0159772138787650 +-0.0159772106523540 +-0.0159772100918757 +-0.0159772106519954 +-0.0159772105559639 +-0.0159772319229683 +-0.0159772107269549 +-0.0160078490392543 +-0.0159772107665505 +-0.0159772881531013 +-0.0159772112438245 +-0.0159772115269913 +-0.0159772100780770 +-0.0159772107710883 +-0.0159772136332693 +-0.0159772107549907 +-0.0159772099200082 +-0.0159772100952783 +-0.0159772104774736 +-0.0159772100799044 +-0.0159772134944031 +-0.0159736724184421 +-0.0159772111979746 +-0.0159772173905277 +-0.0159772136787404 +-0.0159772107618907 +-0.0155847667559462 +-0.0159772099313396 +-0.0159772099157627 +-0.0159772103556075 +-0.0159772126895187 +-0.0159772099193012 +-0.0159772111460098 +-0.0159772127015927 +-0.0159772107229506 +-0.0159772108180557 +-0.0159772098987938 +-0.0160334421382905 +-0.0159772099757379 +-0.0159772099083419 +-0.0159772128539270 +-0.0159772221245723 +-0.0156375639356383 +-0.0159772251142743 +-0.0159772099359869 +-0.0159772099777221 +-0.0159772098890462 +-0.0159772102954281 +-0.0159772106739827 +-0.0162188856448793 +-0.0159772107667959 +-0.0159773326961908 +-0.0159772099206639 +-0.0159772099575839 +-0.0159772134804697 +-0.0159772107725456 +-0.0159772127020704 +-0.0159772102199519 +-0.0159772283147125 +-0.0159772124418602 +-0.0159772107502999 +-0.0159772134069707 +-0.0159772107742968 +-0.0159772139155966 +-0.0159770122884786 +-0.0159770090621083 +-0.0159770085016370 +-0.0159770090617496 +-0.0159770089657193 +-0.0159770303324539 +-0.0159770091367082 +-0.0160076470620787 +-0.0159770091763033 +-0.0159770865618768 +-0.0159770096535713 +-0.0159770099367345 +-0.0159770084878386 +-0.0159770091808411 +-0.0159770120429859 +-0.0159770091647437 +-0.0159770083297717 +-0.0159770085050396 +-0.0159770088872301 +-0.0159770084896658 +-0.0159770119041215 +-0.0159734708728803 +-0.0159770096077220 +-0.0159770158001968 +-0.0159770120884564 +-0.0159770091716436 +-0.0155845701216030 +-0.0159770083411030 +-0.0159770083255263 +-0.0159770087653655 +-0.0159770110992473 +-0.0159770083290647 +-0.0159770095557578 +-0.0159770111113210 +-0.0159770091327040 +-0.0159770092278079 +-0.0159770083085575 +-0.0160332398378992 +-0.0159770083855007 +-0.0159770083181056 +-0.0159770112636535 +-0.0159770205341817 +-0.0156373666345815 +-0.0159770235238459 +-0.0159770083457502 +-0.0159770083874849 +-0.0159770082988101 +-0.0159770087051869 +-0.0159770090837367 +-0.0162186810024517 +-0.0159770091765487 +-0.0159771311044038 +-0.0159770083304274 +-0.0159770083673469 +-0.0159770118901883 +-0.0159770091822983 +-0.0159770111117988 +-0.0159770086297116 +-0.0159770267242437 +-0.0159770108515918 +-0.0159770091600529 +-0.0159770118166902 +-0.0159770091840496 +-0.0159770123253097 +-0.0159773150918565 +-0.0159773118654250 +-0.0159773113049431 +-0.0159773118650664 +-0.0159773117690343 +-0.0159773331361741 +-0.0159773119400264 +-0.0160079504464948 +-0.0159773119796222 +-0.0159773893666635 +-0.0159773124568992 +-0.0159773127400678 +-0.0159773112911444 +-0.0159773119841601 +-0.0159773148463592 +-0.0159773119680624 +-0.0159773111330746 +-0.0159773113083458 +-0.0159773116905435 +-0.0159773112929717 +-0.0159773147074922 +-0.0159737736090898 +-0.0159773124110491 +-0.0159773186036414 +-0.0159773148918306 +-0.0159773119749624 +-0.0155848654819738 +-0.0159773111444060 +-0.0159773111288291 +-0.0159773115686766 +-0.0159773139026026 +-0.0159773111323675 +-0.0159773123590839 +-0.0159773139146766 +-0.0159773119360221 +-0.0159773120311278 +-0.0159773111118600 +-0.0160335437077267 +-0.0159773111888046 +-0.0159773111214082 +-0.0159773140670120 +-0.0159773233377161 +-0.0156376629962530 +-0.0159773263274370 +-0.0159773111490533 +-0.0159773111907888 +-0.0159773111021123 +-0.0159773115084968 +-0.0159773118870538 +-0.0162189883895747 +-0.0159773119798676 +-0.0159774339100353 +-0.0159773111337303 +-0.0159773111706505 +-0.0159773146935587 +-0.0159773119856173 +-0.0159773139151544 +-0.0159773114330202 +-0.0159773295278955 +-0.0159773136549425 +-0.0159773119633715 +-0.0159773146200592 +-0.0159773119873686 +-0.0159773151286883 +-0.0159772746780693 +-0.0159772714516460 +-0.0159772708911655 +-0.0159772714512873 +-0.0159772713552555 +-0.0159772927223412 +-0.0159772715262472 +-0.0160079099551645 +-0.0159772715658429 +-0.0159773489526883 +-0.0159772720431187 +-0.0159772723262866 +-0.0159772708773668 +-0.0159772715703808 +-0.0159772744325726 +-0.0159772715542831 +-0.0159772707192974 +-0.0159772708945682 +-0.0159772712767649 +-0.0159772708791942 +-0.0159772742937059 +-0.0159737332042667 +-0.0159772719972687 +-0.0159772781898453 +-0.0159772744780439 +-0.0159772715611831 +-0.0155848260615067 +-0.0159772707306288 +-0.0159772707150519 +-0.0159772711548983 +-0.0159772734888185 +-0.0159772707185903 +-0.0159772719453037 +-0.0159772735008924 +-0.0159772715222429 +-0.0159772716173483 +-0.0159772706980829 +-0.0160335031516152 +-0.0159772707750273 +-0.0159772707076311 +-0.0159772736532274 +-0.0159772829239080 +-0.0156376234421550 +-0.0159772859136213 +-0.0159772707352761 +-0.0159772707770115 +-0.0159772706883352 +-0.0159772710947187 +-0.0159772714732747 +-0.0162189473640597 +-0.0159772715660883 +-0.0159773934959474 +-0.0159772707199531 +-0.0159772707568732 +-0.0159772742797725 +-0.0159772715718380 +-0.0159772735013702 +-0.0159772710192422 +-0.0159772891140717 +-0.0159772732411590 +-0.0159772715495922 +-0.0159772742062732 +-0.0159772715735893 +-0.0159772747149010 +-0.0159772757327529 +-0.0159772725063294 +-0.0159772719458489 +-0.0159772725059708 +-0.0159772724099389 +-0.0159772937770261 +-0.0159772725809306 +-0.0160079110118826 +-0.0159772726205264 +-0.0159773500073768 +-0.0159772730978022 +-0.0159772733809701 +-0.0159772719320502 +-0.0159772726250642 +-0.0159772754872563 +-0.0159772726089665 +-0.0159772717739808 +-0.0159772719492516 +-0.0159772723314483 +-0.0159772719338775 +-0.0159772753483895 +-0.0159737342587151 +-0.0159772730519521 +-0.0159772792445292 +-0.0159772755327275 +-0.0159772726158666 +-0.0155848270901352 +-0.0159772717853122 +-0.0159772717697353 +-0.0159772722095817 +-0.0159772745435020 +-0.0159772717732737 +-0.0159772729999871 +-0.0159772745555760 +-0.0159772725769263 +-0.0159772726720318 +-0.0159772717527663 +-0.0160335042100332 +-0.0159772718297107 +-0.0159772717623144 +-0.0159772747079109 +-0.0159772839785922 +-0.0156376244742880 +-0.0159772869683057 +-0.0159772717899595 +-0.0159772718316949 +-0.0159772717430186 +-0.0159772721494021 +-0.0159772725279582 +-0.0162189484347962 +-0.0159772726207717 +-0.0159773945506389 +-0.0159772717746365 +-0.0159772718115566 +-0.0159772753344561 +-0.0159772726265214 +-0.0159772745560537 +-0.0159772720739256 +-0.0159772901687563 +-0.0159772742958425 +-0.0159772726042756 +-0.0159772752609568 +-0.0159772726282727 +-0.0159772757695847 +0.0000008907034567 +0.0000008907036787 +0.0000008907037172 +0.0000008907036787 +0.0000008907036853 +0.0000008907022151 +0.0000008907036736 +0.0000008885800597 +0.0000008907036708 +0.0000008906983460 +0.0000008907036380 +0.0000008907036185 +0.0000008907037182 +0.0000008907036705 +0.0000008907034736 +0.0000008907036716 +0.0000008907037291 +0.0000008907037170 +0.0000008907036907 +0.0000008907037181 +0.0000008907034831 +0.0000008909469312 +0.0000008907036411 +0.0000008907032150 +0.0000008907034704 +0.0000008907036711 +0.0000009153708297 +0.0000008907037283 +0.0000008907037294 +0.0000008907036991 +0.0000008907035385 +0.0000008907037291 +0.0000008907036447 +0.0000008907035377 +0.0000008907036738 +0.0000008907036673 +0.0000008907037305 +0.0000008867820107 +0.0000008907037252 +0.0000008907037299 +0.0000008907035272 +0.0000008907028893 +0.0000009123161218 +0.0000008907026836 +0.0000008907037280 +0.0000008907037251 +0.0000008907037312 +0.0000008907037032 +0.0000008907036772 +0.0000008730371644 +0.0000008907036708 +0.0000008906952809 +0.0000008907037290 +0.0000008907037265 +0.0000008907034841 +0.0000008907036704 +0.0000008907035376 +0.0000008907037084 +0.0000008907024634 +0.0000008907035556 +0.0000008907036719 +0.0000008907034891 +0.0000008907036703 +0.0000008907034541 +-0.0159653945821168 +-0.0159653913580922 +-0.0159653907980284 +-0.0159653913577338 +-0.0159653912617733 +-0.0159654126129733 +-0.0159653914326379 +-0.0159960070828515 +-0.0159653914722042 +-0.0159654688015149 +-0.0159653919491252 +-0.0159653922320825 +-0.0159653907842400 +-0.0159653914767387 +-0.0159653943368026 +-0.0159653914606530 +-0.0159653906262881 +-0.0159653908014286 +-0.0159653911833411 +-0.0159653907860660 +-0.0159653941980392 +-0.0159618557412895 +-0.0159653919033092 +-0.0159653980912819 +-0.0159653943822401 +-0.0159653914675479 +-0.0155732377405979 +-0.0159653906376111 +-0.0159653906220458 +-0.0159653910615651 +-0.0159653933937501 +-0.0159653906255815 +-0.0159653918513829 +-0.0159653934058151 +-0.0159653914286366 +-0.0159653915236713 +-0.0159653906050893 +-0.0160215812515875 +-0.0159653906819765 +-0.0159653906146304 +-0.0159653935580368 +-0.0159654028218249 +-0.0156259958676089 +-0.0159654058093155 +-0.0159653906422549 +-0.0159653906839592 +-0.0159653905953489 +-0.0159653910014303 +-0.0159653913797048 +-0.0162068875927879 +-0.0159653914724494 +-0.0159655133116574 +-0.0159653906269433 +-0.0159653906638360 +-0.0159653941841161 +-0.0159653914781948 +-0.0159653934062925 +-0.0159653909260099 +-0.0159654090073865 +-0.0159653931462747 +-0.0159653914559656 +-0.0159653941106714 +-0.0159653914799448 +-0.0159653946189211 +-0.0154539289514870 +-0.0154539258307341 +-0.0154539252886102 +-0.0154539258303872 +-0.0154539257375005 +-0.0154539464047810 +-0.0154539259028920 +-0.0154835608762403 +-0.0154539259411909 +-0.0154540007934970 +-0.0154539264028352 +-0.0154539266767289 +-0.0154539252752635 +-0.0154539259455801 +-0.0154539287140307 +-0.0154539259300096 +-0.0154539251223710 +-0.0154539252919015 +-0.0154539256615806 +-0.0154539252770309 +-0.0154539285797121 +-0.0154505034664519 +-0.0154539263584868 +-0.0154539323482469 +-0.0154539287580128 +-0.0154539259366837 +-0.0150743337124401 +-0.0154539251333313 +-0.0154539251182646 +-0.0154539255437053 +-0.0154539278011860 +-0.0154539251216871 +-0.0154539263082237 +-0.0154539278128645 +-0.0154539258990188 +-0.0154539259910094 +-0.0154539251018513 +-0.0155083158570190 +-0.0154539251762757 +-0.0154539251110868 +-0.0154539279602102 +-0.0154539369272617 +-0.0151254018780288 +-0.0154539398190573 +-0.0154539251378264 +-0.0154539251781949 +-0.0154539250924229 +-0.0154539254854967 +-0.0154539258516544 +-0.0156876865160981 +-0.0154539259414282 +-0.0154540438778952 +-0.0154539251230053 +-0.0154539251587162 +-0.0154539285662350 +-0.0154539259469896 +-0.0154539278133266 +-0.0154539254124922 +-0.0154539429146880 +-0.0154539275616377 +-0.0154539259254724 +-0.0154539284951430 +-0.0154539259486835 +-0.0154539289871125 +-0.0159588749632761 +-0.0159588717405707 +-0.0159588711807360 +-0.0159588717402124 +-0.0159588716442912 +-0.0159588929867556 +-0.0159588718150859 +-0.0159894749392356 +-0.0159588718546360 +-0.0159589491523084 +-0.0159588723313618 +-0.0159588726142034 +-0.0159588711669532 +-0.0159588718591686 +-0.0159588747180624 +-0.0159588718430895 +-0.0159588710090659 +-0.0159588711841348 +-0.0159588715658911 +-0.0159588711687784 +-0.0159588745793557 +-0.0159553375703151 +-0.0159588722855646 +-0.0159588784710055 +-0.0159588747634812 +-0.0159588718499816 +-0.0155668785527200 +-0.0159588710203843 +-0.0159588710048254 +-0.0159588714441649 +-0.0159588737753957 +-0.0159588710083597 +-0.0159588722336595 +-0.0159588737874557 +-0.0159588718110862 +-0.0159588719060820 +-0.0159588709878759 +-0.0160150386444254 +-0.0159588710647316 +-0.0159588709974130 +-0.0159588739396151 +-0.0159588831996131 +-0.0156196150980793 +-0.0159588861858814 +-0.0159588710250263 +-0.0159588710667135 +-0.0159588709781394 +-0.0159588713840547 +-0.0159588717621745 +-0.0162002691639767 +-0.0159588718548810 +-0.0159589936442403 +-0.0159588710097209 +-0.0159588710465985 +-0.0159588745654383 +-0.0159588718606241 +-0.0159588737879329 +-0.0159588713086651 +-0.0159588893826440 +-0.0159588735280215 +-0.0159588718384040 +-0.0159588744920237 +-0.0159588718623734 +-0.0159588750000654 +-0.0157761116148746 +-0.0157761084291002 +-0.0157761078756810 +-0.0157761084287460 +-0.0157761083339240 +-0.0157761294318114 +-0.0157761085027615 +-0.0158063609250820 +-0.0157761085418583 +-0.0157761849537270 +-0.0157761090131211 +-0.0157761092927214 +-0.0157761078620562 +-0.0157761085463390 +-0.0157761113724709 +-0.0157761085304441 +-0.0157761077059782 +-0.0157761078790408 +-0.0157761082564224 +-0.0157761078638605 +-0.0157761112353537 +-0.0157726147591642 +-0.0157761089678486 +-0.0157761150824066 +-0.0157761114173692 +-0.0157761085372572 +-0.0153886072030565 +-0.0157761077171669 +-0.0157761077017862 +-0.0157761081360911 +-0.0157761104406068 +-0.0157761077052801 +-0.0157761089165384 +-0.0157761104525287 +-0.0157761084988076 +-0.0157761085927148 +-0.0157761076850310 +-0.0158316316770906 +-0.0157761077610060 +-0.0157761076944589 +-0.0157761106029444 +-0.0157761197568261 +-0.0154407394411587 +-0.0157761227088728 +-0.0157761077217556 +-0.0157761077629652 +-0.0157761076754061 +-0.0157761080766697 +-0.0157761084504564 +-0.0160147394616579 +-0.0157761085421006 +-0.0157762289357971 +-0.0157761077066257 +-0.0157761077430806 +-0.0157761112215958 +-0.0157761085477779 +-0.0157761104530004 +-0.0157761080021441 +-0.0157761258690016 +-0.0157761101960675 +-0.0157761085258124 +-0.0157761111490225 +-0.0157761085495071 +-0.0157761116512423 +-0.0159693598203275 +-0.0159693565955104 +-0.0159693560353089 +-0.0159693565951519 +-0.0159693564991679 +-0.0159693778556166 +-0.0159693566700745 +-0.0159999798462533 +-0.0159693567096505 +-0.0159694340579711 +-0.0159693571866887 +-0.0159693574697156 +-0.0159693560215171 +-0.0159693567141861 +-0.0159693595749531 +-0.0159693566980964 +-0.0159693558635264 +-0.0159693560387099 +-0.0159693564207164 +-0.0159693560233435 +-0.0159693594361555 +-0.0159658201095388 +-0.0159693571408614 +-0.0159693633303553 +-0.0159693596204017 +-0.0159693567049930 +-0.0155771065268215 +-0.0159693558748522 +-0.0159693558592830 +-0.0159693562989104 +-0.0159693586316687 +-0.0159693558628197 +-0.0159693570889223 +-0.0159693586437367 +-0.0159693566660721 +-0.0159693567611302 +-0.0159693558423224 +-0.0160255603011620 +-0.0159693559192285 +-0.0159693558518659 +-0.0159693587959958 +-0.0159693680620613 +-0.0156298776352145 +-0.0159693710502863 +-0.0159693558794972 +-0.0159693559212117 +-0.0159693558325796 +-0.0159693562387608 +-0.0159693566171284 +-0.0162109121763776 +-0.0159693567098957 +-0.0159694785790556 +-0.0159693558641818 +-0.0159693559010835 +-0.0159693594222290 +-0.0159693567156426 +-0.0159693586442142 +-0.0159693561633219 +-0.0159693742491434 +-0.0159693583841325 +-0.0159693566934079 +-0.0159693593487663 +-0.0159693567173930 +-0.0159693598571409 +-0.0159745640059234 +-0.0159745607800477 +-0.0159745602196624 +-0.0159745607796891 +-0.0159745606836736 +-0.0159745820471327 +-0.0159745608546362 +-0.0160051940832999 +-0.0159745608942253 +-0.0159746382679358 +-0.0159745613714201 +-0.0159745616545399 +-0.0159745602058660 +-0.0159745608987623 +-0.0159745637604684 +-0.0159745608826674 +-0.0159745600478234 +-0.0159745602230645 +-0.0159745606051963 +-0.0159745602076930 +-0.0159745636216253 +-0.0159710231332131 +-0.0159745613255778 +-0.0159745675171033 +-0.0159745638059320 +-0.0159745608895663 +-0.0155821819981187 +-0.0159745600591529 +-0.0159745600435787 +-0.0159745604833504 +-0.0159745628168744 +-0.0159745600471165 +-0.0159745612736216 +-0.0159745628289463 +-0.0159745608506326 +-0.0159745609457219 +-0.0159745600266125 +-0.0160307829358094 +-0.0159745601035439 +-0.0159745600361591 +-0.0159745629812554 +-0.0159745722503625 +-0.0156349704178273 +-0.0159745752395684 +-0.0159745600637994 +-0.0159745601055277 +-0.0159745600168665 +-0.0159745604231810 +-0.0159745608016728 +-0.0162161956723378 +-0.0159745608944706 +-0.0159746828036345 +-0.0159745600484790 +-0.0159745600853929 +-0.0159745636076942 +-0.0159745609002193 +-0.0159745628294240 +-0.0159745603477173 +-0.0159745784394756 +-0.0159745625692569 +-0.0159745608779773 +-0.0159745635342074 +-0.0159745609019703 +-0.0159745640427489 +-0.0159760580080058 +-0.0159760547818283 +-0.0159760542213905 +-0.0159760547814697 +-0.0159760546854451 +-0.0159760760509029 +-0.0159760548564238 +-0.0160066909509024 +-0.0159760548960165 +-0.0159761322769655 +-0.0159760553732560 +-0.0159760556564023 +-0.0159760542075929 +-0.0159760549005540 +-0.0159760577625278 +-0.0159760548844576 +-0.0159760540495355 +-0.0159760542247930 +-0.0159760546069606 +-0.0159760542094201 +-0.0159760576236717 +-0.0159725168040385 +-0.0159760553274094 +-0.0159760615195142 +-0.0159760578079956 +-0.0159760548913571 +-0.0155836392924608 +-0.0159760540608661 +-0.0159760540452904 +-0.0159760544851032 +-0.0159760568188456 +-0.0159760540488285 +-0.0159760552754484 +-0.0159760568309186 +-0.0159760548524198 +-0.0159760549475180 +-0.0159760540283226 +-0.0160322821973184 +-0.0159760541052612 +-0.0159760540378701 +-0.0159760569832419 +-0.0159760662532162 +-0.0156364326505207 +-0.0159760692427017 +-0.0159760540655130 +-0.0159760541072452 +-0.0159760540185757 +-0.0159760544249282 +-0.0159760548034554 +-0.0162177122798737 +-0.0159760548962619 +-0.0159761768168307 +-0.0159760540501912 +-0.0159760540871085 +-0.0159760576097393 +-0.0159760549020111 +-0.0159760568313963 +-0.0159760543494575 +-0.0159760724429083 +-0.0159760565712049 +-0.0159760548797671 +-0.0159760575362456 +-0.0159760549037623 +-0.0159760580448347 +%% +-0.0223352195595191 +-0.0189255130441532 +0.1215125954702671 +-0.0223352207405905 +-0.0189255140448308 +0.1215126018954801 +-0.0223352209457610 +-0.0189255142186641 +0.1215126030116396 +-0.0223352207407218 +-0.0189255140449421 +0.1215126018961944 +-0.0223352207758754 +-0.0189255140747264 +0.1215126020874354 +-0.0223352129541597 +-0.0189255074476792 +0.1215125595360812 +-0.0223352207132819 +-0.0189255140216932 +0.1215126017469168 +-0.0223239200832957 +-0.0189159394155230 +0.1214511245398641 +-0.0223352206987874 +-0.0189255140094126 +0.1215126016680645 +-0.0223351923698759 +-0.0189254900073851 +0.1215124475543635 +-0.0223352205240749 +-0.0189255138613852 +0.1215126007176012 +-0.0223352204204179 +-0.0189255137735605 +0.1215126001536910 +-0.0223352209508122 +-0.0189255142229438 +0.1215126030391188 +-0.0223352206971262 +-0.0189255140080052 +0.1215126016590277 +-0.0223352196493862 +-0.0189255131202942 +0.1215125959591582 +-0.0223352207030190 +-0.0189255140129979 +0.1215126016910851 +-0.0223352210086753 +-0.0189255142719691 +0.1215126033539035 +-0.0223352209445154 +-0.0189255142176088 +0.1215126030048634 +-0.0223352208046078 +-0.0189255140990703 +0.1215126022437441 +-0.0223352209501433 +-0.0189255142223771 +0.1215126030354798 +-0.0223352197002200 +-0.0189255131633639 +0.1215125962357024 +-0.0223365148349868 +-0.0189266104825608 +0.1215196419708059 +-0.0223352205408588 +-0.0189255138756057 +0.1215126008089086 +-0.0223352182739887 +-0.0189255119549714 +0.1215125884767812 +-0.0223352196327409 +-0.0189255131061913 +0.1215125958686051 +-0.0223352207004931 +-0.0189255140108578 +0.1215126016773442 +-0.0224660714834908 +-0.0190363781275911 +0.1222244476040273 +-0.0223352210045273 +-0.0189255142684547 +0.1215126033313377 +-0.0223352210102294 +-0.0189255142732858 +0.1215126033623580 +-0.0223352208492185 +-0.0189255141368673 +0.1215126024864334 +-0.0223352199948590 +-0.0189255134130004 +0.1215125978385843 +-0.0223352210089342 +-0.0189255142721884 +0.1215126033553115 +-0.0223352205598812 +-0.0189255138917226 +0.1215126009123935 +-0.0223352199904392 +-0.0189255134092557 +0.1215125978145398 +-0.0223352207147477 +-0.0189255140229352 +0.1215126017548911 +-0.0223352206799332 +-0.0189255139934382 +0.1215126015654949 +-0.0223352210164412 +-0.0189255142785488 +0.1215126033961508 +-0.0223143476047288 +-0.0189078290006959 +0.1213990487246676 +-0.0223352209882748 +-0.0189255142546844 +0.1215126032429211 +-0.0223352210129459 +-0.0189255142755874 +0.1215126033771362 +-0.0223352199346751 +-0.0189255133620089 +0.1215125975111745 +-0.0223352165410212 +-0.0189255104866928 +0.1215125790491674 +-0.0224499097263093 +-0.0190226851018155 +0.1221365258504805 +-0.0223352154465942 +-0.0189255095594257 +0.1215125730953138 +-0.0223352210028261 +-0.0189255142670133 +0.1215126033220829 +-0.0223352209875484 +-0.0189255142540691 +0.1215126032389698 +-0.0223352210200094 +-0.0189255142815720 +0.1215126034155625 +-0.0223352208712480 +-0.0189255141555320 +0.1215126026062770 +-0.0223352207326730 +-0.0189255140381227 +0.1215126018524079 +-0.0222410429919522 +-0.0188457204477017 +0.1210002592384944 +-0.0223352206986976 +-0.0189255140093365 +0.1215126016675759 +-0.0223351760634897 +-0.0189254761915937 +0.1215123588450769 +-0.0223352210084353 +-0.0189255142717657 +0.1215126033525976 +-0.0223352209949203 +-0.0189255142603149 +0.1215126032790737 +-0.0223352197053206 +-0.0189255131676853 +0.1215125962634500 +-0.0223352206965928 +-0.0189255140075532 +0.1215126016561257 +-0.0223352199902643 +-0.0189255134091075 +0.1215125978135884 +-0.0223352208988770 +-0.0189255141789411 +0.1215126027565834 +-0.0223352142750222 +-0.0189255085667965 +0.1215125667217790 +-0.0223352200855178 +-0.0189255134898122 +0.1215125983317823 +-0.0223352207047361 +-0.0189255140144528 +0.1215126017004267 +-0.0223352197322259 +-0.0189255131904812 +0.1215125964098191 +-0.0223352206959517 +-0.0189255140070101 +0.1215126016526381 +-0.0223352195460364 +-0.0189255130327298 +0.1215125953969190 +%% +0.0000002860515429 +0.0000001336923965 +0.0000000086825011 +0.0000000031474389 +0.0000000035227788 +0.0001253960836368 +0.0000262543699298 +0.0001036484182358 +0.0000907387047426 +0.0001413510538386 +0.0000011456969965 +0.0000010956060781 +0.0000004156118037 +0.0000001589596450 +0.0000000420240903 +0.0000000024325447 +0.0000017463208003 +-0.0000000063149758 +0.0000110024640267 +0.0000277988468344 +0.0012237898106768 +0.0000387151851673 +0.0000185810900032 +0.0000003594970814 +0.0000013889375324 +0.0000001017729949 +0.0000000532367727 +0.0000000195062862 +0.0000000018605114 +0.0000000019438707 +-0.0000000011477865 +0.0000712910851704 +0.0010163792685161 +0.0000471245446582 +0.0000104643762336 +0.0000112266862765 +0.0000044064970721 +0.0000043316804395 +0.0000000771244344 +0.0000000580161255 +0.0000000992841434 +0.0000000174619020 +0.0000000059206197 +-0.0000000098213873 +0.0000337237896365 +0.0033002772275274 +0.0000029991124506 +0.0000124144984307 +0.0000016792804727 +0.0000042568583938 +0.0000012227028352 +0.0000000358335915 +0.0000001322583757 +-0.0000000126041656 +0.0000000067318724 +0.0000000062299183 +0.9999932153359626 +0.0000057036923494 +0.0002671154604164 +0.0000087723167142 +0.0000909511293817 +0.0000037292412118 +0.0000013034513990 +0.0000005887752391 +%% +-0.1250485269999813 +-0.1250485017387021 +-0.1250484973504203 +-0.1250485017358938 +-0.1250485009840124 +-0.1250486682775984 +-0.1250485023227919 +-0.1252883862387800 +-0.1250485026328068 +-0.1250491085330709 +-0.1250485063696373 +-0.1250485085867000 +-0.1250484972423835 +-0.1250485026683358 +-0.1250485250778653 +-0.1250485025422989 +-0.1250484960047790 +-0.1250484973770616 +-0.1250485003694706 +-0.1250484972566906 +-0.1250485239906086 +-0.1250207990375155 +-0.1250485060106542 +-0.1250485544954296 +-0.1250485254338826 +-0.1250485025963228 +-0.1219759042419306 +-0.1250484960934984 +-0.1250484959715390 +-0.1250484994153161 +-0.1250485176887426 +-0.1250484959992431 +-0.1250485056037944 +-0.1250485177832757 +-0.1250485022914402 +-0.1250485030360682 +-0.1250484958386799 +-0.1254887690039716 +-0.1250484964411162 +-0.1250484959134374 +-0.1250485189759819 +-0.1250485915607708 +-0.1223892680712233 +-0.1250486149687297 +-0.1250484961298845 +-0.1250484964566514 +-0.1250484957623608 +-0.1250484989441400 +-0.1250485019080441 +-0.1269407269019648 +-0.1250485026347276 +-0.1250494572844961 +-0.1250484960099129 +-0.1250484962989789 +-0.1250485238815167 +-0.1250485026797450 +-0.1250485177870162 +-0.1250484983531969 +-0.1250486400266543 +-0.1250485157496926 +-0.1250485025055717 +-0.1250485233060540 +-0.1250485026934568 +-0.1250485272883554 +%% +-0.1786819872446880 +-0.1514298249324479 +0.9721840132172598 \ No newline at end of file diff --git a/examples/machsuite/backprop/run_test.py b/examples/machsuite/backprop/run_test.py index c203d317c9..ecb1aaf801 100644 --- a/examples/machsuite/backprop/run_test.py +++ b/examples/machsuite/backprop/run_test.py @@ -38,9 +38,9 @@ def parse_data(file_name): # TODO: Machsuite's benchmark for backprop does not match check.data either # Allo's backprop matches output for Machsuite's backprop - # np.testing.assert_allclose(weights1, weights1_check, rtol=1e-5, atol=1e-5) - # np.testing.assert_allclose(weights2, weights2_check, rtol=1e-5, atol=1e-5) - # np.testing.assert_allclose(weights3, weights3_check, rtol=1e-5, atol=1e-5) - # np.testing.assert_allclose(biases1, biases1_check, rtol=1e-5, atol=1e-5) - # np.testing.assert_allclose(biases2, biases2_check, rtol=1e-5, atol=1e-5) - # np.testing.assert_allclose(biases3, biases3_check, rtol=1e-5, atol=1e-5) \ No newline at end of file + # np.testing.assert_allclose(weights1, weights1_check, rtol=1e-3, atol=1e-3) + # np.testing.assert_allclose(weights2, weights2_check, rtol=1e-3, atol=1e-3) + # np.testing.assert_allclose(weights3, weights3_check, rtol=1e-3, atol=1e-3) + # np.testing.assert_allclose(biases1, biases1_check, rtol=1e-3, atol=1e-3) + # np.testing.assert_allclose(biases2, biases2_check, rtol=1e-3, atol=1e-3) + # np.testing.assert_allclose(biases3, biases3_check, rtol=1e-3, atol=1e-3) \ No newline at end of file diff --git a/examples/machsuite/bfs/__init__.py b/examples/machsuite/bfs/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/machsuite/check.data b/examples/machsuite/check.data deleted file mode 100644 index d720516150..0000000000 --- a/examples/machsuite/check.data +++ /dev/null @@ -1,2049 +0,0 @@ -%% -2133347 -3755034 -3757680 -5114060 -6748351 -11497565 -13360332 -14464969 -14535786 -15264621 -16570194 -16921963 -16959813 -19892644 -20193475 -20865036 -21389248 -22768866 -25100496 -25776468 -25869575 -27666284 -27675825 -28990799 -29381863 -29653602 -30894415 -32011475 -32283582 -32495326 -33287680 -33423244 -33797863 -33967896 -34606601 -34794482 -36491596 -36513003 -37313539 -37577570 -37600544 -37958120 -39484517 -40140980 -41705353 -42383451 -43902811 -44125235 -47621339 -47866257 -48905545 -51198210 -51245290 -55100470 -58572672 -59206569 -60974523 -62624058 -62830115 -63917942 -65375150 -65864705 -66411149 -67176562 -67874428 -68604017 -69122538 -69969612 -70599058 -71478587 -72158627 -72460518 -73066829 -76115669 -76700937 -78410211 -80693604 -80818357 -81692302 -82876636 -83314681 -84370399 -85297387 -85901251 -87087128 -87248777 -87270835 -88325323 -89650033 -90635783 -92766339 -93482676 -93987402 -95454661 -95598889 -96657364 -98319525 -99479956 -100077314 -100936390 -101347165 -101884596 -102673761 -105234290 -105724135 -105877669 -106828160 -109081969 -110019408 -111155111 -111436477 -111756298 -111885734 -113221775 -114342047 -116727282 -118360318 -119602863 -120372826 -121774000 -122470461 -123620487 -127031658 -127386675 -127839099 -128191180 -128199623 -128894687 -128928023 -128952447 -132957322 -133709002 -134086399 -134097471 -135356844 -136883456 -137991365 -139185907 -139309844 -139783465 -144522435 -145125081 -145181215 -146301892 -146480651 -147666338 -148366910 -149065532 -150020171 -150337966 -150901144 -151035803 -151333492 -151499496 -152600286 -153048093 -153207158 -154698022 -155477576 -155859496 -156300070 -156543006 -156692706 -156960811 -160415738 -161717562 -163522198 -164019660 -165337021 -165449550 -165757953 -166148387 -168634616 -169996838 -170250664 -170391257 -170463985 -171333890 -172081653 -172179489 -174384850 -175276916 -176394620 -177133202 -177548100 -177623586 -177771287 -179816643 -180988319 -181874898 -182069082 -183070972 -184954528 -185259225 -185589616 -186545648 -186735955 -187577258 -187757211 -189071296 -189324225 -189486773 -190068440 -190526577 -191656740 -191855552 -192699922 -194033189 -194304077 -194961368 -195485565 -195575558 -195791553 -196570489 -198128026 -198515425 -199018542 -200930301 -201967992 -203588067 -206702553 -207237193 -208236790 -208753405 -212096210 -212764022 -213296204 -213358112 -215084709 -216451246 -216730162 -217581202 -217859346 -218079139 -220029168 -222764447 -222774002 -224370131 -225640914 -225891607 -227234597 -228193101 -228756043 -230054271 -230116054 -231968216 -232320438 -234368065 -236157269 -238322615 -239056365 -240134265 -240505305 -242255706 -243261054 -243305723 -244437562 -246048882 -247483746 -247597272 -248943784 -248987466 -249178659 -250211688 -250544064 -253359016 -254388947 -255055848 -256610514 -257004501 -257911218 -258103701 -260995967 -261522116 -261653045 -263877273 -264114698 -265158106 -265255716 -265337843 -266261552 -267592551 -267898534 -269286404 -269570899 -269644648 -270842593 -271001503 -271321916 -271463051 -274284400 -275490071 -277528908 -278812137 -278846449 -279972861 -280371522 -281450081 -284387350 -285571409 -286532441 -286665591 -286841615 -287756628 -288148609 -289705845 -291409102 -293433174 -294813100 -295984014 -297554450 -297823665 -297869098 -299389274 -299898902 -300761205 -302354825 -302652346 -303590601 -304511300 -305434839 -306233773 -306822213 -307203772 -308134579 -308994026 -309212434 -310302420 -310662211 -310665455 -311356082 -312251881 -314315478 -315948592 -320253652 -320990176 -321993998 -325031938 -325290524 -325464775 -328655625 -329738404 -330737581 -330792297 -332327337 -333247645 -334543417 -334880253 -334977553 -335715992 -336541300 -337601622 -338856656 -342063486 -342070919 -344296193 -349919910 -350127017 -351873178 -352228300 -353885535 -355079864 -355535304 -355560126 -355663123 -355827223 -356093208 -356194072 -358187431 -361261943 -362170271 -368123457 -370000419 -370391868 -370406316 -371167247 -371943766 -375078779 -377206183 -379721750 -379897203 -380400361 -380681534 -381891319 -382115769 -382894292 -384805441 -385862243 -392336178 -392961592 -394042623 -394189989 -394664535 -396095779 -396375367 -397615021 -400859314 -403111108 -403955460 -404866075 -407019027 -407338232 -407394234 -408591603 -409435661 -410327491 -413733332 -413952789 -415406505 -417049677 -417112292 -417730805 -418518584 -419218001 -420033603 -421766723 -422151624 -423694845 -424635729 -426239114 -426368885 -426858731 -427310717 -427731302 -429639342 -429741617 -429882966 -433157790 -433315813 -434370628 -434550013 -436827523 -439115595 -439420872 -439666194 -440638102 -440797705 -441400426 -442054749 -442247466 -443973176 -444128215 -444869164 -445929743 -446035477 -446582461 -446669555 -448651778 -449325307 -450180092 -453173852 -456679784 -460964936 -461038923 -461186368 -461386911 -462324490 -463015512 -466353018 -466890649 -467485606 -469191954 -469606255 -470747628 -470920964 -471437709 -472147699 -472376887 -474042834 -475239808 -477793157 -477796026 -477837560 -477994546 -479378426 -480093923 -480755265 -481430369 -483764857 -484374348 -485470119 -488305458 -488787171 -491184830 -494700070 -495965166 -495999182 -496276526 -496705994 -498204267 -498679396 -502743441 -503395919 -503974112 -505236584 -505318934 -505651416 -507333260 -509043494 -510319326 -510490837 -512010901 -512735686 -514380753 -515229764 -517175601 -520630890 -522708374 -524037430 -524157971 -524589729 -525189582 -526857678 -527155034 -527747622 -529333204 -530630168 -532918727 -532974825 -533206101 -533566406 -534440455 -535153458 -536145871 -537126833 -540184876 -541468179 -543322263 -543473278 -544807927 -544833283 -545094225 -545325403 -546700911 -549024074 -550021592 -553748629 -553810021 -555271126 -555566939 -556662332 -560186184 -561622493 -561858461 -563554428 -563762887 -565681876 -565800731 -566064689 -566225790 -566948716 -567355160 -568740973 -569091874 -569866125 -570351679 -571532202 -571692111 -571913873 -572148025 -572382664 -573024774 -573553042 -574107939 -574110884 -574493348 -575072672 -575225045 -575410850 -576622031 -576793022 -577928774 -578934327 -580950754 -581839897 -581929050 -582040172 -582241926 -582856665 -584977769 -585230318 -586080090 -587037925 -587655589 -587767534 -587916663 -588200933 -589330536 -589994150 -590784521 -590956460 -591164384 -593608013 -594786342 -597276011 -599711002 -600033258 -600477902 -601273025 -602854601 -603437841 -604513972 -606824780 -612383828 -613268233 -613529359 -615255022 -615396429 -615465251 -617601891 -619028234 -619433493 -619600306 -619670720 -620801916 -622945444 -623522623 -624009478 -625175432 -625384414 -626485281 -627008650 -629196542 -631585224 -632426210 -632657984 -633725180 -633950703 -634966326 -635151053 -636440904 -637126175 -638126241 -638785636 -640042407 -641476730 -642497135 -642811328 -644816858 -645644963 -645888076 -647202043 -647566861 -648920224 -649418674 -649968691 -650800084 -650896432 -651856529 -653182226 -653548551 -654040018 -654196693 -654528262 -654953859 -655371791 -656216426 -656363920 -657058228 -659854392 -661211720 -662099942 -663304095 -663507254 -664661815 -667549624 -669470941 -669729404 -670730778 -671092095 -673553453 -673939191 -674185448 -675168495 -675626112 -676159587 -677596581 -679338690 -680154439 -680538897 -682966620 -683533351 -683562227 -684312237 -684786026 -685518568 -686696903 -686712154 -686806421 -687976188 -688030609 -688349205 -688409711 -688458885 -689731123 -690139864 -690340275 -691710619 -693156114 -695452877 -697034874 -697126989 -698372168 -698735397 -699187511 -699663017 -700320492 -705207687 -708933711 -710833831 -712594424 -712973066 -712981076 -712997872 -714517701 -715522899 -715553437 -715902510 -716307040 -717117315 -719448316 -720006110 -722929758 -725038219 -725273676 -725776724 -730203072 -730675129 -730808830 -733476653 -733984101 -734093500 -735891214 -736956260 -738685536 -738881659 -739660204 -741025494 -741418432 -743345365 -744237267 -744357234 -744811305 -745378755 -746394489 -746617994 -747237852 -747629642 -747957429 -748843663 -750880416 -752732815 -757693590 -757956417 -758036067 -758299180 -758309245 -758747878 -760832339 -761135150 -761990740 -764040994 -767231266 -767356740 -767456013 -768137467 -769562455 -771445491 -772232460 -772564030 -775053198 -775345665 -775464769 -778720014 -778793566 -781720704 -782100758 -782182721 -783463990 -791279994 -791876198 -792265037 -794289828 -796271435 -796629791 -796806456 -797661895 -798120086 -798742964 -800065723 -803122230 -804293100 -807198688 -807487382 -807650229 -808500002 -808577261 -808830103 -809073182 -809264055 -809276456 -810284694 -811952156 -812433900 -813759669 -817956649 -818949154 -819592305 -820782732 -822154166 -822605154 -824100101 -825072193 -826107839 -827043256 -827249544 -828922529 -831110648 -831460600 -831989131 -832280789 -832694119 -833364330 -833850611 -834541135 -838266613 -839107675 -839148521 -840691116 -842556374 -844180205 -844692692 -845612054 -845863361 -846697057 -846871207 -848683553 -850405899 -850784234 -851123424 -852197140 -855502120 -855586245 -855668781 -855675633 -855879190 -855957287 -856117299 -856163730 -857924069 -859068360 -861414954 -862220124 -862884446 -864712182 -868199677 -869562959 -869731817 -870211055 -874435881 -877005609 -878151227 -878431464 -878975232 -880060227 -880325991 -880407103 -881467599 -883528647 -884061622 -884238878 -884886315 -885339106 -885938485 -886705747 -887832138 -887851153 -888016505 -888378984 -889041242 -889558597 -890214205 -890996604 -891002766 -892456149 -895203452 -895333635 -899241182 -899521529 -901869777 -903776433 -904117025 -904844916 -905578736 -906203575 -906811784 -906812863 -911439955 -913039220 -913210060 -913408239 -913546305 -915003592 -915056003 -915682031 -919030930 -919061917 -920120429 -921374992 -922348435 -923023429 -923477393 -923510154 -924717512 -925823612 -926141078 -928060762 -929515894 -929610229 -929774247 -930810656 -931278473 -932779695 -933376004 -935575241 -937167562 -937219425 -938525317 -938531752 -939110988 -940359383 -940414037 -943290983 -945732052 -948235397 -948583912 -948660600 -949308911 -949738733 -950017849 -950546871 -952105334 -953346621 -953389511 -957614860 -958114106 -958204191 -958475713 -959114025 -959591760 -959767948 -959847712 -960509540 -963616547 -964714143 -965216452 -966500528 -966540065 -966656346 -968134515 -969142497 -970035152 -970890193 -971012069 -972380635 -972432201 -972720185 -973272863 -973421597 -974146282 -974611758 -975595750 -976556402 -978797663 -978889362 -979882348 -982559445 -982971994 -983027648 -983036142 -983326361 -983769777 -984775739 -985667224 -986185740 -987100826 -988389331 -988814076 -989310069 -989780742 -990148370 -990510471 -998034057 -998574805 -1002103818 -1002382477 -1002781191 -1006476475 -1007073583 -1007413192 -1008080182 -1008917238 -1009562350 -1011126259 -1011426922 -1011465638 -1011728700 -1012978043 -1013596633 -1015486081 -1017605774 -1019123948 -1020998191 -1025378896 -1025539030 -1027145810 -1027218802 -1028402758 -1028943287 -1029044046 -1029473878 -1030745371 -1030891483 -1031661611 -1035063037 -1036163211 -1036324244 -1038024060 -1038079141 -1039609563 -1041291898 -1043514001 -1043671504 -1043748460 -1043799665 -1043813904 -1044906031 -1045155143 -1049227491 -1049335247 -1049728079 -1049845316 -1050330236 -1050997197 -1051457277 -1052821998 -1055687629 -1056661716 -1057862950 -1059798558 -1059806210 -1060288813 -1060696357 -1061518049 -1061892401 -1062922841 -1066649388 -1066972125 -1068053540 -1070355746 -1071401003 -1073048018 -1074097729 -1074286241 -1074300668 -1074483465 -1076063081 -1076611070 -1077160981 -1081087911 -1081585836 -1082854026 -1082946820 -1084899449 -1086035569 -1086200684 -1087460587 -1088190640 -1088812321 -1089642825 -1090531306 -1090974754 -1092306234 -1092710391 -1092953187 -1093221553 -1095075549 -1095541326 -1098270690 -1099260427 -1099741236 -1103884228 -1104249874 -1104858395 -1107290731 -1108017302 -1108811950 -1109418933 -1109622328 -1109855432 -1110626951 -1112932854 -1114555094 -1114901368 -1116883499 -1117756527 -1117811582 -1118528663 -1121395876 -1121418962 -1125116660 -1126356873 -1128584764 -1132845513 -1133750821 -1133774721 -1133824038 -1135598074 -1135620094 -1136933701 -1138038366 -1139318757 -1139540709 -1140779057 -1140871300 -1141337493 -1141625008 -1143906286 -1144962169 -1146517530 -1147868582 -1150608565 -1150685699 -1152561826 -1152658053 -1152870612 -1153411159 -1153831208 -1155746337 -1156777289 -1157339335 -1157521215 -1159311377 -1160173737 -1160512943 -1161042045 -1161314948 -1163243317 -1164236034 -1164772417 -1167644629 -1169503075 -1169798951 -1170087820 -1172837198 -1174834475 -1175335789 -1175852528 -1177950017 -1179092924 -1180171844 -1180885064 -1181139571 -1181417357 -1183706182 -1185682885 -1185794840 -1185820321 -1186424475 -1186749668 -1188795072 -1188961944 -1189752626 -1190803319 -1190905355 -1194156988 -1195126377 -1196073904 -1196102277 -1197836840 -1199917825 -1200831126 -1200952768 -1201701021 -1202350460 -1203533423 -1203560793 -1204015278 -1204603742 -1205290644 -1205463274 -1205578490 -1206155886 -1206390092 -1206963419 -1207379225 -1208131300 -1209892037 -1211066244 -1215426612 -1216726543 -1217295379 -1217890510 -1218550582 -1220333667 -1220504126 -1225723697 -1225936051 -1227145464 -1227250292 -1227437587 -1228449626 -1230989666 -1234319084 -1234818297 -1235930752 -1237457277 -1237975020 -1238195981 -1239022902 -1241008979 -1241623934 -1242283544 -1243363704 -1243702427 -1245554671 -1246420553 -1247105271 -1248644863 -1252662158 -1252894316 -1255682160 -1257913932 -1258401652 -1258466362 -1259656278 -1261553536 -1262117610 -1263325058 -1267194477 -1268173144 -1268605809 -1269116464 -1269130261 -1270135577 -1271224717 -1273404932 -1275248869 -1277243675 -1277321980 -1280088237 -1280377319 -1283366129 -1283452965 -1288300668 -1288593639 -1288963009 -1289143959 -1289636648 -1289710990 -1291395605 -1292482679 -1293750767 -1296097952 -1300663257 -1300801411 -1300975567 -1304926989 -1307929928 -1308135181 -1308199630 -1308827711 -1310389367 -1314346640 -1314379214 -1314761427 -1315274444 -1318176443 -1318724530 -1318788757 -1320744276 -1322378188 -1322899191 -1322903332 -1323635552 -1325636480 -1327244745 -1327717577 -1328483569 -1329163456 -1330148002 -1330356158 -1330750916 -1331213739 -1334292065 -1335953484 -1336095842 -1337023357 -1338304372 -1339916712 -1340913190 -1344001400 -1347420787 -1348885486 -1349015110 -1349960247 -1350773514 -1351690990 -1352022878 -1353432239 -1354578859 -1355355406 -1356742879 -1357124699 -1357126034 -1357403688 -1358323379 -1358767116 -1359635656 -1360170634 -1360482924 -1362144698 -1362843647 -1362978041 -1363477108 -1366155872 -1366534343 -1366540379 -1370274737 -1370612980 -1371516301 -1372082487 -1375376180 -1375996180 -1376179498 -1376525530 -1376862374 -1377121447 -1378231989 -1378629143 -1379034746 -1379702275 -1380501622 -1382222743 -1382277369 -1386167239 -1386353267 -1388546716 -1388983728 -1389889911 -1391960827 -1395863973 -1396295365 -1396645840 -1401333919 -1402247546 -1404491762 -1405497708 -1405789849 -1406437932 -1409507697 -1409829600 -1410156639 -1410552188 -1410765040 -1413994924 -1414207923 -1414423038 -1414528615 -1417951513 -1422027837 -1422585722 -1422685798 -1423639214 -1424215948 -1424752169 -1426697691 -1427718200 -1429354919 -1430036275 -1430365678 -1432518129 -1435813687 -1436648428 -1436803764 -1436923733 -1436925357 -1437804740 -1441967717 -1442696964 -1444528980 -1446109254 -1447146831 -1447529023 -1447639092 -1452760991 -1452949634 -1454208590 -1455007941 -1455129140 -1455163933 -1456500105 -1457477494 -1458969496 -1459936822 -1464154677 -1466255376 -1466647222 -1467133816 -1469672015 -1471685662 -1475644449 -1476113587 -1477040484 -1477125634 -1477958868 -1478052781 -1478231675 -1479091917 -1480023781 -1481426509 -1481673943 -1481954328 -1485761527 -1486010819 -1490088251 -1490293414 -1490551067 -1490855871 -1490993762 -1492372309 -1495513018 -1496403843 -1496856968 -1498584073 -1500513730 -1502453831 -1502970603 -1504889936 -1505342868 -1507596870 -1507828443 -1507871622 -1508081018 -1508414985 -1508415400 -1508479159 -1508784989 -1508899123 -1509102120 -1509239253 -1509423999 -1511282393 -1511471584 -1511975455 -1512337459 -1512366409 -1514185138 -1517833798 -1517889260 -1518491148 -1519303354 -1519638970 -1520134395 -1520682189 -1521269681 -1521856552 -1521977514 -1523490095 -1524089052 -1524439365 -1525501767 -1526049370 -1526083639 -1526265741 -1527380174 -1527421456 -1529439264 -1529777199 -1530083358 -1530120543 -1532297134 -1534366741 -1534846639 -1537880576 -1538159254 -1538229015 -1539989091 -1540741826 -1541002096 -1541074474 -1541111920 -1541721121 -1544221168 -1545737076 -1546967413 -1548221944 -1548399784 -1549529019 -1549733557 -1550538745 -1551165877 -1552449187 -1554873250 -1555063811 -1555839117 -1557213329 -1558931031 -1559662372 -1561025502 -1562199863 -1563098806 -1564028159 -1566921788 -1567582626 -1567885971 -1568409342 -1569699514 -1570568754 -1570682769 -1571401088 -1571615945 -1573197253 -1573306030 -1574199191 -1574664725 -1575838288 -1577296486 -1578225787 -1578615594 -1578783094 -1579943353 -1580519681 -1581562042 -1583299513 -1584569620 -1585435999 -1591980305 -1594259114 -1596482838 -1596566478 -1596781798 -1598145122 -1598474177 -1598702022 -1598880106 -1601476259 -1604608585 -1605673665 -1606094474 -1607153388 -1608483043 -1609576996 -1609966836 -1610106089 -1610212241 -1612961280 -1614633814 -1615301359 -1615396489 -1615586521 -1615644249 -1617349948 -1619540398 -1622220773 -1622566196 -1622672547 -1622858086 -1624464501 -1624469284 -1625624387 -1626442863 -1626561260 -1626835703 -1627131223 -1628704410 -1629979228 -1631921401 -1632359870 -1632447212 -1633900703 -1634092629 -1634849629 -1634970761 -1635095625 -1638858151 -1639101257 -1639266374 -1639375178 -1643044260 -1643477270 -1643600058 -1646270397 -1647081533 -1648638369 -1649158032 -1651359165 -1651757254 -1652676409 -1653666869 -1654496076 -1655987401 -1658941557 -1660130224 -1660399521 -1660648751 -1663738178 -1664461865 -1664938017 -1665344106 -1666581461 -1667198857 -1668027402 -1668301266 -1669934750 -1670756727 -1671375771 -1672057153 -1673714908 -1674101664 -1675299198 -1677345411 -1678071040 -1678802734 -1679356962 -1680245394 -1681992484 -1682345589 -1682795575 -1683700383 -1684298076 -1684591040 -1686133874 -1686201683 -1693046234 -1696623877 -1698620703 -1700597509 -1702429773 -1703593893 -1705151327 -1706381830 -1706621285 -1708884929 -1712530333 -1714271246 -1716268655 -1717303496 -1717619409 -1717771501 -1717784670 -1717898129 -1720162062 -1721413076 -1722060509 -1723393945 -1724525858 -1725179668 -1726223739 -1730973465 -1731352982 -1734614399 -1735003835 -1736059900 -1739031566 -1739709739 -1742200000 -1743060669 -1743156388 -1743560317 -1744091564 -1747034742 -1748920694 -1749360430 -1750705322 -1751012237 -1751481862 -1751706861 -1752801464 -1753942928 -1754206178 -1755190221 -1757516351 -1758303713 -1761029936 -1761115959 -1762325188 -1762541667 -1763803382 -1763962871 -1766708683 -1767102385 -1767385714 -1767960493 -1770782659 -1773889298 -1775413870 -1775824841 -1776748374 -1776907376 -1777087870 -1777687620 -1777860200 -1778540681 -1781370922 -1781463861 -1782981879 -1783108894 -1785165035 -1787046589 -1787727134 -1787922118 -1789130811 -1791501057 -1794023617 -1794658020 -1795509528 -1795907770 -1796184127 -1796300787 -1797062632 -1798205555 -1802694996 -1802842080 -1804722203 -1804991596 -1805045931 -1808063237 -1808277272 -1808409362 -1809053399 -1809816412 -1811254570 -1812653640 -1813623839 -1815633090 -1818417574 -1820141525 -1820537604 -1822410595 -1823946607 -1824181053 -1824488320 -1825081759 -1826954830 -1828731468 -1830311501 -1830732408 -1831135391 -1832175712 -1832407011 -1832970857 -1834168494 -1835805781 -1838108796 -1838410053 -1838522490 -1838585137 -1838827365 -1842721649 -1842753670 -1844269578 -1844561354 -1845237492 -1847931834 -1847955003 -1849441842 -1849930260 -1851144058 -1851394246 -1851918902 -1852864695 -1853098254 -1855992217 -1857013270 -1860452983 -1862173806 -1862290036 -1862424942 -1862516074 -1863090771 -1869118844 -1870686501 -1871737210 -1871930841 -1873231157 -1873342560 -1873437237 -1873914717 -1874050798 -1874446752 -1877665128 -1878336665 -1878457419 -1878652257 -1879212775 -1882195988 -1883277337 -1883661820 -1884372854 -1884757001 -1884958763 -1886068611 -1886163330 -1886436552 -1887274953 -1887487879 -1888071966 -1888220505 -1889248804 -1890353495 -1891793940 -1896019661 -1896476627 -1896647369 -1897820551 -1902153909 -1902254400 -1902339426 -1904253857 -1907078094 -1907538605 -1907580398 -1907807070 -1907911431 -1909053670 -1909718144 -1911249842 -1915352982 -1915682127 -1916020202 -1916094303 -1916259885 -1916308447 -1916828746 -1916908871 -1916993507 -1918376468 -1918632021 -1919583369 -1920728646 -1922036040 -1922614328 -1923924460 -1924416135 -1924633218 -1925056591 -1925082982 -1927651160 -1929621642 -1929913575 -1931573183 -1932716859 -1934613289 -1935068243 -1936377891 -1938115516 -1940511093 -1942290066 -1945580778 -1946213519 -1947409049 -1948715918 -1949700165 -1950213303 -1950273149 -1951327492 -1951377854 -1953285454 -1953576625 -1955039518 -1955293159 -1956068826 -1956126820 -1956991390 -1957012319 -1957602825 -1958219970 -1959287271 -1959338304 -1959775221 -1961650964 -1963473417 -1963770886 -1965873054 -1966615493 -1967364101 -1967458050 -1967928355 -1968849511 -1970429577 -1973194763 -1973998991 -1974957533 -1976452159 -1976830581 -1977247419 -1980953401 -1982013299 -1982165897 -1982312774 -1985493594 -1985953656 -1988645768 -1989365107 -1989677061 -1991495774 -1992004640 -1992319864 -1992886662 -1994105611 -1994425709 -1995915674 -1996070097 -1996684564 -1996730701 -1997162113 -1997623469 -1998377219 -1999127721 -2001200452 -2005054881 -2005811631 -2006160299 -2006982087 -2009652075 -2009798832 -2010057298 -2013001410 -2017315325 -2019357220 -2019932464 -2021770828 -2023037910 -2023613712 -2024107971 -2024945956 -2027242748 -2027485539 -2028513672 -2029183499 -2029656846 -2029866940 -2033017829 -2033754513 -2035115070 -2035742309 -2035752357 -2038696287 -2040229806 -2040360225 -2040914781 -2041430432 -2041922925 -2042693768 -2042892557 -2043808773 -2044732291 -2044819044 -2045928996 -2047175855 -2049075599 -2049884625 -2051581527 -2052223638 -2052476522 -2053285680 -2057529922 -2061783685 -2063389035 -2065420671 -2065468078 -2066152872 -2066161218 -2066209600 -2066451533 -2067955182 -2068587877 -2071142127 -2072291183 -2073205469 -2073575906 -2075304330 -2076257739 -2077984882 -2078244571 -2078387171 -2078588264 -2078809135 -2079506846 -2079856010 -2080912538 -2081640854 -2083692784 -2083830786 -2084230463 -2084376878 -2084381027 -2084804186 -2086945996 -2086956417 -2087272360 -2089096067 -2089420814 -2091020153 -2096925230 -2097234590 -2098333903 -2100035316 -2101153676 -2102342705 -2102759154 -2107573499 -2107879177 -2108631302 -2112022026 -2112321593 -2113258941 -2113307749 -2113939165 -2114483017 -2115926688 -2116358856 -2116500429 -2116642867 -2118036408 -2118454202 -2118918951 -2119234197 -2123456246 -2123781138 -2125209562 -2126242116 -2126524027 -2126751739 -2127559558 -2128021970 -2128389497 -2132256492 -2133026663 -2133146643 -2137312385 -2142772926 -2143582251 -2143642374 -2144650720 -2146276546 -2147208091 diff --git a/examples/machsuite/fft/__init__.py b/examples/machsuite/fft/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/machsuite/fft/strided/__init__.py b/examples/machsuite/fft/strided/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/machsuite/fft/transpose/__init__.py b/examples/machsuite/fft/transpose/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/machsuite/fft/transpose/transpose_fft.py b/examples/machsuite/fft/transpose/transpose_fft.py index 1d73a088f3..c12ddc4793 100644 --- a/examples/machsuite/fft/transpose/transpose_fft.py +++ b/examples/machsuite/fft/transpose/transpose_fft.py @@ -4,7 +4,7 @@ # transpose_fft.py import allo -from allo.ir.types import float32, int32, float32, int32 +from allo.ir.types import float32, int32, float32, int32, index import math import numpy as np @@ -296,8 +296,9 @@ def fft1D_512(work_x: float32[512], work_y: float32[512]): # Loop 2 tid: int32 = 0 for tid in range(64): - hi = tid >> 3 - lo = tid & 7 + tid_int: int32 = tid + hi: index = tid_int >> 3 + lo: index = tid_int & 7 offset: int32 = hi * 8 + lo smem[0 * sx + offset] = DATA_x[tid * 8 + 0] @@ -313,7 +314,9 @@ def fft1D_512(work_x: float32[512], work_y: float32[512]): # Loop 3 tid: int32 = 0 for tid in range(64): - hi = tid >> 3 + tid_int: int32 = tid + hi: index = tid_int >> 3 + lo: index = tid_int & 7 lo = tid & 7 offset: int32 = lo * 66 + hi @@ -330,8 +333,9 @@ def fft1D_512(work_x: float32[512], work_y: float32[512]): # Loop 4 tid: int32 = 0 for tid in range(64): - hi= tid >> 3 - lo = tid & 7 + tid_int: int32 = tid + hi: index = tid_int >> 3 + lo: index = tid_int & 7 offset: int32 = hi * 8 + lo smem[0 * sx + offset] = DATA_y[tid * 8 + 0] @@ -355,8 +359,9 @@ def fft1D_512(work_x: float32[512], work_y: float32[512]): data_y[6] = DATA_y[tid * 8 + 6] data_y[7] = DATA_y[tid * 8 + 7] - hi = tid >> 3 - lo = tid & 7 + tid_int: int32 = tid + hi: index = tid_int >> 3 + lo: index = tid_int & 7 # BUG: GET CASTING ERRORS WHEN INPUTTING TMP_1 RAW INTO LOADY8 tmp_1: int32 = lo * 66 + hi @@ -397,7 +402,8 @@ def fft1D_512(work_x: float32[512], work_y: float32[512]): FFT8(data_x, data_y) # Calculate hi for second twiddle calculation... - hi = tid >> 3 + tid_int: int32 = tid + hi: index = tid_int >> 3 # Second twiddles calc, use hi and 64 stride version as defined in G80/SHOC... twiddles8(data_x, data_y, hi, 64) @@ -426,8 +432,9 @@ def fft1D_512(work_x: float32[512], work_y: float32[512]): # Loop 7 tid: int32 = 0 for tid in range(64): - hi = tid >> 3 - lo = tid & 7 + tid_int: int32 = tid + hi: index = tid_int >> 3 + lo: index = tid_int & 7 offset: int32 = hi * 8 + lo smem[0 * sx + offset] = DATA_x[tid * 8 + 0] @@ -443,8 +450,9 @@ def fft1D_512(work_x: float32[512], work_y: float32[512]): # Loop 8 tid: int32 = 0 for tid in range(64): - hi = tid >> 3 - lo = tid & 7 + tid_int: int32 = tid + hi: index = tid_int >> 3 + lo: index = tid_int & 7 offset: int32 = hi * 72 + lo DATA_x[tid * 8 + 0] = smem[0 * sx + offset] @@ -460,8 +468,9 @@ def fft1D_512(work_x: float32[512], work_y: float32[512]): # Loop 9 tid: int32 = 0 for tid in range(64): - hi = tid >> 3 - lo = tid & 7 + tid_int: int32 = tid + hi: index = tid_int >> 3 + lo: index = tid_int & 7 offset: int32 = hi * 8 + lo smem[0 * sx + offset] = DATA_y[tid * 8 + 0] @@ -485,8 +494,9 @@ def fft1D_512(work_x: float32[512], work_y: float32[512]): data_y[6] = DATA_y[tid * 8 + 6] data_y[7] = DATA_y[tid * 8 + 7] - hi = tid >> 3 - lo = tid & 7 + tid_int: int32 = tid + hi: index = tid_int >> 3 + lo: index = tid_int & 7 tmp_1: int32 = hi * 72 + lo loady8(data_y, smem, tmp_1, 8) diff --git a/examples/machsuite/GEMM/gemm_blocked.py b/examples/machsuite/gemm/gemm_blocked.py similarity index 100% rename from examples/machsuite/GEMM/gemm_blocked.py rename to examples/machsuite/gemm/gemm_blocked.py diff --git a/examples/machsuite/GEMM/gemm_blocked_opt.py b/examples/machsuite/gemm/gemm_blocked_opt.py similarity index 100% rename from examples/machsuite/GEMM/gemm_blocked_opt.py rename to examples/machsuite/gemm/gemm_blocked_opt.py diff --git a/examples/machsuite/GEMM/gemm_ncubed.py b/examples/machsuite/gemm/gemm_ncubed.py similarity index 100% rename from examples/machsuite/GEMM/gemm_ncubed.py rename to examples/machsuite/gemm/gemm_ncubed.py diff --git a/examples/machsuite/GEMM/gemm_ncubed_opt.py b/examples/machsuite/gemm/gemm_ncubed_opt.py similarity index 100% rename from examples/machsuite/GEMM/gemm_ncubed_opt.py rename to examples/machsuite/gemm/gemm_ncubed_opt.py diff --git a/examples/machsuite/GEMM/input.data b/examples/machsuite/gemm/input.data similarity index 100% rename from examples/machsuite/GEMM/input.data rename to examples/machsuite/gemm/input.data diff --git a/examples/machsuite/GEMM/setup-py312.sh b/examples/machsuite/gemm/setup-py312.sh similarity index 100% rename from examples/machsuite/GEMM/setup-py312.sh rename to examples/machsuite/gemm/setup-py312.sh diff --git a/examples/machsuite/GEMM/testing.py b/examples/machsuite/gemm/testing.py similarity index 100% rename from examples/machsuite/GEMM/testing.py rename to examples/machsuite/gemm/testing.py diff --git a/examples/machsuite/GEMM/testing_blocked.py b/examples/machsuite/gemm/testing_blocked.py similarity index 100% rename from examples/machsuite/GEMM/testing_blocked.py rename to examples/machsuite/gemm/testing_blocked.py diff --git a/examples/machsuite/input.data b/examples/machsuite/input.data deleted file mode 100644 index 5a655a5227..0000000000 --- a/examples/machsuite/input.data +++ /dev/null @@ -1,2049 +0,0 @@ -%% -1109418933 -1238195981 -1655987401 -1435813687 -568740973 -194304077 -85901251 -90635783 -1521856552 -561622493 -1490293414 -1693046234 -978889362 -758747878 -238322615 -449325307 -111436477 -1663738178 -34606601 -2101153676 -807487382 -1239022902 -1622566196 -1916259885 -308994026 -1703593893 -1508899123 -1362978041 -325464775 -1670756727 -474042834 -906811784 -291409102 -440797705 -904844916 -2116642867 -582856665 -1432518129 -1375376180 -1237457277 -638126241 -576622031 -1624464501 -949308911 -979882348 -1825081759 -303590601 -269644648 -1185820321 -466890649 -924717512 -1525501767 -289705845 -1169798951 -332327337 -990148370 -1174834475 -1632359870 -230054271 -1066649388 -688349205 -892456149 -239056365 -757693590 -177623586 -1161314948 -461186368 -1322903332 -1202350460 -2040360225 -1598474177 -1382277369 -599711002 -154698022 -1767102385 -1712530333 -1808063237 -1117811582 -156300070 -859068360 -2089420814 -1897820551 -1017605774 -310662211 -2073205469 -1031661611 -1139318757 -1237975020 -1372082487 -299389274 -890214205 -690340275 -1252662158 -593608013 -151499496 -1308135181 -83314681 -1514185138 -1953285454 -1702429773 -885339106 -1628704410 -1660130224 -1104858395 -1664461865 -566948716 -1140779057 -76115669 -1041291898 -1280088237 -1008080182 -127839099 -1327244745 -1967364101 -574110884 -236157269 -1143906286 -715553437 -1056661716 -1791501057 -820782732 -1090531306 -1362843647 -47866257 -1512337459 -586080090 -1615644249 -1267194477 -719448316 -1717784670 -987100826 -758299180 -1530120543 -1606094474 -986185740 -1625624387 -281450081 -248943784 -1976452159 -1248644863 -1204603742 -37313539 -1289636648 -1228449626 -587916663 -509043494 -1787922118 -27666284 -456679784 -768137467 -145125081 -1873231157 -1664938017 -424635729 -1059806210 -561858461 -2017315325 -1351690990 -212764022 -1430036275 -655371791 -1293750767 -2071142127 -888016505 -1604608585 -330737581 -2091020153 -1750705322 -964714143 -295984014 -950546871 -526857678 -1270135577 -1823946607 -1557213329 -271463051 -922348435 -1639101257 -1752801464 -1043514001 -716307040 -928060762 -1992319864 -1477125634 -983769777 -96657364 -850784234 -625175432 -334977553 -846697057 -1935068243 -426368885 -1511975455 -1074286241 -1874050798 -1783108894 -576793022 -1013596633 -170463985 -3755034 -1314379214 -186735955 -243261054 -60974523 -1878652257 -1815633090 -66411149 -1614633814 -258103701 -686696903 -1802842080 -938525317 -1534846639 -1945580778 -725038219 -846871207 -151035803 -952105334 -1668027402 -852197140 -855879190 -1220504126 -688409711 -1886436552 -1268605809 -750880416 -59206569 -190068440 -1924633218 -2066152872 -571532202 -2133146643 -1550538745 -1108017302 -712973066 -1086200684 -989310069 -172179489 -1200952768 -1059798558 -1322899191 -1578225787 -502743441 -926141078 -155477576 -1838827365 -189486773 -105877669 -297823665 -796629791 -1809053399 -869562959 -300761205 -1300801411 -333247645 -2078588264 -744357234 -277528908 -1095075549 -1596482838 -1388983728 -1849441842 -111155111 -1622220773 -833364330 -1985493594 -248987466 -826107839 -180988319 -397615021 -1241008979 -2033017829 -775464769 -1409507697 -1851918902 -29381863 -1242283544 -1194156988 -530630168 -1132845513 -965216452 -1907580398 -379897203 -1330750916 -1002382477 -536145871 -356194072 -1610106089 -177548100 -1970429577 -1205463274 -948235397 -421766723 -514380753 -1698620703 -985667224 -983036142 -1997623469 -189071296 -1459936822 -831989131 -1896019661 -1626835703 -1259656278 -1781463861 -938531752 -2068587877 -288148609 -682966620 -1028943287 -698735397 -1571401088 -384805441 -1087460587 -2084376878 -1179092924 -1511282393 -206702553 -1126356873 -1777087870 -2067955182 -1159311377 -1544221168 -2128389497 -82876636 -2118454202 -540184876 -392961592 -1466255376 -948583912 -1234319084 -1549529019 -1907538605 -371167247 -190526577 -80693604 -1639375178 -1541074474 -1074097729 -1196073904 -807198688 -2052223638 -93482676 -1742200000 -1375996180 -615255022 -1436923733 -619433493 -1998377219 -1050997197 -1090974754 -929610229 -741418432 -855675633 -2084230463 -199018542 -582040172 -708933711 -915682031 -1950213303 -30894415 -355535304 -673553453 -181874898 -1888071966 -2133026663 -1541111920 -760832339 -620801916 -1961650964 -461386911 -1257913932 -33287680 -1437804740 -1904253857 -1246420553 -1633900703 -974611758 -1062922841 -278846449 -1490855871 -440638102 -757956417 -761990740 -1273404932 -410327491 -656363920 -1357403688 -1395863973 -2041922925 -839148521 -1678802734 -2076257739 -534440455 -1530083358 -1269130261 -247483746 -1447529023 -822154166 -1824488320 -1804991596 -475239808 -556662332 -988389331 -423694845 -730808830 -1573306030 -344296193 -810284694 -1156777289 -342070919 -1879212775 -2100035316 -1955293159 -590784521 -1761029936 -1896647369 -1610212241 -887851153 -915056003 -269570899 -1211066244 -194961368 -51245290 -1502453831 -311356082 -811952156 -602854601 -306822213 -1205578490 -915003592 -923510154 -222774002 -931278473 -1677345411 -1318724530 -932779695 -225891607 -891002766 -808830103 -2029183499 -507333260 -2013001410 -1564028159 -2024107971 -584977769 -1651757254 -257004501 -1923924460 -563762887 -101347165 -634966326 -1524439365 -2084381027 -1813623839 -838266613 -1902254400 -976556402 -1794023617 -1731352982 -684786026 -495999182 -1824181053 -856163730 -461038923 -195485565 -1526265741 -587767534 -1289710990 -845863361 -200930301 -1787046589 -1947409049 -929515894 -186545648 -72460518 -207237193 -578934327 -1889248804 -966500528 -959591760 -772232460 -624009478 -439115595 -517175601 -1548221944 -1409829600 -1916908871 -1761115959 -1753942928 -1153831208 -1932716859 -41705353 -1529777199 -1008917238 -227234597 -1452760991 -886705747 -617601891 -505236584 -269286404 -2143642374 -597276011 -695452877 -1496856968 -1426697691 -1985953656 -1601476259 -165757953 -261522116 -1989365107 -2127559558 -1077160981 -111885734 -1678071040 -1164772417 -844692692 -170391257 -1957602825 -1235930752 -175276916 -899241182 -1569699514 -1092953187 -2147208091 -1757516351 -1109855432 -160415738 -1135598074 -271001503 -1405789849 -439420872 -352228300 -2035742309 -1798205555 -187577258 -1632447212 -1029044046 -1116883499 -1275248869 -1873914717 -2006982087 -715522899 -2023037910 -2042693768 -824100101 -1751481862 -1739709739 -587037925 -1578783094 -1853098254 -422151624 -640042407 -919030930 -169996838 -1634092629 -698372168 -460964936 -878151227 -667549624 -1524089052 -959767948 -714517701 -555271126 -1444528980 -191656740 -1700597509 -382115769 -1241623934 -1675299198 -1252894316 -62624058 -1671375771 -1227437587 -150020171 -203588067 -1982312774 -2098333903 -590956460 -1884958763 -179816643 -512010901 -1300663257 -1360170634 -134086399 -496705994 -1045155143 -913408239 -320990176 -1334292065 -230116054 -1366155872 -85297387 -2107879177 -165449550 -1141625008 -510490837 -1646270397 -505651416 -913039220 -589330536 -1609966836 -527155034 -139309844 -653182226 -574107939 -274284400 -635151053 -1548399784 -1566921788 -1747034742 -170250664 -1963473417 -752732815 -1521269681 -1347420787 -895203452 -1262117610 -1190905355 -1464154677 -2115926688 -546700911 -1929621642 -649418674 -2072291183 -1871737210 -429639342 -1992004640 -933376004 -1071401003 -1789130811 -445929743 -809264055 -1584569620 -1036324244 -1802694996 -1114901368 -633950703 -286841615 -407394234 -480093923 -307203772 -629196542 -427310717 -1878336665 -1812653640 -215084709 -1379702275 -1959338304 -220029168 -505318934 -1378231989 -189324225 -601273025 -362170271 -1355355406 -966656346 -906203575 -144522435 -1549733557 -1828731468 -675626112 -625384414 -641476730 -472376887 -400859314 -1315274444 -2107573499 -1086035569 -1277243675 -102673761 -498204267 -1996684564 -524037430 -1339916712 -1748920694 -1329163456 -2057529922 -1167644629 -647202043 -429741617 -644816858 -1076063081 -848683553 -1608483043 -722929758 -1615586521 -72158627 -305434839 -165337021 -839107675 -1686133874 -1907911431 -1424752169 -2049884625 -95598889 -1283452965 -1507871622 -1982165897 -804293100 -1220333667 -587655589 -1509239253 -1015486081 -510319326 -2102342705 -1938115516 -1457477494 -1335953484 -320253652 -1911249842 -669470941 -1197836840 -1936377891 -1743560317 -1526083639 -1336095842 -1992886662 -1280377319 -47621339 -1376525530 -2114483017 -775053198 -1153411159 -984775739 -146301892 -217859346 -974146282 -1686201683 -684312237 -935575241 -1717619409 -676159587 -2044732291 -325031938 -1269116464 -1963770886 -663507254 -1749360430 -1577296486 -417730805 -1007073583 -33797863 -153048093 -998034057 -62830115 -783463990 -1379034746 -950017849 -2001200452 -2097234590 -361261943 -1638858151 -1490551067 -738685536 -1147868582 -1874446752 -450180092 -1098270690 -973421597 -532918727 -2112022026 -2137312385 -433315813 -418518584 -2083830786 -1787727134 -1907807070 -883528647 -1922614328 -1994105611 -851123424 -1922036040 -878431464 -495965166 -1183706182 -2132256492 -868199677 -1523490095 -1534366741 -488305458 -715902510 -1204015278 -1538229015 -37958120 -2044819044 -782100758 -1455163933 -771445491 -890996604 -812433900 -2073575906 -1509102120 -20193475 -1036163211 -1477958868 -1422027837 -1340913190 -1794658020 -520630890 -76700937 -1562199863 -192699922 -51198210 -228756043 -36513003 -1776748374 -1325636480 -1955039518 -545325403 -905578736 -152600286 -2066209600 -1775413870 -733984101 -6748351 -2116500429 -155859496 -1469672015 -1475644449 -182069082 -855586245 -1832407011 -198128026 -1609576996 -1834168494 -1838522490 -744811305 -434370628 -1330356158 -669729404 -1909718144 -982971994 -638785636 -279972861 -764040994 -87087128 -1883277337 -1157521215 -302354825 -1871930841 -1915682127 -1736059900 -496276526 -1775824841 -1011426922 -1918632021 -306233773 -1832970857 -580950754 -1388546716 -959114025 -417112292 -494700070 -480755265 -2125209562 -1570568754 -1902339426 -1918376468 -972720185 -943290983 -1767960493 -33423244 -822605154 -2126524027 -1243702427 -1540741826 -1951377854 -733476653 -1310389367 -664661815 -16921963 -1682345589 -525189582 -1150685699 -920120429 -89650033 -778720014 -469606255 -485470119 -370391868 -582241926 -297554450 -1626442863 -2113307749 -1107290731 -637126175 -195791553 -817956649 -1136933701 -1527421456 -945732052 -407019027 -1851144058 -22768866 -1025378896 -1103884228 -1118528663 -1308827711 -1797062632 -881467599 -1916993507 -16570194 -1386167239 -1068053540 -563554428 -2123781138 -1653666869 -446035477 -334543417 -1114555094 -442247466 -1050330236 -657058228 -1878457419 -1991495774 -1429354919 -213296204 -758036067 -1651359165 -1061518049 -2066161218 -1414207923 -885938485 -654953859 -1160512943 -1596566478 -1706621285 -1271224717 -1203533423 -275490071 -216730162 -222764447 -1631921401 -1818417574 -264114698 -1206155886 -1061892401 -1348885486 -1027218802 -1720162062 -1417951513 -1973194763 -2009798832 -1092306234 -2035752357 -2126242116 -121774000 -1508784989 -503395919 -864712182 -2087272360 -1277321980 -1112932854 -166148387 -615465251 -535153458 -1370274737 -1049335247 -127386675 -745378755 -249178659 -1404491762 -1539989091 -919061917 -1504889936 -484374348 -1763962871 -744237267 -1498584073 -1043799665 -1567582626 -120372826 -1060288813 -1135620094 -394042623 -673939191 -1308199630 -957614860 -1055687629 -1205290644 -1580519681 -20865036 -32011475 -1915352982 -1538159254 -1160173737 -2029866940 -297869098 -342063486 -1615396489 -1366540379 -515229764 -968134515 -833850611 -1674101664 -1980953401 -1207379225 -1436803764 -174384850 -1209892037 -1344001400 -813759669 -880407103 -2133347 -1057862950 -479378426 -686806421 -1520682189 -545094225 -1081585836 -477796026 -1886163330 -1245554671 -321993998 -1919583369 -2005054881 -308134579 -1974957533 -1820537604 -778793566 -1025539030 -477793157 -970890193 -712997872 -1725179668 -1830732408 -613529359 -1376179498 -797661895 -1125116660 -2027485539 -413733332 -1188795072 -1152658053 -1558931031 -1128584764 -1907078094 -1121395876 -2021770828 -2065420671 -294813100 -417049677 -28990799 -1074483465 -930810656 -408591603 -1028402758 -404866075 -1883661820 -325290524 -887832138 -446669555 -1188961944 -1490088251 -371943766 -1658941557 -948660600 -1502970603 -844180205 -253359016 -1405497708 -1884757001 -1551165877 -937167562 -633725180 -1479091917 -394189989 -2029656846 -809073182 -1328483569 -137991365 -983027648 -2126751739 -529333204 -150337966 -2042892557 -1396295365 -156960811 -884061622 -1466647222 -1216726543 -1808277272 -1139540709 -1289143959 -1035063037 -747237852 -699187511 -43902811 -413952789 -2080912538 -939110988 -2113258941 -541468179 -426239114 -3757680 -1559662372 -1612961280 -1808409362 -1454208590 -240134265 -1356742879 -636440904 -11497565 -623522623 -216451246 -444869164 -741025494 -2041430432 -1683700383 -1020998191 -975595750 -2061783685 -791279994 -544807927 -1455129140 -1170087820 -803122230 -600033258 -67874428 -861414954 -1164236034 -604513972 -855668781 -2065468078 -1953576625 -642811328 -573553042 -972380635 -78410211 -1857013270 -32283582 -247597272 -632657984 -164019660 -1988645768 -569866125 -106828160 -889041242 -589994150 -1496403843 -627008650 -1186424475 -1089642825 -1029473878 -1353432239 -55100470 -2128021970 -1555063811 -870211055 -827043256 -746617994 -315948592 -603437841 -1358323379 -147666338 -1545737076 -1956068826 -1634970761 -1615301359 -1916020202 -663304095 -1667198857 -19892644 -1203560793 -1708884929 -832280789 -1338304372 -1929913575 -1946213519 -700320492 -1563098806 -2040229806 -246048882 -1320744276 -958114106 -512735686 -187757211 -1181139571 -1997162113 -101884596 -409435661 -1951327492 -978797663 -1666581461 -739660204 -585230318 -1660399521 -1527380174 -265337843 -1873342560 -1471685662 -156543006 -1643600058 -2079856010 -1537880576 -591164384 -1520134395 -280371522 -1541721121 -1255682160 -1684298076 -1795509528 -958204191 -969142497 -1169503075 -619028234 -127031658 -358187431 -840691116 -1430365678 -1763803382 -81692302 -988814076 -1648638369 -533206101 -1247105271 -880060227 -874435881 -1314761427 -1288300668 -135356844 -1673714908 -470747628 -736956260 -1680245394 -1940511093 -1822410595 -1888220505 -1796184127 -767356740 -1030891483 -911439955 -1570682769 -176394620 -1999127721 -1318176443 -553810021 -1766708683 -1739031566 -1152870612 -1804722203 -720006110 -1877665128 -299898902 -642497135 -953389511 -234368065 -884886315 -953346621 -70599058 -267898534 -69969612 -213358112 -1330148002 -1002781191 -444128215 -194033189 -1366534343 -1751012237 -1925056591 -1349015110 -710833831 -67176562 -1989677061 -1144962169 -1724525858 -1074300668 -1862424942 -1831135391 -1519638970 -1508479159 -691710619 -1152561826 -1776907376 -330792297 -1735003835 -571913873 -109081969 -2144650720 -1571615945 -781720704 -1526049370 -522708374 -1723393945 -2096925230 -1575838288 -381891319 -1967458050 -128191180 -15264621 -1855992217 -1573197253 -2023613712 -1734614399 -68604017 -1378629143 -1682795575 -1414528615 -862884446 -573024774 -266261552 -1423639214 -594786342 -653548551 -775345665 -738881659 -2112321593 -1150608565 -394664535 -208236790 -690139864 -1490993762 -123620487 -433157790 -1442696964 -1869118844 -1773889298 -98319525 -1206390092 -37577570 -686712154 -1258401652 -689731123 -1717771501 -261653045 -1002103818 -1230989666 -1009562350 -1721413076 -472147699 -1672057153 -87248777 -1762325188 -654040018 -58572672 -1862173806 -565681876 -466353018 -1826954830 -831460600 -940359383 -532974825 -1842721649 -151333492 -1371516301 -1268173144 -1546967413 -906812863 -100077314 -1261553536 -1634849629 -267592551 -990510471 -650896432 -463015512 -571692111 -191855552 -688030609 -747629642 -1726223739 -600477902 -1181417357 -1811254570 -1957012319 -1654496076 -588200933 -1117756527 -375078779 -271321916 -1011126259 -278812137 -1436925357 -921374992 -717117315 -1060696357 -647566861 -1959287271 -884238878 -680538897 -1283366129 -145181215 -113221775 -470920964 -1030745371 -685518568 -2066451533 -2086956417 -377206183 -1717898129 -2089096067 -2010057298 -1225723697 -845612054 -648920224 -1099260427 -34794482 -1956126820 -314315478 -2053285680 -1133824038 -21389248 -1095541326 -434550013 -735891214 -680154439 -1890353495 -2045928996 -1778540681 -2040914781 -139185907 -828922529 -2143582251 -798742964 -1200831126 -392336178 -1180171844 -734093500 -970035152 -1082854026 -1447146831 -1190803319 -242255706 -645644963 -368123457 -1296097952 -39484517 -675168495 -1481673943 -448651778 -1958219970 -29653602 -1218550582 -380681534 -674185448 -453173852 -730203072 -888378984 -869731817 -1622858086 -37600544 -1227250292 -903776433 -286665591 -972432201 -1480023781 -148366910 -477994546 -87270835 -2116358856 -1206963419 -1508414985 -1027145810 -794289828 -1934613289 -2027242748 -350127017 -572382664 -1949700165 -1909053670 -569091874 -1163243317 -1140871300 -503974112 -1291395605 -1436648428 -809276456 -654196693 -899521529 -491184830 -355560126 -725273676 -1517889260 -255055848 -150901144 -285571409 -1995915674 -1578615594 -960509540 -1924416135 -80818357 -998574805 -1234818297 -1948715918 -335715992 -407338232 -198515425 -1882195988 -355079864 -1777860200 -1413994924 -1796300787 -310665455 -1832175712 -2063389035 -355827223 -1358767116 -1208131300 -1363477108 -270842593 -1495513018 -183070972 -1965873054 -857924069 -808500002 -1838585137 -1977247419 -1006476475 -2146276546 -1185794840 -2009652075 -1401333919 -1862290036 -1196102277 -1518491148 -1104249874 -1447639092 -1966615493 -2102759154 -1177950017 -1175852528 -1486010819 -570351679 -1629979228 -93987402 -5114060 -878975232 -2079506846 -622945444 -1243363704 -403955460 -1860452983 -1406437932 -782182721 -1161042045 -572148025 -1619540398 -533566406 -1863090771 -1359635656 -671092095 -1380501622 -1870686501 -1886068611 -1141337493 -925823612 -1354578859 -693156114 -1781370922 -2028513672 -889558597 -1891793940 -1199917825 -1402247546 -1076611070 -105724135 -1755190221 -1505342868 -791876198 -1555839117 -338856656 -356093208 -1649158032 -1012978043 -1679356962 -441400426 -1172837198 -1574664725 -1976830581 -14464969 -656216426 -798120086 -185589616 -177771287 -44125235 -1795907770 -862220124 -99479956 -1758303713 -1362144698 -63917942 -1427718200 -940414037 -553748629 -1458969496 -1920728646 -527747622 -1665344106 -1652676409 -1617349948 -1517833798 -904117025 -1591980305 -286532441 -544833283 -1967928355 -730675129 -577928774 -1568409342 -2049075599 -2033754513 -971012069 -2078387171 -1561025502 -1849930260 -1887487879 -651856529 -659854392 -1146517530 -1337023357 -842556374 -1093221553 -895333635 -1357124699 -1215426612 -1942290066 -73066829 -683562227 -1744091564 -1225936051 -1038024060 -1121418962 -1552449187 -128894687 -1039609563 -1138038366 -1996070097 -163522198 -95454661 -136883456 -208753405 -1288963009 -257911218 -353885535 -426858731 -14535786 -575072672 -1500513730 -114342047 -1931573183 -1263325058 -149065532 -1896476627 -697034874 -662099942 -42383451 -250211688 -2024945956 -1705151327 -1777687620 -1422685798 -581929050 -654528262 -1521977514 -769562455 -2052476522 -567355160 -156692706 -128952447 -2051581527 -244437562 -488787171 -2086945996 -705207687 -105234290 -1956991390 -712594424 -1081087911 -1581562042 -808577261 -1743156388 -650800084 -966540065 -1007413192 -877005609 -1189752626 -619600306 -481430369 -575225045 -1994425709 -901869777 -565800731 -1477040484 -1492372309 -171333890 -1873437237 -69122538 -218079139 -436827523 -1968849511 -989780742 -1377121447 -1598702022 -25776468 -310302420 -382894292 -856117299 -1770782659 -973272863 -1916828746 -1350773514 -712981076 -1844561354 -443973176 -834541135 -385862243 -645888076 -1982013299 -1195126377 -100936390 -403111108 -1574199191 -336541300 -396095779 -471437709 -232320438 -256610514 -963616547 -2038696287 -555566939 -1847931834 -1842753670 -850405899 -649968691 -1051457277 -1508415400 -1088812321 -1307929928 -2078809135 -1830311501 -469191954 -1643044260 -118360318 -1887274953 -670730778 -560186184 -524157971 -831110648 -683533351 -228193101 -370000419 -1073048018 -1304926989 -284387350 -243305723 -983326361 -1155746337 -153207158 -1070355746 -1049728079 -1762541667 -800065723 -1357126034 -949738733 -1902153909 -1360482924 -1605673665 -2108631302 -1292482679 -1043671504 -328655625 -615396429 -1845237492 -1862516074 -1647081533 -1627131223 -351873178 -13360332 -1852864695 -1668301266 -1626561260 -1099741236 -612383828 -1082946820 -1716268655 -1108811950 -1044906031 -2142772926 -467485606 -1322378188 -1624469284 -958475713 -1043813904 -1884372854 -442054749 -1386353267 -761135150 -1594259114 -982559445 -626485281 -575410850 -2083692784 -880325991 -677596581 -2019932464 -88325323 -1596781798 -168634616 -550021592 -110019408 -161717562 -217581202 -224370131 -1927651160 -746394489 -133709002 -439666194 -128199623 -566064689 -581839897 -483764857 -1782981879 -619670720 -1186749668 -549024074 -818949154 -1751706861 -265255716 -119602863 -819592305 -574493348 -2035115070 -65375150 -1410156639 -1327717577 -1084899449 -1391960827 -661211720 -807650229 -111756298 -1382222743 -1201701021 -477837560 -1011728700 -25100496 -184954528 -1583299513 -329738404 -1088190640 -1011465638 -2118036408 -1838108796 -16959813 -2043808773 -1714271246 -1805045931 -498679396 -177133202 -1331213739 -1410552188 -1950273149 -396375367 -1092710391 -1722060509 -1635095625 -606824780 -1809816412 -231968216 -1349960247 -1476113587 -250544064 -302652346 -923023429 -1529439264 -263877273 -185259225 -65864705 -959847712 -1258466362 -566225790 -1532297134 -1485761527 -1507828443 -1669934750 -1507596870 -913210060 -1851394246 -748843663 -1043748460 -1622672547 -2118918951 -355663123 -1835805781 -1717303496 -796271435 -772564030 -688458885 -1019123948 -796806456 -1554873250 -1389889911 -1446109254 -172081653 -312251881 -1478052781 -254388947 -1049845316 -122470461 -1414423038 -1481954328 -293433174 -1660648751 -419218001 -1847955003 -747957429 -212096210 -929774247 -1925082982 -937219425 -1767385714 -429882966 -2019357220 -537126833 -1049227491 -1370612980 -1217890510 -767456013 -1681992484 -195575558 -36491596 -1844269578 -260995967 -337601622 -1743060669 -697126989 -1541002096 -139783465 -1323635552 -134097471 -1512366409 -2119234197 -913546305 -855957287 -2077984882 -1424215948 -2075304330 -1456500105 -1175335789 -2113939165 -1754206178 -1109622328 -1639266374 -1455007941 -1133750821 -225640914 -1598880106 -1706381830 -1288593639 -1509423999 -2081640854 -1996730701 -1352022878 -832694119 -1511471584 -1607153388 -1785165035 -146480651 -1157339335 -1376862374 -767231266 -1066972125 -632426210 -2084804186 -128928023 -1452949634 -25869575 -1579943353 -743345365 -1038079141 -48905545 -827249544 -1318788757 -420033603 -1410765040 -792265037 -1684591040 -1217295379 -132957322 -543322263 -699663017 -309212434 -543473278 -415406505 -427731302 -1441967717 -380400361 -116727282 -1133774721 -32495326 -446582461 -1598145122 -855502120 -758309245 -265158106 -631585224 -379721750 -304511300 -1820141525 -196570489 -2006160299 -1838410053 -2078244571 -1519303354 -92766339 -1481426509 -84370399 -2047175855 -1696623877 -1110626951 -1052821998 -40140980 -725776724 -71478587 -334880253 -2005811631 -349919910 -1973998991 -1467133816 -1508081018 -201967992 -2123456246 -370406316 -462324490 -1180885064 -1422585722 -923477393 -1478231675 -1300975567 -1730973465 -1567885971 -1396645840 -1227145464 -687976188 -27675825 -825072193 -1916094303 -1916308447 -679338690 -33967896 -240505305 -1585435999 -1185682885 -613268233 -1959775221 -1643477270 -524589729 -1314346640 -287756628 diff --git a/examples/machsuite/KMP.py b/examples/machsuite/kmp/kmp.py similarity index 89% rename from examples/machsuite/KMP.py rename to examples/machsuite/kmp/kmp.py index 1c0c457053..6ffa5550f9 100644 --- a/examples/machsuite/KMP.py +++ b/examples/machsuite/kmp/kmp.py @@ -76,13 +76,8 @@ def kmp_kernal[ def test_kmp(): - setting_path = os.path.join(os.path.dirname(__file__), "psize.json") - with open(setting_path, "r") as f: - psize = json.load(f) - - test_psize = "large" - S = psize["kmp"][test_psize]["Str_len"] - P = psize["kmp"][test_psize]["Patt_len"] + S = 100 + P = 100 concrete_type = uint8 sch = kmp(concrete_type, S, P) @@ -92,9 +87,6 @@ def test_kmp(): Pattern = np.random.randint(1, 5, size = P).astype(np.uint8) - - print('hello') - KMP_next = np.zeros(P).astype(np.uint8) debug_var = np.zeros(S).astype(np.uint8) diff --git a/examples/machsuite/md/__init__.py b/examples/machsuite/md/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/machsuite/md/grid/__init__.py b/examples/machsuite/md/grid/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/machsuite/md/knn/__init__.py b/examples/machsuite/md/knn/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/machsuite/merge/__init__.py b/examples/machsuite/merge/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/machsuite/merge_sort b/examples/machsuite/merge_sort deleted file mode 100644 index 2ad3179a73..0000000000 --- a/examples/machsuite/merge_sort +++ /dev/null @@ -1,57 +0,0 @@ - -import allo -from allo.ir.types import int32 -import numpy as np - - -N = 10 #testing purpose - -def merge_sort(a:int32[N]): - n:int32 = N - size:int32 = 1 - - while size < n - 1: - - left:int32 = 0 - - while left < n - 1: - mid:int32 = left + size - 1 - if(mid>n-1): - mid = n-1 - - right:int32 = left + 2 * size - 1 - if right>n-1: - right= n-1 - - if right >= n: - right = n - 1 - - merge(a, left, mid, right) - - left = left + size*2 - - size = size*2 - -def merge(a:int32[N], start: int32, mid: int32, stop: int32): - temp:int32 = np.zeros(stop - start + 1, dtype=np.int32) - - i:int32 = start - j:int32 = mid + 1 - k:int32 = 0 - - - while i <= mid or j <= stop: - if j > stop or (i <= mid and a[i] <= a[j]): - temp[k] = a[i] - i += 1 - else: - temp[k] = a[j] - j += 1 - k += 1 - - a[start:stop + 1] = temp[:k] - - -s = allo.customize(merge_sort) -mod = s.build() -print(s.module) diff --git a/examples/machsuite/mergesort.py b/examples/machsuite/mergesort/mergesort.py similarity index 100% rename from examples/machsuite/mergesort.py rename to examples/machsuite/mergesort/mergesort.py diff --git a/examples/machsuite/spmv/__init__.py b/examples/machsuite/spmv/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/machsuite/spmv/crs/__init__.py b/examples/machsuite/spmv/crs/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/machsuite/spmv/ellpack/__init__.py b/examples/machsuite/spmv/ellpack/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/machsuite/stencil2d.py b/examples/machsuite/stencil/stencil2d.py similarity index 100% rename from examples/machsuite/stencil2d.py rename to examples/machsuite/stencil/stencil2d.py diff --git a/examples/machsuite/stencil3d.py b/examples/machsuite/stencil/stencil3d.py similarity index 100% rename from examples/machsuite/stencil3d.py rename to examples/machsuite/stencil/stencil3d.py diff --git a/examples/machsuite/testing.py b/examples/machsuite/testing.py deleted file mode 100644 index 0d20545286..0000000000 --- a/examples/machsuite/testing.py +++ /dev/null @@ -1,33 +0,0 @@ -import allo -import numpy as np -from mergesort import merge_sort -from allo.ir.types import int32 - - - - -def read_data(filename): - with open(filename, 'r') as file: - lines = file.readlines() - data = [int(line.strip()) for line in lines if not line.startswith("%%")] - return data - -def main(): - input_data = read_data("input.data") - #sorted_input_data = merge_sort(input_data) - check_data = read_data("check.data") - - - values = np.array(input_data[0]).astype(np.int32) - check = np.array(check_data[0]).astype(np.int32) - - s = allo.customize(merge_sort) - mod = s.build() - - actual = mod(values) - np.testing.assert_allclose(actual, check, rtol=1e-5, atol=1e-5) - - -if __name__ == "__main__": - main() - diff --git a/examples/machsuite/viterbi/__init__.py b/examples/machsuite/viterbi/__init__.py new file mode 100644 index 0000000000..e69de29bb2 From 10625e4bfad1fe9af3f5e443980492ac478bde29 Mon Sep 17 00:00:00 2001 From: Niansong Zhang Date: Thu, 5 Feb 2026 19:10:43 -0500 Subject: [PATCH 03/16] [MachSuite] Complete all 19/19 benchmarks and fix allo.sin/cos support - Fix allo.sin()/allo.cos(): add missing SinOp to math op dispatch dict and add F64Type support to the type guard in builder.py (MLIR math dialect supports all float types natively) - Add new implementations: Needleman-Wunsch (nw/) and Radix Sort (sort/radix/) - Fix all benchmarks: resolve loop iterator pre-declarations, scalar-from-array workarounds, caller variable shadowing, module-level customize interference, AoS data parsing, and hardcoded user paths - Fix all test scripts to use os.path.dirname(__file__) for portable data paths - Add stencil data files for stencil2d/stencil3d All 19 MachSuite benchmark variants build and pass with LLVM backend: AES, Backprop, BFS/Bulk, BFS/Queue, FFT/Strided, FFT/Transpose, GEMM/Ncubed, GEMM/Blocked, KMP, MD/Grid, MD/KNN, MergeSort, NW, RadixSort, SPMV/CRS, SPMV/ELLPACK, Stencil2D, Stencil3D, Viterbi Co-Authored-By: Claude Opus 4.6 --- examples/machsuite/aes/aes.py | 58 +- examples/machsuite/aes/run_test.py | 9 +- examples/machsuite/backprop/run_test.py | 9 +- examples/machsuite/bfs/bfs_bulk_allo.py | 9 +- examples/machsuite/bfs/bfs_queue_allo.py | 9 +- .../machsuite/fft/strided/test_strided.py | 83 +- .../machsuite/fft/transpose/test_transpose.py | 75 +- .../machsuite/fft/transpose/transpose_fft.py | 25 +- examples/machsuite/gemm/gemm_blocked.py | 17 +- examples/machsuite/gemm/testing.py | 16 +- examples/machsuite/gemm/testing_blocked.py | 25 +- examples/machsuite/md/grid/md.py | 106 +- examples/machsuite/md/grid/md_kernel_test.py | 117 +- examples/machsuite/md/knn/md.py | 34 +- examples/machsuite/md/knn/md_kernel_test.py | 113 +- examples/machsuite/merge/mergesort.py | 21 +- examples/machsuite/merge/testing.py | 11 +- examples/machsuite/nw/check.data | 5 + examples/machsuite/nw/input.data | 5 + examples/machsuite/nw/nw.py | 136 + examples/machsuite/nw/test_nw.py | 66 + examples/machsuite/sort/radix/check.data | 2049 ++ examples/machsuite/sort/radix/input.data | 2049 ++ examples/machsuite/sort/radix/radix_sort.py | 92 + examples/machsuite/sort/radix/test_radix.py | 49 + examples/machsuite/spmv/crs/crs.py | 60 +- examples/machsuite/spmv/crs/run_test.py | 9 +- examples/machsuite/spmv/ellpack/ellpack.py | 2 +- examples/machsuite/spmv/ellpack/run_test.py | 9 +- examples/machsuite/stencil/stencil2d.py | 6 +- .../machsuite/stencil/stencil2d_check.data | 8193 ++++++++ .../machsuite/stencil/stencil2d_input.data | 8203 ++++++++ examples/machsuite/stencil/stencil3d.py | 6 +- .../machsuite/stencil/stencil3d_check.data | 16385 +++++++++++++++ .../machsuite/stencil/stencil3d_input.data | 16388 ++++++++++++++++ examples/machsuite/viterbi/viterbi_allo.py | 20 +- 36 files changed, 53929 insertions(+), 540 deletions(-) create mode 100644 examples/machsuite/nw/check.data create mode 100644 examples/machsuite/nw/input.data create mode 100644 examples/machsuite/nw/nw.py create mode 100644 examples/machsuite/nw/test_nw.py create mode 100644 examples/machsuite/sort/radix/check.data create mode 100644 examples/machsuite/sort/radix/input.data create mode 100644 examples/machsuite/sort/radix/radix_sort.py create mode 100644 examples/machsuite/sort/radix/test_radix.py create mode 100644 examples/machsuite/stencil/stencil2d_check.data create mode 100644 examples/machsuite/stencil/stencil2d_input.data create mode 100644 examples/machsuite/stencil/stencil3d_check.data create mode 100644 examples/machsuite/stencil/stencil3d_input.data diff --git a/examples/machsuite/aes/aes.py b/examples/machsuite/aes/aes.py index 55ff6fe550..3493b6c31c 100644 --- a/examples/machsuite/aes/aes.py +++ b/examples/machsuite/aes/aes.py @@ -72,47 +72,42 @@ def add_round_key_cpy(buf: uint8[16], key: uint8[32], cpk: uint8[32]): def shift_rows(buf: uint8[16]): - i: uint8 - j: uint8 + t: uint8[1] = 0 - i = buf[1] + t[0] = buf[1] buf[1] = buf[5] buf[5] = buf[9] buf[9] = buf[13] - buf[13] = i + buf[13] = t[0] - i = buf[10] + t[0] = buf[10] buf[10] = buf[2] - buf[2] = i + buf[2] = t[0] - j = buf[3] + t[0] = buf[3] buf[3] = buf[15] buf[15] = buf[11] buf[11] = buf[7] - buf[7] = j + buf[7] = t[0] - j = buf[14] + t[0] = buf[14] buf[14] = buf[6] - buf[6] = j + buf[6] = t[0] def mix_columns(buf: uint8[16]): - a: uint8 - b: uint8 - c: uint8 - d: uint8 - e: uint8 + v: uint8[5] = 0 for i in range(0, 16, 4): - a = buf[i] - b = buf[i+1] - c = buf[i+2] - d = buf[i+3] - e = a ^ b ^ c ^ d - buf[i] ^= e ^ rj_xtime(a^b) - buf[i+1] ^= e ^ rj_xtime(b^c) - buf[i+2] ^= e ^ rj_xtime(c^d) - buf[i+3] ^= e ^ rj_xtime(d^a) + v[0] = buf[i] + v[1] = buf[i+1] + v[2] = buf[i+2] + v[3] = buf[i+3] + v[4] = v[0] ^ v[1] ^ v[2] ^ v[3] + buf[i] ^= v[4] ^ rj_xtime(v[0]^v[1]) + buf[i+1] ^= v[4] ^ rj_xtime(v[1]^v[2]) + buf[i+2] ^= v[4] ^ rj_xtime(v[2]^v[3]) + buf[i+3] ^= v[4] ^ rj_xtime(v[3]^v[0]) def expand_enc_key(k: uint8[32], rc: uint8[1]): @@ -147,23 +142,22 @@ def encrypt_ecb(k: uint8[32], buf: uint8[16]): dec_key: uint8[32] rcon: uint8[1] = [1] - i: uint8 - - for i in range(32): - enc_key[i] = k[i] - dec_key[i] = k[i] - for i in range(7): + for i0 in range(32): + enc_key[i0] = k[i0] + dec_key[i0] = k[i0] + + for i1 in range(7): expand_enc_key(dec_key, rcon) add_round_key_cpy(buf, enc_key, key) rcon[0] = 1 - for i in range(1, 14): + for i2 in range(1, 14): sub_bytes(buf) shift_rows(buf) mix_columns(buf) - if (i & 1) != 0: + if (i2 & 1) != 0: temp_key: uint8[16] for j in range(16): temp_key[j] = key[16 + j] diff --git a/examples/machsuite/aes/run_test.py b/examples/machsuite/aes/run_test.py index 0650472498..435a3c1211 100644 --- a/examples/machsuite/aes/run_test.py +++ b/examples/machsuite/aes/run_test.py @@ -1,5 +1,10 @@ +import os import allo import numpy as np +import sys + +_dir = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, _dir) from aes import encrypt_ecb def parse_data(file_name): @@ -21,8 +26,8 @@ def parse_data(file_name): return data_arrays if __name__ == "__main__": - input_data = parse_data("input.data") - check_data = parse_data("check.data") + input_data = parse_data(os.path.join(_dir, "input.data")) + check_data = parse_data(os.path.join(_dir, "check.data")) np_input = [np.asarray(lst).astype(np.uint8) for lst in input_data] np_check = [np.asarray(lst) for lst in check_data] diff --git a/examples/machsuite/backprop/run_test.py b/examples/machsuite/backprop/run_test.py index ecb1aaf801..a8897d4676 100644 --- a/examples/machsuite/backprop/run_test.py +++ b/examples/machsuite/backprop/run_test.py @@ -1,5 +1,10 @@ +import os +import sys import allo import numpy as np + +_dir = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, _dir) from backprop import backprop def parse_data(file_name): @@ -21,8 +26,8 @@ def parse_data(file_name): return data_arrays if __name__ == "__main__": - input_data = parse_data("input.data") - check_data = parse_data("check.data") + input_data = parse_data(os.path.join(_dir, "input.data")) + check_data = parse_data(os.path.join(_dir, "check.data")) np_input = [np.asarray(lst) for lst in input_data] np_check = [np.asarray(lst) for lst in check_data] diff --git a/examples/machsuite/bfs/bfs_bulk_allo.py b/examples/machsuite/bfs/bfs_bulk_allo.py index 62320d61cd..696f1e0b81 100644 --- a/examples/machsuite/bfs/bfs_bulk_allo.py +++ b/examples/machsuite/bfs/bfs_bulk_allo.py @@ -1,6 +1,11 @@ +import os +import sys import allo from allo.ir.types import int32 import numpy as np + +_dir = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, _dir) from support import read_data_from_file, write_data_to_file, write_data_to_file_2 from generate import generate_random_graph from bfs_bulk_python import bfs_bulk_test @@ -45,7 +50,7 @@ def bfs_bulk(nodes: int32[N_NODES_2], edges: int32[N_EDGES], starting_node: int3 #Prepare Input Data # generated_data = generate_random_graph() # write_data_to_file(generated_data) -input_data = read_data_from_file("input.data") +input_data = read_data_from_file(os.path.join(_dir, "input.data")) np_A = np.array(input_data['nodes'],np.int32) np_B = np.array(input_data['edges'],np.int32) @@ -53,7 +58,7 @@ def bfs_bulk(nodes: int32[N_NODES_2], edges: int32[N_EDGES], starting_node: int3 (D, F)= mod(np_A, np_B, np_C) -write_data_to_file_2(F,"check.data") +write_data_to_file_2(F, os.path.join(_dir, "check.data")) (golden_D, golden_F) = bfs_bulk_test(np_A, np_B, np_C) diff --git a/examples/machsuite/bfs/bfs_queue_allo.py b/examples/machsuite/bfs/bfs_queue_allo.py index 997ba45c79..7478a09924 100644 --- a/examples/machsuite/bfs/bfs_queue_allo.py +++ b/examples/machsuite/bfs/bfs_queue_allo.py @@ -1,6 +1,11 @@ +import os +import sys import allo from allo.ir.types import int32 import numpy as np + +_dir = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, _dir) from support import read_data_from_file, write_data_to_file, write_data_to_file_2 from generate import generate_random_graph from bfs_queue_python import bfs_queue_test @@ -50,7 +55,7 @@ def bfs_queue(nodes: int32[N_NODES_2], edges: int32[N_EDGES], starting_node: int #Prepare Input Data # generated_data = generate_random_graph() # write_data_to_file(generated_data) -input_data = read_data_from_file("input.data") +input_data = read_data_from_file(os.path.join(_dir, "input.data")) np_A = np.array(input_data['nodes'],np.int32) np_B = np.array(input_data['edges'],np.int32) @@ -59,7 +64,7 @@ def bfs_queue(nodes: int32[N_NODES_2], edges: int32[N_EDGES], starting_node: int (D, F)= mod(np_A, np_B, np_C) #Write output to a file -write_data_to_file_2(F,"check2.data") +write_data_to_file_2(F, os.path.join(_dir, "check2.data")) (golden_D, golden_F) = bfs_queue_test(np_A, np_B, np_C) diff --git a/examples/machsuite/fft/strided/test_strided.py b/examples/machsuite/fft/strided/test_strided.py index 71926ddb42..0850b03008 100644 --- a/examples/machsuite/fft/strided/test_strided.py +++ b/examples/machsuite/fft/strided/test_strided.py @@ -1,66 +1,65 @@ # Copyright Allo authors. All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 -# test_strided.py> +# test_strided.py -import pytest +import os import numpy as np import allo -from strided_fft import fft +from strided_fft import fft, mod from allo.ir.types import int32, float32, float64 def test_strided_fft(): - file_path = "/home/wty5/shared/allo/fft/strided/input_strided.data" + data_dir = os.path.dirname(os.path.abspath(__file__)) + file_path = os.path.join(data_dir, "input_strided.data") counter = 0 real = [] img = [] real_twid = [] img_twid = [] - - try: - with open(file_path, 'r') as file: - for line in file: - number = line.strip() - if "%%" in line: - counter += 1 - continue - if counter == 1: - real.append(float(number)) - elif counter == 2: - img.append(float(number)) - elif counter == 3: - real_twid.append(float(number)) - elif counter == 4: - img_twid.append(float(number)) - - except FileNotFoundError: - print(f"File '{file_path}' not found.") - - fft(real, img, real_twid, img_twid) - output_path = "/home/wty5/shared/allo/fft/strided/check_strided.data" + with open(file_path, 'r') as file: + for line in file: + number = line.strip() + if "%%" in line: + counter += 1 + continue + if counter == 1: + real.append(float(number)) + elif counter == 2: + img.append(float(number)) + elif counter == 3: + real_twid.append(float(number)) + elif counter == 4: + img_twid.append(float(number)) + + real = np.array(real, dtype=np.float32) + img = np.array(img, dtype=np.float32) + real_twid = np.array(real_twid, dtype=np.float32) + img_twid = np.array(img_twid, dtype=np.float32) + + mod(real, img, real_twid, img_twid) + + output_path = os.path.join(data_dir, "check_strided.data") counter = 0 golden_real = [] golden_img = [] - try: - with open(output_path, 'r') as file: - for line in file: - number = line.strip() - if "%%" in line: - counter += 1 - continue - if counter == 1: - golden_real.append(float(number)) - elif counter == 2: - golden_img.append(float(number)) - - except FileNotFoundError: - print(f"File '{file_path}' not found.") + with open(output_path, 'r') as file: + for line in file: + number = line.strip() + if "%%" in line: + counter += 1 + continue + if counter == 1: + golden_real.append(float(number)) + elif counter == 2: + golden_img.append(float(number)) np.testing.assert_allclose(real, golden_real, rtol=1e-5, atol=1e-5) np.testing.assert_allclose(img, golden_img, rtol=1e-5, atol=1e-5) - -test_strided_fft() \ No newline at end of file + print("PASS!") + +test_strided_fft() diff --git a/examples/machsuite/fft/transpose/test_transpose.py b/examples/machsuite/fft/transpose/test_transpose.py index 57acce78fc..4e064ae2ce 100644 --- a/examples/machsuite/fft/transpose/test_transpose.py +++ b/examples/machsuite/fft/transpose/test_transpose.py @@ -1,60 +1,57 @@ # Copyright Allo authors. All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 -# test_transpose.py> +# test_transpose.py -import pytest +import os import numpy as np import allo -from transpose_fft import * +from transpose_fft import fft1D_512, mod from allo.ir.types import int32, float32, float64 def test_transpose_fft(): - file_path = "/home/wty5/shared/allo/fft/transpose/input_transpose.data" + data_dir = os.path.dirname(os.path.abspath(__file__)) + file_path = os.path.join(data_dir, "input_transpose.data") counter = 0 real = [] img = [] - - try: - with open(file_path, 'r') as file: - for line in file: - number = line.strip() - if "%%" in line: - counter += 1 - continue - if counter == 1: - real.append(float(number)) - elif counter == 2: - img.append(float(number)) - - except FileNotFoundError: - print(f"File '{file_path}' not found.") - - fft1D_512(real, img) - - output_path = "/home/wty5/shared/allo/fft/transpose/check_transpose.data" + + with open(file_path, 'r') as file: + for line in file: + number = line.strip() + if "%%" in line: + counter += 1 + continue + if counter == 1: + real.append(float(number)) + elif counter == 2: + img.append(float(number)) + + real = np.array(real, dtype=np.float32) + img = np.array(img, dtype=np.float32) + + mod(real, img) + + output_path = os.path.join(data_dir, "check_transpose.data") counter = 0 golden_real = [] golden_img = [] - try: - with open(output_path, 'r') as file: - for line in file: - number = line.strip() - if "%%" in line: - counter += 1 - continue - if counter == 1: - golden_real.append(float(number)) - elif counter == 2: - golden_img.append(float(number)) - - except FileNotFoundError: - print(f"File '{file_path}' not found.") + with open(output_path, 'r') as file: + for line in file: + number = line.strip() + if "%%" in line: + counter += 1 + continue + if counter == 1: + golden_real.append(float(number)) + elif counter == 2: + golden_img.append(float(number)) np.testing.assert_allclose(real, golden_real, rtol=1e-5, atol=1e-5) np.testing.assert_allclose(img, golden_img, rtol=1e-5, atol=1e-5) - -test_transpose_fft() \ No newline at end of file + print("PASS!") + +test_transpose_fft() diff --git a/examples/machsuite/fft/transpose/transpose_fft.py b/examples/machsuite/fft/transpose/transpose_fft.py index c12ddc4793..535d37e5fe 100644 --- a/examples/machsuite/fft/transpose/transpose_fft.py +++ b/examples/machsuite/fft/transpose/transpose_fft.py @@ -221,9 +221,6 @@ def loady8(a_y: float32[8], x: float32[8 * 8 * 9], offset: int32, sx: int32): a_y[7] = x[7 * sx + offset] def fft1D_512(work_x: float32[512], work_y: float32[512]): - tid: int32 = 0 - hi: int32 = 0 - lo: int32 = 0 stride: int32 = 64 counter: int32 = 0 reversed: int32[8] = [0, 4, 2, 6, 1, 5, 3, 7] @@ -294,7 +291,6 @@ def fft1D_512(work_x: float32[512], work_y: float32[512]): sx: int32 = 66 # Loop 2 - tid: int32 = 0 for tid in range(64): tid_int: int32 = tid hi: index = tid_int >> 3 @@ -310,9 +306,8 @@ def fft1D_512(work_x: float32[512], work_y: float32[512]): smem[3 * sx + offset] = DATA_x[tid * 8 + 6] smem[7 * sx + offset] = DATA_x[tid * 8 + 7] - sx: int32 = 8 + sx = 8 # Loop 3 - tid: int32 = 0 for tid in range(64): tid_int: int32 = tid hi: index = tid_int >> 3 @@ -329,9 +324,8 @@ def fft1D_512(work_x: float32[512], work_y: float32[512]): DATA_x[tid * 8 + 3] = smem[3 * sx + offset] DATA_x[tid * 8 + 7] = smem[7 * sx + offset] - sx: int32 = 66 + sx = 66 # Loop 4 - tid: int32 = 0 for tid in range(64): tid_int: int32 = tid hi: index = tid_int >> 3 @@ -348,7 +342,6 @@ def fft1D_512(work_x: float32[512], work_y: float32[512]): smem[7 * sx + offset] = DATA_y[tid * 8 + 7] # Loop 5 - tid: int32 = 0 for tid in range(64): data_y[0] = DATA_y[tid * 8 + 0] data_y[1] = DATA_y[tid * 8 + 1] @@ -378,7 +371,6 @@ def fft1D_512(work_x: float32[512], work_y: float32[512]): DATA_y[tid * 8 + 7] = data_y[7] # Loop 6 - tid: int32 = 0 for tid in range(64): data_x[0] = DATA_x[tid * 8 + 0] data_x[1] = DATA_x[tid * 8 + 1] @@ -403,7 +395,7 @@ def fft1D_512(work_x: float32[512], work_y: float32[512]): # Calculate hi for second twiddle calculation... tid_int: int32 = tid - hi: index = tid_int >> 3 + hi: int32 = tid_int >> 3 # Second twiddles calc, use hi and 64 stride version as defined in G80/SHOC... twiddles8(data_x, data_y, hi, 64) @@ -428,9 +420,8 @@ def fft1D_512(work_x: float32[512], work_y: float32[512]): DATA_y[tid * 8 + 7] = data_y[7] # Transpose.. - sx: int32 = 72 + sx = 72 # Loop 7 - tid: int32 = 0 for tid in range(64): tid_int: int32 = tid hi: index = tid_int >> 3 @@ -446,9 +437,8 @@ def fft1D_512(work_x: float32[512], work_y: float32[512]): smem[3 * sx + offset] = DATA_x[tid * 8 + 6] smem[7 * sx + offset] = DATA_x[tid * 8 + 7] - sx: int32 = 8 + sx = 8 # Loop 8 - tid: int32 = 0 for tid in range(64): tid_int: int32 = tid hi: index = tid_int >> 3 @@ -464,9 +454,8 @@ def fft1D_512(work_x: float32[512], work_y: float32[512]): DATA_x[tid * 8 + 3] = smem[3 * sx + offset] DATA_x[tid * 8 + 7] = smem[7 * sx + offset] - sx: int32 = 72 + sx = 72 # Loop 9 - tid: int32 = 0 for tid in range(64): tid_int: int32 = tid hi: index = tid_int >> 3 @@ -483,7 +472,6 @@ def fft1D_512(work_x: float32[512], work_y: float32[512]): smem[7 * sx + offset] = DATA_y[tid * 8 + 7] # Loop 10 - tid: int32 = 0 for tid in range(64): data_y[0] = DATA_y[tid * 8 + 0] data_y[1] = DATA_y[tid * 8 + 1] @@ -511,7 +499,6 @@ def fft1D_512(work_x: float32[512], work_y: float32[512]): DATA_y[tid * 8 + 7] = data_y[7] # Loop 11 - tid: int32 = 0 for tid in range(64): # Load post-trans data_y[0] = DATA_y[tid * 8] diff --git a/examples/machsuite/gemm/gemm_blocked.py b/examples/machsuite/gemm/gemm_blocked.py index 08bbbe1e41..fd9043d5f1 100644 --- a/examples/machsuite/gemm/gemm_blocked.py +++ b/examples/machsuite/gemm/gemm_blocked.py @@ -2,15 +2,15 @@ from allo.ir.types import int32 import numpy as np M, N, K = 1024, 1024, 1024 -block_size_value = 8 +S = 8 -def bbgemm(A: int32[M, K], B: int32[K, N], S: int32) -> int32[M, N]: - C: int32[M, N] = 0 +def bbgemm(A: int32[M, K], B: int32[K, N]) -> int32[M, N]: + C: int32[M, N] = 0 i_max: int32 = 0 j_max: int32 = 0 k_max: int32 = 0 - sum_value: int32 = 0 + sum_value: int32 = 0 for i in range(0, M, S): i_max = i + S if i + S < M else M @@ -20,12 +20,13 @@ def bbgemm(A: int32[M, K], B: int32[K, N], S: int32) -> int32[M, N]: k_max = k + S if k + S < K else K for ii in range(i, i_max): for jj in range(j, j_max): - sum_value = 0 + sum_value = 0 for kk in range(k, k_max): sum_value += A[ii, kk] * B[kk, jj] C[ii, jj] += sum_value return C -s = allo.customize(bbgemm) -mod =s.build() -print(s.module) \ No newline at end of file +if __name__ == "__main__": + s = allo.customize(bbgemm) + mod = s.build() + print(s.module) \ No newline at end of file diff --git a/examples/machsuite/gemm/testing.py b/examples/machsuite/gemm/testing.py index d42832b997..222fe2558e 100644 --- a/examples/machsuite/gemm/testing.py +++ b/examples/machsuite/gemm/testing.py @@ -1,21 +1,15 @@ +import os +import sys import allo import numpy as np -from gemm_ncubed import gemm from allo.ir.types import float32 -def read_data(filename): - with open(filename, 'r') as file: - lines = file.readlines() - data = [float(line.strip()) for line in lines if not line.startswith("%%")] - return data +_dir = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, _dir) +from gemm_ncubed import gemm def main(): - input_data = read_data("input.data") - - # m1= np.array(input_data[0:1024]).astype(np.float32).reshape((1024,1024)) - - # m2= np.array(input_data[40:80]).astype(np.float32).reshape((1024,1024)) m1 = np.random.randint(0, 100, (64, 64)).astype(np.float32) m2 = np.random.randint(0, 100, (64, 64)).astype(np.float32) # print(m1,m2) diff --git a/examples/machsuite/gemm/testing_blocked.py b/examples/machsuite/gemm/testing_blocked.py index f22c2f3aa4..d6b7b0649e 100644 --- a/examples/machsuite/gemm/testing_blocked.py +++ b/examples/machsuite/gemm/testing_blocked.py @@ -1,29 +1,20 @@ import allo import numpy as np -from gemm_blocked import gemm +from gemm_blocked import bbgemm from allo.ir.types import int32 -def read_data(filename): - with open(filename, 'r') as file: - lines = file.readlines() - data = [int(line.strip()) for line in lines if not line.startswith("%%")] - return data - def main(): - input_data = read_data("input.data") - - m1,m2,n = np.array(input_data).astype(np.int32) - - - s = allo.customize(gemm) + m1 = np.random.randint(0, 10, (1024, 1024)).astype(np.int32) + m2 = np.random.randint(0, 10, (1024, 1024)).astype(np.int32) + s = allo.customize(bbgemm) mod = s.build(target="llvm") - actual = mod(m1, m2, n) - check = np.matmul(m1, m2) + actual = mod(m1, m2) + check = np.matmul(m1.astype(np.int64), m2.astype(np.int64)).astype(np.int32) np.testing.assert_allclose(actual, check, rtol=1e-5, atol=1e-5) - + print("PASS!") if __name__ == "__main__": - main() \ No newline at end of file + main() diff --git a/examples/machsuite/md/grid/md.py b/examples/machsuite/md/grid/md.py index 7f7932a9e9..067f831d91 100644 --- a/examples/machsuite/md/grid/md.py +++ b/examples/machsuite/md/grid/md.py @@ -37,21 +37,13 @@ def md_x(n_points:int32[blockSide,blockSide,blockSide], position_z:float64[blockSide,blockSide,blockSide,densityFactor])->float64[blockSide,blockSide,blockSide,densityFactor]: - b0_x: int32=0 - b0_y: int32=0 - b0_z: int32=0 - b1_x: int32=0 - b1_y: int32=0 - b1_z: int32=0 q_x: float64=0.0 q_y: float64=0.0 q_z: float64=0.0 p_x: float64=0.0 p_y: float64=0.0 p_z: float64=0.0 - - p_idx:int32=0 - q_idx:int32=0 + dx:float64=0.0 dy:float64=0.0 dz:float64=0.0 @@ -64,7 +56,7 @@ def md_x(n_points:int32[blockSide,blockSide,blockSide], base_q_z: float64[densityFactor]=0.0 sum_x:float64=0.0 force_x:float64[blockSide,blockSide,blockSide,densityFactor]=0.0 - + q_idx_range:int32=0 # Iterate over the grid, block by block @@ -83,7 +75,7 @@ def md_x(n_points:int32[blockSide,blockSide,blockSide], p_y = position_y[b0_x,b0_y,b0_z,p_idx] p_z = position_z[b0_x,b0_y,b0_z,p_idx] sum_x = force_x[b0_x,b0_y,b0_z,p_idx] - + for q_idx in range(q_idx_range): q_x = base_q_x[q_idx] q_y = base_q_y[q_idx] @@ -93,14 +85,12 @@ def md_x(n_points:int32[blockSide,blockSide,blockSide], dy = p_y - q_y dz = p_z - q_z r2inv = 1.0 / (dx * dx + dy * dy + dz * dz) - else: - r2inv=(domainEdge*domainEdge*3.0)*1000 - r6inv = r2inv * r2inv * r2inv - potential = r6inv * (lj1 * r6inv - lj2) - f = r2inv * potential - sum_x += f * dx - - force_x[b0_x,b0_y,b0_z,p_idx]=sum_x + r6inv = r2inv * r2inv * r2inv + potential = r6inv * (lj1 * r6inv - lj2) + f = r2inv * potential + sum_x += f * dx + + force_x[b0_x,b0_y,b0_z,p_idx]=sum_x return force_x def md_y(n_points:int32[blockSide,blockSide,blockSide], @@ -110,21 +100,13 @@ def md_y(n_points:int32[blockSide,blockSide,blockSide], position_z:float64[blockSide,blockSide,blockSide,densityFactor])->float64[blockSide,blockSide,blockSide,densityFactor]: - b0_x: int32=0 - b0_y: int32=0 - b0_z: int32=0 - b1_x: int32=0 - b1_y: int32=0 - b1_z: int32=0 q_x: float64=0.0 q_y: float64=0.0 q_z: float64=0.0 p_x: float64=0.0 p_y: float64=0.0 p_z: float64=0.0 - - p_idx:int32=0 - q_idx:int32=0 + dx:float64=0.0 dy:float64=0.0 dz:float64=0.0 @@ -137,7 +119,7 @@ def md_y(n_points:int32[blockSide,blockSide,blockSide], base_q_z: float64[densityFactor]=0.0 sum_y:float64=0.0 force_y:float64[blockSide,blockSide,blockSide,densityFactor]=0.0 - + q_idx_range:int32=0 # Iterate over the grid, block by block @@ -156,7 +138,7 @@ def md_y(n_points:int32[blockSide,blockSide,blockSide], p_y = position_y[b0_x,b0_y,b0_z,p_idx] p_z = position_z[b0_x,b0_y,b0_z,p_idx] sum_y = force_y[b0_x,b0_y,b0_z,p_idx] - + for q_idx in range(q_idx_range): q_x = base_q_x[q_idx] q_y = base_q_y[q_idx] @@ -166,15 +148,12 @@ def md_y(n_points:int32[blockSide,blockSide,blockSide], dy = p_y - q_y dz = p_z - q_z r2inv = 1.0 / (dx * dx + dy * dy + dz * dz) - else: - r2inv=(domainEdge*domainEdge*3.0)*1000 - r6inv = r2inv * r2inv * r2inv - potential = r6inv * (lj1 * r6inv - lj2) - f = r2inv * potential - sum_y += f * dy - - - force_y[b0_x,b0_y,b0_z,p_idx]=sum_y + r6inv = r2inv * r2inv * r2inv + potential = r6inv * (lj1 * r6inv - lj2) + f = r2inv * potential + sum_y += f * dy + + force_y[b0_x,b0_y,b0_z,p_idx]=sum_y return force_y def md_z(n_points:int32[blockSide,blockSide,blockSide], @@ -184,21 +163,13 @@ def md_z(n_points:int32[blockSide,blockSide,blockSide], position_z:float64[blockSide,blockSide,blockSide,densityFactor])->float64[blockSide,blockSide,blockSide,densityFactor]: - b0_x: int32=0 - b0_y: int32=0 - b0_z: int32=0 - b1_x: int32=0 - b1_y: int32=0 - b1_z: int32=0 q_x: float64=0.0 q_y: float64=0.0 q_z: float64=0.0 p_x: float64=0.0 p_y: float64=0.0 p_z: float64=0.0 - - p_idx:int32=0 - q_idx:int32=0 + dx:float64=0.0 dy:float64=0.0 dz:float64=0.0 @@ -211,7 +182,7 @@ def md_z(n_points:int32[blockSide,blockSide,blockSide], base_q_z: float64[densityFactor]=0.0 sum_z:float64=0.0 force_z:float64[blockSide,blockSide,blockSide,densityFactor]=0.0 - + q_idx_range:int32=0 # Iterate over the grid, block by block @@ -230,7 +201,7 @@ def md_z(n_points:int32[blockSide,blockSide,blockSide], p_y = position_y[b0_x,b0_y,b0_z,p_idx] p_z = position_z[b0_x,b0_y,b0_z,p_idx] sum_z = force_z[b0_x,b0_y,b0_z,p_idx] - + for q_idx in range(q_idx_range): q_x = base_q_x[q_idx] q_y = base_q_y[q_idx] @@ -240,26 +211,25 @@ def md_z(n_points:int32[blockSide,blockSide,blockSide], dy = p_y - q_y dz = p_z - q_z r2inv = 1.0 / (dx * dx + dy * dy + dz * dz) - else: - r2inv=(domainEdge*domainEdge*3.0)*1000 - r6inv = r2inv * r2inv * r2inv - potential = r6inv * (lj1 * r6inv - lj2) - f = r2inv * potential - sum_z += f * dz - - force_z[b0_x,b0_y,b0_z,p_idx]=sum_z + r6inv = r2inv * r2inv * r2inv + potential = r6inv * (lj1 * r6inv - lj2) + f = r2inv * potential + sum_z += f * dz + + force_z[b0_x,b0_y,b0_z,p_idx]=sum_z return force_z -s_x=allo.customize(md_x) -print(s_x.module) -s_x.build() +if __name__ == "__main__": + s_x=allo.customize(md_x) + print(s_x.module) + s_x.build() -s_y=allo.customize(md_y) -print(s_y.module) -s_y.build() + s_y=allo.customize(md_y) + print(s_y.module) + s_y.build() -s_z=allo.customize(md_z) -print(s_z.module) -s_z.build() + s_z=allo.customize(md_z) + print(s_z.module) + s_z.build() -print("build success") + print("build success") diff --git a/examples/machsuite/md/grid/md_kernel_test.py b/examples/machsuite/md/grid/md_kernel_test.py index 8999c73e35..2c319c812f 100644 --- a/examples/machsuite/md/grid/md_kernel_test.py +++ b/examples/machsuite/md/grid/md_kernel_test.py @@ -1,72 +1,11 @@ -import random import md import allo import numpy as np +import os -# Assuming nAtoms and maxNeighbors are predefined constants -nAtoms = 256 # Example value -maxNeighbors = 16 # Example value -domainEdge=20 - -def distance(position_x, position_y, position_z, i, j): - if(i!=j): - delx = position_x[i] - position_x[j] - dely = position_y[i] - position_y[j] - delz = position_z[i] - position_z[j] - r2inv = delx**2 + dely**2 + delz**2 - else: - r2inv=(domainEdge*domainEdge*3.0)*1000 - return r2inv - -def insert_in_order(curr_dist, curr_list, j, dist_ij): - pos = maxNeighbors - 1 - curr_max = curr_dist[pos] - if dist_ij > curr_max: - return - - for dist in range(pos, 0, -1): - if dist_ij < curr_dist[dist]: - curr_dist[dist] = curr_dist[dist - 1] - curr_list[dist] = curr_list[dist - 1] - else: - break - pos -= 1 - - curr_dist[dist] = dist_ij - curr_list[dist] = j - -def build_neighbor_list(position_x, position_y, position_z): - total_pairs = 0 - NL = [[0 for _ in range(maxNeighbors)] for _ in range(nAtoms)] - - for i in range(nAtoms): - curr_list = [0] * maxNeighbors - curr_dist = [float('inf')] * maxNeighbors - - for j in range(nAtoms): - if i == j: - continue - dist_ij = distance(position_x, position_y, position_z, i, j) - insert_in_order(curr_dist, curr_list, j, dist_ij) - - for k in range(maxNeighbors): - NL[i][k] = curr_list[k] - if curr_dist[k] != float('inf'): - total_pairs += 1 - - return total_pairs, NL - -def populate_neighbor_list(curr_dist, curr_list, i, NL): - valid_pairs = 0 - for neighbor_iter in range(maxNeighbors): - NL[i][neighbor_iter] = curr_list[neighbor_iter] - valid_pairs += 1 - return valid_pairs - -def parse_data(file):# refers to +def parse_data(file): data_arrays = [] current_array = [] - with open(file, 'r') as f: for line in f: if line.strip() == '%%': @@ -76,47 +15,37 @@ def parse_data(file):# refers to else: num = float(line.strip()) current_array.append(num) - data_arrays.append(current_array) return data_arrays -# Main function equivalent in Python if __name__ == "__main__": - input = parse_data("input.data") - check = parse_data("check.data") - check_x=np.array(check[0][0:640]).astype(np.float64).reshape((4,4,4,10)) - check_y=np.array(check[0][640:1280]).astype(np.float64).reshape((4,4,4,10)) - check_z=np.array(check[0][1280:1920]).astype(np.float64).reshape((4,4,4,10)) - - - forceX=np.zeros(shape=((4,4,4,10)), dtype=float) - forceY=np.zeros(shape=((4,4,4,10)), dtype=float) - forceZ=np.zeros(shape=((4,4,4,10)), dtype=float) + data_dir = os.path.dirname(os.path.abspath(__file__)) + input_data = parse_data(os.path.join(data_dir, "input.data")) + check_data = parse_data(os.path.join(data_dir, "check.data")) + # C code uses dvector_t structs (AoS layout: x0,y0,z0,x1,y1,z1,...) + force_data = np.array(check_data[0]).astype(np.float64) + check_x = np.ascontiguousarray(force_data[0::3].reshape((4,4,4,10))) + check_y = np.ascontiguousarray(force_data[1::3].reshape((4,4,4,10))) + check_z = np.ascontiguousarray(force_data[2::3].reshape((4,4,4,10))) + + np_n_points = np.array(input_data[0]).astype(np.int32).reshape((4,4,4)) + pos_data = np.array(input_data[1]).astype(np.float64) + np_pos_x = np.ascontiguousarray(pos_data[0::3].reshape((4,4,4,10))) + np_pos_y = np.ascontiguousarray(pos_data[1::3].reshape((4,4,4,10))) + np_pos_z = np.ascontiguousarray(pos_data[2::3].reshape((4,4,4,10))) - n_points=np.array(input[0]).astype(np.int32).reshape((4,4,4)) - position_x = np.array(input[1][0:640]).astype(np.float64).reshape((4,4,4,10)) - position_y = np.array(input[1][640:1280]).astype(np.float64).reshape((4,4,4,10)) - position_z = np.array(input[1][1280:1920]).astype(np.float64).reshape((4,4,4,10)) - - print("here") - s_x = allo.customize(md.md_x) mod_x = s_x.build() s_y = allo.customize(md.md_y) mod_y = s_y.build() s_z = allo.customize(md.md_z) mod_z = s_z.build() - - - forceX=mod_x(n_points,position_x, position_y, position_z) - forceY=mod_y(n_points,position_x, position_y, position_z) - forceZ=mod_z(n_points,position_x, position_y, position_z) - #The actual output has more accurate output than check data - np.testing.assert_allclose(forceX,check_x, rtol=1e-5, atol=1e-5) - np.testing.assert_allclose(forceY,check_y, rtol=1e-5, atol=1e-5) - np.testing.assert_allclose(forceZ,check_z, rtol=1e-5, atol=1e-5) - - + forceX = mod_x(np_n_points, np_pos_x, np_pos_y, np_pos_z) + forceY = mod_y(np_n_points, np_pos_x, np_pos_y, np_pos_z) + forceZ = mod_z(np_n_points, np_pos_x, np_pos_y, np_pos_z) - + np.testing.assert_allclose(forceX, check_x, rtol=1e-5, atol=1e-5) + np.testing.assert_allclose(forceY, check_y, rtol=1e-5, atol=1e-5) + np.testing.assert_allclose(forceZ, check_z, rtol=1e-5, atol=1e-5) + print("PASS!") diff --git a/examples/machsuite/md/knn/md.py b/examples/machsuite/md/knn/md.py index c5e45ddcf5..d08bad35f2 100644 --- a/examples/machsuite/md/knn/md.py +++ b/examples/machsuite/md/knn/md.py @@ -14,8 +14,6 @@ def md_x(position_x:float64[nAtoms], position_y:float64[nAtoms],position_z:float i_x: float64=0.0 i_y: float64=0.0 i_z: float64=0.0 - i: int32=0 - j: int32=0 jidx: int32=0 j_x: float64=0.0 j_y: float64=0.0 @@ -29,7 +27,6 @@ def md_x(position_x:float64[nAtoms], position_y:float64[nAtoms],position_z:float force: float64=0.0 fx: float64=0.0 force_x:float64[nAtoms]=0.0 - #force_x=np.zeros_like(position_x) for i in range(nAtoms): i_x= position_x[i] @@ -67,17 +64,11 @@ def md_x(position_x:float64[nAtoms], position_y:float64[nAtoms],position_z:float return force_x #print(f"dF={fx},{fy},{fz}") -s_x=allo.customize(md_x) -print(s_x.module) -s_x.build() - def md_y(position_x:float64[nAtoms], position_y:float64[nAtoms],position_z:float64[nAtoms],NL:int32[nAtoms*maxNeighbors])->float64[nAtoms]: #-> (float64[nAtoms],float64[nAtoms],float64[nAtoms]): i_x: float64=0.0 i_y: float64=0.0 i_z: float64=0.0 - i: int32=0 - j: int32=0 jidx: int32=0 j_x: float64=0.0 j_y: float64=0.0 @@ -91,7 +82,6 @@ def md_y(position_x:float64[nAtoms], position_y:float64[nAtoms],position_z:float force: float64=0.0 fy: float64=0.0 force_y:float64[nAtoms] - #force_y=np.zeros_like(position_y) for i in range(nAtoms): i_x= position_x[i] @@ -129,17 +119,11 @@ def md_y(position_x:float64[nAtoms], position_y:float64[nAtoms],position_z:float return force_y #print(f"dF={fx},{fy},{fz}") -s_y=allo.customize(md_y) -print(s_y.module) -s_y.build() - def md_z(position_x:float64[nAtoms], position_y:float64[nAtoms],position_z:float64[nAtoms],NL:int32[nAtoms*maxNeighbors])->float64[nAtoms]: #-> (float64[nAtoms],float64[nAtoms],float64[nAtoms]): i_x: float64=0.0 i_y: float64=0.0 i_z: float64=0.0 - i: int32=0 - j: int32=0 jidx: int32=0 j_x: float64=0.0 j_y: float64=0.0 @@ -153,7 +137,6 @@ def md_z(position_x:float64[nAtoms], position_y:float64[nAtoms],position_z:float force: float64=0.0 fz: float64=0.0 force_z:float64[nAtoms] - #force_z=np.zeros_like(position_z) for i in range(nAtoms): i_x= position_x[i] @@ -191,9 +174,18 @@ def md_z(position_x:float64[nAtoms], position_y:float64[nAtoms],position_z:float return force_z #print(f"dF={fx},{fy},{fz}") -s_z=allo.customize(md_z) -print(s_z.module) -s_z.build() +if __name__ == "__main__": + s_x=allo.customize(md_x) + print(s_x.module) + s_x.build() + + s_y=allo.customize(md_y) + print(s_y.module) + s_y.build() + + s_z=allo.customize(md_z) + print(s_z.module) + s_z.build() -print("build success") + print("build success") diff --git a/examples/machsuite/md/knn/md_kernel_test.py b/examples/machsuite/md/knn/md_kernel_test.py index a91f8aac60..0431bb0797 100644 --- a/examples/machsuite/md/knn/md_kernel_test.py +++ b/examples/machsuite/md/knn/md_kernel_test.py @@ -1,72 +1,11 @@ -import random import md import allo import numpy as np +import os -# Assuming nAtoms and maxNeighbors are predefined constants -nAtoms = 256 # Example value -maxNeighbors = 16 # Example value -domainEdge=20 - -def distance(position_x, position_y, position_z, i, j): - if(i!=j): - delx = position_x[i] - position_x[j] - dely = position_y[i] - position_y[j] - delz = position_z[i] - position_z[j] - r2inv = delx**2 + dely**2 + delz**2 - else: - r2inv=(domainEdge*domainEdge*3.0)*1000 - return r2inv - -def insert_in_order(curr_dist, curr_list, j, dist_ij): - pos = maxNeighbors - 1 - curr_max = curr_dist[pos] - if dist_ij > curr_max: - return - - for dist in range(pos, 0, -1): - if dist_ij < curr_dist[dist]: - curr_dist[dist] = curr_dist[dist - 1] - curr_list[dist] = curr_list[dist - 1] - else: - break - pos -= 1 - - curr_dist[dist] = dist_ij - curr_list[dist] = j - -def build_neighbor_list(position_x, position_y, position_z): - total_pairs = 0 - NL = [[0 for _ in range(maxNeighbors)] for _ in range(nAtoms)] - - for i in range(nAtoms): - curr_list = [0] * maxNeighbors - curr_dist = [float('inf')] * maxNeighbors - - for j in range(nAtoms): - if i == j: - continue - dist_ij = distance(position_x, position_y, position_z, i, j) - insert_in_order(curr_dist, curr_list, j, dist_ij) - - for k in range(maxNeighbors): - NL[i][k] = curr_list[k] - if curr_dist[k] != float('inf'): - total_pairs += 1 - - return total_pairs, NL - -def populate_neighbor_list(curr_dist, curr_list, i, NL): - valid_pairs = 0 - for neighbor_iter in range(maxNeighbors): - NL[i][neighbor_iter] = curr_list[neighbor_iter] - valid_pairs += 1 - return valid_pairs - -def parse_data(file):# refers to +def parse_data(file): data_arrays = [] current_array = [] - with open(file, 'r') as f: for line in f: if line.strip() == '%%': @@ -76,46 +15,34 @@ def parse_data(file):# refers to else: num = float(line.strip()) current_array.append(num) - data_arrays.append(current_array) return data_arrays -# Main function equivalent in Python if __name__ == "__main__": - input = parse_data("input.data") - check = parse_data("check.data") - check_x=np.array(check[0]).astype(np.float64) - check_y=np.array(check[1]).astype(np.float64) - check_z=np.array(check[2]).astype(np.float64) - - - forceX=np.zeros(shape=(nAtoms), dtype=float) - forceY=np.zeros(shape=(nAtoms), dtype=float) - forceZ=np.zeros(shape=(nAtoms), dtype=float) + data_dir = os.path.dirname(os.path.abspath(__file__)) + input_data = parse_data(os.path.join(data_dir, "input.data")) + check_data = parse_data(os.path.join(data_dir, "check.data")) + check_x = np.array(check_data[0]).astype(np.float64) + check_y = np.array(check_data[1]).astype(np.float64) + check_z = np.array(check_data[2]).astype(np.float64) + + np_pos_x = np.array(input_data[0]).astype(np.float64) + np_pos_y = np.array(input_data[1]).astype(np.float64) + np_pos_z = np.array(input_data[2]).astype(np.float64) + np_NL = np.array(input_data[3]).astype(np.int32) - position_x = np.array(input[0]).astype(np.float64) - position_y = np.array(input[1]).astype(np.float64) - position_z = np.array(input[2]).astype(np.float64) - NL=np.array(input[3]).astype(np.int32) - print("here") - s_x = allo.customize(md.md_x) mod_x = s_x.build() s_y = allo.customize(md.md_y) mod_y = s_y.build() s_z = allo.customize(md.md_z) mod_z = s_z.build() - - - forceX=mod_x(position_x, position_y, position_z,NL) - forceY=mod_y(position_x, position_y, position_z,NL) - forceZ=mod_z(position_x, position_y, position_z,NL) - #The actual output has more accurate output than check data - np.testing.assert_allclose(forceX,check_x, rtol=2, atol=20) - np.testing.assert_allclose(forceY,check_y, rtol=2, atol=20) - np.testing.assert_allclose(forceZ,check_z, rtol=2, atol=20) - - + forceX = mod_x(np_pos_x, np_pos_y, np_pos_z, np_NL) + forceY = mod_y(np_pos_x, np_pos_y, np_pos_z, np_NL) + forceZ = mod_z(np_pos_x, np_pos_y, np_pos_z, np_NL) - + np.testing.assert_allclose(forceX, check_x, rtol=2, atol=20) + np.testing.assert_allclose(forceY, check_y, rtol=2, atol=20) + np.testing.assert_allclose(forceZ, check_z, rtol=2, atol=20) + print("PASS!") diff --git a/examples/machsuite/merge/mergesort.py b/examples/machsuite/merge/mergesort.py index 068e57a0d9..7414382c83 100644 --- a/examples/machsuite/merge/mergesort.py +++ b/examples/machsuite/merge/mergesort.py @@ -35,7 +35,6 @@ def merge_sort(a:int32[N]) -> int32[N]: start:int32 = 0 stop:int32 = N - 1 - i:int32 = 0 f:int32 m:int32 = 1 mid:int32 @@ -43,12 +42,12 @@ def merge_sort(a:int32[N]) -> int32[N]: while (m < stop-start + 1): - for i in range(start, stop, m+m): - f = i - - mid = i + m - 1 - - to = i + m + m - 1 + for ii in range(start, stop, m+m): + f = ii + + mid = ii + m - 1 + + to = ii + m + m - 1 if (to <= stop): merge(a, f, mid, to) else: @@ -61,4 +60,10 @@ def merge_sort(a:int32[N]) -> int32[N]: s = allo.customize(merge_sort) mod = s.build() -print(s.module) \ No newline at end of file + +# Test +a = np.random.randint(0, 10000, N).astype(np.int32) +result = mod(a) +expected = np.sort(a).astype(np.int32) +np.testing.assert_array_equal(result, expected) +print("PASS!") \ No newline at end of file diff --git a/examples/machsuite/merge/testing.py b/examples/machsuite/merge/testing.py index 3993980fe9..81ebeb83d2 100644 --- a/examples/machsuite/merge/testing.py +++ b/examples/machsuite/merge/testing.py @@ -1,8 +1,13 @@ +import os +import sys import allo import numpy as np -from mergesort import merge_sort from allo.ir.types import int32 +_dir = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, _dir) +from mergesort import merge_sort + def read_data(filename): with open(filename, 'r') as file: lines = file.readlines() @@ -10,8 +15,8 @@ def read_data(filename): return data def main(): - input_data = read_data("input.data") - check_data = read_data("check.data") + input_data = read_data(os.path.join(_dir, "input.data")) + check_data = read_data(os.path.join(_dir, "check.data")) values = np.array(input_data).astype(np.int32) diff --git a/examples/machsuite/nw/check.data b/examples/machsuite/nw/check.data new file mode 100644 index 0000000000..18b4d513ca --- /dev/null +++ b/examples/machsuite/nw/check.data @@ -0,0 +1,5 @@ +%% +cggccgcttag-tgggtgcggtgctaagggggctagagggcttg-tc-gcggggcacgggacatgcg--gcg-t--cgtaaaccaaacat-g-gcgccgggag-attatgctcttgcacg-acag-ta----g-gat-aaagc---agc-t_________________________________________________________________________________________________________ +%% +--------tagct-ggtaccgt-ctaa-gtggc--ccggg-ttgagcggctgggca--gg-c-tg-gaag-gttagcgt-aaggagatatagtccg-cgggtgcagggtg-gctggcccgtacagctacctggcgctgtgcgcgggagctt_________________________________________________________________________________________________________ +%% diff --git a/examples/machsuite/nw/input.data b/examples/machsuite/nw/input.data new file mode 100644 index 0000000000..b1589b9473 --- /dev/null +++ b/examples/machsuite/nw/input.data @@ -0,0 +1,5 @@ +%% +tcgacgaaataggatgacagcacgttctcgtattagagggccgcggtacaaaccaaatgctgcggcgtacagggcacggggcgctgttcgggagatcgggggaatcgtggcgtgggtgattcgccggc +%% +ttcgagggcgcgtgtcgcggtccatcgacatgcccggtcggtgggacgtgggcgcctgatatagaggaatgcgattggaaggtcggacgggtcggcgagttgggcccggtgaatctgccatggtcgat +%% diff --git a/examples/machsuite/nw/nw.py b/examples/machsuite/nw/nw.py new file mode 100644 index 0000000000..324a715c2f --- /dev/null +++ b/examples/machsuite/nw/nw.py @@ -0,0 +1,136 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + +# Needleman-Wunsch sequence alignment (MachSuite) + +import allo +from allo.ir.types import int32 +import numpy as np + +ALEN = 128 +BLEN = 128 +RESULT_LEN = ALEN + BLEN # 256 +MATRIX_SIZE = (ALEN + 1) * (BLEN + 1) # 16641 + +# Scoring constants +MATCH_SCORE = 1 +MISMATCH_SCORE = -1 +GAP_SCORE = -1 + +# Direction constants for ptr matrix +ALIGN_VAL = 1 +SKIPA_VAL = 2 +SKIPB_VAL = 3 + + +def needwun(SEQA: int32[ALEN], SEQB: int32[BLEN]) -> int32[2, RESULT_LEN]: + M: int32[MATRIX_SIZE] = 0 + ptr: int32[MATRIX_SIZE] = 0 + result: int32[2, RESULT_LEN] = 0 + + score: int32 = 0 + row_up: int32 = 0 + row: int32 = 0 + up_left: int32 = 0 + up: int32 = 0 + left: int32 = 0 + max_val: int32 = 0 + + # Initialize first row: M[0, a] = a * GAP_SCORE + for i in range(ALEN + 1): + M[i] = i * GAP_SCORE + + # Initialize first column: M[b, 0] = b * GAP_SCORE + for j in range(BLEN + 1): + M[j * (ALEN + 1)] = j * GAP_SCORE + + # Fill DP matrix + for bi in range(1, BLEN + 1): + for ai in range(1, ALEN + 1): + if SEQA[ai - 1] == SEQB[bi - 1]: + score = MATCH_SCORE + else: + score = MISMATCH_SCORE + + row_up = (bi - 1) * (ALEN + 1) + row = bi * (ALEN + 1) + + up_left = M[row_up + (ai - 1)] + score + up = M[row_up + ai] + GAP_SCORE + left = M[row + (ai - 1)] + GAP_SCORE + + # Compute max of three + max_val = up_left + if up > max_val: + max_val = up + if left > max_val: + max_val = left + + M[row + ai] = max_val + if max_val == left: + ptr[row + ai] = SKIPB_VAL + elif max_val == up: + ptr[row + ai] = SKIPA_VAL + else: + ptr[row + ai] = ALIGN_VAL + + # Traceback + a_idx: int32 = ALEN + b_idx: int32 = BLEN + a_str_idx: int32 = 0 + b_str_idx: int32 = 0 + r: int32 = 0 + + for step in range(ALEN + BLEN): + if a_idx > 0 or b_idx > 0: + if a_idx == 0: + # Must go up (SKIPA) + result[0, a_str_idx] = 45 + result[1, b_str_idx] = SEQB[b_idx - 1] + a_str_idx = a_str_idx + 1 + b_str_idx = b_str_idx + 1 + b_idx = b_idx - 1 + elif b_idx == 0: + # Must go left (SKIPB) + result[0, a_str_idx] = SEQA[a_idx - 1] + result[1, b_str_idx] = 45 + a_str_idx = a_str_idx + 1 + b_str_idx = b_str_idx + 1 + a_idx = a_idx - 1 + else: + r = b_idx * (ALEN + 1) + if ptr[r + a_idx] == ALIGN_VAL: + result[0, a_str_idx] = SEQA[a_idx - 1] + result[1, b_str_idx] = SEQB[b_idx - 1] + a_str_idx = a_str_idx + 1 + b_str_idx = b_str_idx + 1 + a_idx = a_idx - 1 + b_idx = b_idx - 1 + elif ptr[r + a_idx] == SKIPB_VAL: + result[0, a_str_idx] = SEQA[a_idx - 1] + result[1, b_str_idx] = 45 + a_str_idx = a_str_idx + 1 + b_str_idx = b_str_idx + 1 + a_idx = a_idx - 1 + else: + result[0, a_str_idx] = 45 + result[1, b_str_idx] = SEQB[b_idx - 1] + a_str_idx = a_str_idx + 1 + b_str_idx = b_str_idx + 1 + b_idx = b_idx - 1 + + # Pad remaining positions with '_' (95) + for idx in range(RESULT_LEN): + if result[0, idx] == 0: + result[0, idx] = 95 + if result[1, idx] == 0: + result[1, idx] = 95 + + return result + + +if __name__ == "__main__": + s = allo.customize(needwun) + print(s.module) + mod = s.build() + print("Build success!") diff --git a/examples/machsuite/nw/test_nw.py b/examples/machsuite/nw/test_nw.py new file mode 100644 index 0000000000..3b5d4cd6ce --- /dev/null +++ b/examples/machsuite/nw/test_nw.py @@ -0,0 +1,66 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + +import os +import numpy as np +import allo +from nw import needwun, ALEN, BLEN, RESULT_LEN + +def test_nw(): + data_dir = os.path.dirname(os.path.abspath(__file__)) + + # Read input sequences + input_path = os.path.join(data_dir, "input.data") + sections = [] + with open(input_path, 'r') as f: + current = [] + for line in f: + if line.strip() == '%%': + if current: + sections.append(''.join(current)) + current = [] + else: + current.append(line.strip()) + if current: + sections.append(''.join(current)) + + seq_a_str = sections[0][:ALEN] + seq_b_str = sections[1][:BLEN] + + # Convert to int32 arrays (ASCII values) + seq_a = np.array([ord(c) for c in seq_a_str], dtype=np.int32) + seq_b = np.array([ord(c) for c in seq_b_str], dtype=np.int32) + + # Build and run + s = allo.customize(needwun) + mod = s.build() + out = mod(seq_a, seq_b) + + # Convert result back to strings + aligned_a = ''.join(chr(c) for c in out[0]) + aligned_b = ''.join(chr(c) for c in out[1]) + + # Read expected output + check_path = os.path.join(data_dir, "check.data") + check_sections = [] + with open(check_path, 'r') as f: + current = [] + for line in f: + if line.strip() == '%%': + if current: + check_sections.append(''.join(current)) + current = [] + else: + current.append(line.strip()) + if current: + check_sections.append(''.join(current)) + + expected_a = check_sections[0][:RESULT_LEN] + expected_b = check_sections[1][:RESULT_LEN] + + assert aligned_a == expected_a, f"AlignedA mismatch!\nGot: {aligned_a[:80]}...\nExpected: {expected_a[:80]}..." + assert aligned_b == expected_b, f"AlignedB mismatch!\nGot: {aligned_b[:80]}...\nExpected: {expected_b[:80]}..." + print("PASS!") + +if __name__ == "__main__": + test_nw() diff --git a/examples/machsuite/sort/radix/check.data b/examples/machsuite/sort/radix/check.data new file mode 100644 index 0000000000..d720516150 --- /dev/null +++ b/examples/machsuite/sort/radix/check.data @@ -0,0 +1,2049 @@ +%% +2133347 +3755034 +3757680 +5114060 +6748351 +11497565 +13360332 +14464969 +14535786 +15264621 +16570194 +16921963 +16959813 +19892644 +20193475 +20865036 +21389248 +22768866 +25100496 +25776468 +25869575 +27666284 +27675825 +28990799 +29381863 +29653602 +30894415 +32011475 +32283582 +32495326 +33287680 +33423244 +33797863 +33967896 +34606601 +34794482 +36491596 +36513003 +37313539 +37577570 +37600544 +37958120 +39484517 +40140980 +41705353 +42383451 +43902811 +44125235 +47621339 +47866257 +48905545 +51198210 +51245290 +55100470 +58572672 +59206569 +60974523 +62624058 +62830115 +63917942 +65375150 +65864705 +66411149 +67176562 +67874428 +68604017 +69122538 +69969612 +70599058 +71478587 +72158627 +72460518 +73066829 +76115669 +76700937 +78410211 +80693604 +80818357 +81692302 +82876636 +83314681 +84370399 +85297387 +85901251 +87087128 +87248777 +87270835 +88325323 +89650033 +90635783 +92766339 +93482676 +93987402 +95454661 +95598889 +96657364 +98319525 +99479956 +100077314 +100936390 +101347165 +101884596 +102673761 +105234290 +105724135 +105877669 +106828160 +109081969 +110019408 +111155111 +111436477 +111756298 +111885734 +113221775 +114342047 +116727282 +118360318 +119602863 +120372826 +121774000 +122470461 +123620487 +127031658 +127386675 +127839099 +128191180 +128199623 +128894687 +128928023 +128952447 +132957322 +133709002 +134086399 +134097471 +135356844 +136883456 +137991365 +139185907 +139309844 +139783465 +144522435 +145125081 +145181215 +146301892 +146480651 +147666338 +148366910 +149065532 +150020171 +150337966 +150901144 +151035803 +151333492 +151499496 +152600286 +153048093 +153207158 +154698022 +155477576 +155859496 +156300070 +156543006 +156692706 +156960811 +160415738 +161717562 +163522198 +164019660 +165337021 +165449550 +165757953 +166148387 +168634616 +169996838 +170250664 +170391257 +170463985 +171333890 +172081653 +172179489 +174384850 +175276916 +176394620 +177133202 +177548100 +177623586 +177771287 +179816643 +180988319 +181874898 +182069082 +183070972 +184954528 +185259225 +185589616 +186545648 +186735955 +187577258 +187757211 +189071296 +189324225 +189486773 +190068440 +190526577 +191656740 +191855552 +192699922 +194033189 +194304077 +194961368 +195485565 +195575558 +195791553 +196570489 +198128026 +198515425 +199018542 +200930301 +201967992 +203588067 +206702553 +207237193 +208236790 +208753405 +212096210 +212764022 +213296204 +213358112 +215084709 +216451246 +216730162 +217581202 +217859346 +218079139 +220029168 +222764447 +222774002 +224370131 +225640914 +225891607 +227234597 +228193101 +228756043 +230054271 +230116054 +231968216 +232320438 +234368065 +236157269 +238322615 +239056365 +240134265 +240505305 +242255706 +243261054 +243305723 +244437562 +246048882 +247483746 +247597272 +248943784 +248987466 +249178659 +250211688 +250544064 +253359016 +254388947 +255055848 +256610514 +257004501 +257911218 +258103701 +260995967 +261522116 +261653045 +263877273 +264114698 +265158106 +265255716 +265337843 +266261552 +267592551 +267898534 +269286404 +269570899 +269644648 +270842593 +271001503 +271321916 +271463051 +274284400 +275490071 +277528908 +278812137 +278846449 +279972861 +280371522 +281450081 +284387350 +285571409 +286532441 +286665591 +286841615 +287756628 +288148609 +289705845 +291409102 +293433174 +294813100 +295984014 +297554450 +297823665 +297869098 +299389274 +299898902 +300761205 +302354825 +302652346 +303590601 +304511300 +305434839 +306233773 +306822213 +307203772 +308134579 +308994026 +309212434 +310302420 +310662211 +310665455 +311356082 +312251881 +314315478 +315948592 +320253652 +320990176 +321993998 +325031938 +325290524 +325464775 +328655625 +329738404 +330737581 +330792297 +332327337 +333247645 +334543417 +334880253 +334977553 +335715992 +336541300 +337601622 +338856656 +342063486 +342070919 +344296193 +349919910 +350127017 +351873178 +352228300 +353885535 +355079864 +355535304 +355560126 +355663123 +355827223 +356093208 +356194072 +358187431 +361261943 +362170271 +368123457 +370000419 +370391868 +370406316 +371167247 +371943766 +375078779 +377206183 +379721750 +379897203 +380400361 +380681534 +381891319 +382115769 +382894292 +384805441 +385862243 +392336178 +392961592 +394042623 +394189989 +394664535 +396095779 +396375367 +397615021 +400859314 +403111108 +403955460 +404866075 +407019027 +407338232 +407394234 +408591603 +409435661 +410327491 +413733332 +413952789 +415406505 +417049677 +417112292 +417730805 +418518584 +419218001 +420033603 +421766723 +422151624 +423694845 +424635729 +426239114 +426368885 +426858731 +427310717 +427731302 +429639342 +429741617 +429882966 +433157790 +433315813 +434370628 +434550013 +436827523 +439115595 +439420872 +439666194 +440638102 +440797705 +441400426 +442054749 +442247466 +443973176 +444128215 +444869164 +445929743 +446035477 +446582461 +446669555 +448651778 +449325307 +450180092 +453173852 +456679784 +460964936 +461038923 +461186368 +461386911 +462324490 +463015512 +466353018 +466890649 +467485606 +469191954 +469606255 +470747628 +470920964 +471437709 +472147699 +472376887 +474042834 +475239808 +477793157 +477796026 +477837560 +477994546 +479378426 +480093923 +480755265 +481430369 +483764857 +484374348 +485470119 +488305458 +488787171 +491184830 +494700070 +495965166 +495999182 +496276526 +496705994 +498204267 +498679396 +502743441 +503395919 +503974112 +505236584 +505318934 +505651416 +507333260 +509043494 +510319326 +510490837 +512010901 +512735686 +514380753 +515229764 +517175601 +520630890 +522708374 +524037430 +524157971 +524589729 +525189582 +526857678 +527155034 +527747622 +529333204 +530630168 +532918727 +532974825 +533206101 +533566406 +534440455 +535153458 +536145871 +537126833 +540184876 +541468179 +543322263 +543473278 +544807927 +544833283 +545094225 +545325403 +546700911 +549024074 +550021592 +553748629 +553810021 +555271126 +555566939 +556662332 +560186184 +561622493 +561858461 +563554428 +563762887 +565681876 +565800731 +566064689 +566225790 +566948716 +567355160 +568740973 +569091874 +569866125 +570351679 +571532202 +571692111 +571913873 +572148025 +572382664 +573024774 +573553042 +574107939 +574110884 +574493348 +575072672 +575225045 +575410850 +576622031 +576793022 +577928774 +578934327 +580950754 +581839897 +581929050 +582040172 +582241926 +582856665 +584977769 +585230318 +586080090 +587037925 +587655589 +587767534 +587916663 +588200933 +589330536 +589994150 +590784521 +590956460 +591164384 +593608013 +594786342 +597276011 +599711002 +600033258 +600477902 +601273025 +602854601 +603437841 +604513972 +606824780 +612383828 +613268233 +613529359 +615255022 +615396429 +615465251 +617601891 +619028234 +619433493 +619600306 +619670720 +620801916 +622945444 +623522623 +624009478 +625175432 +625384414 +626485281 +627008650 +629196542 +631585224 +632426210 +632657984 +633725180 +633950703 +634966326 +635151053 +636440904 +637126175 +638126241 +638785636 +640042407 +641476730 +642497135 +642811328 +644816858 +645644963 +645888076 +647202043 +647566861 +648920224 +649418674 +649968691 +650800084 +650896432 +651856529 +653182226 +653548551 +654040018 +654196693 +654528262 +654953859 +655371791 +656216426 +656363920 +657058228 +659854392 +661211720 +662099942 +663304095 +663507254 +664661815 +667549624 +669470941 +669729404 +670730778 +671092095 +673553453 +673939191 +674185448 +675168495 +675626112 +676159587 +677596581 +679338690 +680154439 +680538897 +682966620 +683533351 +683562227 +684312237 +684786026 +685518568 +686696903 +686712154 +686806421 +687976188 +688030609 +688349205 +688409711 +688458885 +689731123 +690139864 +690340275 +691710619 +693156114 +695452877 +697034874 +697126989 +698372168 +698735397 +699187511 +699663017 +700320492 +705207687 +708933711 +710833831 +712594424 +712973066 +712981076 +712997872 +714517701 +715522899 +715553437 +715902510 +716307040 +717117315 +719448316 +720006110 +722929758 +725038219 +725273676 +725776724 +730203072 +730675129 +730808830 +733476653 +733984101 +734093500 +735891214 +736956260 +738685536 +738881659 +739660204 +741025494 +741418432 +743345365 +744237267 +744357234 +744811305 +745378755 +746394489 +746617994 +747237852 +747629642 +747957429 +748843663 +750880416 +752732815 +757693590 +757956417 +758036067 +758299180 +758309245 +758747878 +760832339 +761135150 +761990740 +764040994 +767231266 +767356740 +767456013 +768137467 +769562455 +771445491 +772232460 +772564030 +775053198 +775345665 +775464769 +778720014 +778793566 +781720704 +782100758 +782182721 +783463990 +791279994 +791876198 +792265037 +794289828 +796271435 +796629791 +796806456 +797661895 +798120086 +798742964 +800065723 +803122230 +804293100 +807198688 +807487382 +807650229 +808500002 +808577261 +808830103 +809073182 +809264055 +809276456 +810284694 +811952156 +812433900 +813759669 +817956649 +818949154 +819592305 +820782732 +822154166 +822605154 +824100101 +825072193 +826107839 +827043256 +827249544 +828922529 +831110648 +831460600 +831989131 +832280789 +832694119 +833364330 +833850611 +834541135 +838266613 +839107675 +839148521 +840691116 +842556374 +844180205 +844692692 +845612054 +845863361 +846697057 +846871207 +848683553 +850405899 +850784234 +851123424 +852197140 +855502120 +855586245 +855668781 +855675633 +855879190 +855957287 +856117299 +856163730 +857924069 +859068360 +861414954 +862220124 +862884446 +864712182 +868199677 +869562959 +869731817 +870211055 +874435881 +877005609 +878151227 +878431464 +878975232 +880060227 +880325991 +880407103 +881467599 +883528647 +884061622 +884238878 +884886315 +885339106 +885938485 +886705747 +887832138 +887851153 +888016505 +888378984 +889041242 +889558597 +890214205 +890996604 +891002766 +892456149 +895203452 +895333635 +899241182 +899521529 +901869777 +903776433 +904117025 +904844916 +905578736 +906203575 +906811784 +906812863 +911439955 +913039220 +913210060 +913408239 +913546305 +915003592 +915056003 +915682031 +919030930 +919061917 +920120429 +921374992 +922348435 +923023429 +923477393 +923510154 +924717512 +925823612 +926141078 +928060762 +929515894 +929610229 +929774247 +930810656 +931278473 +932779695 +933376004 +935575241 +937167562 +937219425 +938525317 +938531752 +939110988 +940359383 +940414037 +943290983 +945732052 +948235397 +948583912 +948660600 +949308911 +949738733 +950017849 +950546871 +952105334 +953346621 +953389511 +957614860 +958114106 +958204191 +958475713 +959114025 +959591760 +959767948 +959847712 +960509540 +963616547 +964714143 +965216452 +966500528 +966540065 +966656346 +968134515 +969142497 +970035152 +970890193 +971012069 +972380635 +972432201 +972720185 +973272863 +973421597 +974146282 +974611758 +975595750 +976556402 +978797663 +978889362 +979882348 +982559445 +982971994 +983027648 +983036142 +983326361 +983769777 +984775739 +985667224 +986185740 +987100826 +988389331 +988814076 +989310069 +989780742 +990148370 +990510471 +998034057 +998574805 +1002103818 +1002382477 +1002781191 +1006476475 +1007073583 +1007413192 +1008080182 +1008917238 +1009562350 +1011126259 +1011426922 +1011465638 +1011728700 +1012978043 +1013596633 +1015486081 +1017605774 +1019123948 +1020998191 +1025378896 +1025539030 +1027145810 +1027218802 +1028402758 +1028943287 +1029044046 +1029473878 +1030745371 +1030891483 +1031661611 +1035063037 +1036163211 +1036324244 +1038024060 +1038079141 +1039609563 +1041291898 +1043514001 +1043671504 +1043748460 +1043799665 +1043813904 +1044906031 +1045155143 +1049227491 +1049335247 +1049728079 +1049845316 +1050330236 +1050997197 +1051457277 +1052821998 +1055687629 +1056661716 +1057862950 +1059798558 +1059806210 +1060288813 +1060696357 +1061518049 +1061892401 +1062922841 +1066649388 +1066972125 +1068053540 +1070355746 +1071401003 +1073048018 +1074097729 +1074286241 +1074300668 +1074483465 +1076063081 +1076611070 +1077160981 +1081087911 +1081585836 +1082854026 +1082946820 +1084899449 +1086035569 +1086200684 +1087460587 +1088190640 +1088812321 +1089642825 +1090531306 +1090974754 +1092306234 +1092710391 +1092953187 +1093221553 +1095075549 +1095541326 +1098270690 +1099260427 +1099741236 +1103884228 +1104249874 +1104858395 +1107290731 +1108017302 +1108811950 +1109418933 +1109622328 +1109855432 +1110626951 +1112932854 +1114555094 +1114901368 +1116883499 +1117756527 +1117811582 +1118528663 +1121395876 +1121418962 +1125116660 +1126356873 +1128584764 +1132845513 +1133750821 +1133774721 +1133824038 +1135598074 +1135620094 +1136933701 +1138038366 +1139318757 +1139540709 +1140779057 +1140871300 +1141337493 +1141625008 +1143906286 +1144962169 +1146517530 +1147868582 +1150608565 +1150685699 +1152561826 +1152658053 +1152870612 +1153411159 +1153831208 +1155746337 +1156777289 +1157339335 +1157521215 +1159311377 +1160173737 +1160512943 +1161042045 +1161314948 +1163243317 +1164236034 +1164772417 +1167644629 +1169503075 +1169798951 +1170087820 +1172837198 +1174834475 +1175335789 +1175852528 +1177950017 +1179092924 +1180171844 +1180885064 +1181139571 +1181417357 +1183706182 +1185682885 +1185794840 +1185820321 +1186424475 +1186749668 +1188795072 +1188961944 +1189752626 +1190803319 +1190905355 +1194156988 +1195126377 +1196073904 +1196102277 +1197836840 +1199917825 +1200831126 +1200952768 +1201701021 +1202350460 +1203533423 +1203560793 +1204015278 +1204603742 +1205290644 +1205463274 +1205578490 +1206155886 +1206390092 +1206963419 +1207379225 +1208131300 +1209892037 +1211066244 +1215426612 +1216726543 +1217295379 +1217890510 +1218550582 +1220333667 +1220504126 +1225723697 +1225936051 +1227145464 +1227250292 +1227437587 +1228449626 +1230989666 +1234319084 +1234818297 +1235930752 +1237457277 +1237975020 +1238195981 +1239022902 +1241008979 +1241623934 +1242283544 +1243363704 +1243702427 +1245554671 +1246420553 +1247105271 +1248644863 +1252662158 +1252894316 +1255682160 +1257913932 +1258401652 +1258466362 +1259656278 +1261553536 +1262117610 +1263325058 +1267194477 +1268173144 +1268605809 +1269116464 +1269130261 +1270135577 +1271224717 +1273404932 +1275248869 +1277243675 +1277321980 +1280088237 +1280377319 +1283366129 +1283452965 +1288300668 +1288593639 +1288963009 +1289143959 +1289636648 +1289710990 +1291395605 +1292482679 +1293750767 +1296097952 +1300663257 +1300801411 +1300975567 +1304926989 +1307929928 +1308135181 +1308199630 +1308827711 +1310389367 +1314346640 +1314379214 +1314761427 +1315274444 +1318176443 +1318724530 +1318788757 +1320744276 +1322378188 +1322899191 +1322903332 +1323635552 +1325636480 +1327244745 +1327717577 +1328483569 +1329163456 +1330148002 +1330356158 +1330750916 +1331213739 +1334292065 +1335953484 +1336095842 +1337023357 +1338304372 +1339916712 +1340913190 +1344001400 +1347420787 +1348885486 +1349015110 +1349960247 +1350773514 +1351690990 +1352022878 +1353432239 +1354578859 +1355355406 +1356742879 +1357124699 +1357126034 +1357403688 +1358323379 +1358767116 +1359635656 +1360170634 +1360482924 +1362144698 +1362843647 +1362978041 +1363477108 +1366155872 +1366534343 +1366540379 +1370274737 +1370612980 +1371516301 +1372082487 +1375376180 +1375996180 +1376179498 +1376525530 +1376862374 +1377121447 +1378231989 +1378629143 +1379034746 +1379702275 +1380501622 +1382222743 +1382277369 +1386167239 +1386353267 +1388546716 +1388983728 +1389889911 +1391960827 +1395863973 +1396295365 +1396645840 +1401333919 +1402247546 +1404491762 +1405497708 +1405789849 +1406437932 +1409507697 +1409829600 +1410156639 +1410552188 +1410765040 +1413994924 +1414207923 +1414423038 +1414528615 +1417951513 +1422027837 +1422585722 +1422685798 +1423639214 +1424215948 +1424752169 +1426697691 +1427718200 +1429354919 +1430036275 +1430365678 +1432518129 +1435813687 +1436648428 +1436803764 +1436923733 +1436925357 +1437804740 +1441967717 +1442696964 +1444528980 +1446109254 +1447146831 +1447529023 +1447639092 +1452760991 +1452949634 +1454208590 +1455007941 +1455129140 +1455163933 +1456500105 +1457477494 +1458969496 +1459936822 +1464154677 +1466255376 +1466647222 +1467133816 +1469672015 +1471685662 +1475644449 +1476113587 +1477040484 +1477125634 +1477958868 +1478052781 +1478231675 +1479091917 +1480023781 +1481426509 +1481673943 +1481954328 +1485761527 +1486010819 +1490088251 +1490293414 +1490551067 +1490855871 +1490993762 +1492372309 +1495513018 +1496403843 +1496856968 +1498584073 +1500513730 +1502453831 +1502970603 +1504889936 +1505342868 +1507596870 +1507828443 +1507871622 +1508081018 +1508414985 +1508415400 +1508479159 +1508784989 +1508899123 +1509102120 +1509239253 +1509423999 +1511282393 +1511471584 +1511975455 +1512337459 +1512366409 +1514185138 +1517833798 +1517889260 +1518491148 +1519303354 +1519638970 +1520134395 +1520682189 +1521269681 +1521856552 +1521977514 +1523490095 +1524089052 +1524439365 +1525501767 +1526049370 +1526083639 +1526265741 +1527380174 +1527421456 +1529439264 +1529777199 +1530083358 +1530120543 +1532297134 +1534366741 +1534846639 +1537880576 +1538159254 +1538229015 +1539989091 +1540741826 +1541002096 +1541074474 +1541111920 +1541721121 +1544221168 +1545737076 +1546967413 +1548221944 +1548399784 +1549529019 +1549733557 +1550538745 +1551165877 +1552449187 +1554873250 +1555063811 +1555839117 +1557213329 +1558931031 +1559662372 +1561025502 +1562199863 +1563098806 +1564028159 +1566921788 +1567582626 +1567885971 +1568409342 +1569699514 +1570568754 +1570682769 +1571401088 +1571615945 +1573197253 +1573306030 +1574199191 +1574664725 +1575838288 +1577296486 +1578225787 +1578615594 +1578783094 +1579943353 +1580519681 +1581562042 +1583299513 +1584569620 +1585435999 +1591980305 +1594259114 +1596482838 +1596566478 +1596781798 +1598145122 +1598474177 +1598702022 +1598880106 +1601476259 +1604608585 +1605673665 +1606094474 +1607153388 +1608483043 +1609576996 +1609966836 +1610106089 +1610212241 +1612961280 +1614633814 +1615301359 +1615396489 +1615586521 +1615644249 +1617349948 +1619540398 +1622220773 +1622566196 +1622672547 +1622858086 +1624464501 +1624469284 +1625624387 +1626442863 +1626561260 +1626835703 +1627131223 +1628704410 +1629979228 +1631921401 +1632359870 +1632447212 +1633900703 +1634092629 +1634849629 +1634970761 +1635095625 +1638858151 +1639101257 +1639266374 +1639375178 +1643044260 +1643477270 +1643600058 +1646270397 +1647081533 +1648638369 +1649158032 +1651359165 +1651757254 +1652676409 +1653666869 +1654496076 +1655987401 +1658941557 +1660130224 +1660399521 +1660648751 +1663738178 +1664461865 +1664938017 +1665344106 +1666581461 +1667198857 +1668027402 +1668301266 +1669934750 +1670756727 +1671375771 +1672057153 +1673714908 +1674101664 +1675299198 +1677345411 +1678071040 +1678802734 +1679356962 +1680245394 +1681992484 +1682345589 +1682795575 +1683700383 +1684298076 +1684591040 +1686133874 +1686201683 +1693046234 +1696623877 +1698620703 +1700597509 +1702429773 +1703593893 +1705151327 +1706381830 +1706621285 +1708884929 +1712530333 +1714271246 +1716268655 +1717303496 +1717619409 +1717771501 +1717784670 +1717898129 +1720162062 +1721413076 +1722060509 +1723393945 +1724525858 +1725179668 +1726223739 +1730973465 +1731352982 +1734614399 +1735003835 +1736059900 +1739031566 +1739709739 +1742200000 +1743060669 +1743156388 +1743560317 +1744091564 +1747034742 +1748920694 +1749360430 +1750705322 +1751012237 +1751481862 +1751706861 +1752801464 +1753942928 +1754206178 +1755190221 +1757516351 +1758303713 +1761029936 +1761115959 +1762325188 +1762541667 +1763803382 +1763962871 +1766708683 +1767102385 +1767385714 +1767960493 +1770782659 +1773889298 +1775413870 +1775824841 +1776748374 +1776907376 +1777087870 +1777687620 +1777860200 +1778540681 +1781370922 +1781463861 +1782981879 +1783108894 +1785165035 +1787046589 +1787727134 +1787922118 +1789130811 +1791501057 +1794023617 +1794658020 +1795509528 +1795907770 +1796184127 +1796300787 +1797062632 +1798205555 +1802694996 +1802842080 +1804722203 +1804991596 +1805045931 +1808063237 +1808277272 +1808409362 +1809053399 +1809816412 +1811254570 +1812653640 +1813623839 +1815633090 +1818417574 +1820141525 +1820537604 +1822410595 +1823946607 +1824181053 +1824488320 +1825081759 +1826954830 +1828731468 +1830311501 +1830732408 +1831135391 +1832175712 +1832407011 +1832970857 +1834168494 +1835805781 +1838108796 +1838410053 +1838522490 +1838585137 +1838827365 +1842721649 +1842753670 +1844269578 +1844561354 +1845237492 +1847931834 +1847955003 +1849441842 +1849930260 +1851144058 +1851394246 +1851918902 +1852864695 +1853098254 +1855992217 +1857013270 +1860452983 +1862173806 +1862290036 +1862424942 +1862516074 +1863090771 +1869118844 +1870686501 +1871737210 +1871930841 +1873231157 +1873342560 +1873437237 +1873914717 +1874050798 +1874446752 +1877665128 +1878336665 +1878457419 +1878652257 +1879212775 +1882195988 +1883277337 +1883661820 +1884372854 +1884757001 +1884958763 +1886068611 +1886163330 +1886436552 +1887274953 +1887487879 +1888071966 +1888220505 +1889248804 +1890353495 +1891793940 +1896019661 +1896476627 +1896647369 +1897820551 +1902153909 +1902254400 +1902339426 +1904253857 +1907078094 +1907538605 +1907580398 +1907807070 +1907911431 +1909053670 +1909718144 +1911249842 +1915352982 +1915682127 +1916020202 +1916094303 +1916259885 +1916308447 +1916828746 +1916908871 +1916993507 +1918376468 +1918632021 +1919583369 +1920728646 +1922036040 +1922614328 +1923924460 +1924416135 +1924633218 +1925056591 +1925082982 +1927651160 +1929621642 +1929913575 +1931573183 +1932716859 +1934613289 +1935068243 +1936377891 +1938115516 +1940511093 +1942290066 +1945580778 +1946213519 +1947409049 +1948715918 +1949700165 +1950213303 +1950273149 +1951327492 +1951377854 +1953285454 +1953576625 +1955039518 +1955293159 +1956068826 +1956126820 +1956991390 +1957012319 +1957602825 +1958219970 +1959287271 +1959338304 +1959775221 +1961650964 +1963473417 +1963770886 +1965873054 +1966615493 +1967364101 +1967458050 +1967928355 +1968849511 +1970429577 +1973194763 +1973998991 +1974957533 +1976452159 +1976830581 +1977247419 +1980953401 +1982013299 +1982165897 +1982312774 +1985493594 +1985953656 +1988645768 +1989365107 +1989677061 +1991495774 +1992004640 +1992319864 +1992886662 +1994105611 +1994425709 +1995915674 +1996070097 +1996684564 +1996730701 +1997162113 +1997623469 +1998377219 +1999127721 +2001200452 +2005054881 +2005811631 +2006160299 +2006982087 +2009652075 +2009798832 +2010057298 +2013001410 +2017315325 +2019357220 +2019932464 +2021770828 +2023037910 +2023613712 +2024107971 +2024945956 +2027242748 +2027485539 +2028513672 +2029183499 +2029656846 +2029866940 +2033017829 +2033754513 +2035115070 +2035742309 +2035752357 +2038696287 +2040229806 +2040360225 +2040914781 +2041430432 +2041922925 +2042693768 +2042892557 +2043808773 +2044732291 +2044819044 +2045928996 +2047175855 +2049075599 +2049884625 +2051581527 +2052223638 +2052476522 +2053285680 +2057529922 +2061783685 +2063389035 +2065420671 +2065468078 +2066152872 +2066161218 +2066209600 +2066451533 +2067955182 +2068587877 +2071142127 +2072291183 +2073205469 +2073575906 +2075304330 +2076257739 +2077984882 +2078244571 +2078387171 +2078588264 +2078809135 +2079506846 +2079856010 +2080912538 +2081640854 +2083692784 +2083830786 +2084230463 +2084376878 +2084381027 +2084804186 +2086945996 +2086956417 +2087272360 +2089096067 +2089420814 +2091020153 +2096925230 +2097234590 +2098333903 +2100035316 +2101153676 +2102342705 +2102759154 +2107573499 +2107879177 +2108631302 +2112022026 +2112321593 +2113258941 +2113307749 +2113939165 +2114483017 +2115926688 +2116358856 +2116500429 +2116642867 +2118036408 +2118454202 +2118918951 +2119234197 +2123456246 +2123781138 +2125209562 +2126242116 +2126524027 +2126751739 +2127559558 +2128021970 +2128389497 +2132256492 +2133026663 +2133146643 +2137312385 +2142772926 +2143582251 +2143642374 +2144650720 +2146276546 +2147208091 diff --git a/examples/machsuite/sort/radix/input.data b/examples/machsuite/sort/radix/input.data new file mode 100644 index 0000000000..5a655a5227 --- /dev/null +++ b/examples/machsuite/sort/radix/input.data @@ -0,0 +1,2049 @@ +%% +1109418933 +1238195981 +1655987401 +1435813687 +568740973 +194304077 +85901251 +90635783 +1521856552 +561622493 +1490293414 +1693046234 +978889362 +758747878 +238322615 +449325307 +111436477 +1663738178 +34606601 +2101153676 +807487382 +1239022902 +1622566196 +1916259885 +308994026 +1703593893 +1508899123 +1362978041 +325464775 +1670756727 +474042834 +906811784 +291409102 +440797705 +904844916 +2116642867 +582856665 +1432518129 +1375376180 +1237457277 +638126241 +576622031 +1624464501 +949308911 +979882348 +1825081759 +303590601 +269644648 +1185820321 +466890649 +924717512 +1525501767 +289705845 +1169798951 +332327337 +990148370 +1174834475 +1632359870 +230054271 +1066649388 +688349205 +892456149 +239056365 +757693590 +177623586 +1161314948 +461186368 +1322903332 +1202350460 +2040360225 +1598474177 +1382277369 +599711002 +154698022 +1767102385 +1712530333 +1808063237 +1117811582 +156300070 +859068360 +2089420814 +1897820551 +1017605774 +310662211 +2073205469 +1031661611 +1139318757 +1237975020 +1372082487 +299389274 +890214205 +690340275 +1252662158 +593608013 +151499496 +1308135181 +83314681 +1514185138 +1953285454 +1702429773 +885339106 +1628704410 +1660130224 +1104858395 +1664461865 +566948716 +1140779057 +76115669 +1041291898 +1280088237 +1008080182 +127839099 +1327244745 +1967364101 +574110884 +236157269 +1143906286 +715553437 +1056661716 +1791501057 +820782732 +1090531306 +1362843647 +47866257 +1512337459 +586080090 +1615644249 +1267194477 +719448316 +1717784670 +987100826 +758299180 +1530120543 +1606094474 +986185740 +1625624387 +281450081 +248943784 +1976452159 +1248644863 +1204603742 +37313539 +1289636648 +1228449626 +587916663 +509043494 +1787922118 +27666284 +456679784 +768137467 +145125081 +1873231157 +1664938017 +424635729 +1059806210 +561858461 +2017315325 +1351690990 +212764022 +1430036275 +655371791 +1293750767 +2071142127 +888016505 +1604608585 +330737581 +2091020153 +1750705322 +964714143 +295984014 +950546871 +526857678 +1270135577 +1823946607 +1557213329 +271463051 +922348435 +1639101257 +1752801464 +1043514001 +716307040 +928060762 +1992319864 +1477125634 +983769777 +96657364 +850784234 +625175432 +334977553 +846697057 +1935068243 +426368885 +1511975455 +1074286241 +1874050798 +1783108894 +576793022 +1013596633 +170463985 +3755034 +1314379214 +186735955 +243261054 +60974523 +1878652257 +1815633090 +66411149 +1614633814 +258103701 +686696903 +1802842080 +938525317 +1534846639 +1945580778 +725038219 +846871207 +151035803 +952105334 +1668027402 +852197140 +855879190 +1220504126 +688409711 +1886436552 +1268605809 +750880416 +59206569 +190068440 +1924633218 +2066152872 +571532202 +2133146643 +1550538745 +1108017302 +712973066 +1086200684 +989310069 +172179489 +1200952768 +1059798558 +1322899191 +1578225787 +502743441 +926141078 +155477576 +1838827365 +189486773 +105877669 +297823665 +796629791 +1809053399 +869562959 +300761205 +1300801411 +333247645 +2078588264 +744357234 +277528908 +1095075549 +1596482838 +1388983728 +1849441842 +111155111 +1622220773 +833364330 +1985493594 +248987466 +826107839 +180988319 +397615021 +1241008979 +2033017829 +775464769 +1409507697 +1851918902 +29381863 +1242283544 +1194156988 +530630168 +1132845513 +965216452 +1907580398 +379897203 +1330750916 +1002382477 +536145871 +356194072 +1610106089 +177548100 +1970429577 +1205463274 +948235397 +421766723 +514380753 +1698620703 +985667224 +983036142 +1997623469 +189071296 +1459936822 +831989131 +1896019661 +1626835703 +1259656278 +1781463861 +938531752 +2068587877 +288148609 +682966620 +1028943287 +698735397 +1571401088 +384805441 +1087460587 +2084376878 +1179092924 +1511282393 +206702553 +1126356873 +1777087870 +2067955182 +1159311377 +1544221168 +2128389497 +82876636 +2118454202 +540184876 +392961592 +1466255376 +948583912 +1234319084 +1549529019 +1907538605 +371167247 +190526577 +80693604 +1639375178 +1541074474 +1074097729 +1196073904 +807198688 +2052223638 +93482676 +1742200000 +1375996180 +615255022 +1436923733 +619433493 +1998377219 +1050997197 +1090974754 +929610229 +741418432 +855675633 +2084230463 +199018542 +582040172 +708933711 +915682031 +1950213303 +30894415 +355535304 +673553453 +181874898 +1888071966 +2133026663 +1541111920 +760832339 +620801916 +1961650964 +461386911 +1257913932 +33287680 +1437804740 +1904253857 +1246420553 +1633900703 +974611758 +1062922841 +278846449 +1490855871 +440638102 +757956417 +761990740 +1273404932 +410327491 +656363920 +1357403688 +1395863973 +2041922925 +839148521 +1678802734 +2076257739 +534440455 +1530083358 +1269130261 +247483746 +1447529023 +822154166 +1824488320 +1804991596 +475239808 +556662332 +988389331 +423694845 +730808830 +1573306030 +344296193 +810284694 +1156777289 +342070919 +1879212775 +2100035316 +1955293159 +590784521 +1761029936 +1896647369 +1610212241 +887851153 +915056003 +269570899 +1211066244 +194961368 +51245290 +1502453831 +311356082 +811952156 +602854601 +306822213 +1205578490 +915003592 +923510154 +222774002 +931278473 +1677345411 +1318724530 +932779695 +225891607 +891002766 +808830103 +2029183499 +507333260 +2013001410 +1564028159 +2024107971 +584977769 +1651757254 +257004501 +1923924460 +563762887 +101347165 +634966326 +1524439365 +2084381027 +1813623839 +838266613 +1902254400 +976556402 +1794023617 +1731352982 +684786026 +495999182 +1824181053 +856163730 +461038923 +195485565 +1526265741 +587767534 +1289710990 +845863361 +200930301 +1787046589 +1947409049 +929515894 +186545648 +72460518 +207237193 +578934327 +1889248804 +966500528 +959591760 +772232460 +624009478 +439115595 +517175601 +1548221944 +1409829600 +1916908871 +1761115959 +1753942928 +1153831208 +1932716859 +41705353 +1529777199 +1008917238 +227234597 +1452760991 +886705747 +617601891 +505236584 +269286404 +2143642374 +597276011 +695452877 +1496856968 +1426697691 +1985953656 +1601476259 +165757953 +261522116 +1989365107 +2127559558 +1077160981 +111885734 +1678071040 +1164772417 +844692692 +170391257 +1957602825 +1235930752 +175276916 +899241182 +1569699514 +1092953187 +2147208091 +1757516351 +1109855432 +160415738 +1135598074 +271001503 +1405789849 +439420872 +352228300 +2035742309 +1798205555 +187577258 +1632447212 +1029044046 +1116883499 +1275248869 +1873914717 +2006982087 +715522899 +2023037910 +2042693768 +824100101 +1751481862 +1739709739 +587037925 +1578783094 +1853098254 +422151624 +640042407 +919030930 +169996838 +1634092629 +698372168 +460964936 +878151227 +667549624 +1524089052 +959767948 +714517701 +555271126 +1444528980 +191656740 +1700597509 +382115769 +1241623934 +1675299198 +1252894316 +62624058 +1671375771 +1227437587 +150020171 +203588067 +1982312774 +2098333903 +590956460 +1884958763 +179816643 +512010901 +1300663257 +1360170634 +134086399 +496705994 +1045155143 +913408239 +320990176 +1334292065 +230116054 +1366155872 +85297387 +2107879177 +165449550 +1141625008 +510490837 +1646270397 +505651416 +913039220 +589330536 +1609966836 +527155034 +139309844 +653182226 +574107939 +274284400 +635151053 +1548399784 +1566921788 +1747034742 +170250664 +1963473417 +752732815 +1521269681 +1347420787 +895203452 +1262117610 +1190905355 +1464154677 +2115926688 +546700911 +1929621642 +649418674 +2072291183 +1871737210 +429639342 +1992004640 +933376004 +1071401003 +1789130811 +445929743 +809264055 +1584569620 +1036324244 +1802694996 +1114901368 +633950703 +286841615 +407394234 +480093923 +307203772 +629196542 +427310717 +1878336665 +1812653640 +215084709 +1379702275 +1959338304 +220029168 +505318934 +1378231989 +189324225 +601273025 +362170271 +1355355406 +966656346 +906203575 +144522435 +1549733557 +1828731468 +675626112 +625384414 +641476730 +472376887 +400859314 +1315274444 +2107573499 +1086035569 +1277243675 +102673761 +498204267 +1996684564 +524037430 +1339916712 +1748920694 +1329163456 +2057529922 +1167644629 +647202043 +429741617 +644816858 +1076063081 +848683553 +1608483043 +722929758 +1615586521 +72158627 +305434839 +165337021 +839107675 +1686133874 +1907911431 +1424752169 +2049884625 +95598889 +1283452965 +1507871622 +1982165897 +804293100 +1220333667 +587655589 +1509239253 +1015486081 +510319326 +2102342705 +1938115516 +1457477494 +1335953484 +320253652 +1911249842 +669470941 +1197836840 +1936377891 +1743560317 +1526083639 +1336095842 +1992886662 +1280377319 +47621339 +1376525530 +2114483017 +775053198 +1153411159 +984775739 +146301892 +217859346 +974146282 +1686201683 +684312237 +935575241 +1717619409 +676159587 +2044732291 +325031938 +1269116464 +1963770886 +663507254 +1749360430 +1577296486 +417730805 +1007073583 +33797863 +153048093 +998034057 +62830115 +783463990 +1379034746 +950017849 +2001200452 +2097234590 +361261943 +1638858151 +1490551067 +738685536 +1147868582 +1874446752 +450180092 +1098270690 +973421597 +532918727 +2112022026 +2137312385 +433315813 +418518584 +2083830786 +1787727134 +1907807070 +883528647 +1922614328 +1994105611 +851123424 +1922036040 +878431464 +495965166 +1183706182 +2132256492 +868199677 +1523490095 +1534366741 +488305458 +715902510 +1204015278 +1538229015 +37958120 +2044819044 +782100758 +1455163933 +771445491 +890996604 +812433900 +2073575906 +1509102120 +20193475 +1036163211 +1477958868 +1422027837 +1340913190 +1794658020 +520630890 +76700937 +1562199863 +192699922 +51198210 +228756043 +36513003 +1776748374 +1325636480 +1955039518 +545325403 +905578736 +152600286 +2066209600 +1775413870 +733984101 +6748351 +2116500429 +155859496 +1469672015 +1475644449 +182069082 +855586245 +1832407011 +198128026 +1609576996 +1834168494 +1838522490 +744811305 +434370628 +1330356158 +669729404 +1909718144 +982971994 +638785636 +279972861 +764040994 +87087128 +1883277337 +1157521215 +302354825 +1871930841 +1915682127 +1736059900 +496276526 +1775824841 +1011426922 +1918632021 +306233773 +1832970857 +580950754 +1388546716 +959114025 +417112292 +494700070 +480755265 +2125209562 +1570568754 +1902339426 +1918376468 +972720185 +943290983 +1767960493 +33423244 +822605154 +2126524027 +1243702427 +1540741826 +1951377854 +733476653 +1310389367 +664661815 +16921963 +1682345589 +525189582 +1150685699 +920120429 +89650033 +778720014 +469606255 +485470119 +370391868 +582241926 +297554450 +1626442863 +2113307749 +1107290731 +637126175 +195791553 +817956649 +1136933701 +1527421456 +945732052 +407019027 +1851144058 +22768866 +1025378896 +1103884228 +1118528663 +1308827711 +1797062632 +881467599 +1916993507 +16570194 +1386167239 +1068053540 +563554428 +2123781138 +1653666869 +446035477 +334543417 +1114555094 +442247466 +1050330236 +657058228 +1878457419 +1991495774 +1429354919 +213296204 +758036067 +1651359165 +1061518049 +2066161218 +1414207923 +885938485 +654953859 +1160512943 +1596566478 +1706621285 +1271224717 +1203533423 +275490071 +216730162 +222764447 +1631921401 +1818417574 +264114698 +1206155886 +1061892401 +1348885486 +1027218802 +1720162062 +1417951513 +1973194763 +2009798832 +1092306234 +2035752357 +2126242116 +121774000 +1508784989 +503395919 +864712182 +2087272360 +1277321980 +1112932854 +166148387 +615465251 +535153458 +1370274737 +1049335247 +127386675 +745378755 +249178659 +1404491762 +1539989091 +919061917 +1504889936 +484374348 +1763962871 +744237267 +1498584073 +1043799665 +1567582626 +120372826 +1060288813 +1135620094 +394042623 +673939191 +1308199630 +957614860 +1055687629 +1205290644 +1580519681 +20865036 +32011475 +1915352982 +1538159254 +1160173737 +2029866940 +297869098 +342063486 +1615396489 +1366540379 +515229764 +968134515 +833850611 +1674101664 +1980953401 +1207379225 +1436803764 +174384850 +1209892037 +1344001400 +813759669 +880407103 +2133347 +1057862950 +479378426 +686806421 +1520682189 +545094225 +1081585836 +477796026 +1886163330 +1245554671 +321993998 +1919583369 +2005054881 +308134579 +1974957533 +1820537604 +778793566 +1025539030 +477793157 +970890193 +712997872 +1725179668 +1830732408 +613529359 +1376179498 +797661895 +1125116660 +2027485539 +413733332 +1188795072 +1152658053 +1558931031 +1128584764 +1907078094 +1121395876 +2021770828 +2065420671 +294813100 +417049677 +28990799 +1074483465 +930810656 +408591603 +1028402758 +404866075 +1883661820 +325290524 +887832138 +446669555 +1188961944 +1490088251 +371943766 +1658941557 +948660600 +1502970603 +844180205 +253359016 +1405497708 +1884757001 +1551165877 +937167562 +633725180 +1479091917 +394189989 +2029656846 +809073182 +1328483569 +137991365 +983027648 +2126751739 +529333204 +150337966 +2042892557 +1396295365 +156960811 +884061622 +1466647222 +1216726543 +1808277272 +1139540709 +1289143959 +1035063037 +747237852 +699187511 +43902811 +413952789 +2080912538 +939110988 +2113258941 +541468179 +426239114 +3757680 +1559662372 +1612961280 +1808409362 +1454208590 +240134265 +1356742879 +636440904 +11497565 +623522623 +216451246 +444869164 +741025494 +2041430432 +1683700383 +1020998191 +975595750 +2061783685 +791279994 +544807927 +1455129140 +1170087820 +803122230 +600033258 +67874428 +861414954 +1164236034 +604513972 +855668781 +2065468078 +1953576625 +642811328 +573553042 +972380635 +78410211 +1857013270 +32283582 +247597272 +632657984 +164019660 +1988645768 +569866125 +106828160 +889041242 +589994150 +1496403843 +627008650 +1186424475 +1089642825 +1029473878 +1353432239 +55100470 +2128021970 +1555063811 +870211055 +827043256 +746617994 +315948592 +603437841 +1358323379 +147666338 +1545737076 +1956068826 +1634970761 +1615301359 +1916020202 +663304095 +1667198857 +19892644 +1203560793 +1708884929 +832280789 +1338304372 +1929913575 +1946213519 +700320492 +1563098806 +2040229806 +246048882 +1320744276 +958114106 +512735686 +187757211 +1181139571 +1997162113 +101884596 +409435661 +1951327492 +978797663 +1666581461 +739660204 +585230318 +1660399521 +1527380174 +265337843 +1873342560 +1471685662 +156543006 +1643600058 +2079856010 +1537880576 +591164384 +1520134395 +280371522 +1541721121 +1255682160 +1684298076 +1795509528 +958204191 +969142497 +1169503075 +619028234 +127031658 +358187431 +840691116 +1430365678 +1763803382 +81692302 +988814076 +1648638369 +533206101 +1247105271 +880060227 +874435881 +1314761427 +1288300668 +135356844 +1673714908 +470747628 +736956260 +1680245394 +1940511093 +1822410595 +1888220505 +1796184127 +767356740 +1030891483 +911439955 +1570682769 +176394620 +1999127721 +1318176443 +553810021 +1766708683 +1739031566 +1152870612 +1804722203 +720006110 +1877665128 +299898902 +642497135 +953389511 +234368065 +884886315 +953346621 +70599058 +267898534 +69969612 +213358112 +1330148002 +1002781191 +444128215 +194033189 +1366534343 +1751012237 +1925056591 +1349015110 +710833831 +67176562 +1989677061 +1144962169 +1724525858 +1074300668 +1862424942 +1831135391 +1519638970 +1508479159 +691710619 +1152561826 +1776907376 +330792297 +1735003835 +571913873 +109081969 +2144650720 +1571615945 +781720704 +1526049370 +522708374 +1723393945 +2096925230 +1575838288 +381891319 +1967458050 +128191180 +15264621 +1855992217 +1573197253 +2023613712 +1734614399 +68604017 +1378629143 +1682795575 +1414528615 +862884446 +573024774 +266261552 +1423639214 +594786342 +653548551 +775345665 +738881659 +2112321593 +1150608565 +394664535 +208236790 +690139864 +1490993762 +123620487 +433157790 +1442696964 +1869118844 +1773889298 +98319525 +1206390092 +37577570 +686712154 +1258401652 +689731123 +1717771501 +261653045 +1002103818 +1230989666 +1009562350 +1721413076 +472147699 +1672057153 +87248777 +1762325188 +654040018 +58572672 +1862173806 +565681876 +466353018 +1826954830 +831460600 +940359383 +532974825 +1842721649 +151333492 +1371516301 +1268173144 +1546967413 +906812863 +100077314 +1261553536 +1634849629 +267592551 +990510471 +650896432 +463015512 +571692111 +191855552 +688030609 +747629642 +1726223739 +600477902 +1181417357 +1811254570 +1957012319 +1654496076 +588200933 +1117756527 +375078779 +271321916 +1011126259 +278812137 +1436925357 +921374992 +717117315 +1060696357 +647566861 +1959287271 +884238878 +680538897 +1283366129 +145181215 +113221775 +470920964 +1030745371 +685518568 +2066451533 +2086956417 +377206183 +1717898129 +2089096067 +2010057298 +1225723697 +845612054 +648920224 +1099260427 +34794482 +1956126820 +314315478 +2053285680 +1133824038 +21389248 +1095541326 +434550013 +735891214 +680154439 +1890353495 +2045928996 +1778540681 +2040914781 +139185907 +828922529 +2143582251 +798742964 +1200831126 +392336178 +1180171844 +734093500 +970035152 +1082854026 +1447146831 +1190803319 +242255706 +645644963 +368123457 +1296097952 +39484517 +675168495 +1481673943 +448651778 +1958219970 +29653602 +1218550582 +380681534 +674185448 +453173852 +730203072 +888378984 +869731817 +1622858086 +37600544 +1227250292 +903776433 +286665591 +972432201 +1480023781 +148366910 +477994546 +87270835 +2116358856 +1206963419 +1508414985 +1027145810 +794289828 +1934613289 +2027242748 +350127017 +572382664 +1949700165 +1909053670 +569091874 +1163243317 +1140871300 +503974112 +1291395605 +1436648428 +809276456 +654196693 +899521529 +491184830 +355560126 +725273676 +1517889260 +255055848 +150901144 +285571409 +1995915674 +1578615594 +960509540 +1924416135 +80818357 +998574805 +1234818297 +1948715918 +335715992 +407338232 +198515425 +1882195988 +355079864 +1777860200 +1413994924 +1796300787 +310665455 +1832175712 +2063389035 +355827223 +1358767116 +1208131300 +1363477108 +270842593 +1495513018 +183070972 +1965873054 +857924069 +808500002 +1838585137 +1977247419 +1006476475 +2146276546 +1185794840 +2009652075 +1401333919 +1862290036 +1196102277 +1518491148 +1104249874 +1447639092 +1966615493 +2102759154 +1177950017 +1175852528 +1486010819 +570351679 +1629979228 +93987402 +5114060 +878975232 +2079506846 +622945444 +1243363704 +403955460 +1860452983 +1406437932 +782182721 +1161042045 +572148025 +1619540398 +533566406 +1863090771 +1359635656 +671092095 +1380501622 +1870686501 +1886068611 +1141337493 +925823612 +1354578859 +693156114 +1781370922 +2028513672 +889558597 +1891793940 +1199917825 +1402247546 +1076611070 +105724135 +1755190221 +1505342868 +791876198 +1555839117 +338856656 +356093208 +1649158032 +1012978043 +1679356962 +441400426 +1172837198 +1574664725 +1976830581 +14464969 +656216426 +798120086 +185589616 +177771287 +44125235 +1795907770 +862220124 +99479956 +1758303713 +1362144698 +63917942 +1427718200 +940414037 +553748629 +1458969496 +1920728646 +527747622 +1665344106 +1652676409 +1617349948 +1517833798 +904117025 +1591980305 +286532441 +544833283 +1967928355 +730675129 +577928774 +1568409342 +2049075599 +2033754513 +971012069 +2078387171 +1561025502 +1849930260 +1887487879 +651856529 +659854392 +1146517530 +1337023357 +842556374 +1093221553 +895333635 +1357124699 +1215426612 +1942290066 +73066829 +683562227 +1744091564 +1225936051 +1038024060 +1121418962 +1552449187 +128894687 +1039609563 +1138038366 +1996070097 +163522198 +95454661 +136883456 +208753405 +1288963009 +257911218 +353885535 +426858731 +14535786 +575072672 +1500513730 +114342047 +1931573183 +1263325058 +149065532 +1896476627 +697034874 +662099942 +42383451 +250211688 +2024945956 +1705151327 +1777687620 +1422685798 +581929050 +654528262 +1521977514 +769562455 +2052476522 +567355160 +156692706 +128952447 +2051581527 +244437562 +488787171 +2086945996 +705207687 +105234290 +1956991390 +712594424 +1081087911 +1581562042 +808577261 +1743156388 +650800084 +966540065 +1007413192 +877005609 +1189752626 +619600306 +481430369 +575225045 +1994425709 +901869777 +565800731 +1477040484 +1492372309 +171333890 +1873437237 +69122538 +218079139 +436827523 +1968849511 +989780742 +1377121447 +1598702022 +25776468 +310302420 +382894292 +856117299 +1770782659 +973272863 +1916828746 +1350773514 +712981076 +1844561354 +443973176 +834541135 +385862243 +645888076 +1982013299 +1195126377 +100936390 +403111108 +1574199191 +336541300 +396095779 +471437709 +232320438 +256610514 +963616547 +2038696287 +555566939 +1847931834 +1842753670 +850405899 +649968691 +1051457277 +1508415400 +1088812321 +1307929928 +2078809135 +1830311501 +469191954 +1643044260 +118360318 +1887274953 +670730778 +560186184 +524157971 +831110648 +683533351 +228193101 +370000419 +1073048018 +1304926989 +284387350 +243305723 +983326361 +1155746337 +153207158 +1070355746 +1049728079 +1762541667 +800065723 +1357126034 +949738733 +1902153909 +1360482924 +1605673665 +2108631302 +1292482679 +1043671504 +328655625 +615396429 +1845237492 +1862516074 +1647081533 +1627131223 +351873178 +13360332 +1852864695 +1668301266 +1626561260 +1099741236 +612383828 +1082946820 +1716268655 +1108811950 +1044906031 +2142772926 +467485606 +1322378188 +1624469284 +958475713 +1043813904 +1884372854 +442054749 +1386353267 +761135150 +1594259114 +982559445 +626485281 +575410850 +2083692784 +880325991 +677596581 +2019932464 +88325323 +1596781798 +168634616 +550021592 +110019408 +161717562 +217581202 +224370131 +1927651160 +746394489 +133709002 +439666194 +128199623 +566064689 +581839897 +483764857 +1782981879 +619670720 +1186749668 +549024074 +818949154 +1751706861 +265255716 +119602863 +819592305 +574493348 +2035115070 +65375150 +1410156639 +1327717577 +1084899449 +1391960827 +661211720 +807650229 +111756298 +1382222743 +1201701021 +477837560 +1011728700 +25100496 +184954528 +1583299513 +329738404 +1088190640 +1011465638 +2118036408 +1838108796 +16959813 +2043808773 +1714271246 +1805045931 +498679396 +177133202 +1331213739 +1410552188 +1950273149 +396375367 +1092710391 +1722060509 +1635095625 +606824780 +1809816412 +231968216 +1349960247 +1476113587 +250544064 +302652346 +923023429 +1529439264 +263877273 +185259225 +65864705 +959847712 +1258466362 +566225790 +1532297134 +1485761527 +1507828443 +1669934750 +1507596870 +913210060 +1851394246 +748843663 +1043748460 +1622672547 +2118918951 +355663123 +1835805781 +1717303496 +796271435 +772564030 +688458885 +1019123948 +796806456 +1554873250 +1389889911 +1446109254 +172081653 +312251881 +1478052781 +254388947 +1049845316 +122470461 +1414423038 +1481954328 +293433174 +1660648751 +419218001 +1847955003 +747957429 +212096210 +929774247 +1925082982 +937219425 +1767385714 +429882966 +2019357220 +537126833 +1049227491 +1370612980 +1217890510 +767456013 +1681992484 +195575558 +36491596 +1844269578 +260995967 +337601622 +1743060669 +697126989 +1541002096 +139783465 +1323635552 +134097471 +1512366409 +2119234197 +913546305 +855957287 +2077984882 +1424215948 +2075304330 +1456500105 +1175335789 +2113939165 +1754206178 +1109622328 +1639266374 +1455007941 +1133750821 +225640914 +1598880106 +1706381830 +1288593639 +1509423999 +2081640854 +1996730701 +1352022878 +832694119 +1511471584 +1607153388 +1785165035 +146480651 +1157339335 +1376862374 +767231266 +1066972125 +632426210 +2084804186 +128928023 +1452949634 +25869575 +1579943353 +743345365 +1038079141 +48905545 +827249544 +1318788757 +420033603 +1410765040 +792265037 +1684591040 +1217295379 +132957322 +543322263 +699663017 +309212434 +543473278 +415406505 +427731302 +1441967717 +380400361 +116727282 +1133774721 +32495326 +446582461 +1598145122 +855502120 +758309245 +265158106 +631585224 +379721750 +304511300 +1820141525 +196570489 +2006160299 +1838410053 +2078244571 +1519303354 +92766339 +1481426509 +84370399 +2047175855 +1696623877 +1110626951 +1052821998 +40140980 +725776724 +71478587 +334880253 +2005811631 +349919910 +1973998991 +1467133816 +1508081018 +201967992 +2123456246 +370406316 +462324490 +1180885064 +1422585722 +923477393 +1478231675 +1300975567 +1730973465 +1567885971 +1396645840 +1227145464 +687976188 +27675825 +825072193 +1916094303 +1916308447 +679338690 +33967896 +240505305 +1585435999 +1185682885 +613268233 +1959775221 +1643477270 +524589729 +1314346640 +287756628 diff --git a/examples/machsuite/sort/radix/radix_sort.py b/examples/machsuite/sort/radix/radix_sort.py new file mode 100644 index 0000000000..cf0e99b015 --- /dev/null +++ b/examples/machsuite/sort/radix/radix_sort.py @@ -0,0 +1,92 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + +# Radix Sort (MachSuite) + +import allo +from allo.ir.types import int32 +import numpy as np + +SIZE = 2048 +NUMOFBLOCKS = 512 +ELEMENTSPERBLOCK = 4 +RADIXSIZE = 4 +BUCKETSIZE = NUMOFBLOCKS * RADIXSIZE # 2048 +SCAN_BLOCK = 16 +SCAN_RADIX = BUCKETSIZE // SCAN_BLOCK # 128 + + +def ss_sort(a: int32[SIZE]) -> int32[SIZE]: + b: int32[SIZE] = 0 + bucket: int32[BUCKETSIZE] = 0 + sm: int32[SCAN_RADIX] = 0 + + # Temporary variables + bucket_indx: int32 = 0 + a_indx: int32 = 0 + valid_buffer: int32 = 0 + + for exp in range(16): + # init bucket + for i_init in range(BUCKETSIZE): + bucket[i_init] = 0 + + # hist - build histogram + if valid_buffer == 0: + for blockID in range(NUMOFBLOCKS): + for i_h in range(4): + a_indx = blockID * ELEMENTSPERBLOCK + i_h + bucket_indx = ((a[a_indx] >> (exp * 2)) & 0x3) * NUMOFBLOCKS + blockID + 1 + bucket[bucket_indx] = bucket[bucket_indx] + 1 + else: + for blockID in range(NUMOFBLOCKS): + for i_h in range(4): + a_indx = blockID * ELEMENTSPERBLOCK + i_h + bucket_indx = ((b[a_indx] >> (exp * 2)) & 0x3) * NUMOFBLOCKS + blockID + 1 + bucket[bucket_indx] = bucket[bucket_indx] + 1 + + # local_scan + for radixID in range(SCAN_RADIX): + for i_ls in range(1, SCAN_BLOCK): + bucket_indx = radixID * SCAN_BLOCK + i_ls + bucket[bucket_indx] = bucket[bucket_indx] + bucket[bucket_indx - 1] + + # sum_scan + sm[0] = 0 + for radixID_s in range(1, SCAN_RADIX): + bucket_indx = radixID_s * SCAN_BLOCK - 1 + sm[radixID_s] = sm[radixID_s - 1] + bucket[bucket_indx] + + # last_step_scan + for radixID_l in range(SCAN_RADIX): + for i_lss in range(SCAN_BLOCK): + bucket_indx = radixID_l * SCAN_BLOCK + i_lss + bucket[bucket_indx] = bucket[bucket_indx] + sm[radixID_l] + + # update + if valid_buffer == 0: + for blockID_u in range(NUMOFBLOCKS): + for i_u in range(4): + bucket_indx = ((a[blockID_u * ELEMENTSPERBLOCK + i_u] >> (exp * 2)) & 0x3) * NUMOFBLOCKS + blockID_u + a_indx = blockID_u * ELEMENTSPERBLOCK + i_u + b[bucket[bucket_indx]] = a[a_indx] + bucket[bucket_indx] = bucket[bucket_indx] + 1 + valid_buffer = 1 + else: + for blockID_u in range(NUMOFBLOCKS): + for i_u in range(4): + bucket_indx = ((b[blockID_u * ELEMENTSPERBLOCK + i_u] >> (exp * 2)) & 0x3) * NUMOFBLOCKS + blockID_u + a_indx = blockID_u * ELEMENTSPERBLOCK + i_u + a[bucket[bucket_indx]] = b[a_indx] + bucket[bucket_indx] = bucket[bucket_indx] + 1 + valid_buffer = 0 + + # After 16 passes (even count), result is in buffer A + return a + + +if __name__ == "__main__": + s = allo.customize(ss_sort) + print(s.module) + mod = s.build() + print("Build success!") diff --git a/examples/machsuite/sort/radix/test_radix.py b/examples/machsuite/sort/radix/test_radix.py new file mode 100644 index 0000000000..4c534e05df --- /dev/null +++ b/examples/machsuite/sort/radix/test_radix.py @@ -0,0 +1,49 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + +import os +import numpy as np +import allo +from radix_sort import ss_sort, SIZE + +def test_radix_sort(): + data_dir = os.path.dirname(os.path.abspath(__file__)) + + # Read input data + input_path = os.path.join(data_dir, "input.data") + values = [] + reading = False + with open(input_path, 'r') as f: + for line in f: + if line.strip() == '%%': + reading = True + continue + if reading: + values.append(int(line.strip())) + + np_input = np.array(values[:SIZE], dtype=np.int32) + + # Read expected output + check_path = os.path.join(data_dir, "check.data") + expected = [] + reading = False + with open(check_path, 'r') as f: + for line in f: + if line.strip() == '%%': + reading = True + continue + if reading: + expected.append(int(line.strip())) + + np_expected = np.array(expected[:SIZE], dtype=np.int32) + + # Build and run + s = allo.customize(ss_sort) + mod = s.build() + result = mod(np_input) + + np.testing.assert_array_equal(result, np_expected) + print("PASS!") + +if __name__ == "__main__": + test_radix_sort() diff --git a/examples/machsuite/spmv/crs/crs.py b/examples/machsuite/spmv/crs/crs.py index 118eca996d..2d92a20175 100644 --- a/examples/machsuite/spmv/crs/crs.py +++ b/examples/machsuite/spmv/crs/crs.py @@ -1,13 +1,9 @@ import numpy as np import allo -from allo.ir.types import int32 - -# Generate a random size for matrix -r = np.random.randint(0,100) -c = np.random.randint(0,50) +from allo.ir.types import int32, float64 N = 494 # Number of rows -NNZ = 1666 # Number of nonzero values (Placeholder) +NNZ = 1666 # Number of nonzero values def crs(val: float64[NNZ], cols: int32[NNZ], row: int32[N+1], vec: float64[N]) -> float64[N]: out: float64[N] = 0.0 @@ -20,55 +16,3 @@ def crs(val: float64[NNZ], cols: int32[NNZ], row: int32[N+1], vec: float64[N]) - out[i] += val[j] * vec[cols[j]] return out - -s = allo.customize(crs) -mod = s.build() - - - - - - - -## Testing - -# Arbirtrarily generated matrix -rMatrix = np.random.randint(0, 9, [r, c]).astype(np.float64) - -# Arbitrarily generated vector -vector = np.random.randint(0, 100, (c)).astype(np.float64) - -# CRS Format -def crs_format(matrix): - values = [] - columns = [] - row = [0] - - for i in range(len(matrix)): - for j in range(len(matrix[i])): - if matrix[i][j] != 0: - values.append(matrix[i][j]) - columns.append(j) - row.append(len(values)) - - values = np.array(values).astype(np.float64) - columns = np.array(columns).astype(np.int32) - row = np.array(row).astype(np.int32) - - - return (values, columns, row) - - -(values, columns, row) = crs_format(rMatrix) - -# Calculations -# observed = mod(values, columns, row, vector) -# expected = np.matmul(rMatrix, vector) - -# np.testing.assert_allclose(observed, expected, rtol=1e-5, atol=1e-5) - - - - - - diff --git a/examples/machsuite/spmv/crs/run_test.py b/examples/machsuite/spmv/crs/run_test.py index 44caf52906..243feb3cea 100644 --- a/examples/machsuite/spmv/crs/run_test.py +++ b/examples/machsuite/spmv/crs/run_test.py @@ -1,5 +1,10 @@ +import os +import sys import allo import numpy as np + +_dir = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, _dir) from crs import crs def parse_data(file): @@ -21,8 +26,8 @@ def parse_data(file): if __name__ == "__main__": - input = parse_data("input.data") - check = parse_data("check.data") + input = parse_data(os.path.join(_dir, "input.data")) + check = parse_data(os.path.join(_dir, "check.data")) values = np.array(input[0]).astype(np.float64) diff --git a/examples/machsuite/spmv/ellpack/ellpack.py b/examples/machsuite/spmv/ellpack/ellpack.py index d07a72ae9f..3526ab922c 100644 --- a/examples/machsuite/spmv/ellpack/ellpack.py +++ b/examples/machsuite/spmv/ellpack/ellpack.py @@ -1,6 +1,6 @@ import allo import numpy as np -from allo.ir.types import int32 +from allo.ir.types import int32, float64 # Generate a random size for a matrix r = np.random.randint(1, 10) diff --git a/examples/machsuite/spmv/ellpack/run_test.py b/examples/machsuite/spmv/ellpack/run_test.py index 54d1a477e0..819eba696d 100644 --- a/examples/machsuite/spmv/ellpack/run_test.py +++ b/examples/machsuite/spmv/ellpack/run_test.py @@ -1,5 +1,10 @@ +import os +import sys import allo import numpy as np + +_dir = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, _dir) from ellpack import ellpack def parse_data(file): @@ -20,8 +25,8 @@ def parse_data(file): return data_arrays if __name__ == "__main__": - input = parse_data("input.data") - check = parse_data("check.data") + input = parse_data(os.path.join(_dir, "input.data")) + check = parse_data(os.path.join(_dir, "check.data")) values = np.array(input[0]).astype(np.float64) columns = np.array(input[1]).astype(np.int32) diff --git a/examples/machsuite/stencil/stencil2d.py b/examples/machsuite/stencil/stencil2d.py index b179ddbad3..29f7941562 100644 --- a/examples/machsuite/stencil/stencil2d.py +++ b/examples/machsuite/stencil/stencil2d.py @@ -80,8 +80,10 @@ def read_check_data(file_path): return check_sol -file_path_data = "input.data" -file_path_check = "check.data" +import os +_dir = os.path.dirname(os.path.abspath(__file__)) +file_path_data = os.path.join(_dir, "stencil2d_input.data") +file_path_check = os.path.join(_dir, "stencil2d_check.data") np_orig, np_filter = read_data(file_path_data) check_sol = read_check_data(file_path_check) # print("np_orig:") diff --git a/examples/machsuite/stencil/stencil2d_check.data b/examples/machsuite/stencil/stencil2d_check.data new file mode 100644 index 0000000000..9c72761e58 --- /dev/null +++ b/examples/machsuite/stencil/stencil2d_check.data @@ -0,0 +1,8193 @@ +%% +2501539 +2506758 +3021781 +3316400 +3105008 +2539296 +1877901 +1836104 +2112399 +2195073 +2504732 +2211127 +1956876 +2249738 +2145414 +2816561 +2924333 +2646688 +3333344 +3288566 +2279277 +2194175 +2980482 +2715988 +2104650 +1883486 +2145395 +2339185 +2514319 +2603514 +2649825 +3145672 +3057879 +2319516 +2071749 +1862281 +2206018 +3452082 +3394413 +2009114 +1665114 +2801470 +3744874 +3577742 +3247847 +2501923 +2990068 +3685600 +3054832 +2923979 +2941918 +2768059 +3634103 +3041200 +2712496 +2750052 +2609961 +2924927 +2848672 +2825345 +3587977 +3325056 +0 +0 +3352092 +2663409 +2779534 +3500315 +3149215 +2413806 +2269635 +1706429 +1528544 +2549342 +2928503 +2070389 +2090464 +3000127 +3249937 +3098130 +2629914 +2333172 +2896556 +3269588 +2909023 +2035666 +2146145 +2830187 +2656026 +2412736 +2912989 +2561370 +2533767 +3074362 +2508242 +2696409 +3300971 +3148498 +1965072 +1700707 +2554958 +3189608 +2759467 +1583305 +1173376 +2117986 +2869102 +3010219 +2977511 +2312066 +3256940 +4189564 +3446206 +2562852 +2172556 +2721955 +3943811 +3580242 +2210223 +2062615 +2993105 +3201102 +2755304 +3131518 +3261786 +3347949 +0 +0 +3093849 +3524058 +2989719 +3061771 +2845222 +2667001 +2728922 +2542840 +1992206 +2245768 +2820663 +2581577 +2712660 +3168622 +3723164 +3643641 +2926219 +2723963 +2576252 +2839720 +2766644 +1839755 +1485824 +2619882 +3530640 +2892993 +2376600 +1957030 +1981206 +3113907 +2957375 +2662778 +3042808 +2884464 +2692694 +2760682 +2520347 +2397723 +2850050 +2395788 +1728371 +2755155 +2921466 +2814796 +2634539 +2614846 +3170087 +3537378 +2934705 +2313072 +2115756 +2474034 +3370819 +3230011 +1500658 +1298345 +2358469 +3137500 +3029223 +2673368 +3029137 +3235730 +0 +0 +2649359 +2754158 +2651602 +2641544 +2459826 +2296338 +2557540 +3304426 +2433621 +2127191 +2595021 +2533619 +3364252 +3417456 +3631010 +3467184 +2675405 +2681138 +2828370 +3007205 +2166608 +1456463 +1388932 +2337580 +3147825 +2713882 +2491783 +2862667 +2938761 +2894950 +2429662 +2418282 +2526455 +3090374 +2514640 +2252190 +2761665 +3056716 +3015214 +2087840 +2074574 +3272908 +3124747 +2612805 +2655872 +1856700 +2111883 +2510987 +3038947 +2936550 +2355726 +2528571 +3150212 +3175651 +2099527 +1859594 +2245762 +2399970 +2603966 +3021353 +3071014 +2317717 +0 +0 +2522880 +2704911 +3004190 +2454718 +2065173 +2336867 +2671030 +3363616 +3287042 +2188063 +1926673 +2500505 +2932173 +3295731 +3293395 +2504549 +2579614 +2394917 +2500664 +3062234 +2454978 +1824184 +2015598 +2004021 +2566718 +2742957 +2344096 +2524594 +2885020 +2335792 +2356576 +2029618 +2206912 +2395562 +2526272 +2839950 +2796265 +3416260 +3106322 +2441919 +2934229 +3929426 +3380225 +2655712 +2481787 +2415478 +1951965 +1998437 +2446458 +2438312 +2441507 +2531594 +2285526 +2307436 +2517616 +2067296 +2064915 +2470734 +2050265 +2087178 +2919183 +2902498 +0 +0 +2590946 +2528554 +2692865 +2437546 +2809035 +2323548 +2032622 +2668424 +3236504 +1911461 +1640731 +2294294 +2642641 +3188723 +2874074 +3015623 +3001042 +2494663 +2691626 +3375010 +2727357 +1893971 +1954469 +2250250 +2549813 +2845979 +2912422 +2862774 +2904858 +2682798 +2401797 +2268534 +1974978 +1972141 +2218720 +2156194 +2243915 +3116583 +2485236 +2537119 +3276787 +3598982 +2950764 +1896764 +1970215 +2596276 +2387754 +1793116 +2099725 +2427664 +2805125 +2881687 +2201735 +1574714 +2033655 +2129891 +2493052 +2998161 +2308607 +1743018 +2398658 +2349138 +0 +0 +3461006 +3266958 +2567872 +2408154 +3067054 +2705121 +2253357 +2754698 +3654632 +2991161 +2602873 +3073440 +3038013 +2355944 +2584258 +2773729 +2368849 +2092884 +2098145 +2962260 +3054304 +2439013 +2321540 +2347182 +2433272 +2797667 +3468350 +2904296 +2480180 +2393172 +2373870 +1913920 +1796642 +2107764 +2856240 +2891211 +2611950 +3254507 +2911029 +2929230 +3683972 +3440199 +3279418 +2469612 +1309928 +2190725 +2805112 +2540483 +2270085 +2266043 +2265841 +2240313 +2468049 +1675336 +1550995 +1362990 +1925007 +3284781 +2950084 +2502333 +2232137 +1996786 +0 +0 +3728261 +3422048 +2482489 +1623421 +2361847 +3025640 +2178552 +1906487 +2686799 +2878070 +2875532 +3339152 +3110214 +2411762 +2054661 +2218832 +2433462 +2148133 +1670471 +2514185 +2984075 +2720372 +2555955 +1802768 +2343134 +2680564 +2649057 +2869597 +2997843 +3248495 +3357783 +2564035 +1878642 +2245605 +2703743 +3391885 +2908446 +2486052 +2112748 +2371289 +2932239 +3237264 +3256612 +2739619 +1761510 +1637828 +3134676 +3502178 +2721486 +2402879 +3082357 +3005829 +2844872 +2095653 +1365448 +1637618 +2095123 +2597173 +3641659 +3458141 +2207298 +1662139 +0 +0 +3694797 +3845784 +2662682 +1378918 +2283565 +2640188 +2360376 +1726291 +2439154 +3425472 +3578075 +3596776 +3040829 +2160826 +2337983 +2550808 +2285206 +1878642 +1591229 +2254445 +2559062 +2976449 +2655533 +1726345 +2029790 +1919500 +2138584 +2907900 +3496693 +3395724 +3728917 +2868804 +2317509 +2883515 +3256427 +3113517 +2862853 +2429968 +2425828 +2528503 +2943523 +3030922 +3056254 +2923820 +2205751 +1541725 +2198541 +2942866 +2701812 +2350384 +3093639 +2995690 +3314394 +2974638 +2033234 +1918482 +2061193 +2488253 +3116261 +3381528 +2200182 +1792748 +0 +0 +2863027 +3104771 +2943412 +1868164 +1520889 +2554269 +2714423 +1704488 +2249720 +2316592 +2348404 +3196422 +2927702 +2423255 +3010396 +2343369 +1875125 +2291305 +2404603 +2304547 +3151151 +3189735 +2536889 +2299050 +1729655 +2106634 +2458676 +2216320 +2935203 +4006812 +3870694 +3169668 +2680806 +2977646 +3126980 +3037572 +3086970 +2340379 +1363840 +1735102 +2056706 +2949479 +3389336 +3375778 +2877320 +1775508 +1971838 +2994143 +2724178 +2315702 +2782859 +2889717 +2866971 +3287931 +2543746 +2236869 +2255075 +2310326 +3402336 +3500520 +2679346 +2167601 +0 +0 +2856327 +2385237 +1953772 +1485775 +1306762 +2181736 +2934611 +2787218 +2790793 +2811225 +2801252 +2913778 +2701620 +2594576 +3249530 +2873972 +2095942 +2225562 +2240970 +3036918 +3519931 +2715346 +2318474 +1994779 +1503500 +2134948 +3195107 +2760194 +3094475 +3268203 +2467289 +2714878 +3302171 +3213970 +3264681 +2862954 +2453286 +2304253 +1854116 +2469501 +2929737 +2800433 +3117247 +3642674 +3526554 +2382914 +1502858 +1994778 +2573035 +2596243 +2625756 +2021809 +2093291 +3079150 +3087379 +1864323 +1694626 +2835861 +3186060 +3034300 +2937921 +2094858 +0 +0 +3605087 +2084243 +1599279 +1505654 +1457559 +2017210 +2129891 +2378204 +3028950 +2798989 +2845724 +2847205 +2655146 +2303710 +2695900 +2858859 +2228674 +1659169 +1658948 +2092182 +2802565 +3053414 +2602396 +2489893 +2533988 +2936232 +2893990 +2233833 +2497947 +2865819 +2299841 +2717518 +3511308 +2710478 +2307338 +2692513 +2456923 +2353416 +2611711 +2520831 +2417407 +2347809 +2785846 +3514790 +4095712 +3093999 +2292927 +2398331 +2593204 +3030621 +2392759 +1659082 +1489758 +2493246 +3019938 +2410518 +1887381 +2197944 +2832234 +3404877 +3161646 +2675244 +0 +0 +3651225 +2610844 +1641659 +1130249 +1418871 +1790353 +2241666 +2391061 +2440621 +2315479 +3110907 +3690893 +2593813 +1928467 +2531679 +3465791 +3327743 +2851420 +1970272 +1609129 +2448111 +2914246 +2744918 +2270635 +2554469 +2589696 +2318938 +1717383 +1966125 +2046013 +1928497 +2669568 +3098378 +2243313 +1698745 +2855134 +2535459 +2535469 +2540756 +2712589 +3216626 +2399955 +1713517 +2125438 +3019772 +2973998 +2485644 +2425192 +2767059 +2503248 +2490457 +2220930 +1897441 +2202971 +2595221 +2234394 +1604137 +2015862 +2923743 +3143170 +2363137 +2310325 +0 +0 +3172149 +2665935 +2414860 +2034724 +2051092 +2071145 +1949195 +1820463 +2405209 +2372095 +2765845 +3141633 +3149970 +2501209 +2169218 +3094094 +3908260 +3541072 +2338474 +1571334 +1544495 +2681418 +3188940 +3089207 +3105888 +2727578 +2724056 +1492986 +1316638 +2368143 +2433581 +2500481 +2465749 +1457883 +1852658 +2731140 +2326387 +2488688 +2950783 +2839142 +2491918 +2324774 +1846983 +1306460 +1757814 +2223221 +2460400 +2999296 +3023951 +2791169 +2924879 +2801096 +2038470 +1856827 +2478677 +2886735 +2468522 +2044454 +2645618 +3243955 +2878427 +2772967 +0 +0 +2651238 +2974973 +3007075 +2896752 +2452889 +1649679 +2172154 +2550574 +1788176 +1958835 +2128095 +2205013 +2598642 +2258184 +2214219 +3167651 +3375472 +3214732 +2704156 +2205780 +1937710 +2320891 +2509482 +2905816 +2821701 +2882787 +3005538 +2333327 +1674288 +1870822 +1716119 +2435920 +2508131 +1732557 +2764983 +3539019 +2719979 +2479727 +2838142 +2689012 +2311640 +2651334 +2511380 +1528640 +1266819 +1524580 +2639646 +3503484 +3196664 +2532336 +2632724 +2457399 +2024193 +2166914 +2893822 +2684674 +2498068 +2685197 +2878950 +3028690 +2291024 +2025121 +0 +0 +2951694 +3111051 +3207337 +3660936 +3311375 +1795876 +1904517 +2749286 +2403294 +2903853 +3043333 +2103247 +2046867 +1844995 +2135221 +2793675 +2513889 +2177833 +2479561 +2860935 +2270118 +1983238 +2647513 +2935218 +3044223 +3144659 +3383610 +3071418 +2125526 +2519955 +2536072 +2549610 +2438202 +2240585 +2755053 +3000867 +2465573 +1804788 +2377334 +3036328 +2801091 +2775839 +2944807 +2528214 +1201667 +1497572 +2898456 +3182996 +2862212 +2760292 +2541532 +2418018 +1352105 +2114664 +3450092 +3324598 +3235140 +2761344 +2418099 +2088455 +1989834 +2619125 +0 +0 +2667131 +2887480 +2536959 +3108997 +3373389 +2286564 +1984358 +2560710 +2594140 +2554849 +3033391 +2594966 +1983783 +1821637 +2491673 +3531196 +2793548 +1507696 +1986664 +3234068 +3198414 +2766696 +2978872 +2859074 +2359878 +2750408 +3072565 +2901035 +2688689 +2633407 +2347704 +2887384 +3137390 +2978896 +3197045 +2979443 +2461587 +2393403 +2494064 +3058143 +3546599 +3030132 +2871009 +3138610 +2285766 +2000399 +2948367 +3014682 +2617775 +2458193 +2308984 +2724171 +2210790 +2780257 +3859743 +3912786 +3181051 +3011791 +2667565 +1902522 +1230739 +1730101 +0 +0 +3353389 +3149541 +2140268 +2779973 +3496039 +3227508 +2812675 +2943061 +3018532 +3486567 +3591721 +2387481 +2257327 +2746069 +2819829 +3676534 +3219342 +1877164 +2993227 +3732720 +3203006 +2870507 +3187511 +3115144 +2063449 +2442263 +2902987 +2739238 +3107910 +3664346 +3575282 +3638681 +3210193 +2676100 +3219027 +2737139 +2247949 +2442373 +2730838 +2530734 +3061338 +3220811 +3224987 +3534821 +2825451 +1991992 +2876629 +2824506 +2457828 +2344667 +2910748 +3520196 +2766628 +2354818 +3605505 +4140000 +3083865 +2328756 +2112522 +1567162 +1113897 +1854241 +0 +0 +2426015 +2696169 +2092169 +2119802 +2809443 +3373016 +3886912 +3196254 +3207989 +3506815 +2940737 +1901730 +2052145 +2945203 +3301476 +3457718 +2834416 +2794987 +3173292 +3339935 +2768635 +2997682 +3601616 +3215762 +1977910 +2161802 +2491405 +2776986 +2947685 +3600074 +3609362 +3861024 +3732388 +3224172 +3200448 +2739667 +2021647 +1856384 +3214711 +3512469 +2736494 +2890085 +3525485 +3678471 +3338383 +2529314 +2934421 +3174177 +2751799 +2558652 +2815841 +3505381 +2829133 +2443877 +2685258 +2808087 +2585330 +2334472 +2538311 +2633608 +2528389 +2608105 +0 +0 +1900483 +2552272 +2383449 +1911621 +2173084 +2993300 +3771446 +3618097 +3731920 +3626294 +3101549 +2056159 +1375453 +2249802 +2811590 +2500791 +2535977 +2917072 +3604234 +3355165 +2994198 +2989454 +3045247 +2902753 +2504153 +1572229 +2262557 +3004830 +3117298 +3569554 +3541723 +3902677 +3241802 +2809606 +2919555 +2398764 +2313133 +2820381 +3316897 +3110355 +2693422 +2705371 +3207480 +3912831 +3226326 +3014061 +2732447 +2300018 +2571079 +2200157 +2742905 +3548401 +2775040 +1866925 +1398099 +1932251 +1847063 +1834842 +2109541 +2388723 +2277744 +2798853 +0 +0 +1787846 +2052655 +2700324 +2187718 +2409412 +2653120 +2692191 +2618313 +3257967 +3496253 +3579993 +2943269 +1862671 +1660174 +1428362 +1945271 +2620585 +2963725 +3218588 +3633733 +3184074 +2553920 +2701137 +2863015 +2527750 +1723087 +1943229 +2757528 +3233200 +3052003 +3382423 +3460148 +2750496 +2565837 +2744562 +2497847 +2239435 +2505510 +2773918 +3067089 +3072322 +2712287 +3011504 +3385672 +2987508 +2620944 +2057438 +2025609 +2811028 +3027449 +2936279 +3333493 +2880434 +2116132 +1661591 +1622182 +2275075 +2463417 +2842391 +3396358 +3096524 +2733203 +0 +0 +2458742 +2807089 +2971182 +2578187 +3045339 +2536920 +1772456 +1924424 +2668395 +3003112 +3346873 +3173094 +2524064 +1596206 +1366808 +1614830 +2348641 +2391604 +2985347 +3724573 +3462031 +2569275 +2458919 +2327349 +2591817 +2099974 +1775724 +2807469 +3614215 +3171812 +3126162 +2854488 +2933972 +2575004 +2695832 +3392111 +3059675 +2711397 +2740233 +2204775 +2446814 +2680502 +2592357 +2840961 +2392849 +2071355 +1913643 +1943632 +2464861 +2477458 +2588596 +3267826 +2778283 +2507806 +2301316 +2176513 +2741220 +2806093 +2857782 +3737027 +3118391 +1953201 +0 +0 +3068236 +3536781 +3046723 +2505499 +2956077 +2663642 +2115024 +2162762 +1700244 +2280533 +3009294 +3415720 +2711230 +2274364 +1994706 +1912964 +3105690 +2960379 +2466719 +3168044 +2921019 +2302215 +2227048 +2145535 +2605116 +2704828 +2638230 +2758999 +3148438 +3385905 +3177152 +2897275 +2504564 +1997921 +2331878 +3478184 +3162822 +3141440 +2565636 +2399380 +2427416 +2406230 +3057939 +3037416 +2103814 +1370790 +1641251 +2412880 +3394703 +3020310 +2453246 +2402357 +1981368 +2159887 +2786736 +3196013 +3420610 +3643821 +3005727 +3648107 +3586097 +2331188 +0 +0 +2192312 +2909384 +3110479 +2936988 +2745609 +1771495 +1333852 +1823907 +1881057 +1654052 +2814934 +3088168 +2346323 +2516786 +2722683 +2775423 +2999221 +2436988 +1723926 +1808383 +2471985 +3085372 +3139787 +3139917 +3084769 +2888665 +2698613 +2929312 +2930493 +2975982 +2745332 +2978778 +2920144 +2863763 +2863603 +2853490 +2939828 +2645023 +2382305 +2143223 +2297686 +2661827 +2608737 +2983694 +2187027 +2020083 +2355964 +2357182 +2553981 +1896705 +1712115 +2243698 +2453185 +2134267 +2702777 +3351924 +3402005 +3656657 +3333147 +3563793 +3351881 +2120968 +0 +0 +1822785 +2103239 +2972507 +3042986 +2971967 +2469827 +1485617 +1567366 +1585813 +1544913 +2613455 +3049205 +2106303 +2148418 +2996920 +3284821 +2828362 +2875972 +1935958 +933119 +1603873 +1924027 +2607749 +3468608 +3636007 +3486576 +3218591 +3014531 +3395973 +3015904 +2416326 +2723042 +2633259 +2446005 +2843956 +2748177 +1898775 +1551636 +1870853 +2281264 +2783143 +2529864 +2890751 +2672569 +2159173 +2344106 +2672334 +2682323 +2783073 +2327822 +2221427 +2837326 +2976454 +2248174 +2747575 +3547969 +3302317 +3303686 +3178652 +2515696 +2619182 +2066619 +0 +0 +1772523 +1575327 +2381481 +3172085 +3636790 +3080817 +1794982 +882588 +1799190 +2391830 +2953203 +2986799 +2084367 +2438288 +2890545 +2853628 +2894705 +2756327 +1566300 +566137 +909372 +1573204 +2177724 +2749088 +3404715 +3467417 +2535326 +2489802 +3159567 +3397679 +2645676 +2056397 +2281093 +2739853 +3223039 +2944469 +2025923 +996580 +950446 +1769184 +2139271 +2241015 +1958575 +2064107 +2336132 +2672642 +3033491 +2012311 +2026244 +2326098 +2848076 +3412982 +2952752 +2546412 +2413805 +2903661 +3004921 +3131380 +3074943 +2511951 +2404900 +2871136 +0 +0 +2597660 +2203686 +2150722 +2354933 +3090784 +3742094 +2432046 +1741643 +2548220 +2862399 +3232145 +2871109 +2208509 +2790366 +3096437 +3147032 +3042041 +3326174 +2701200 +1260214 +892010 +1009229 +1173999 +2441952 +3054416 +3209462 +3246855 +2382816 +2324422 +3276936 +3338608 +1952324 +1572960 +2227401 +2172474 +2079229 +1804430 +1535172 +1813775 +3000354 +3238260 +2758204 +2242739 +1782683 +1916207 +2372256 +2314364 +2294261 +2665188 +2719690 +3555431 +2998429 +2557094 +2757763 +2246070 +2882367 +3040658 +2239049 +2762200 +2829984 +1998103 +2512455 +0 +0 +3260752 +2758894 +1867678 +2232683 +2972191 +2663670 +2255036 +2122180 +2436070 +3213241 +3926058 +3257467 +3088831 +3659699 +3854339 +3462996 +2920760 +2929091 +2225684 +1175324 +1292625 +2032611 +2356464 +2384143 +2051198 +2379122 +2764618 +1818175 +1202265 +2609106 +3325556 +1974933 +2052906 +2572891 +2252173 +2083724 +2302942 +2358527 +2128250 +2492441 +3295253 +3273991 +2244501 +1695963 +1715339 +2096245 +1819177 +2300409 +2362284 +2569499 +2985653 +2318687 +2175516 +2635984 +2078015 +2443024 +2836461 +2367471 +2466308 +3322229 +3003302 +2770849 +0 +0 +3001428 +2582229 +1988207 +2300697 +2355619 +2398646 +1798343 +1898398 +2303098 +2669723 +3052763 +3102264 +2822104 +2499043 +3205842 +3878666 +3436923 +2858318 +2105785 +1729483 +1592038 +2256427 +2588053 +2587164 +2297693 +2826436 +3387623 +2527506 +1384135 +2395251 +2662476 +1896896 +2511060 +3168159 +2545907 +1812194 +2482607 +3038498 +2665295 +2431437 +3152518 +3638811 +3372249 +2447442 +2013525 +2148392 +1332005 +2195684 +2657899 +2248863 +2726569 +2093460 +2465153 +3246078 +2587592 +2084833 +2720470 +2420713 +2194314 +3087386 +3238645 +2111193 +0 +0 +2421197 +2556654 +1947185 +1974012 +2557361 +2317134 +1636000 +1976213 +2041005 +2407393 +2925741 +3306965 +2693555 +2007587 +2540467 +2901644 +2980865 +2260637 +1555877 +942233 +1312017 +2792494 +3512244 +3033466 +2658588 +2684357 +2639363 +2075632 +1843317 +2349234 +2467910 +2425875 +2684887 +2664551 +2748254 +2914639 +3370368 +3613642 +2643017 +1735094 +2216300 +2647896 +2968814 +2999583 +2859562 +2968827 +2432229 +2615726 +2993421 +2610207 +1834531 +1697427 +2129247 +2767358 +2870987 +2270204 +2368030 +3322189 +3169900 +2937316 +2464395 +2303601 +0 +0 +2044557 +2063614 +1956137 +2275270 +1873364 +1786894 +1996497 +2732540 +2955756 +3022942 +2815636 +2828718 +2280894 +1949254 +1967628 +2764431 +3060070 +2668674 +2497823 +2165268 +2431845 +2733702 +2893281 +3177280 +3266565 +2636284 +2280840 +2865320 +2894262 +2876760 +2682983 +2834587 +2971586 +2429623 +2511693 +2676403 +2912274 +3525822 +2835230 +2108098 +1934724 +2758259 +3718025 +3855858 +2976677 +3369203 +3482975 +2932662 +2983447 +2294959 +1750612 +2112726 +2636329 +2683997 +2639341 +2519951 +2766775 +3760672 +4000350 +3261510 +2068678 +1738051 +0 +0 +3079881 +2878119 +2046304 +1677287 +1485679 +1798585 +2051167 +2576318 +2643418 +2847631 +3383853 +3144980 +3152846 +2897325 +2217348 +2521310 +2783399 +2792002 +3002976 +3238985 +3106333 +3624422 +3860762 +3195436 +3445598 +2721231 +1535200 +2021008 +2884229 +2714010 +2372935 +2559643 +2882294 +2327227 +2897328 +3130948 +2981793 +3772872 +3329888 +2657899 +2787471 +2877092 +3096615 +3253427 +3133197 +2900535 +3562773 +3217089 +2500643 +2144543 +1593412 +1673661 +2109195 +1938445 +2134424 +2678337 +2828641 +3603725 +4029839 +3552366 +2703633 +2247001 +0 +0 +2786236 +2230430 +2081739 +2092673 +1596583 +1782814 +2255689 +2638385 +2857356 +3090566 +2911688 +2896359 +3598758 +3203790 +2527382 +2832441 +3650698 +3690713 +3617368 +3908327 +3629996 +3321669 +3172398 +2588086 +3041220 +2877071 +2061904 +2306239 +2459638 +2900075 +2668294 +2459432 +2919587 +2146572 +2496364 +2940393 +2727565 +3739400 +3414553 +2730696 +2643192 +3090680 +3525252 +3453323 +2314936 +1963255 +2898579 +3033742 +2765952 +1908837 +1697781 +2520453 +2953990 +2121897 +1554424 +2267791 +2494793 +2620103 +2824487 +3231501 +3784469 +2803155 +0 +0 +2270305 +1983531 +2135058 +1581637 +1319860 +2169002 +2380926 +2703540 +2554084 +2511942 +3236556 +2962403 +2679302 +3038211 +2728098 +2932156 +3545675 +3705807 +3372964 +3743468 +3850368 +3824607 +3270516 +2012587 +2847907 +3327746 +2790197 +2380152 +2223783 +2502234 +2343441 +2987853 +3009733 +2002292 +2794959 +3097788 +3256391 +3863743 +3189077 +3022792 +3114903 +2571503 +2879532 +2848541 +2231839 +2298293 +1976723 +2825808 +3176218 +1969554 +2373967 +2774911 +1871417 +1549583 +1714704 +2042420 +1682962 +1824416 +2460549 +2786788 +3567971 +3556513 +0 +0 +1735950 +1558456 +1743795 +1797588 +2156949 +2176017 +2282493 +3307360 +3413748 +3217620 +2859813 +2549078 +2673446 +3024199 +3091517 +2523011 +2422746 +2638622 +3198784 +3450830 +3601925 +3219630 +2929657 +2097204 +2101950 +3197935 +3463102 +2885006 +2378997 +2468883 +2719658 +2702808 +2700441 +2204490 +2231165 +3161581 +3301171 +2792475 +2453063 +2908146 +2598295 +2464146 +2958366 +2625980 +2062579 +2141695 +2219870 +2426220 +2799970 +2523618 +2569997 +2792427 +2664127 +1843424 +2153473 +2329766 +1796363 +1792332 +2992466 +3062673 +2698698 +2541538 +0 +0 +1757526 +1610040 +1713111 +1557521 +2192480 +2859346 +2514703 +2852624 +3158765 +2658246 +2747874 +2743737 +2157593 +2835324 +2900611 +2298878 +2253283 +1793610 +2267117 +3171961 +3245658 +2744031 +3022739 +2521564 +1661293 +2289249 +3251713 +3122271 +2571194 +3086837 +2332926 +1939339 +2963970 +2700760 +2716729 +3323494 +3502334 +2842270 +2548850 +2779084 +2846245 +2947532 +2463272 +2255793 +1718750 +2765992 +3159215 +2219494 +2221248 +2688366 +2833870 +3001834 +2067521 +1813972 +2523053 +3256675 +2065025 +1834191 +3395168 +3147755 +2204484 +2862320 +0 +0 +2810943 +2322083 +2254135 +1745176 +2309967 +3254080 +2860571 +3267085 +3271653 +2735133 +2251625 +1695755 +2122233 +2704772 +2663618 +2500089 +2004629 +1757567 +2390134 +2955830 +2704452 +2644834 +3117386 +3200443 +2085902 +2035743 +3365988 +3498782 +2580642 +2240722 +2071448 +1838947 +2561705 +3086568 +2825071 +3127605 +3222734 +2788276 +2856791 +2971467 +2792935 +2643628 +2545561 +2342967 +2033129 +2508447 +2986730 +2412023 +1804164 +2531620 +3394616 +3111064 +2891912 +2473769 +2950716 +3623492 +3322925 +2732299 +3200611 +3267372 +2163600 +2380186 +0 +0 +3105902 +2987572 +2901488 +2125902 +1810485 +2539235 +3018345 +3487089 +2748430 +2438835 +2772177 +2295683 +1717293 +2131202 +2632088 +2304310 +2431567 +2572096 +3153275 +3351940 +3005377 +3498079 +3552265 +3544135 +2655163 +2404273 +3194473 +3725186 +3090251 +2155936 +1691862 +1811197 +2696659 +3675411 +3311222 +2854497 +2879433 +3638527 +3845145 +2971494 +2290897 +2921385 +2701350 +2535100 +2906588 +3005254 +3273490 +2408413 +1596480 +2778049 +3712738 +3008353 +2574026 +3138851 +3172545 +3228366 +3653779 +2920280 +3383903 +3242356 +2123749 +2667719 +0 +0 +3033285 +3349579 +3468583 +2694701 +1980245 +1994470 +2774404 +3582282 +3283611 +2436383 +2738071 +1877999 +1480371 +2204078 +2626882 +2090683 +2521084 +3473395 +3215295 +3074765 +3381178 +3663320 +4576689 +4225839 +3530975 +3274797 +3282214 +3308383 +3292206 +2000989 +2047180 +2265217 +2676982 +3662873 +3574368 +2830118 +2754620 +2820214 +3502126 +3511257 +3073021 +3309486 +2679619 +2900215 +3399121 +3410641 +2190816 +1984673 +2380219 +2995355 +3255433 +2425218 +2746302 +3411817 +2493481 +2474779 +2925346 +3061104 +3787552 +3145008 +2038324 +1526230 +0 +0 +2801298 +2886893 +3074587 +2818187 +1942885 +2823886 +2687647 +2815514 +3037365 +2745180 +3330604 +3022125 +1969632 +2273249 +2569758 +1604038 +2009279 +2706335 +2847649 +3712446 +3553267 +3132671 +3628250 +3815899 +2754661 +2988889 +3217986 +3167105 +2808857 +2273527 +2653599 +2949750 +2131245 +2547693 +3200354 +2998314 +2429490 +1878357 +2990136 +3748043 +2884004 +2673011 +3058645 +3083985 +3115378 +2875933 +2131177 +1961687 +2937905 +3512059 +2546256 +1320310 +1723130 +2328145 +1794730 +1479590 +1566271 +2380670 +3464146 +2871420 +1463476 +1782519 +0 +0 +3136741 +2547646 +3094320 +2913214 +2060304 +2495636 +2795962 +3232826 +3408538 +2616044 +2707328 +3119936 +2083710 +2604828 +3389725 +2826469 +2597230 +2664116 +2777482 +2744762 +2897241 +2524239 +3017773 +3386586 +3058085 +2902442 +2473904 +2162351 +1884500 +1661235 +2098346 +2453418 +2193017 +2460566 +2757332 +2835305 +3037981 +2278937 +2446962 +2986289 +2287160 +2181738 +2817492 +3075911 +2537692 +2752674 +2818362 +2436473 +2910116 +3489780 +3094760 +2023810 +1600878 +1675914 +1716512 +1368342 +1411595 +2026881 +2962035 +2290757 +1227159 +1619893 +0 +0 +3261987 +2879108 +2749900 +2820805 +1939059 +2311144 +3317032 +3272181 +3293313 +2491127 +2672479 +3413520 +2597553 +2826394 +3696383 +3327152 +2827342 +2541062 +1882170 +2434373 +3257095 +2984494 +2774534 +2847967 +2641051 +2228226 +1679191 +1628071 +1779905 +1971984 +1794526 +1990938 +1777660 +2190549 +2654336 +3107678 +2775324 +1868031 +1977883 +2417484 +2093378 +2261277 +2960060 +2883837 +2142167 +2763136 +3701280 +3326925 +2969515 +3582096 +3184381 +2278793 +2000221 +1897719 +2240177 +2700046 +2534251 +2684868 +2586874 +2166467 +1824188 +1997592 +0 +0 +3820675 +2896736 +2473253 +2949970 +2262769 +2067912 +2967096 +3383750 +2891320 +2328501 +2638634 +2892467 +2755477 +2733827 +3323390 +3432433 +3450450 +2329335 +1436593 +2195224 +2763152 +2384830 +2306558 +2656511 +3073404 +2392398 +1772403 +1608778 +1647000 +1979535 +2139602 +2039134 +2258471 +2605436 +2830544 +3051632 +3047906 +2405845 +2118546 +1998052 +1641863 +2291273 +3275327 +3013806 +2597421 +3213812 +3911470 +3474968 +2664733 +2687183 +2855015 +3363046 +3116847 +2452319 +2966508 +3650865 +3233209 +2802864 +2720604 +2060857 +1784896 +2052489 +0 +0 +3347330 +3134840 +1603887 +2265915 +2623516 +2494834 +3400932 +3440557 +2449402 +1999173 +2374144 +2553534 +2860926 +3204330 +2940424 +2684336 +3420668 +2661914 +1334015 +1692505 +2948994 +2901357 +2261717 +2566117 +2082204 +1862382 +2122650 +2136865 +2013948 +2195004 +2610472 +3143824 +2690231 +2202910 +2220953 +2842694 +3090073 +1927526 +1958706 +2323601 +1671041 +2048945 +3010229 +2829630 +2673928 +2823939 +3279792 +3560984 +3193886 +3087583 +2982029 +2993999 +3150172 +2879845 +2818239 +3410211 +2758803 +2688572 +2254183 +2184995 +2791922 +2955218 +0 +0 +2853905 +2754851 +1678373 +1555460 +1952596 +1944996 +2549186 +3121795 +3090954 +2538938 +2146759 +2455380 +2598376 +3106331 +3046253 +2479646 +3444184 +3040557 +1708957 +1666295 +3179348 +3508491 +2654129 +2016252 +2556697 +2603307 +2121953 +2310560 +2707315 +2452472 +2477805 +2748971 +3024029 +3073486 +2220290 +2472245 +2692094 +2194842 +2866614 +3175704 +2336358 +1870936 +1997456 +2381391 +2637697 +2457409 +2603931 +3325943 +3530396 +3409631 +3132626 +2913802 +2734791 +2596439 +2847909 +2826089 +2384964 +2308366 +2157128 +2785439 +2273475 +2761090 +0 +0 +1613797 +2816382 +2244270 +1660237 +2248359 +1847945 +2007210 +3485169 +3423014 +2339672 +2329830 +2664190 +2116182 +2297653 +2869977 +3104933 +3197784 +3225785 +2570014 +1712978 +2577080 +3326691 +2736481 +3140870 +3104647 +2624142 +2264757 +2090524 +2278444 +2491658 +1985536 +2107681 +3086861 +2762194 +2179033 +2549711 +2809158 +2575543 +3145365 +3311417 +2874516 +2133546 +1792669 +1852971 +2198468 +2490163 +2004808 +2813933 +3996042 +4279403 +3964181 +2608036 +2245619 +2402802 +2419012 +2722473 +2571577 +1859226 +2235078 +3200600 +3173426 +2821691 +0 +0 +1520202 +2654180 +3083190 +2455480 +2065158 +2002382 +2180353 +2168059 +2044215 +1940473 +2622786 +3388075 +3083154 +2775577 +3338309 +3666463 +3079825 +3240828 +2976235 +1894480 +2697900 +2891474 +2269165 +2348138 +2971076 +3030714 +2426288 +1555022 +1263224 +2174074 +2634038 +2587604 +2557690 +2240144 +2586707 +3037350 +3093854 +2889376 +2692023 +2564155 +3606827 +3136801 +2306481 +2570632 +2532962 +2170545 +1924214 +2373114 +3453794 +3477063 +3337124 +2649208 +2429744 +2092037 +1801420 +2769416 +2589913 +1901489 +2712383 +3361489 +2738778 +2252369 +0 +0 +1766511 +2934468 +3442808 +2639328 +1768214 +2383851 +2562242 +2434436 +2083817 +1133216 +2115285 +3498514 +3177948 +2333864 +2696434 +3550890 +3695349 +3593088 +3376051 +2212295 +1401262 +1651638 +1449629 +1885451 +2750834 +2627826 +1694862 +2040302 +2081633 +2212268 +2315900 +2641894 +2871699 +2767718 +3187307 +3581505 +3200485 +3101039 +3054603 +2538835 +2995887 +3524691 +2916387 +3034506 +2659219 +2155631 +2119627 +2544621 +2470428 +2765637 +3248873 +2041346 +2065772 +2828678 +2538445 +3038276 +3031646 +2366799 +2820881 +3199251 +3351316 +2969885 +0 +0 +2539717 +2278549 +2429022 +2266617 +1781347 +2004608 +2844392 +2745941 +2173943 +1370468 +2355005 +4019202 +4127865 +3432637 +3197201 +3364908 +3458421 +3774349 +3381847 +2065266 +1535357 +1528159 +1194997 +1247155 +2192534 +2306016 +1762484 +2055154 +2133204 +2576080 +2626072 +2676728 +2487362 +2515809 +3068891 +3869438 +3625041 +3121851 +3067521 +2747451 +3607619 +3691966 +3600614 +4281633 +3243357 +1786400 +1920503 +2514902 +2320043 +2470121 +2845418 +2183130 +1978881 +2712645 +2858476 +2413944 +2478877 +2945211 +2770283 +2450312 +2789392 +3038005 +0 +0 +2293835 +2509739 +1905381 +1756825 +1872599 +1885877 +2556828 +3048761 +3425532 +2140634 +2288177 +3475490 +3359633 +2421425 +2275443 +2919961 +3192652 +3372638 +2858973 +2220941 +1821875 +1539818 +1481423 +1926616 +2675160 +2960925 +2922426 +2792124 +2619343 +2956459 +3020563 +2736109 +2505125 +2222140 +2486440 +3364562 +3494040 +2546392 +2721643 +3443717 +3616969 +3060855 +3216716 +3795429 +3752705 +2755444 +2157186 +2531400 +2671155 +2734249 +3341100 +2470576 +1632987 +3162802 +4050092 +3577971 +3515393 +3504976 +2669481 +2222611 +3009656 +3707652 +0 +0 +2736040 +3267142 +2519646 +2541924 +2521604 +2163252 +2300228 +2521985 +3146179 +2494072 +2372988 +2822306 +3249577 +2876611 +2684761 +2700701 +2292603 +2126920 +2303522 +2197746 +2245214 +1821456 +2058835 +2435771 +2990330 +3054216 +3214606 +3182506 +2438350 +2662772 +2690325 +2731810 +2391948 +1277988 +1294568 +2612468 +3020530 +2443209 +2409792 +2902026 +2922244 +2658055 +2766115 +3076116 +3476744 +3562512 +2871400 +2695623 +3184873 +3203179 +3351760 +2335513 +1581404 +2215368 +3116204 +3325012 +3038380 +2949829 +2532867 +1667387 +2365898 +2985746 +0 +0 +2256801 +3214315 +3454031 +3020513 +2540624 +2720804 +2476529 +2249401 +2931467 +2317327 +2147699 +2655129 +2606633 +2439266 +2161294 +2401707 +2452136 +2736234 +2333004 +2603428 +3302673 +2462537 +2102217 +2817914 +2814789 +2649546 +3224077 +3080498 +3045300 +2842277 +2568155 +3002020 +2855627 +2287418 +1664930 +2373462 +3202767 +2170133 +1647695 +2979514 +2879852 +2083431 +2056458 +2118598 +2996871 +3826596 +3364989 +3263642 +4012172 +3872174 +3168692 +2630920 +2166853 +2343566 +2846783 +3433544 +3339406 +3083242 +2643252 +2261703 +2300668 +2135846 +0 +0 +1600798 +3218372 +4103798 +3482549 +2977641 +2869692 +2149312 +2575569 +2844875 +2638822 +2945718 +2689894 +3065225 +3030126 +2996258 +3064640 +2902115 +3229428 +2595778 +2388258 +2866040 +2319329 +1884204 +2122373 +2448627 +2384691 +2447320 +2337606 +2885370 +3010666 +2791971 +1692748 +2304670 +2900537 +2508813 +3211792 +3472533 +2220544 +1461445 +1836648 +2060177 +2387212 +2200695 +2321874 +3263719 +3825646 +3251185 +3483245 +4145552 +3719346 +3529024 +2929174 +1810553 +1529288 +1792724 +2321395 +2081019 +1785199 +1898322 +1891903 +1892245 +1646561 +0 +0 +2074432 +3146573 +3375188 +2646045 +2142370 +1983322 +2512478 +3345094 +3317654 +2455021 +2597582 +3209804 +2749643 +2685433 +2759348 +3318446 +3684967 +3746612 +3051272 +2483237 +2703101 +3246405 +2837971 +2441653 +1978349 +2085858 +2394036 +2807689 +2889273 +3334980 +2769991 +2209176 +2781414 +2713902 +2787608 +3665312 +3347060 +2096760 +1481102 +1672849 +2511845 +2528282 +2171988 +2350254 +2668696 +3729035 +3880192 +3600522 +3704607 +3797154 +3565930 +2479853 +2259082 +2471124 +2171574 +1697501 +1513127 +1970387 +1696033 +1577873 +2300333 +2008359 +0 +0 +2233756 +3368253 +3154017 +2713420 +2720116 +1954070 +1990387 +2808028 +2664887 +2280573 +3247206 +3409300 +3254268 +3219084 +2951533 +3294728 +3692830 +3056850 +2518269 +2321317 +2288197 +2405841 +2815703 +2552280 +2266388 +2720244 +2859157 +3049542 +2750287 +2376962 +1936839 +1974715 +2654522 +2653810 +2826656 +2989353 +2500292 +1738648 +1189285 +1720518 +2985004 +2941673 +2282741 +2097244 +2125032 +3274588 +3676591 +2950949 +2950457 +3000016 +3063084 +2495230 +2070360 +2198145 +1874161 +1790763 +1084310 +1518427 +1851059 +1914166 +2103818 +2255974 +0 +0 +2706148 +2502547 +2368654 +2658992 +2551040 +2246808 +1948682 +2203426 +2565027 +2420386 +2614570 +2944823 +3255136 +3169378 +2710399 +2796968 +3186254 +2772296 +2156333 +2054905 +2410195 +2229369 +3149284 +3385692 +2577730 +2652612 +2751011 +2540872 +2875031 +3001960 +2564494 +1923181 +2668803 +3162397 +2858383 +2820957 +2795344 +2081990 +2047746 +3103878 +3821563 +3093571 +2251953 +2056349 +1972283 +2759513 +2646160 +1881359 +2204685 +2693934 +2420184 +1723893 +1805055 +2324691 +2865085 +2351362 +1006614 +1884700 +3060279 +2444272 +2050847 +2410606 +0 +0 +3173437 +2530768 +2971351 +3170581 +2949090 +2792171 +2704420 +2595959 +2459170 +2064785 +2242768 +3107630 +3402272 +3190824 +2758589 +2384067 +2532964 +2324250 +2019640 +2602338 +2396302 +1872366 +2823716 +3251525 +2616202 +3221591 +2971580 +1713241 +1628049 +2139618 +2135277 +1589584 +2027136 +2960082 +2774713 +2447725 +2081985 +1902869 +2386701 +3580235 +3982752 +3301224 +3243984 +2478567 +2005760 +2488753 +2588807 +1789973 +1866910 +1954948 +1888120 +2060097 +1558136 +1688088 +2470458 +2953987 +2291572 +2592478 +3622628 +3173735 +2239191 +2704809 +0 +0 +3661193 +3275822 +2948026 +3292212 +2082461 +1830786 +3041970 +3319346 +2878238 +2538311 +2955444 +2872380 +2758734 +2472909 +2757969 +2869685 +2050566 +2007584 +2399490 +2565853 +2390901 +1927857 +1998407 +2545920 +2751908 +3204828 +2660991 +1874361 +2142187 +2698152 +3263544 +2745678 +2448984 +2606553 +2293095 +2348068 +2627171 +2435792 +2784641 +3198182 +3402397 +2818563 +2438934 +2441526 +2830728 +2968332 +2647191 +1885416 +1444060 +2135222 +2119552 +1603911 +1604378 +2061639 +2628230 +2988707 +2640043 +2826695 +3806337 +2936864 +2708712 +3127402 +0 +0 +4102035 +3842553 +3349398 +3472461 +2650443 +2099809 +3121762 +3621927 +3297275 +2367244 +2510418 +3021654 +2709898 +2376709 +2891225 +2279969 +1971641 +2115043 +1835622 +2150206 +2272994 +2084902 +2090692 +2340232 +2708339 +2789742 +2719036 +2635530 +2311064 +2595950 +2469391 +2288458 +1909565 +2200788 +2071248 +2245135 +2123947 +1870598 +2187374 +1904129 +2255295 +2128361 +2231577 +2454731 +2652670 +2801449 +3148460 +3030422 +2263584 +1971265 +2449842 +2438762 +2046296 +2121716 +2057006 +2312830 +2751895 +3209588 +3874850 +3660529 +3565932 +3920954 +0 +0 +2925155 +2678883 +2453278 +2604376 +2222109 +2140824 +2430302 +3115537 +3453791 +2482786 +2465945 +2675856 +2138717 +2077611 +2562198 +2284810 +2064145 +2175831 +2048854 +1787135 +1757762 +2291327 +1931139 +2320678 +2657077 +2355461 +2505104 +2810300 +2980777 +2926436 +2816316 +2311933 +1900580 +2095296 +2571911 +2826351 +2760728 +2304084 +2149557 +2044170 +1767818 +1782289 +2024773 +2356146 +2843066 +3130593 +2898579 +2809748 +2978184 +2747233 +2649518 +2674263 +2138145 +1994458 +2312905 +2301545 +1941565 +1948254 +2821150 +2903409 +2700075 +3004000 +0 +0 +2386860 +2170181 +1555485 +2064027 +2650648 +2161686 +1981187 +2306149 +2860115 +2320926 +2311367 +2720722 +2931345 +2439191 +1627511 +1774248 +2577543 +2501320 +1907810 +1799444 +2035191 +2515462 +2982316 +3028091 +2998300 +2479444 +2488180 +3498531 +3294254 +3244956 +2736778 +1234815 +998717 +1473390 +2053975 +2776848 +2606332 +2209716 +3008046 +3114189 +1887922 +1430236 +1847583 +2308260 +2080968 +2592869 +3373823 +3308588 +3180384 +2118095 +2632372 +3770299 +2840120 +1948736 +1588064 +1734148 +2062691 +2308371 +2279247 +2466650 +2787543 +3009925 +0 +0 +1649437 +1051300 +1383818 +2201217 +2411003 +2450662 +2008869 +2088278 +2815727 +2534861 +2056593 +2432013 +2832261 +2415938 +1863104 +1483529 +2058273 +2193671 +2152595 +2825826 +2405820 +2694674 +3549750 +2591118 +2727149 +3356935 +2961572 +3311601 +3139332 +2731869 +3036478 +2082262 +1392733 +2169724 +2540798 +2524607 +2635791 +2837305 +2704094 +2733414 +2681664 +2266170 +1780166 +1863695 +2173025 +2841571 +3208114 +2599489 +2488535 +2040160 +1914390 +2945698 +3497930 +2698497 +1160207 +1600000 +2806517 +2601631 +1717210 +2353901 +2612507 +2260052 +0 +0 +2583875 +2344714 +2158425 +2296866 +2583433 +2154252 +1870835 +1677784 +2043033 +1935992 +1936079 +3334904 +3220066 +2734688 +2339309 +1883400 +2382590 +2695615 +2744514 +2769281 +2254147 +2469385 +3062912 +2277871 +2388560 +3332557 +3433904 +3741134 +3558402 +2983498 +3194927 +2700001 +2183198 +2674438 +2274752 +2239887 +2372632 +2171048 +2454554 +2487708 +2072483 +2616295 +2273370 +1458945 +2085380 +2540045 +2991396 +2988868 +2372044 +1364229 +1503769 +2331361 +3572178 +3504569 +2126137 +1616072 +2184552 +2653137 +2668050 +2790420 +2926023 +2536016 +0 +0 +2534440 +2915441 +3016245 +3267420 +3181784 +2576214 +2207573 +1668999 +1538185 +1760506 +1734792 +2234890 +2579087 +1863605 +2186970 +2572134 +2640326 +2474242 +3193747 +3674840 +2842463 +2096890 +2493651 +2258657 +2413084 +3557329 +3450235 +3039958 +2642301 +2508279 +2785140 +3391803 +3262175 +2743545 +2203792 +2410972 +2742177 +2540028 +2098592 +2229612 +2385267 +3218234 +3189303 +2148916 +2214302 +2678056 +2416043 +2369783 +2740683 +2403786 +1413698 +1750293 +3051864 +3555518 +2749397 +2059011 +1605854 +2349976 +2991251 +3120493 +3555158 +2781602 +0 +0 +2316324 +3337174 +3279999 +2404768 +2474367 +2361206 +2058843 +1905470 +1720768 +1238647 +1294375 +2422012 +2641704 +2355979 +2320636 +3282306 +3287575 +2915904 +3525392 +3571094 +2872574 +1814444 +2241851 +1999226 +2701610 +3667978 +3469674 +2830544 +2491302 +2220098 +2878382 +3759068 +3190312 +2302254 +2325064 +2276506 +2665012 +2621561 +2437535 +2902616 +2553360 +2488159 +2582540 +1954320 +1998230 +1708302 +1659741 +2228784 +2676713 +2597950 +1683383 +1258398 +2197200 +3081299 +3730216 +2927742 +1375531 +2072178 +2960455 +3682755 +3718834 +2943299 +0 +0 +2758391 +3036809 +3320506 +2905947 +3081629 +3699770 +3268312 +2286407 +1778765 +1828176 +2309436 +2420448 +3248142 +3069301 +2807064 +3443278 +3112175 +3177155 +3690328 +3674559 +3156512 +2294186 +1675460 +2220217 +3179152 +3204050 +2669475 +2573313 +1898942 +1737787 +3066989 +3587735 +3126599 +2514995 +2488223 +2798790 +2663191 +3104959 +3194311 +3197762 +3169268 +2946309 +2700890 +1982798 +2201821 +2404688 +2392421 +2260399 +2957514 +3256610 +2102812 +1405411 +1581715 +2075142 +3083102 +2946701 +1834355 +1956118 +2889376 +3445359 +2876217 +2749745 +0 +0 +3138803 +3018215 +3089723 +2759406 +3059219 +3795579 +3660046 +2811489 +2200258 +2112354 +2335702 +3063351 +3125740 +3156323 +3033504 +3585001 +3416124 +3704736 +3818716 +2903952 +2815461 +2383374 +1471248 +1489116 +1798809 +2002997 +2470627 +2797523 +2743737 +2536771 +2846840 +2797199 +2638271 +2369208 +2852253 +3378703 +2203552 +2617684 +3560810 +3376929 +3344974 +3109881 +2373818 +1864077 +2543923 +2480143 +1725804 +2218290 +2945663 +3347424 +2836210 +2372392 +1705596 +1516081 +3226721 +3504246 +2493288 +2302473 +2583000 +3456646 +2834341 +2044073 +0 +0 +2639953 +2960031 +3548554 +3486984 +3894336 +4341275 +3935476 +2708184 +2571118 +2279304 +2475727 +2954921 +3125591 +2381933 +2120340 +3314206 +3714573 +3798422 +3569037 +2181274 +1898769 +2166136 +1622976 +1521583 +2280602 +1943054 +1344724 +2034341 +2247017 +2555846 +2853459 +2306603 +2628930 +2466149 +2093922 +2541288 +2790040 +2997048 +2899879 +3371255 +4031892 +3550614 +3188442 +3106910 +2933834 +2433487 +2426136 +2251678 +2312683 +3104136 +2926438 +2046669 +1929340 +2524502 +3186935 +3188881 +2402953 +1827935 +2022168 +2512901 +1763514 +1181643 +0 +0 +2941440 +2351419 +2497105 +3387849 +3732664 +4102720 +3901617 +3319051 +3267545 +2700367 +1861769 +2273090 +2699592 +2612809 +2517929 +3270652 +3872075 +3977531 +3094812 +1817156 +1397519 +1819332 +1939869 +1918970 +2128457 +1652235 +1503324 +2136772 +2571462 +2503575 +2508766 +2165947 +2085449 +2098053 +2224646 +2125914 +2280100 +2408514 +2627194 +2865153 +3420664 +3303023 +3376495 +3240315 +2936898 +2456164 +2022840 +1911427 +1953964 +3017528 +2981122 +1792519 +2234692 +3003515 +3627016 +3318099 +2764491 +2504306 +2325927 +2023623 +1790963 +1762367 +0 +0 +2948995 +2735159 +2998379 +3088387 +3324378 +3721261 +3808779 +3263921 +3058074 +2987743 +2415052 +1832969 +2389802 +2930857 +2625390 +3185305 +3682788 +3683411 +3251108 +2300025 +1717115 +2189416 +2140698 +2411348 +2527451 +2879586 +2158132 +2111704 +2298749 +2211260 +2482570 +2336814 +2481991 +2451651 +1584833 +1147355 +1905744 +2950670 +2720372 +2272015 +2774895 +3230202 +3316605 +3472888 +3809308 +3070317 +2347027 +2981096 +3138115 +2934757 +2434440 +1304368 +1281880 +2905169 +3548075 +2707984 +2651569 +3015572 +2741069 +2137486 +2038328 +2363381 +0 +0 +3783385 +3548969 +2299489 +2168853 +2782165 +2762032 +3311023 +3542584 +2572429 +2159157 +2087479 +1728663 +2181821 +2677491 +2843175 +2836857 +3163744 +3829515 +3617314 +2587205 +2173362 +2229964 +2686075 +2939152 +2351452 +2615819 +2471607 +2770472 +2547101 +2201566 +2493396 +2973937 +2990754 +2953648 +2612765 +1537808 +1060636 +1628700 +2289271 +2445565 +3035189 +3220184 +2689990 +2722121 +3287508 +3252388 +2571551 +3092011 +3451555 +3407615 +3155100 +2164929 +1067943 +1857792 +2478648 +2164476 +2750342 +3613130 +3518549 +3292496 +3365500 +3043247 +0 +0 +3835847 +3268485 +2315747 +1799767 +1831547 +2447703 +2736334 +2965249 +2896336 +2118342 +1543012 +1762314 +1817913 +1690880 +2208660 +2660647 +2580495 +2787533 +3272725 +3144500 +2780424 +2803907 +2927002 +3106613 +2664629 +2785120 +3303973 +3084427 +3131692 +2885237 +3189605 +3464792 +2843220 +2923933 +2511062 +1857355 +1960724 +1981343 +2114024 +2617631 +3329143 +2907325 +2412440 +2402143 +2597994 +2705470 +2873256 +3211942 +2864325 +2989820 +2727466 +2582516 +1765475 +1462514 +2417550 +2346679 +2002411 +2551950 +3354772 +3868683 +4318364 +3696741 +0 +0 +3496253 +2953327 +2124577 +1839642 +2116815 +2228310 +2458868 +2466222 +3128242 +2650028 +1369651 +1521205 +2075356 +1825693 +2181832 +2433995 +2138459 +1856077 +2714270 +3011916 +2481455 +3034213 +3400318 +3514393 +2532175 +2353091 +2904828 +3316442 +3261736 +2646600 +2760638 +2712067 +2276893 +2401265 +2356564 +2379376 +2780997 +2289719 +1481199 +1897971 +2815833 +2747447 +1892929 +1612031 +1952843 +1878503 +2620479 +3330580 +2811095 +2658974 +2628087 +3430021 +3135033 +2356919 +2584835 +2770864 +2395298 +2566556 +3335560 +3578524 +4008077 +3262726 +0 +0 +2786515 +2920617 +2760782 +2728382 +2331252 +2487386 +2542686 +2959201 +3139964 +2658849 +1751960 +1798856 +2438113 +2124565 +1851998 +2494864 +2434432 +1782354 +2437498 +2862342 +3120308 +3557821 +3941493 +3557202 +2899068 +1700671 +1864847 +3053420 +3682836 +2796808 +2868121 +2718183 +1784064 +2025987 +2483414 +2214877 +2434467 +2667114 +2005562 +2139711 +2516046 +2481565 +2632930 +2616879 +2163793 +2199857 +2688356 +3470827 +2664070 +2693879 +2813446 +3006905 +2982415 +2330034 +2438570 +3255835 +3133073 +2636136 +2451096 +2678352 +3099726 +2573420 +0 +0 +2847868 +2997979 +3569702 +3226892 +2699505 +2153569 +2626300 +2930105 +2845388 +2506671 +1690041 +1934016 +2693234 +2600030 +2628732 +3046783 +2598781 +2341142 +2832162 +3053287 +2975646 +3033062 +3898634 +3563479 +2817315 +2174881 +1588614 +2366436 +2598447 +2160278 +1991758 +2410635 +2497073 +2581763 +2539825 +1631956 +1856848 +2769705 +2983398 +3106475 +2578551 +2510818 +2817111 +2337159 +2957647 +2746635 +2359655 +2889259 +3013060 +3125182 +3608551 +3110915 +2551992 +2126837 +2379905 +3115242 +3586443 +3198153 +2722417 +2689093 +2453187 +2219224 +0 +0 +2195776 +2762960 +3847971 +3493200 +2193772 +1769328 +2204218 +2986322 +2887897 +2068759 +1383489 +1862656 +2281240 +2405757 +2710685 +2741460 +2531571 +2615868 +3429217 +3506398 +3390350 +3354486 +3314876 +2444991 +2540232 +2200918 +2324852 +2532942 +2144349 +1872217 +2269905 +2872555 +2799496 +2966118 +2510835 +1722306 +1961851 +2533543 +2707050 +3730042 +3162510 +2910417 +3582451 +3164215 +2733537 +3391166 +2514451 +2368004 +2769436 +2436271 +3224644 +3288395 +1844846 +1595964 +2149935 +2527338 +3098491 +2419299 +2028345 +2361849 +2097595 +2396292 +0 +0 +2884974 +2357814 +3475267 +3339619 +1930862 +1508823 +2274097 +2759982 +2598074 +2501525 +1453431 +1259041 +1641567 +2571801 +3317862 +3062330 +2379756 +2401936 +3192016 +3039161 +2959981 +2865580 +2719722 +2302646 +2357056 +3018516 +3416436 +2960245 +1856923 +1817207 +2387976 +2481062 +2990757 +2645240 +1302474 +737795 +1637195 +2836438 +3076919 +3134483 +2645858 +2875482 +3227328 +2414082 +2138685 +3103630 +2465218 +1452271 +2169338 +2662244 +2844036 +2656037 +2145327 +2578777 +3105473 +2689086 +2620904 +3102464 +2736225 +2524571 +2704359 +2874196 +0 +0 +1768400 +1261810 +2982923 +3438569 +2160810 +1977863 +1917019 +2030614 +2493142 +2517735 +1715813 +1748979 +1192197 +1652865 +3246419 +2376823 +1607855 +2091637 +2382527 +2812104 +3161980 +2872010 +2560920 +2254730 +2555904 +2786438 +3223438 +2672774 +2074300 +2451632 +2861152 +2435931 +2668118 +2741543 +1613719 +940907 +2023496 +2307299 +1825229 +2054571 +2607285 +2490977 +2483989 +2323661 +1525796 +1941769 +2535778 +1689446 +1803579 +2316108 +1774125 +1972500 +2397432 +2603860 +2862316 +2375675 +1961568 +2478662 +2177962 +1507986 +2304828 +3016073 +0 +0 +2293070 +1749763 +2743338 +2932412 +2627546 +2677695 +1933042 +1727133 +2161341 +2974612 +2792368 +2728786 +2210510 +1786450 +2870938 +2992452 +2484340 +2680130 +2329342 +2072537 +2823390 +2949910 +2450061 +2513295 +2649273 +2751347 +3032384 +2589734 +2377337 +3510258 +3009194 +2141885 +2609931 +2888571 +2526976 +2393685 +2609870 +2163172 +1798470 +2391878 +3028859 +3001652 +2622428 +2127008 +1890404 +1681268 +2101395 +2064001 +1881418 +2542310 +2269497 +2076940 +2656423 +2813733 +2398433 +2022646 +1671715 +2583348 +3017567 +2008673 +1960395 +3065687 +0 +0 +1503597 +2082948 +2947467 +2302258 +2113893 +2779868 +2524367 +1934533 +1875908 +2415589 +2984440 +3620430 +3567997 +2555436 +2417278 +2711055 +3175457 +3290381 +2734163 +2190298 +3122064 +2780934 +2236732 +2054176 +2065541 +1999747 +2488072 +2486955 +2661579 +3903601 +3307921 +2086450 +2458839 +3050752 +3158129 +2754219 +2938471 +2080753 +1190760 +2198511 +3555763 +2892464 +2053259 +1965956 +1988890 +1846362 +2060904 +2342105 +1762863 +1636181 +2140832 +2575728 +2581997 +2500689 +1789665 +1855122 +1828495 +2482838 +2568282 +2095839 +2174979 +2878068 +0 +0 +1823525 +2360021 +2885594 +2177556 +1992009 +2314720 +1936083 +1797228 +1842154 +2398280 +3464586 +3500978 +3404438 +2339889 +1641230 +2506504 +2960000 +3354823 +3178546 +2686531 +2094555 +1971176 +2355019 +2621116 +2330175 +2317622 +2434833 +2294973 +2403449 +3065471 +2889412 +1664176 +1769566 +2343592 +2998854 +3220179 +3414456 +1984029 +1507501 +2456108 +2572673 +2629182 +2941320 +2516127 +2759501 +2823665 +2339146 +2018842 +2171892 +2104003 +2383902 +2806626 +2469876 +2559188 +2130453 +2186996 +2463708 +2848752 +3258462 +3416495 +3305362 +3019285 +0 +0 +1714093 +1902679 +3067967 +2671729 +2250472 +2503294 +1792670 +1524319 +1610204 +2544941 +3280825 +3190839 +3000933 +2529347 +2382040 +1894249 +2147376 +2815213 +3106599 +2963830 +2563781 +1645411 +2008398 +3210282 +2929151 +3066107 +3224556 +2478189 +1874768 +2121272 +2529970 +1722496 +1741958 +2813363 +3123108 +3004195 +2973623 +2210141 +1536487 +2067776 +2070446 +2458392 +2919724 +2798352 +2582645 +2959607 +2536923 +1874075 +2178572 +2474372 +2541920 +2302238 +2017779 +2043527 +2227806 +2932968 +3473488 +3602809 +3348908 +3537240 +3340059 +2591317 +0 +0 +2146135 +1897617 +2748758 +2599926 +3045463 +2996212 +2346419 +1796816 +2591197 +3091429 +2869051 +2880347 +2216075 +1850739 +1904332 +1763919 +2264626 +3077686 +3135073 +2699789 +2414653 +2193691 +2151382 +3143657 +3457692 +3312307 +3135386 +2998615 +1924139 +1205697 +1576914 +1338854 +1816529 +2750180 +3299295 +3582636 +3763906 +2573557 +1560082 +2303854 +1947415 +2109214 +3769686 +3227712 +2983874 +3242431 +2071156 +1498096 +2184662 +3049239 +2923985 +2641985 +2501375 +2155290 +2383549 +2895959 +3262934 +2700767 +3140702 +3714381 +2952246 +2344199 +0 +0 +2853664 +2604874 +2642557 +2528405 +3430727 +3605633 +2932089 +2774844 +2852275 +3198031 +2842368 +2192124 +1814671 +2044781 +2525731 +1961202 +2066473 +2807983 +2513374 +2017825 +2532377 +2379613 +2095227 +2679259 +3575263 +3480043 +3369233 +3464577 +2844776 +1940192 +1523032 +1255800 +1915478 +3199154 +3535410 +3816179 +3543616 +2364452 +2248589 +2505824 +1746987 +2024250 +3345595 +3052229 +2497119 +2733855 +2117053 +1985615 +2421167 +3240860 +3302234 +2539256 +1924048 +1872951 +2694340 +3810848 +3209472 +2612444 +2659161 +2234813 +2113508 +2491253 +0 +0 +3079886 +2511347 +2092517 +2142363 +3163160 +2932299 +3234900 +3335887 +3351651 +3069835 +2315761 +1755780 +2166445 +2773501 +2736193 +1957275 +2278123 +2262290 +1817988 +1875267 +2411855 +2334811 +1493506 +1942149 +3098148 +3169399 +2972668 +2888792 +2883803 +2691705 +1741115 +743840 +1718786 +3279013 +3393575 +3897200 +3490567 +2316578 +2138676 +1848806 +1669236 +2097533 +3182544 +3392045 +3151962 +2160675 +1608782 +2492582 +3096652 +2904779 +3002557 +2860499 +3085541 +2731538 +2766358 +3258350 +2887441 +2284511 +2256144 +1962791 +2197482 +2811935 +0 +0 +3039322 +2289573 +2395566 +2779506 +2948776 +2959699 +2097460 +2787542 +3006543 +2397268 +2124000 +2151329 +2578326 +2842039 +3368426 +2678129 +2208924 +2016800 +1599770 +2193796 +2738613 +1480419 +1348350 +2003137 +2394051 +3103944 +3071301 +2560723 +3166016 +3696721 +2438156 +1351692 +2001634 +2872523 +3760292 +3914755 +2893148 +1688797 +1777554 +2165073 +1346378 +1888203 +3434105 +3703215 +3239326 +2039592 +1956291 +2839778 +3420398 +3685653 +3390931 +3029508 +2389764 +2274148 +2999368 +3128776 +2497424 +2695041 +2667010 +1882882 +2210735 +2935920 +0 +0 +2909817 +2244892 +2199985 +2213225 +2620696 +2837236 +2299965 +2189390 +2589079 +2159786 +1872778 +2372352 +2462599 +3319427 +3662496 +2422966 +2601829 +2974198 +2205914 +2719406 +3527558 +2570277 +2334820 +1967971 +1874718 +2101711 +1851443 +2494444 +3104632 +2527061 +2080094 +1877994 +2363006 +3058478 +4085320 +3879574 +2829853 +2443517 +1959766 +1452338 +1334430 +2468420 +3486841 +3923723 +3092505 +1808509 +2022003 +2386992 +2884364 +2945851 +2746897 +2707329 +2548534 +2443149 +3035018 +3222685 +2566302 +2408591 +2159219 +2460380 +3045506 +2800557 +0 +0 +3373900 +3328189 +3122147 +2851607 +2961073 +2846464 +1788098 +1897576 +2887966 +2164247 +1266967 +1963780 +2926421 +3287849 +3186929 +2841211 +2723121 +2471123 +2211533 +2511167 +3301408 +2570318 +2104249 +1850254 +1362103 +1810581 +1964162 +2418548 +3167126 +2986648 +2292290 +2031791 +3132085 +3335817 +3938834 +3330544 +2291263 +2595424 +2294653 +1864065 +2372780 +2846087 +3362226 +2974819 +2241231 +2585924 +2670994 +2374024 +2578632 +2221381 +2467391 +2979246 +2955417 +2552512 +3302637 +3927808 +3143545 +2430148 +2209765 +2732307 +2920775 +3482535 +0 +0 +3600659 +3232545 +2863173 +2981778 +2799905 +2503398 +2210362 +2094581 +2011208 +1766213 +1495299 +2394907 +3353819 +3372137 +2990268 +2999097 +2281734 +2065490 +2101748 +2151103 +2762701 +2271375 +2108102 +1837797 +1506314 +2295486 +2351628 +2469945 +3282462 +3209196 +2518346 +2620589 +3157940 +3529935 +4463800 +3783732 +2189285 +2831909 +3543397 +2893335 +2794468 +3084147 +3455057 +2832474 +2764299 +2947470 +3206232 +3050663 +2453988 +2400514 +2218220 +2405266 +2151100 +2852615 +3741772 +3653104 +3268866 +2527416 +1903977 +3003766 +3503894 +3299368 +0 +0 +4191697 +3352715 +2866224 +2971365 +3124730 +2585139 +1690941 +2096555 +2209052 +1787820 +1677860 +2900064 +3751728 +3469737 +3383885 +3223903 +2777911 +2410422 +1905471 +1585404 +1638560 +1783934 +1888869 +1470510 +1881203 +2351596 +2543291 +3138182 +3685232 +3271906 +2626548 +2695518 +3020442 +2869414 +3382128 +3142007 +2202713 +2537827 +3221002 +3314679 +2962206 +3057480 +3141502 +3310246 +3089106 +3068683 +3844926 +3604711 +3156189 +2590236 +2896001 +3207936 +3142403 +3398762 +3743021 +3185511 +3310048 +2656162 +1967910 +2671646 +2841239 +3008022 +0 +0 +3777848 +3036913 +2240921 +3015140 +3422023 +2895372 +2300367 +1970287 +1884944 +2027717 +2370036 +2829207 +3190898 +3304598 +2839889 +2875063 +3131587 +2667899 +2239792 +2118748 +1575098 +1851566 +2492038 +2782667 +2887943 +2998625 +3181768 +2636766 +3060614 +3072561 +2416892 +2914574 +2419023 +1843170 +2590036 +2914983 +3094907 +2655556 +2824945 +2756942 +2508605 +2222574 +2649332 +3617760 +3151815 +3025634 +3521500 +3272344 +2608679 +2811353 +2534808 +2680521 +3425104 +3293655 +2735134 +2426196 +2687810 +2781992 +2707052 +2505789 +2709175 +2444347 +0 +0 +3521665 +3035560 +2686529 +2756602 +2720076 +2741216 +2908483 +2520591 +2508431 +2828902 +2057617 +2002140 +2602021 +2493181 +3001433 +3538821 +3648379 +3305530 +2967961 +2776562 +1521635 +1897206 +3241564 +3465881 +3778436 +3209004 +2156695 +2291888 +3151934 +2741600 +2114897 +2313928 +2055419 +1883915 +1730358 +2202175 +3011135 +2799242 +1998881 +1603315 +2015299 +1870636 +2323236 +3192076 +2760305 +3232152 +3887416 +3330296 +2543032 +2450745 +2519665 +3565518 +4089609 +3485189 +2903553 +2170607 +2658646 +3653911 +3299200 +3020566 +2859806 +2781953 +0 +0 +2801118 +3279291 +2636978 +2743237 +2498565 +2743774 +3453863 +2741282 +2476371 +2668001 +2336658 +2079095 +2366846 +2633582 +2892136 +3196266 +3427608 +3429350 +2898891 +3104173 +2506994 +2727190 +3247579 +3707280 +4193993 +3729353 +2886092 +2432930 +2197371 +2465857 +3046913 +2404558 +1798535 +1901797 +1758537 +2037964 +2913893 +3052540 +2452914 +2293526 +2184700 +2180162 +2674348 +3033590 +2201574 +2356558 +2840511 +2290584 +2192450 +2618854 +2141990 +2994647 +3422496 +3274844 +3254971 +2357941 +2360251 +2870674 +3128767 +2983632 +3459351 +2785304 +0 +0 +2597985 +3023810 +3057450 +3179639 +2326279 +1974902 +2365438 +2957007 +3265810 +2614666 +2135533 +2408325 +2172345 +2142569 +2678766 +2877525 +2722124 +2788733 +3152769 +3599874 +3021241 +3344660 +3496990 +2896756 +3244702 +3499517 +2522178 +2520355 +2975281 +3185620 +3433592 +2652647 +2135307 +2547165 +2177249 +1666654 +2201833 +2724587 +3029286 +2417879 +2563821 +2952194 +3204069 +3179367 +2675189 +2484423 +2605779 +2621294 +2715944 +2548077 +2005991 +3221369 +2991537 +2530716 +3283666 +2923854 +2485450 +2666322 +2768351 +2954042 +3184377 +2518240 +0 +0 +2732524 +2875409 +2577472 +3235537 +3372051 +2073189 +1867636 +2897947 +3194833 +2604509 +1972549 +2494672 +3168630 +2840799 +2016645 +1701575 +1352098 +1779754 +2557580 +2820007 +2482722 +3002345 +3142780 +2453564 +2359613 +2910339 +3129543 +3192217 +2925696 +2705462 +3240399 +2471713 +2063333 +3143589 +3000063 +1984024 +1560217 +2157724 +2581056 +2368628 +2477825 +3141873 +3643459 +3289009 +3118012 +2163086 +1898039 +2863827 +3161750 +2855089 +1714864 +2494327 +3059644 +3446969 +3455663 +3008711 +3343627 +3122850 +2739595 +2617100 +2836014 +2560224 +0 +0 +2306278 +2827024 +2335907 +2576725 +3060546 +2184404 +2303088 +2741490 +2442015 +2467965 +2738964 +2599922 +2204064 +2303533 +2050543 +1461911 +1007954 +1220512 +2021187 +2217241 +2057912 +2395069 +2546244 +2012912 +1798649 +1995102 +2230384 +2275908 +2351613 +2845415 +3475571 +2997592 +2245935 +3149315 +3500641 +2736550 +1531399 +1299501 +2498014 +2927684 +2608776 +2628388 +2662878 +2352777 +2765140 +2571623 +2931952 +3395336 +3648987 +3158607 +1894495 +2173435 +2916758 +2810186 +2463887 +2383447 +3294438 +3561665 +3318657 +3064154 +2639795 +1943416 +0 +0 +2542816 +3306695 +2484948 +1272294 +1852101 +2538995 +2837200 +3260356 +2681749 +2850047 +2914249 +2191116 +2022943 +2558219 +1984800 +1765283 +1777028 +1684423 +1784944 +2226898 +1946945 +2268658 +2302082 +1874010 +2135237 +1999951 +1747699 +1992170 +2187532 +2083900 +2441681 +2196116 +2092385 +3222411 +3316777 +2601266 +2139149 +2404441 +2787339 +2913601 +2717916 +2917059 +2721237 +1658546 +1636507 +2811835 +3350919 +3475449 +3337023 +3303925 +2038206 +2034195 +3023406 +3271232 +2283980 +1614385 +2849997 +3445335 +3103946 +2889010 +2546444 +2040837 +0 +0 +2352307 +3528152 +3382912 +1697090 +1415594 +2391152 +3041273 +2689883 +2539007 +2899560 +3463058 +3062972 +2193119 +2263788 +2107777 +2826385 +2613746 +1892274 +2436545 +2138814 +1979991 +2746497 +3196305 +2669951 +2590551 +1992329 +1271324 +1690904 +2480341 +2053309 +2162218 +2253187 +2667735 +3609233 +3327712 +2276251 +2023829 +2800495 +3736591 +4027985 +3509366 +3033096 +3120538 +2032298 +1116616 +1575991 +2708345 +3038432 +2802634 +3104948 +2490773 +1979777 +2596096 +2612361 +1517311 +1545347 +2021341 +2069696 +2180129 +2780003 +2689885 +1784752 +0 +0 +3153440 +3631609 +3471600 +2477413 +2420185 +3183958 +3052344 +2297679 +2602276 +3551661 +3475832 +2608225 +2567961 +2241171 +2306427 +3102369 +3135931 +2883362 +2074994 +2047036 +2016549 +2397559 +3252663 +3284857 +2706831 +2346056 +2694066 +2550009 +2710050 +2371675 +1638491 +1691365 +2821754 +3944088 +3503543 +2032550 +2364971 +3658223 +3759914 +3416916 +2910437 +3147658 +3468275 +2526266 +2177435 +2128598 +2123452 +2651195 +2552902 +2807587 +3085947 +2935059 +3015024 +2636453 +1903720 +2015798 +2550372 +2330855 +2887967 +3359570 +2967959 +2387722 +0 +0 +2855267 +3132315 +3421942 +3141075 +3455892 +3720126 +3576837 +2180337 +1790699 +3594915 +3511004 +2963372 +2571872 +1830822 +2079480 +3059578 +3426260 +2821750 +2408020 +2513830 +2381228 +2516447 +2763117 +3795709 +3378193 +2591161 +3050679 +2736965 +2354252 +2712298 +2529500 +2238285 +2684817 +3424638 +3315143 +3043084 +2697797 +2983437 +3570924 +2909437 +2863803 +3119035 +2553746 +2454731 +2945320 +2397488 +1510116 +2192278 +2537954 +2811488 +3363499 +3689427 +3050845 +2722491 +1998252 +2079004 +2581868 +2084330 +2017465 +3034443 +3736457 +3334727 +0 +0 +2902588 +3497545 +3319875 +3304543 +3673869 +3533936 +3403353 +2488756 +2615629 +3517189 +3295506 +2487585 +2071874 +1690666 +1460379 +2542925 +3002557 +2352064 +1988013 +2265673 +2965001 +2718166 +2397969 +2815759 +2877426 +2824340 +3684390 +3609274 +2832825 +3349881 +3199145 +2034028 +2266090 +2515039 +2369925 +2451297 +2526137 +3251300 +3428300 +2645092 +2172109 +2613820 +2486719 +2527069 +3274617 +2629626 +1690738 +2450383 +3015337 +2057289 +2364324 +3190479 +3153296 +2816444 +2281793 +2377007 +2825992 +2204322 +2123884 +2382497 +2834190 +3149557 +0 +0 +2086378 +2895314 +3292144 +2649537 +2541764 +2815377 +2874320 +3075705 +3077285 +3094759 +3044225 +2433497 +2326612 +2100383 +1312962 +2593680 +3195381 +2201827 +1427517 +2190481 +3235604 +2916725 +2645722 +2699104 +2443648 +2822314 +3178414 +2947733 +2531297 +3055350 +3367698 +2510131 +1682702 +1974649 +2008718 +1845799 +2356157 +2358356 +3055962 +3184383 +2203429 +2299949 +3276328 +3338435 +3040558 +2478477 +1860868 +2789406 +2750239 +2289665 +2652870 +3061912 +2891265 +2329830 +2164379 +2201238 +2207270 +2212495 +2334708 +2303568 +2798162 +3091902 +0 +0 +3257075 +3641557 +3073670 +2127445 +1785155 +1922771 +2712810 +3771374 +3489373 +3165339 +3018012 +2724903 +2662686 +2528903 +2273882 +2720731 +2992601 +2179687 +1591074 +2014741 +2168669 +2663228 +2787613 +2888091 +2304019 +2284487 +2910799 +3233990 +2883831 +2744570 +2795728 +2459079 +2056693 +2239346 +1782959 +1421068 +2136754 +2610656 +2783222 +3201897 +2235406 +2316723 +2893640 +3027739 +2984215 +1878257 +1287439 +2567377 +2718091 +2119041 +2183516 +2399368 +2342733 +2545330 +2597058 +2679113 +2842591 +2714369 +2556633 +2501943 +2176133 +2253488 +0 +0 +3155419 +3095356 +2751528 +1363745 +966161 +1171644 +1780690 +3122574 +3790456 +3431674 +3088238 +3089437 +2992118 +2526648 +2632736 +2878220 +2749999 +2610078 +2621784 +2220275 +2440387 +2199530 +2435068 +3244782 +3476910 +2370409 +2213450 +3027149 +2447500 +1834368 +2753937 +3351256 +3029247 +2890094 +2966188 +2463562 +2404222 +2869258 +2918913 +2752989 +3318678 +2999337 +2402023 +2762423 +2998413 +2388325 +1495723 +2541350 +3032714 +2139762 +2820943 +3285852 +2572752 +2439580 +2756308 +2307162 +2410795 +3190496 +3224006 +3503676 +3135993 +2869027 +0 +0 +3810852 +3607701 +2795993 +2192761 +1401037 +1424837 +1722367 +2130974 +3094639 +3899996 +3745379 +3625462 +3318060 +2715954 +3167428 +3157156 +2487787 +2457227 +2846715 +2874404 +2772737 +2836353 +2873233 +3291205 +3483519 +2593461 +2668107 +3332451 +2850376 +2363838 +2927579 +3588738 +3763271 +3537995 +3380012 +2336873 +2544246 +3571547 +3411704 +3060321 +2729011 +2443258 +2303916 +2641168 +2778714 +1865097 +1267466 +2342479 +2685703 +1753528 +2168326 +2348052 +2398705 +2870046 +3514084 +2814094 +2812709 +3348693 +3229157 +3137917 +2551391 +2628656 +0 +0 +2916031 +2902220 +2616923 +2015232 +1090489 +1068610 +1298970 +1327324 +2542847 +3577800 +3348855 +3000529 +3259079 +2860370 +3362342 +3564646 +2705176 +1965627 +2275634 +2109890 +2151224 +2395634 +3233753 +3199427 +2890639 +2921867 +2668980 +2463461 +2490646 +2489364 +3469092 +4119864 +3486715 +2909058 +3128740 +2612952 +2475941 +2909532 +3470799 +3232658 +3111777 +2730222 +2287948 +3021780 +2941959 +2300574 +1491587 +2128521 +2345371 +2221511 +2599928 +2905912 +2658675 +2761453 +2680314 +2591452 +2646038 +2849019 +3338176 +3123598 +2697489 +2900990 +0 +0 +2689704 +3469622 +3010590 +2424075 +2093287 +1921780 +1995856 +1812966 +2575802 +3178754 +3368259 +3103408 +2819322 +3308629 +4161166 +3999561 +2806296 +2508651 +2242742 +1842561 +1698277 +2286403 +3381336 +3392487 +2883446 +2414184 +2539851 +2361132 +2114232 +2900179 +3406708 +3867810 +3486629 +2583497 +2525227 +2442684 +1883320 +2362824 +3093309 +3681990 +3180300 +1857873 +2185005 +2861652 +2465025 +2094353 +2183799 +2290383 +2530823 +2509727 +3214310 +2478386 +2435189 +2844604 +2640069 +2794905 +2512902 +2203737 +2596451 +2325136 +1679490 +2515709 +0 +0 +2379231 +3284529 +3128045 +2462119 +1599437 +1786880 +1966981 +2449736 +2866704 +2350965 +2440460 +2350027 +2114593 +2903613 +3830318 +3578099 +2880214 +2620549 +2560085 +2325176 +1772463 +1917223 +2721172 +2821418 +2870951 +2418962 +2363662 +1486332 +2174171 +2906508 +2945400 +3347994 +3233236 +2546444 +1968070 +2111157 +2526905 +2462626 +2843812 +3429482 +3048981 +1971351 +1649956 +2501361 +2544085 +2217355 +2765299 +2510375 +2016917 +2376615 +2888984 +2224632 +1709416 +1763162 +1930347 +2555019 +2515313 +2287993 +2288117 +1950092 +1518885 +2018899 +0 +0 +2125792 +3251463 +3385082 +2154678 +2005013 +2458664 +2740896 +2651076 +2644808 +2145630 +2353260 +2178272 +1877906 +2890050 +3500715 +2833593 +1876691 +2367095 +3535583 +3288004 +2326894 +2284723 +2316801 +2616789 +2134517 +2278195 +2761409 +2300231 +2546329 +2896070 +3257056 +3805889 +3087598 +2194198 +1608801 +2398546 +2862658 +2143922 +2540560 +3304363 +2722550 +1722705 +1518702 +2133022 +2322305 +2202922 +3342405 +3146206 +2487904 +2568349 +3033115 +2315296 +1603874 +2060992 +2322464 +2449291 +2612420 +3081618 +2997113 +2513997 +1975498 +2415350 +0 +0 +2244406 +3163180 +2984892 +2077796 +1773577 +2091258 +2818286 +3338071 +2672976 +1981169 +1993708 +1835219 +2099908 +2849852 +3121925 +2912207 +2064731 +1844255 +3186384 +3339483 +2778049 +2641966 +2685657 +2443438 +1872553 +2544948 +3317542 +3136527 +2569340 +2712603 +3297684 +3713642 +2688791 +2023081 +1408548 +2033239 +2541368 +2149813 +1809370 +2708166 +3157725 +2680005 +2021310 +1949494 +2306955 +2304098 +3224856 +3488989 +2586293 +2725685 +2676305 +1973112 +1461736 +1788317 +2501776 +3036115 +2481845 +2938165 +3440142 +2462303 +2210742 +2211222 +0 +0 +2685547 +2732095 +2813089 +1996577 +1965559 +2551454 +3176182 +3560258 +2186774 +1619219 +2595445 +2650028 +2486924 +2856832 +3102509 +2868082 +2119595 +1947574 +3028555 +2919101 +2406241 +2303936 +2844360 +2458284 +1831963 +1707221 +2875123 +3274046 +2475516 +2647335 +3374624 +3446356 +3067633 +1984816 +1396402 +1819414 +2368352 +2181628 +1788266 +2437149 +3088172 +3053977 +2331787 +2258712 +2850433 +2582751 +2994127 +3214008 +3077780 +3206785 +2924966 +2484643 +1845312 +1925513 +2924832 +3408391 +2923684 +3136597 +3136310 +2886173 +1983944 +1820757 +0 +0 +2521062 +2570039 +3020176 +2411478 +2473246 +2529350 +2935999 +3285010 +2397239 +2311345 +2641723 +2730723 +2914690 +2928124 +2337651 +2551313 +2196060 +1897375 +2720718 +3142424 +2208066 +1771812 +2158047 +2442804 +1817900 +1116301 +1999338 +2609593 +1928233 +2508601 +3463867 +3212144 +2694243 +2172133 +2210905 +2412983 +2479853 +2378349 +1902301 +2534426 +3342163 +2759496 +2207216 +2999726 +3285633 +2567666 +2492407 +3120434 +3456427 +3547421 +2675945 +2052411 +2023331 +2171567 +3053142 +3886541 +2693040 +1602090 +1908780 +2320226 +1955647 +1728531 +0 +0 +2562857 +2231957 +2275888 +2219756 +2468792 +2571851 +2743200 +2634402 +2453345 +2504905 +3397016 +3497019 +3254045 +2821833 +2152001 +2107238 +1992083 +2843785 +3341582 +2884863 +2268735 +1794968 +1531492 +2210040 +2265782 +1652621 +1825305 +2792459 +2346941 +2275371 +2620643 +3252593 +2932881 +1923444 +2232455 +2786069 +2651826 +2440378 +2474494 +2577332 +2296921 +1894554 +2093004 +2417760 +2977346 +2737207 +2816938 +2474836 +2157221 +2863975 +3646629 +2819338 +2703775 +2755752 +2808616 +3506258 +2999250 +2797396 +2179343 +2453496 +3089829 +2696682 +0 +0 +2816048 +2480629 +2341409 +2081746 +2036610 +2559575 +2572283 +2528207 +2387592 +3243473 +3873616 +3512271 +2975561 +2864141 +2608949 +2186476 +2203948 +2395071 +3330453 +3289137 +2909736 +1991484 +1938787 +2178574 +2202684 +2081385 +2381368 +3738409 +3561738 +2882142 +2681320 +2985505 +3110835 +2432659 +2416356 +2980523 +2774297 +3078199 +2745789 +2021758 +2163249 +2514724 +2621217 +2563408 +2437511 +2696430 +2293565 +2157147 +2592528 +2433025 +2658706 +2903352 +3254083 +3036351 +2863534 +2543417 +2393208 +2571392 +1650474 +1708025 +2630571 +2894653 +0 +0 +2340760 +2684735 +2643983 +2120492 +2157727 +1734453 +1867857 +1864293 +2238423 +3028280 +3870726 +3638318 +2973288 +3454871 +2889283 +2748377 +2846576 +3139581 +3534967 +3717143 +3082970 +2479752 +2326960 +2252893 +2387126 +2138803 +2798540 +4259774 +4314310 +2884419 +2276564 +3017355 +3435528 +2824956 +2555821 +3134634 +3245474 +3331949 +2697228 +1930479 +2599204 +3359645 +2960197 +1755222 +1761325 +2542977 +2490752 +2204663 +1795863 +1362960 +1916766 +2843659 +3604751 +3222496 +2083866 +1762472 +2631332 +3229748 +2609969 +1899694 +2252036 +2908755 +0 +0 +2418334 +2589956 +2955292 +3322099 +2948507 +2699443 +1927105 +1460221 +1323123 +1859656 +2901711 +3282857 +2918426 +3129083 +3381982 +3131275 +2835298 +2396066 +2698741 +3812965 +3764636 +2399703 +1733865 +1822266 +1411308 +1446528 +2608601 +3933693 +3963192 +3425504 +3373239 +3132892 +3207875 +2991619 +2980056 +3003593 +3345913 +3826218 +3207230 +3110530 +3244170 +3649319 +3658943 +2302120 +1347400 +1840832 +1896392 +1572137 +1650256 +1740697 +1928025 +2423302 +3193993 +3163516 +2346065 +1844265 +2219569 +2736926 +1957632 +1376566 +1801434 +2414439 +0 +0 +2024996 +3042650 +3155970 +2434111 +2742631 +2639537 +2007725 +2053613 +2034411 +1872542 +2185841 +3466556 +3299862 +2924009 +3319108 +3606791 +3403704 +3016917 +2897407 +3449216 +3190351 +2590654 +1512553 +928003 +1155900 +1486757 +2324251 +3076160 +3593166 +3279466 +2994337 +2866596 +2564937 +2337140 +2577270 +2699392 +2810437 +3134886 +2472730 +2797132 +3059043 +3140142 +3680628 +2564400 +1695788 +1997935 +1465803 +1795986 +1868703 +1559162 +2559924 +2777493 +2781367 +2957873 +2646935 +2656158 +2248803 +2401016 +2622255 +2316014 +1999360 +2635305 +0 +0 +2385419 +2970549 +2688430 +2274675 +2279049 +2478611 +3305491 +3066483 +2044398 +1497766 +1971671 +2943556 +2806956 +2748020 +3291197 +3734625 +3226548 +3239494 +2980063 +2821522 +3606090 +3338231 +1969299 +1093600 +1432968 +2203293 +2557709 +2948289 +3529194 +3308058 +2816261 +2333593 +2582721 +2754459 +2798217 +2075099 +1896136 +2624412 +1882312 +2029140 +2733254 +3242241 +3637558 +3222318 +2544004 +1917783 +1988487 +2118686 +2100347 +2499021 +2961257 +2760686 +3008426 +2453046 +2447799 +2523782 +1646192 +1704040 +2443122 +2283897 +2216380 +2542053 +0 +0 +2517586 +2280803 +2060862 +1355543 +1444381 +2455801 +3363098 +3549093 +2758060 +2318468 +2549681 +2316712 +2638255 +2685566 +2587404 +3244674 +3447382 +3227880 +2889864 +3094476 +2815631 +2930368 +2797618 +1904307 +1894818 +2232461 +2340265 +2668063 +2878266 +3009747 +2251470 +1935665 +2428018 +2488120 +2408800 +2302640 +1688717 +2135340 +1948833 +1342442 +2196198 +2513706 +2894763 +3311484 +2550839 +2764577 +3166707 +2789433 +2953162 +3072799 +2226665 +2295379 +3054124 +2842447 +2723278 +2354513 +1640949 +2065644 +2775999 +2855239 +2475738 +2305699 +0 +0 +2236737 +1686998 +1769514 +1905122 +2408827 +2283019 +3131824 +3758148 +2380365 +2315069 +2925799 +2687576 +2722193 +2634990 +3088787 +3335152 +2316587 +1935171 +2741236 +2410749 +2120086 +2485290 +2748060 +2232989 +2815697 +2657223 +2309898 +2803680 +2574443 +2310157 +2146849 +2380791 +2682654 +2775135 +2806314 +2481321 +1937182 +2653687 +2489374 +1901136 +2277681 +2773643 +2914195 +2575393 +2346262 +2409113 +3808078 +3435148 +2392301 +2914161 +2832060 +2597918 +3082545 +3038923 +2495276 +2506909 +2545401 +2822256 +2995954 +3134945 +2792727 +3006389 +0 +0 +2301515 +1936739 +2291449 +2919897 +2384629 +2030480 +2770327 +3510007 +3056207 +2867131 +3382594 +3355834 +2083164 +2274678 +3079014 +2918965 +2046733 +1412842 +1808457 +2122153 +1729054 +1742028 +1657732 +1998301 +2594793 +2503431 +2291908 +2308774 +1731708 +1977707 +1889173 +2031958 +2801388 +2268227 +2144621 +3087403 +2213068 +1782324 +2634310 +2523654 +2263175 +2312164 +1851637 +1430725 +1543493 +2125529 +3217092 +3390763 +2954161 +2872878 +2982872 +2241509 +2558351 +2834473 +2590739 +3141270 +2639065 +2721982 +2763312 +2874490 +3125301 +3435597 +0 +0 +2579093 +2568433 +2928664 +2901996 +2643324 +2245286 +2037022 +2857059 +2848228 +2882950 +3634654 +3968285 +2669822 +2218335 +3084427 +2724478 +2223239 +2146476 +2321830 +1644237 +2266980 +2617541 +1910573 +2086669 +3108720 +3293743 +2988789 +3088150 +2641865 +2103495 +1714959 +2019496 +2410360 +2718894 +3267981 +3552312 +3165586 +3159479 +3318092 +3220861 +2791459 +2783276 +2905019 +2116534 +1925682 +2294184 +2695123 +3425799 +3188343 +3149984 +2960997 +2533956 +2351191 +2009093 +2145876 +2393042 +2415285 +2322716 +2765877 +2889453 +2816615 +3405894 +0 +0 +2645959 +3077268 +2589982 +2060027 +2462671 +2939545 +2343314 +2479764 +3278237 +2779315 +2373209 +2848508 +2368891 +2290769 +2417590 +2244811 +2167712 +2257572 +2287994 +2172626 +2127556 +2379738 +2324704 +2424555 +2894298 +2902526 +2791628 +3320459 +3302466 +3032473 +2848285 +2455663 +2270629 +2687552 +2855793 +3246456 +3419520 +3120934 +3273259 +3487320 +3309390 +2954763 +2939909 +2906302 +2804659 +2551803 +2057805 +2564117 +3772897 +3612138 +2652228 +2167670 +1560890 +1633371 +2236313 +2885086 +2197033 +1646503 +2341271 +2697549 +2470250 +2689448 +0 +0 +2213717 +2412423 +2730842 +1741793 +2169491 +3748642 +3072763 +2345432 +2915016 +2828845 +2427824 +2643383 +3140045 +3020508 +2355462 +1641171 +1856736 +2514565 +3135044 +2588707 +1595844 +2291126 +3127006 +3773192 +3992705 +2966167 +2478893 +2770523 +2977745 +3155146 +2908121 +2438619 +2603511 +2851998 +2455857 +3167802 +3509052 +3251584 +3182599 +3187653 +4330332 +3606773 +2770244 +3355007 +3472783 +2772580 +2205830 +2583044 +3201916 +3129722 +2454989 +2132623 +2028648 +1941429 +2134149 +3023855 +2954105 +2415619 +2989893 +2708566 +2378766 +2564267 +0 +0 +2165778 +2066838 +2640330 +2032941 +2060913 +3215067 +3326397 +2460952 +3317941 +3464648 +2213792 +2325094 +3225312 +2823884 +1851631 +1355563 +1081870 +1611962 +2987063 +3033094 +2008387 +1955343 +3127786 +3518585 +3675192 +3026291 +2044224 +1823141 +1760605 +2474390 +3104148 +2311259 +2922389 +3371599 +2886455 +2731408 +2378329 +2257124 +2554146 +2706750 +3658331 +3755853 +2714290 +2627364 +3048190 +2662849 +1938116 +2201914 +3182319 +3106708 +1999987 +2172217 +2324110 +1571544 +2092179 +3303380 +3535479 +3045212 +2246339 +2330125 +2553565 +2854196 +0 +0 +2498868 +2585891 +3246514 +2874609 +2147069 +3030330 +3378683 +2913122 +2687885 +2749028 +2377718 +2704733 +2980781 +3195790 +2251047 +1362506 +1691293 +2465670 +3423766 +3507563 +2647205 +2647232 +3190311 +3646864 +3514951 +2682133 +2213688 +2347044 +1146058 +1551423 +2510442 +2104172 +2407001 +2674030 +2787865 +3187772 +2543892 +1930989 +2067212 +2132692 +2839446 +3469673 +2552600 +2258469 +2168974 +2152241 +2357778 +2827437 +3296258 +2350983 +1841100 +2893485 +3044554 +2539808 +2490911 +2513183 +3397915 +3264343 +2679635 +2403424 +2641485 +2745688 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 diff --git a/examples/machsuite/stencil/stencil2d_input.data b/examples/machsuite/stencil/stencil2d_input.data new file mode 100644 index 0000000000..344ea4385a --- /dev/null +++ b/examples/machsuite/stencil/stencil2d_input.data @@ -0,0 +1,8203 @@ +%% +839 +147 +454 +933 +267 +957 +355 +72 +849 +363 +305 +928 +270 +225 +325 +435 +360 +864 +613 +963 +275 +226 +352 +728 +579 +208 +66 +205 +821 +605 +139 +858 +661 +125 +248 +803 +122 +165 +889 +868 +617 +623 +518 +941 +678 +841 +428 +481 +621 +9 +913 +760 +520 +738 +135 +606 +326 +552 +697 +744 +559 +407 +303 +282 +969 +393 +115 +451 +818 +553 +655 +481 +255 +353 +810 +326 +180 +447 +735 +23 +31 +725 +70 +666 +911 +772 +26 +766 +475 +267 +415 +976 +488 +521 +402 +94 +198 +952 +862 +198 +106 +729 +802 +769 +63 +60 +194 +967 +845 +632 +262 +309 +911 +722 +571 +496 +167 +874 +884 +582 +804 +961 +140 +578 +660 +640 +949 +411 +552 +619 +945 +269 +726 +555 +354 +488 +122 +218 +110 +413 +795 +103 +515 +776 +844 +781 +272 +432 +549 +710 +337 +568 +515 +779 +276 +171 +179 +132 +940 +774 +646 +770 +282 +477 +499 +123 +330 +862 +381 +132 +385 +657 +282 +779 +556 +548 +871 +998 +145 +897 +140 +866 +595 +464 +275 +132 +775 +462 +40 +957 +915 +824 +926 +663 +622 +638 +612 +958 +201 +452 +682 +55 +582 +910 +396 +374 +504 +900 +910 +519 +442 +844 +324 +517 +438 +5 +411 +708 +540 +729 +947 +266 +726 +428 +530 +433 +920 +262 +161 +765 +598 +277 +339 +346 +275 +647 +89 +728 +50 +820 +835 +682 +394 +82 +584 +889 +973 +74 +28 +424 +936 +672 +995 +188 +203 +363 +342 +169 +864 +474 +532 +166 +936 +521 +838 +922 +116 +728 +299 +784 +839 +404 +637 +334 +623 +301 +703 +578 +396 +64 +178 +901 +849 +171 +469 +38 +648 +465 +200 +508 +420 +928 +849 +536 +422 +637 +871 +78 +897 +757 +865 +462 +548 +252 +675 +36 +682 +338 +285 +98 +938 +223 +153 +424 +509 +400 +449 +768 +896 +304 +561 +215 +378 +144 +682 +120 +83 +247 +508 +695 +89 +389 +112 +808 +834 +592 +980 +173 +735 +257 +824 +306 +36 +426 +630 +282 +458 +175 +584 +898 +742 +275 +803 +198 +743 +61 +112 +465 +648 +721 +456 +51 +852 +716 +115 +870 +186 +156 +23 +715 +936 +619 +902 +491 +410 +642 +746 +577 +45 +238 +284 +658 +422 +437 +904 +901 +535 +942 +469 +659 +576 +484 +470 +818 +691 +156 +708 +177 +183 +868 +17 +644 +429 +298 +596 +784 +300 +624 +338 +362 +422 +784 +200 +810 +198 +390 +294 +331 +445 +371 +856 +144 +989 +648 +219 +807 +952 +778 +326 +21 +803 +724 +360 +351 +154 +81 +373 +769 +14 +451 +307 +152 +996 +644 +113 +346 +660 +187 +763 +443 +148 +846 +7 +876 +722 +491 +186 +802 +355 +38 +564 +661 +721 +304 +641 +835 +536 +512 +776 +686 +437 +272 +212 +800 +577 +923 +757 +186 +599 +484 +604 +174 +342 +161 +907 +36 +566 +156 +375 +826 +640 +371 +544 +201 +151 +923 +336 +450 +196 +887 +348 +313 +122 +135 +339 +219 +695 +884 +325 +357 +503 +298 +519 +859 +857 +332 +87 +603 +184 +459 +356 +924 +846 +874 +662 +900 +488 +330 +769 +96 +252 +42 +325 +657 +347 +749 +421 +428 +214 +576 +718 +541 +341 +610 +326 +323 +559 +655 +666 +509 +889 +864 +510 +900 +456 +598 +906 +245 +126 +249 +494 +776 +530 +661 +310 +854 +522 +415 +243 +43 +723 +50 +984 +547 +314 +73 +515 +814 +975 +966 +97 +82 +911 +482 +6 +32 +316 +507 +901 +335 +404 +98 +133 +405 +640 +224 +24 +812 +258 +955 +32 +308 +692 +22 +41 +882 +960 +917 +949 +44 +622 +240 +972 +748 +209 +68 +289 +121 +665 +823 +383 +733 +66 +963 +972 +774 +6 +799 +669 +619 +793 +3 +519 +662 +214 +959 +922 +491 +57 +664 +1 +660 +276 +769 +92 +717 +233 +879 +464 +256 +938 +493 +573 +858 +97 +818 +830 +516 +433 +512 +773 +326 +577 +657 +27 +501 +116 +785 +548 +738 +386 +740 +750 +540 +624 +987 +59 +574 +371 +446 +407 +897 +213 +682 +237 +634 +180 +40 +82 +689 +67 +600 +568 +428 +764 +601 +155 +491 +542 +278 +741 +262 +221 +589 +835 +516 +154 +533 +428 +70 +163 +605 +116 +904 +330 +194 +227 +928 +342 +953 +595 +55 +229 +619 +251 +921 +933 +175 +942 +457 +81 +694 +508 +92 +975 +698 +187 +664 +377 +776 +758 +447 +936 +63 +208 +106 +720 +730 +986 +882 +472 +213 +522 +397 +764 +381 +599 +187 +639 +760 +654 +266 +164 +844 +606 +733 +819 +65 +990 +897 +753 +61 +153 +167 +145 +927 +511 +575 +499 +884 +660 +203 +349 +426 +580 +340 +599 +138 +492 +797 +399 +298 +100 +205 +281 +926 +476 +676 +682 +199 +192 +855 +832 +74 +932 +138 +433 +251 +795 +848 +392 +358 +678 +875 +927 +267 +502 +562 +425 +815 +101 +177 +371 +702 +193 +88 +696 +875 +368 +717 +252 +533 +381 +979 +262 +417 +255 +460 +657 +55 +114 +867 +355 +550 +847 +738 +312 +196 +585 +742 +266 +223 +66 +96 +536 +835 +639 +605 +991 +612 +94 +233 +659 +237 +666 +774 +715 +29 +136 +707 +52 +917 +433 +542 +317 +384 +157 +716 +610 +540 +519 +300 +757 +238 +438 +82 +342 +534 +690 +462 +138 +167 +727 +780 +261 +787 +274 +704 +422 +452 +116 +120 +91 +763 +259 +227 +306 +82 +899 +563 +450 +511 +943 +901 +983 +860 +183 +566 +468 +706 +315 +681 +187 +270 +176 +34 +144 +154 +637 +387 +172 +87 +957 +570 +759 +526 +48 +847 +553 +321 +67 +253 +309 +376 +413 +711 +316 +405 +721 +780 +496 +338 +442 +293 +340 +559 +614 +315 +55 +857 +809 +714 +351 +943 +530 +910 +196 +390 +454 +602 +538 +813 +170 +538 +769 +156 +175 +690 +823 +511 +539 +54 +349 +788 +320 +966 +182 +898 +667 +38 +901 +804 +160 +580 +27 +60 +967 +151 +96 +858 +830 +168 +358 +703 +233 +125 +310 +371 +684 +845 +646 +735 +743 +219 +195 +459 +681 +782 +393 +644 +807 +815 +713 +533 +633 +289 +556 +639 +631 +901 +438 +58 +876 +160 +51 +481 +286 +153 +371 +217 +929 +159 +302 +37 +552 +509 +319 +89 +706 +323 +926 +607 +966 +432 +178 +2 +457 +861 +597 +876 +906 +755 +412 +64 +802 +523 +211 +827 +441 +446 +1 +596 +932 +672 +149 +416 +160 +268 +71 +993 +462 +233 +886 +295 +536 +139 +131 +321 +893 +418 +827 +370 +638 +652 +348 +43 +706 +597 +772 +984 +475 +542 +218 +32 +962 +700 +251 +430 +838 +630 +558 +487 +747 +404 +584 +395 +580 +217 +826 +575 +460 +370 +177 +626 +212 +368 +570 +317 +179 +849 +940 +279 +948 +202 +86 +665 +463 +133 +838 +194 +819 +143 +262 +928 +905 +764 +382 +459 +35 +13 +489 +955 +157 +302 +771 +230 +283 +826 +545 +614 +139 +637 +259 +650 +780 +355 +683 +559 +571 +884 +335 +22 +831 +758 +665 +850 +827 +123 +368 +479 +557 +391 +699 +583 +753 +975 +571 +535 +768 +109 +303 +944 +848 +486 +916 +240 +621 +911 +535 +511 +932 +59 +848 +200 +961 +827 +818 +585 +890 +806 +685 +686 +932 +183 +154 +136 +234 +849 +903 +266 +409 +756 +870 +975 +949 +489 +803 +806 +58 +61 +763 +801 +693 +809 +23 +991 +893 +342 +423 +95 +979 +234 +389 +805 +541 +763 +955 +759 +717 +877 +370 +958 +624 +915 +291 +347 +339 +424 +200 +952 +689 +649 +197 +463 +578 +825 +102 +547 +779 +491 +64 +445 +937 +206 +153 +2 +68 +307 +288 +803 +466 +53 +314 +562 +224 +267 +34 +969 +621 +742 +802 +765 +321 +166 +439 +350 +869 +144 +924 +430 +995 +76 +779 +813 +703 +271 +539 +40 +640 +136 +601 +729 +518 +873 +314 +712 +53 +306 +13 +786 +936 +732 +201 +810 +766 +944 +263 +689 +493 +464 +923 +133 +897 +327 +447 +232 +21 +543 +353 +863 +496 +875 +797 +903 +246 +233 +86 +711 +259 +487 +280 +562 +343 +745 +703 +260 +997 +114 +356 +320 +84 +215 +477 +858 +274 +974 +527 +754 +342 +840 +92 +52 +834 +646 +659 +366 +961 +592 +262 +691 +377 +295 +805 +915 +556 +497 +992 +12 +862 +403 +992 +753 +151 +130 +287 +398 +926 +677 +648 +90 +223 +162 +389 +236 +933 +31 +376 +317 +511 +929 +205 +943 +313 +807 +962 +567 +95 +301 +769 +715 +835 +540 +366 +57 +100 +974 +374 +468 +828 +890 +92 +114 +340 +579 +479 +502 +268 +944 +746 +587 +695 +337 +498 +373 +987 +570 +509 +8 +430 +233 +548 +624 +658 +259 +96 +35 +226 +900 +985 +446 +621 +461 +360 +531 +554 +603 +884 +110 +842 +890 +551 +4 +253 +597 +757 +840 +265 +690 +290 +54 +304 +644 +37 +898 +233 +833 +147 +663 +50 +551 +410 +356 +643 +962 +405 +885 +185 +470 +385 +454 +254 +751 +303 +816 +195 +534 +912 +91 +716 +967 +370 +784 +153 +450 +364 +207 +692 +568 +322 +254 +345 +239 +521 +181 +810 +353 +410 +565 +480 +497 +868 +732 +673 +998 +164 +944 +930 +199 +747 +706 +186 +501 +580 +264 +790 +216 +195 +210 +847 +491 +350 +856 +368 +646 +974 +394 +252 +332 +107 +729 +432 +650 +542 +749 +700 +453 +712 +478 +966 +249 +149 +175 +742 +96 +939 +719 +799 +761 +438 +838 +599 +459 +219 +525 +713 +991 +650 +200 +334 +147 +322 +407 +984 +545 +738 +549 +391 +983 +79 +257 +525 +215 +87 +482 +944 +702 +247 +27 +54 +564 +209 +574 +788 +229 +423 +447 +786 +755 +151 +240 +10 +182 +991 +428 +921 +760 +871 +40 +976 +293 +924 +53 +550 +999 +820 +893 +616 +539 +67 +12 +15 +67 +847 +101 +867 +305 +215 +787 +1 +408 +159 +237 +364 +829 +557 +164 +717 +700 +713 +710 +542 +726 +517 +187 +473 +361 +283 +451 +474 +666 +949 +421 +22 +124 +277 +325 +909 +178 +282 +396 +755 +294 +690 +695 +4 +164 +105 +54 +741 +531 +925 +909 +117 +907 +654 +531 +79 +181 +187 +613 +565 +371 +55 +201 +433 +749 +84 +757 +103 +583 +401 +732 +579 +531 +388 +630 +766 +987 +485 +636 +677 +545 +264 +966 +89 +243 +241 +804 +156 +580 +179 +525 +360 +695 +609 +986 +75 +350 +915 +483 +705 +295 +770 +731 +330 +450 +688 +443 +9 +94 +81 +308 +54 +448 +374 +480 +274 +325 +728 +921 +569 +292 +209 +493 +500 +569 +236 +174 +319 +715 +382 +250 +138 +497 +413 +983 +79 +385 +626 +578 +997 +111 +321 +326 +365 +690 +438 +518 +640 +520 +501 +998 +771 +821 +633 +375 +352 +218 +892 +181 +450 +934 +581 +869 +743 +72 +643 +679 +964 +665 +692 +905 +453 +245 +445 +44 +640 +858 +456 +768 +783 +106 +138 +901 +462 +170 +994 +258 +91 +84 +575 +418 +919 +750 +857 +815 +297 +274 +169 +82 +246 +805 +205 +887 +434 +18 +942 +271 +272 +992 +218 +197 +864 +521 +95 +726 +81 +711 +999 +118 +343 +914 +122 +330 +97 +299 +150 +911 +817 +886 +965 +668 +826 +488 +386 +100 +135 +70 +811 +972 +628 +47 +207 +548 +234 +12 +225 +711 +62 +98 +623 +608 +668 +461 +686 +420 +93 +420 +823 +229 +619 +43 +869 +25 +452 +599 +321 +359 +431 +150 +831 +539 +428 +269 +820 +197 +635 +829 +840 +42 +49 +149 +162 +375 +537 +213 +730 +302 +455 +350 +393 +102 +157 +485 +17 +25 +918 +590 +974 +79 +543 +137 +110 +205 +729 +311 +588 +886 +963 +74 +763 +692 +183 +826 +654 +523 +86 +657 +817 +758 +454 +150 +863 +669 +941 +109 +898 +284 +280 +809 +103 +835 +246 +634 +713 +569 +346 +426 +366 +616 +244 +805 +43 +765 +115 +746 +645 +134 +430 +223 +717 +23 +664 +460 +778 +866 +875 +528 +43 +403 +74 +444 +253 +557 +13 +82 +906 +887 +454 +890 +841 +108 +169 +661 +292 +473 +562 +850 +283 +534 +821 +549 +892 +456 +303 +520 +103 +234 +793 +876 +520 +862 +548 +692 +940 +33 +121 +207 +191 +625 +559 +290 +954 +980 +862 +53 +218 +284 +607 +91 +838 +154 +900 +117 +135 +128 +746 +650 +749 +372 +781 +575 +790 +740 +596 +956 +197 +739 +861 +849 +513 +656 +688 +541 +502 +137 +468 +719 +871 +363 +432 +590 +337 +53 +796 +164 +671 +513 +373 +178 +792 +907 +930 +343 +562 +956 +753 +362 +328 +290 +436 +940 +632 +145 +725 +424 +851 +831 +996 +703 +25 +860 +464 +831 +728 +330 +104 +133 +559 +428 +418 +242 +79 +768 +169 +475 +932 +217 +362 +591 +950 +420 +844 +934 +649 +999 +356 +712 +693 +143 +301 +474 +368 +651 +198 +567 +557 +735 +824 +318 +957 +982 +782 +923 +526 +665 +289 +848 +28 +430 +704 +367 +173 +280 +241 +62 +546 +124 +483 +524 +378 +574 +196 +811 +996 +49 +354 +649 +84 +266 +807 +162 +303 +709 +486 +806 +788 +679 +586 +867 +571 +320 +425 +560 +914 +998 +436 +619 +232 +702 +173 +259 +970 +540 +683 +262 +258 +792 +313 +951 +223 +44 +963 +179 +851 +638 +203 +399 +430 +606 +772 +351 +133 +451 +176 +987 +736 +65 +856 +886 +273 +107 +241 +504 +160 +425 +247 +853 +525 +778 +496 +152 +178 +408 +293 +93 +528 +129 +562 +544 +169 +781 +859 +33 +618 +706 +857 +866 +430 +331 +847 +957 +913 +974 +85 +445 +585 +647 +616 +484 +732 +63 +618 +980 +149 +478 +455 +672 +951 +316 +424 +816 +251 +224 +833 +110 +969 +432 +323 +858 +179 +652 +817 +106 +229 +487 +601 +128 +16 +777 +621 +659 +772 +360 +765 +315 +307 +424 +150 +484 +885 +80 +831 +862 +882 +70 +112 +607 +262 +962 +29 +91 +65 +563 +233 +897 +280 +584 +780 +163 +502 +706 +642 +282 +461 +987 +151 +129 +672 +380 +814 +639 +392 +31 +980 +485 +666 +739 +387 +285 +25 +735 +321 +427 +231 +497 +162 +904 +96 +557 +638 +823 +83 +732 +994 +101 +130 +287 +942 +349 +347 +329 +423 +53 +934 +820 +256 +514 +399 +923 +700 +335 +541 +619 +81 +778 +8 +423 +626 +404 +173 +36 +815 +210 +6 +450 +938 +359 +650 +492 +99 +736 +625 +537 +630 +837 +740 +400 +552 +170 +822 +351 +533 +178 +488 +969 +501 +49 +879 +659 +850 +123 +627 +153 +899 +456 +327 +550 +788 +80 +843 +973 +99 +990 +631 +635 +509 +300 +466 +412 +922 +788 +98 +242 +110 +282 +543 +431 +821 +644 +767 +253 +968 +420 +942 +954 +728 +748 +400 +623 +831 +717 +95 +173 +181 +457 +904 +432 +420 +366 +501 +865 +830 +469 +329 +204 +559 +541 +636 +301 +848 +196 +92 +938 +852 +836 +515 +777 +715 +878 +870 +412 +788 +557 +81 +776 +861 +318 +711 +790 +627 +92 +566 +27 +850 +652 +581 +758 +621 +49 +86 +538 +270 +10 +603 +863 +911 +351 +974 +913 +965 +458 +714 +744 +612 +771 +711 +122 +658 +32 +863 +929 +731 +246 +742 +900 +818 +86 +990 +847 +283 +842 +710 +739 +225 +352 +407 +762 +142 +124 +735 +963 +55 +944 +380 +817 +848 +174 +677 +97 +166 +707 +305 +677 +727 +464 +197 +856 +369 +906 +3 +964 +462 +446 +455 +736 +343 +209 +880 +537 +65 +993 +19 +810 +897 +873 +470 +817 +187 +760 +220 +596 +787 +662 +487 +729 +526 +894 +326 +32 +965 +543 +873 +438 +788 +404 +995 +190 +21 +643 +877 +925 +280 +237 +759 +136 +12 +289 +80 +828 +826 +140 +91 +153 +806 +380 +826 +50 +716 +59 +900 +848 +74 +742 +424 +367 +909 +431 +398 +854 +110 +497 +414 +218 +884 +994 +788 +27 +747 +23 +346 +572 +767 +460 +205 +307 +834 +225 +47 +384 +300 +326 +164 +139 +956 +595 +17 +181 +726 +545 +96 +511 +336 +592 +878 +276 +43 +215 +380 +37 +368 +9 +274 +473 +614 +17 +375 +838 +670 +990 +243 +829 +888 +153 +128 +301 +938 +768 +951 +9 +721 +336 +23 +987 +934 +747 +484 +653 +369 +24 +436 +775 +700 +687 +874 +99 +92 +161 +291 +144 +39 +334 +610 +753 +481 +929 +759 +664 +456 +27 +388 +610 +615 +396 +486 +881 +938 +367 +405 +912 +673 +369 +25 +615 +466 +540 +432 +713 +300 +112 +213 +379 +19 +605 +842 +12 +799 +563 +288 +735 +601 +648 +245 +550 +916 +693 +691 +591 +750 +464 +745 +5 +161 +982 +455 +381 +652 +328 +582 +198 +218 +46 +839 +440 +616 +45 +454 +500 +863 +641 +62 +26 +565 +317 +552 +901 +865 +10 +536 +966 +841 +606 +781 +780 +429 +833 +566 +367 +972 +759 +861 +508 +426 +759 +484 +443 +743 +806 +782 +293 +176 +609 +348 +758 +598 +451 +4 +502 +351 +454 +566 +691 +163 +817 +414 +42 +215 +779 +672 +97 +31 +829 +253 +255 +928 +402 +161 +499 +630 +851 +532 +301 +218 +562 +645 +250 +316 +306 +203 +388 +622 +788 +620 +559 +539 +165 +391 +10 +649 +736 +723 +522 +784 +705 +109 +706 +251 +21 +517 +481 +278 +475 +955 +63 +288 +650 +217 +697 +858 +660 +385 +586 +128 +435 +370 +892 +84 +794 +936 +369 +261 +115 +746 +630 +921 +2 +317 +437 +241 +638 +481 +155 +731 +607 +398 +463 +353 +889 +247 +588 +931 +236 +98 +716 +78 +373 +735 +160 +991 +792 +898 +771 +517 +287 +547 +180 +732 +17 +573 +84 +396 +945 +520 +920 +242 +73 +299 +512 +6 +314 +164 +21 +198 +858 +938 +348 +705 +813 +398 +936 +381 +631 +653 +528 +182 +933 +847 +663 +136 +851 +820 +625 +113 +379 +882 +666 +268 +208 +987 +514 +389 +704 +106 +394 +980 +986 +524 +103 +761 +202 +307 +270 +480 +889 +886 +828 +952 +335 +457 +421 +806 +122 +927 +225 +960 +299 +356 +692 +213 +10 +563 +880 +337 +590 +747 +101 +963 +624 +10 +197 +670 +223 +101 +142 +927 +753 +152 +918 +133 +32 +915 +98 +712 +761 +537 +330 +811 +174 +131 +336 +101 +872 +356 +279 +352 +578 +651 +867 +148 +229 +911 +77 +150 +546 +820 +356 +12 +569 +673 +889 +127 +301 +758 +254 +519 +992 +5 +219 +789 +959 +335 +334 +716 +360 +522 +751 +971 +250 +299 +965 +140 +25 +91 +360 +988 +849 +909 +782 +727 +711 +620 +859 +461 +459 +312 +305 +160 +281 +581 +344 +3 +93 +95 +782 +631 +731 +2 +467 +873 +828 +404 +819 +127 +745 +698 +841 +767 +570 +118 +722 +324 +974 +128 +521 +525 +343 +399 +8 +141 +705 +146 +591 +569 +278 +518 +490 +73 +183 +754 +413 +423 +86 +52 +500 +459 +816 +159 +203 +653 +836 +178 +418 +605 +698 +946 +730 +629 +43 +178 +4 +335 +311 +807 +10 +534 +788 +894 +354 +421 +631 +848 +960 +881 +763 +361 +570 +740 +518 +972 +275 +890 +898 +96 +53 +782 +421 +267 +996 +341 +169 +959 +969 +884 +717 +531 +883 +722 +659 +894 +437 +61 +942 +13 +311 +29 +635 +333 +692 +451 +895 +355 +404 +824 +934 +964 +394 +699 +343 +629 +680 +169 +160 +586 +283 +98 +318 +664 +94 +772 +28 +698 +503 +453 +47 +230 +308 +560 +774 +681 +710 +287 +774 +877 +477 +958 +814 +667 +168 +276 +352 +260 +579 +587 +141 +173 +674 +427 +1 +827 +348 +101 +190 +873 +258 +805 +365 +856 +530 +127 +675 +149 +768 +226 +985 +512 +206 +814 +247 +276 +168 +597 +650 +527 +290 +569 +564 +300 +387 +767 +585 +786 +931 +947 +402 +156 +752 +835 +912 +196 +17 +168 +935 +38 +328 +849 +850 +124 +549 +579 +574 +805 +916 +517 +812 +722 +647 +787 +82 +718 +803 +982 +878 +973 +496 +343 +363 +853 +973 +593 +117 +946 +976 +761 +942 +77 +437 +58 +429 +470 +549 +53 +807 +539 +636 +466 +259 +20 +504 +101 +906 +154 +284 +377 +888 +430 +362 +767 +592 +836 +255 +37 +766 +379 +192 +493 +521 +599 +167 +234 +546 +362 +378 +333 +446 +594 +641 +447 +841 +714 +884 +393 +165 +245 +372 +500 +725 +102 +837 +189 +651 +221 +223 +28 +233 +116 +553 +660 +210 +876 +978 +176 +962 +54 +357 +823 +210 +767 +246 +511 +516 +872 +854 +214 +947 +951 +376 +431 +321 +123 +601 +126 +396 +869 +529 +823 +6 +810 +515 +464 +831 +689 +59 +753 +618 +265 +559 +87 +441 +999 +638 +318 +903 +848 +321 +536 +711 +510 +385 +364 +646 +415 +438 +389 +594 +135 +221 +222 +27 +898 +899 +830 +356 +526 +118 +633 +847 +742 +853 +556 +828 +549 +646 +979 +558 +966 +658 +429 +251 +35 +516 +156 +699 +278 +790 +310 +554 +85 +839 +157 +260 +735 +470 +819 +861 +430 +45 +149 +63 +645 +471 +722 +712 +907 +719 +740 +991 +584 +857 +880 +65 +126 +164 +482 +79 +80 +243 +27 +257 +329 +562 +216 +648 +713 +795 +189 +436 +5 +51 +755 +713 +193 +120 +873 +151 +633 +76 +708 +805 +647 +330 +528 +519 +864 +744 +815 +157 +539 +147 +959 +873 +977 +481 +133 +956 +577 +28 +862 +698 +135 +471 +215 +464 +793 +7 +531 +115 +369 +947 +695 +565 +558 +928 +285 +325 +923 +614 +306 +62 +504 +648 +5 +767 +546 +197 +941 +134 +591 +464 +169 +962 +785 +434 +409 +301 +104 +646 +839 +670 +884 +878 +59 +785 +483 +213 +393 +350 +422 +315 +851 +124 +920 +576 +423 +257 +126 +325 +94 +478 +501 +790 +217 +104 +311 +25 +383 +979 +998 +445 +263 +120 +298 +836 +54 +314 +227 +197 +574 +53 +656 +11 +789 +116 +46 +538 +716 +363 +304 +924 +393 +899 +159 +91 +884 +210 +427 +697 +82 +664 +766 +692 +108 +827 +438 +670 +710 +398 +550 +665 +98 +670 +5 +241 +944 +702 +115 +961 +126 +592 +502 +978 +392 +319 +586 +783 +794 +846 +719 +570 +801 +998 +380 +433 +785 +548 +809 +392 +21 +148 +988 +345 +115 +289 +149 +566 +839 +134 +154 +918 +522 +351 +89 +538 +363 +931 +812 +842 +869 +912 +37 +602 +815 +591 +115 +105 +627 +580 +577 +94 +233 +608 +167 +206 +851 +809 +373 +754 +524 +437 +698 +739 +121 +2 +353 +262 +335 +94 +752 +121 +183 +291 +43 +467 +679 +991 +296 +885 +582 +172 +296 +765 +702 +426 +94 +367 +831 +336 +266 +248 +724 +924 +757 +995 +942 +332 +947 +709 +669 +534 +847 +458 +597 +193 +100 +553 +834 +902 +358 +905 +729 +490 +254 +781 +948 +58 +426 +439 +260 +325 +425 +22 +356 +67 +896 +495 +368 +763 +484 +889 +921 +669 +442 +580 +9 +781 +252 +646 +36 +443 +589 +174 +49 +811 +711 +242 +525 +11 +480 +247 +8 +227 +672 +743 +148 +461 +141 +862 +211 +551 +665 +922 +940 +973 +823 +381 +671 +873 +193 +976 +232 +852 +479 +336 +544 +782 +146 +673 +563 +237 +710 +278 +375 +27 +459 +340 +484 +822 +224 +249 +957 +401 +851 +93 +247 +171 +168 +523 +752 +721 +101 +825 +60 +43 +38 +520 +492 +348 +766 +757 +834 +788 +279 +969 +860 +324 +148 +414 +230 +528 +361 +750 +958 +754 +995 +302 +75 +82 +114 +324 +169 +415 +488 +265 +283 +757 +310 +270 +170 +103 +424 +216 +80 +238 +568 +231 +699 +205 +780 +520 +366 +737 +617 +153 +462 +520 +340 +887 +201 +189 +286 +497 +433 +807 +478 +57 +915 +775 +282 +248 +800 +584 +260 +633 +101 +987 +946 +36 +804 +929 +195 +283 +714 +421 +175 +103 +546 +6 +294 +487 +734 +230 +433 +8 +103 +581 +221 +357 +6 +678 +335 +581 +979 +837 +909 +213 +111 +772 +735 +160 +131 +635 +236 +909 +887 +254 +660 +605 +928 +967 +509 +965 +277 +21 +323 +109 +429 +103 +431 +788 +951 +359 +460 +198 +43 +385 +30 +980 +689 +223 +42 +43 +794 +373 +896 +71 +20 +175 +978 +317 +115 +529 +772 +314 +459 +769 +44 +351 +848 +589 +661 +751 +446 +514 +817 +129 +41 +802 +209 +839 +312 +103 +310 +473 +982 +636 +112 +848 +381 +185 +964 +619 +450 +766 +199 +317 +914 +111 +819 +819 +708 +548 +694 +437 +87 +323 +520 +690 +159 +305 +866 +658 +537 +491 +513 +46 +635 +414 +997 +78 +147 +616 +894 +195 +857 +703 +622 +147 +118 +533 +984 +672 +242 +680 +106 +134 +319 +8 +144 +83 +898 +546 +198 +351 +525 +605 +547 +590 +584 +434 +368 +600 +163 +140 +654 +670 +759 +577 +849 +445 +710 +518 +759 +255 +161 +686 +165 +221 +666 +79 +440 +855 +269 +536 +327 +427 +402 +726 +269 +470 +61 +769 +961 +776 +701 +148 +239 +478 +722 +420 +607 +65 +840 +20 +363 +998 +709 +756 +785 +415 +253 +175 +313 +373 +38 +917 +141 +294 +279 +998 +422 +652 +883 +753 +239 +300 +870 +377 +985 +420 +756 +51 +361 +547 +708 +904 +504 +96 +289 +306 +990 +100 +639 +913 +640 +921 +420 +402 +559 +342 +88 +474 +834 +165 +166 +152 +715 +247 +756 +45 +79 +881 +344 +850 +808 +472 +291 +689 +466 +517 +98 +109 +344 +736 +562 +839 +315 +76 +500 +116 +961 +616 +841 +793 +238 +932 +449 +992 +75 +456 +64 +492 +957 +896 +243 +820 +24 +192 +956 +621 +78 +777 +950 +370 +568 +825 +502 +475 +105 +222 +39 +361 +92 +49 +798 +203 +591 +524 +175 +268 +192 +863 +955 +125 +587 +475 +960 +973 +446 +662 +490 +676 +837 +869 +713 +772 +959 +974 +353 +63 +338 +920 +660 +971 +682 +441 +872 +553 +395 +996 +601 +412 +841 +278 +170 +772 +183 +98 +502 +318 +345 +888 +563 +551 +713 +95 +754 +685 +312 +749 +751 +786 +609 +966 +242 +509 +908 +804 +351 +910 +850 +524 +295 +550 +188 +203 +867 +316 +446 +258 +622 +143 +64 +521 +425 +776 +108 +589 +583 +654 +941 +750 +817 +380 +334 +6 +888 +340 +829 +69 +599 +673 +958 +950 +383 +270 +437 +338 +156 +64 +35 +279 +611 +918 +477 +742 +417 +24 +681 +466 +740 +23 +173 +865 +362 +856 +844 +624 +416 +582 +624 +13 +165 +157 +844 +672 +730 +515 +26 +666 +842 +403 +762 +156 +831 +839 +204 +218 +670 +313 +416 +769 +544 +679 +640 +895 +98 +959 +999 +210 +226 +462 +195 +64 +574 +871 +525 +844 +108 +127 +263 +249 +251 +759 +994 +79 +39 +120 +341 +476 +183 +738 +433 +42 +331 +861 +974 +380 +350 +939 +554 +380 +844 +811 +60 +397 +911 +3 +62 +642 +27 +76 +987 +787 +773 +271 +133 +260 +302 +57 +321 +97 +877 +900 +509 +37 +731 +890 +634 +969 +835 +270 +695 +541 +374 +537 +881 +799 +722 +770 +885 +357 +426 +221 +350 +632 +447 +389 +105 +461 +501 +736 +192 +666 +293 +421 +254 +799 +51 +156 +218 +687 +288 +585 +411 +852 +528 +488 +938 +249 +368 +772 +744 +963 +96 +335 +442 +929 +487 +810 +701 +718 +406 +32 +215 +942 +865 +336 +719 +986 +279 +382 +723 +488 +844 +713 +51 +563 +431 +27 +866 +343 +688 +400 +805 +820 +884 +308 +865 +146 +824 +293 +779 +509 +326 +925 +392 +606 +592 +556 +569 +271 +141 +44 +397 +688 +351 +277 +619 +697 +710 +798 +959 +600 +404 +939 +721 +472 +348 +69 +92 +744 +136 +137 +906 +844 +554 +993 +756 +362 +394 +816 +938 +299 +192 +385 +86 +322 +526 +528 +489 +80 +243 +343 +96 +252 +354 +288 +666 +779 +579 +202 +485 +253 +995 +201 +725 +547 +616 +98 +367 +170 +736 +809 +813 +916 +532 +356 +30 +221 +525 +835 +985 +67 +63 +412 +490 +173 +942 +421 +517 +511 +932 +148 +128 +242 +380 +410 +403 +715 +555 +961 +899 +623 +448 +925 +687 +143 +294 +213 +703 +593 +446 +451 +718 +325 +141 +753 +177 +244 +824 +567 +155 +145 +732 +570 +805 +532 +661 +685 +93 +816 +856 +965 +819 +817 +968 +120 +200 +492 +151 +841 +803 +319 +234 +814 +491 +518 +674 +22 +534 +144 +980 +97 +673 +237 +429 +984 +191 +723 +708 +603 +74 +364 +838 +684 +799 +170 +102 +623 +317 +596 +452 +725 +172 +817 +230 +805 +684 +326 +69 +462 +598 +658 +297 +519 +278 +231 +886 +77 +690 +920 +826 +492 +391 +205 +320 +878 +400 +295 +366 +312 +199 +215 +213 +415 +677 +358 +35 +41 +460 +32 +332 +620 +309 +345 +948 +541 +639 +546 +523 +939 +793 +502 +603 +515 +709 +953 +498 +749 +675 +70 +48 +367 +545 +692 +933 +447 +552 +35 +822 +631 +420 +320 +429 +539 +274 +101 +332 +559 +290 +801 +370 +989 +356 +948 +534 +940 +123 +240 +21 +859 +226 +380 +658 +186 +673 +959 +845 +33 +369 +213 +961 +702 +461 +838 +789 +150 +929 +161 +987 +336 +458 +680 +724 +91 +149 +35 +589 +829 +418 +301 +120 +267 +435 +408 +949 +997 +451 +945 +550 +537 +332 +639 +528 +367 +526 +175 +202 +855 +722 +633 +946 +938 +100 +987 +266 +859 +268 +754 +628 +211 +934 +234 +859 +112 +571 +129 +545 +881 +433 +452 +98 +148 +926 +746 +853 +947 +302 +813 +342 +676 +790 +370 +6 +789 +472 +938 +724 +640 +193 +569 +426 +849 +955 +285 +870 +473 +177 +432 +383 +136 +97 +770 +936 +128 +85 +122 +802 +607 +435 +169 +188 +79 +60 +953 +51 +568 +251 +815 +912 +636 +749 +770 +49 +265 +209 +492 +923 +403 +94 +619 +596 +308 +853 +282 +89 +157 +669 +23 +681 +402 +347 +717 +952 +16 +804 +980 +45 +713 +128 +175 +835 +282 +230 +765 +339 +158 +264 +94 +543 +525 +620 +855 +623 +977 +118 +275 +892 +427 +313 +278 +506 +202 +972 +364 +181 +329 +6 +753 +771 +87 +244 +551 +201 +535 +207 +520 +531 +597 +821 +883 +503 +349 +251 +493 +468 +352 +594 +29 +127 +14 +728 +548 +620 +90 +633 +541 +306 +202 +55 +675 +113 +13 +908 +481 +124 +243 +602 +777 +932 +261 +884 +911 +248 +246 +888 +251 +129 +337 +44 +442 +903 +134 +967 +506 +241 +94 +471 +236 +656 +589 +22 +805 +527 +288 +396 +373 +132 +891 +592 +393 +208 +850 +202 +813 +376 +179 +764 +938 +298 +514 +717 +608 +6 +792 +411 +46 +72 +880 +475 +227 +353 +406 +76 +166 +697 +1 +441 +357 +277 +587 +640 +164 +298 +328 +234 +584 +35 +154 +436 +755 +789 +476 +237 +618 +673 +196 +713 +183 +468 +382 +803 +741 +550 +990 +247 +378 +660 +703 +945 +906 +213 +388 +885 +770 +345 +365 +357 +78 +867 +243 +991 +921 +63 +597 +368 +967 +946 +865 +468 +305 +348 +731 +904 +816 +429 +566 +819 +253 +630 +629 +562 +400 +512 +603 +774 +410 +106 +3 +223 +697 +709 +405 +548 +836 +685 +26 +455 +923 +210 +46 +526 +592 +409 +390 +43 +732 +680 +988 +903 +460 +8 +861 +409 +853 +272 +946 +19 +120 +562 +153 +410 +460 +375 +532 +613 +844 +84 +540 +405 +510 +118 +551 +411 +78 +313 +980 +265 +2 +441 +16 +247 +488 +463 +40 +112 +136 +930 +59 +463 +46 +972 +499 +859 +458 +246 +664 +500 +614 +452 +284 +180 +633 +479 +482 +375 +249 +59 +514 +38 +766 +512 +324 +138 +12 +607 +235 +455 +336 +729 +100 +356 +125 +706 +856 +399 +957 +215 +363 +21 +619 +93 +238 +17 +846 +293 +994 +325 +94 +649 +62 +209 +989 +439 +988 +787 +372 +314 +373 +877 +59 +924 +243 +805 +269 +184 +767 +532 +994 +855 +914 +664 +369 +945 +577 +48 +533 +824 +457 +985 +279 +181 +35 +888 +861 +520 +702 +372 +754 +455 +120 +649 +673 +634 +837 +324 +482 +810 +764 +587 +955 +687 +504 +28 +601 +429 +307 +823 +816 +959 +417 +955 +70 +539 +374 +296 +824 +971 +19 +978 +815 +290 +314 +861 +975 +51 +273 +170 +741 +628 +574 +844 +265 +760 +809 +125 +580 +659 +656 +303 +753 +34 +656 +549 +975 +627 +795 +852 +222 +545 +415 +269 +393 +176 +480 +764 +906 +279 +201 +929 +95 +469 +481 +718 +65 +629 +808 +47 +67 +53 +175 +716 +319 +709 +912 +624 +113 +422 +804 +33 +717 +693 +360 +351 +55 +54 +367 +26 +733 +641 +962 +241 +101 +702 +902 +63 +417 +529 +378 +150 +501 +65 +675 +515 +956 +140 +741 +923 +68 +902 +466 +619 +580 +59 +112 +18 +809 +332 +199 +381 +97 +108 +250 +278 +495 +142 +742 +877 +902 +537 +634 +909 +449 +210 +3 +672 +798 +402 +916 +3 +607 +760 +1 +205 +643 +476 +373 +933 +283 +433 +759 +940 +483 +418 +42 +609 +482 +853 +802 +366 +850 +128 +47 +672 +982 +534 +923 +146 +93 +182 +845 +197 +796 +268 +821 +254 +708 +226 +786 +934 +910 +336 +691 +409 +92 +263 +993 +533 +36 +147 +655 +286 +529 +771 +73 +530 +845 +55 +268 +798 +729 +982 +908 +330 +354 +120 +292 +260 +805 +842 +969 +311 +167 +769 +897 +494 +873 +464 +908 +535 +807 +449 +392 +240 +437 +499 +549 +652 +422 +557 +906 +399 +473 +844 +376 +783 +12 +328 +795 +255 +214 +352 +882 +150 +946 +623 +346 +566 +711 +300 +976 +61 +82 +710 +42 +619 +444 +2 +924 +910 +447 +129 +650 +249 +545 +848 +425 +192 +108 +617 +341 +12 +891 +557 +948 +154 +84 +363 +475 +640 +619 +801 +511 +22 +307 +912 +115 +666 +707 +138 +304 +845 +136 +802 +197 +445 +574 +396 +173 +700 +894 +32 +332 +617 +194 +428 +122 +267 +856 +110 +385 +773 +600 +318 +947 +680 +947 +627 +253 +230 +317 +191 +898 +110 +251 +250 +653 +603 +902 +967 +105 +905 +674 +76 +107 +698 +628 +683 +516 +79 +892 +329 +198 +551 +111 +145 +307 +692 +308 +896 +776 +458 +222 +599 +920 +255 +896 +547 +946 +887 +883 +555 +844 +485 +27 +454 +758 +611 +35 +154 +995 +969 +673 +599 +871 +24 +276 +23 +649 +373 +137 +192 +67 +284 +517 +472 +738 +513 +917 +24 +947 +698 +793 +880 +151 +361 +851 +345 +714 +690 +795 +474 +5 +632 +937 +588 +937 +152 +508 +881 +823 +625 +982 +985 +658 +689 +54 +556 +615 +847 +974 +380 +836 +723 +120 +716 +526 +648 +271 +434 +125 +97 +307 +554 +682 +981 +277 +732 +525 +138 +653 +284 +504 +178 +102 +423 +110 +746 +815 +201 +745 +829 +712 +743 +537 +366 +923 +998 +557 +83 +968 +820 +955 +227 +812 +537 +942 +693 +354 +714 +212 +993 +170 +594 +13 +142 +683 +697 +142 +807 +187 +655 +670 +455 +271 +789 +969 +579 +337 +441 +354 +758 +150 +580 +499 +445 +24 +891 +791 +95 +824 +563 +474 +829 +525 +320 +90 +232 +962 +195 +704 +310 +268 +821 +845 +583 +19 +167 +962 +91 +228 +216 +368 +734 +252 +515 +314 +632 +274 +689 +836 +454 +948 +924 +690 +161 +923 +619 +995 +849 +801 +203 +757 +661 +112 +667 +217 +603 +440 +437 +617 +845 +178 +872 +943 +625 +651 +280 +190 +765 +909 +103 +500 +942 +275 +465 +704 +643 +182 +629 +524 +1 +667 +854 +915 +715 +956 +108 +201 +779 +448 +548 +381 +73 +657 +314 +805 +610 +600 +324 +89 +331 +191 +880 +388 +115 +682 +547 +425 +581 +271 +28 +937 +970 +511 +237 +387 +547 +951 +336 +574 +448 +330 +258 +527 +422 +814 +220 +350 +129 +793 +936 +370 +552 +328 +136 +129 +177 +731 +913 +843 +880 +585 +951 +372 +224 +729 +357 +976 +778 +127 +294 +702 +469 +320 +779 +243 +409 +358 +276 +777 +488 +244 +66 +617 +465 +80 +839 +343 +840 +929 +705 +61 +609 +437 +896 +849 +56 +628 +528 +223 +945 +776 +987 +558 +937 +413 +497 +311 +908 +258 +716 +326 +222 +793 +396 +646 +524 +233 +577 +911 +479 +165 +740 +108 +956 +251 +730 +506 +856 +907 +632 +597 +891 +701 +646 +461 +163 +878 +424 +134 +565 +297 +63 +234 +829 +560 +869 +333 +817 +633 +865 +77 +166 +222 +387 +145 +884 +51 +443 +962 +452 +902 +603 +523 +140 +256 +14 +956 +557 +100 +306 +330 +749 +464 +977 +946 +383 +22 +186 +782 +828 +259 +739 +140 +724 +403 +518 +103 +106 +354 +991 +419 +657 +814 +495 +154 +630 +412 +304 +951 +754 +967 +805 +271 +690 +844 +413 +247 +38 +984 +538 +391 +480 +758 +772 +823 +720 +96 +672 +667 +862 +32 +513 +432 +14 +918 +473 +683 +495 +752 +331 +456 +162 +528 +462 +607 +533 +219 +114 +948 +779 +9 +966 +396 +591 +78 +347 +658 +716 +266 +210 +111 +265 +196 +505 +127 +204 +268 +319 +338 +187 +760 +661 +496 +155 +380 +385 +202 +666 +858 +596 +530 +149 +39 +1 +439 +417 +828 +268 +622 +953 +50 +995 +473 +965 +111 +471 +794 +884 +859 +86 +947 +981 +773 +963 +548 +877 +20 +95 +151 +712 +660 +135 +18 +181 +641 +915 +217 +18 +995 +797 +1 +247 +436 +315 +136 +205 +576 +145 +331 +487 +657 +152 +516 +309 +13 +308 +98 +448 +704 +959 +209 +455 +577 +536 +337 +12 +835 +933 +819 +311 +383 +53 +34 +21 +876 +791 +599 +672 +524 +64 +607 +400 +342 +140 +231 +742 +243 +609 +380 +408 +84 +117 +485 +703 +970 +255 +117 +562 +301 +752 +673 +942 +479 +588 +138 +799 +275 +482 +803 +537 +44 +918 +467 +415 +824 +367 +371 +853 +243 +89 +674 +402 +211 +314 +233 +918 +712 +304 +400 +890 +679 +769 +513 +768 +889 +474 +104 +640 +548 +838 +302 +854 +352 +376 +405 +795 +402 +120 +429 +624 +480 +377 +239 +404 +115 +933 +461 +574 +874 +531 +239 +676 +971 +82 +14 +784 +601 +925 +325 +778 +235 +686 +895 +161 +876 +104 +347 +345 +782 +767 +757 +64 +504 +141 +928 +433 +251 +259 +345 +935 +946 +562 +8 +496 +829 +723 +835 +213 +784 +973 +151 +161 +42 +541 +161 +593 +616 +444 +393 +687 +54 +407 +482 +99 +53 +896 +904 +554 +74 +506 +945 +716 +542 +452 +772 +625 +710 +746 +259 +512 +912 +76 +741 +178 +240 +678 +368 +876 +244 +323 +291 +150 +602 +408 +984 +28 +997 +922 +235 +635 +419 +256 +667 +656 +684 +222 +522 +907 +666 +498 +360 +622 +516 +82 +671 +978 +76 +540 +680 +240 +706 +940 +831 +486 +464 +220 +957 +616 +773 +760 +628 +578 +925 +439 +62 +325 +963 +419 +935 +952 +600 +561 +59 +993 +873 +538 +492 +331 +37 +703 +687 +622 +346 +823 +867 +893 +183 +740 +876 +696 +402 +746 +138 +324 +960 +635 +326 +618 +342 +889 +839 +166 +937 +468 +216 +945 +515 +187 +378 +969 +245 +283 +530 +871 +310 +960 +515 +562 +624 +221 +325 +377 +62 +165 +721 +791 +316 +726 +660 +735 +625 +673 +631 +321 +842 +361 +465 +762 +388 +635 +68 +631 +126 +92 +737 +163 +155 +27 +438 +857 +447 +324 +83 +389 +907 +785 +871 +883 +841 +145 +193 +384 +148 +114 +194 +689 +412 +877 +178 +123 +484 +820 +991 +105 +53 +536 +799 +20 +16 +139 +462 +468 +401 +493 +921 +71 +458 +268 +88 +516 +733 +10 +147 +519 +797 +112 +78 +225 +33 +951 +948 +473 +319 +435 +363 +781 +141 +563 +799 +639 +101 +228 +595 +111 +456 +971 +319 +269 +470 +427 +48 +430 +608 +807 +127 +205 +772 +24 +251 +266 +368 +719 +914 +69 +762 +848 +499 +963 +43 +733 +731 +314 +998 +839 +724 +248 +339 +130 +349 +645 +813 +958 +757 +659 +224 +451 +986 +878 +591 +578 +77 +629 +291 +869 +743 +712 +873 +756 +643 +596 +613 +825 +486 +588 +377 +970 +145 +884 +158 +712 +833 +658 +233 +882 +699 +239 +30 +478 +872 +630 +363 +433 +647 +945 +296 +713 +15 +917 +458 +286 +127 +303 +33 +262 +497 +366 +219 +461 +263 +692 +801 +911 +451 +616 +225 +227 +343 +130 +731 +63 +999 +404 +558 +47 +102 +6 +184 +136 +601 +639 +542 +569 +838 +201 +289 +611 +283 +232 +826 +241 +621 +261 +666 +150 +865 +743 +82 +554 +896 +255 +818 +780 +548 +849 +841 +823 +211 +645 +983 +308 +788 +867 +166 +507 +912 +779 +96 +417 +977 +241 +310 +908 +381 +134 +512 +438 +195 +915 +772 +823 +990 +405 +991 +305 +670 +850 +445 +846 +477 +227 +449 +175 +125 +989 +938 +447 +844 +504 +872 +612 +725 +201 +641 +463 +696 +573 +715 +936 +596 +103 +830 +680 +316 +393 +678 +947 +979 +264 +938 +228 +233 +569 +630 +937 +403 +144 +362 +538 +657 +369 +259 +277 +821 +32 +597 +52 +782 +596 +976 +486 +351 +682 +618 +863 +266 +661 +195 +814 +208 +355 +496 +329 +156 +61 +427 +156 +626 +291 +923 +122 +807 +268 +961 +865 +969 +190 +326 +41 +226 +29 +683 +610 +580 +606 +552 +239 +508 +177 +640 +489 +980 +96 +353 +451 +659 +480 +464 +472 +761 +890 +107 +968 +263 +394 +132 +340 +117 +373 +770 +879 +135 +734 +234 +554 +808 +242 +241 +543 +11 +496 +786 +135 +499 +943 +897 +221 +754 +320 +877 +20 +988 +445 +375 +889 +253 +588 +736 +969 +69 +753 +774 +314 +304 +108 +772 +484 +528 +357 +436 +415 +129 +983 +790 +646 +500 +807 +279 +704 +36 +315 +537 +864 +694 +139 +290 +534 +571 +262 +933 +518 +987 +294 +880 +581 +264 +537 +280 +324 +460 +397 +355 +563 +41 +312 +655 +225 +73 +682 +721 +837 +47 +273 +257 +642 +520 +524 +18 +411 +105 +419 +665 +543 +566 +162 +632 +855 +878 +273 +692 +128 +960 +110 +704 +49 +217 +680 +135 +899 +465 +569 +420 +24 +902 +491 +410 +636 +774 +159 +51 +6 +898 +74 +771 +558 +111 +412 +316 +64 +70 +137 +119 +798 +290 +464 +731 +286 +649 +48 +592 +569 +403 +263 +599 +53 +371 +613 +697 +452 +524 +39 +817 +461 +139 +575 +870 +331 +177 +246 +665 +787 +222 +713 +198 +579 +106 +257 +865 +881 +646 +679 +260 +996 +871 +52 +50 +307 +949 +428 +315 +491 +459 +364 +778 +189 +513 +138 +581 +847 +451 +289 +956 +925 +126 +799 +595 +453 +666 +782 +885 +640 +342 +843 +709 +359 +590 +968 +811 +259 +274 +218 +594 +976 +874 +245 +233 +411 +597 +670 +406 +899 +704 +23 +540 +817 +150 +589 +558 +922 +64 +547 +506 +986 +414 +533 +821 +959 +11 +887 +81 +439 +46 +341 +21 +295 +934 +690 +620 +536 +495 +553 +467 +994 +639 +963 +150 +482 +322 +89 +473 +993 +182 +123 +852 +368 +267 +171 +149 +812 +508 +12 +732 +616 +440 +716 +182 +869 +221 +16 +791 +600 +415 +576 +567 +210 +713 +363 +675 +345 +796 +41 +604 +399 +652 +82 +51 +495 +113 +164 +506 +678 +655 +361 +378 +420 +461 +566 +515 +411 +374 +849 +168 +17 +952 +670 +486 +424 +118 +919 +710 +139 +365 +340 +59 +955 +793 +858 +55 +859 +456 +89 +284 +431 +758 +105 +409 +354 +508 +780 +540 +598 +283 +604 +550 +665 +564 +662 +258 +364 +102 +44 +586 +749 +443 +229 +55 +157 +368 +63 +106 +646 +265 +402 +969 +198 +756 +306 +354 +810 +601 +871 +235 +688 +841 +218 +313 +867 +675 +406 +59 +801 +775 +522 +559 +718 +217 +976 +686 +985 +305 +80 +42 +57 +547 +589 +659 +806 +310 +843 +563 +77 +387 +26 +666 +361 +696 +537 +820 +847 +657 +887 +94 +791 +290 +938 +845 +652 +162 +752 +159 +600 +511 +845 +290 +971 +905 +494 +208 +851 +688 +266 +201 +608 +354 +84 +589 +222 +392 +6 +439 +237 +587 +349 +999 +265 +156 +162 +908 +874 +616 +692 +108 +889 +390 +895 +991 +382 +849 +747 +579 +630 +669 +151 +708 +693 +247 +705 +162 +631 +45 +701 +811 +865 +149 +387 +972 +162 +806 +21 +735 +680 +999 +305 +519 +807 +107 +608 +276 +910 +859 +997 +328 +255 +812 +791 +491 +642 +560 +721 +987 +166 +99 +875 +972 +467 +61 +548 +498 +59 +817 +384 +27 +76 +778 +662 +413 +21 +35 +733 +13 +188 +162 +554 +83 +90 +212 +598 +290 +267 +752 +211 +297 +86 +380 +306 +533 +886 +511 +791 +625 +563 +558 +856 +361 +756 +702 +573 +292 +178 +612 +13 +258 +858 +935 +241 +496 +662 +476 +680 +436 +777 +822 +966 +567 +393 +813 +907 +833 +283 +155 +428 +463 +412 +366 +38 +376 +308 +656 +869 +524 +345 +410 +854 +552 +363 +65 +536 +913 +697 +363 +604 +802 +992 +579 +984 +546 +297 +5 +149 +9 +489 +581 +697 +558 +885 +453 +352 +328 +628 +985 +336 +234 +80 +24 +160 +488 +616 +827 +594 +975 +884 +720 +292 +531 +479 +69 +939 +345 +838 +958 +370 +634 +748 +128 +198 +276 +125 +159 +253 +626 +859 +505 +498 +360 +639 +430 +553 +359 +340 +526 +479 +125 +393 +268 +616 +797 +128 +114 +522 +134 +939 +741 +907 +151 +946 +724 +254 +408 +800 +959 +794 +514 +774 +235 +717 +474 +30 +299 +110 +751 +152 +527 +771 +351 +137 +299 +445 +123 +888 +68 +475 +144 +64 +441 +154 +771 +769 +234 +946 +6 +287 +922 +70 +477 +641 +228 +754 +177 +812 +316 +81 +466 +814 +143 +739 +777 +744 +268 +627 +175 +228 +358 +18 +809 +950 +127 +109 +342 +631 +346 +649 +528 +887 +79 +825 +937 +113 +930 +881 +809 +160 +514 +792 +527 +672 +815 +517 +621 +168 +236 +939 +851 +292 +161 +866 +371 +111 +283 +940 +838 +627 +852 +34 +947 +538 +327 +873 +873 +73 +839 +452 +392 +522 +98 +168 +368 +532 +232 +468 +87 +580 +874 +143 +510 +93 +263 +807 +650 +786 +757 +170 +768 +100 +20 +895 +103 +532 +905 +166 +167 +935 +294 +26 +650 +731 +114 +450 +115 +453 +386 +652 +305 +646 +777 +202 +94 +896 +20 +20 +931 +207 +587 +208 +101 +577 +435 +406 +781 +965 +430 +606 +442 +39 +795 +697 +623 +663 +133 +736 +884 +495 +931 +100 +919 +953 +278 +14 +368 +591 +874 +296 +197 +861 +398 +592 +951 +957 +939 +155 +920 +740 +374 +39 +490 +156 +373 +125 +344 +81 +974 +821 +82 +851 +157 +212 +213 +293 +561 +897 +282 +472 +782 +573 +426 +390 +518 +609 +798 +74 +414 +111 +749 +878 +179 +349 +585 +835 +339 +736 +172 +486 +947 +659 +621 +709 +556 +947 +883 +204 +385 +658 +303 +986 +436 +216 +166 +764 +615 +490 +315 +918 +425 +26 +576 +714 +306 +37 +392 +507 +46 +790 +233 +72 +1 +826 +453 +675 +156 +400 +544 +45 +272 +380 +310 +912 +409 +30 +620 +589 +355 +227 +533 +54 +74 +325 +340 +386 +940 +620 +754 +431 +118 +661 +175 +949 +119 +427 +12 +258 +449 +355 +969 +884 +381 +878 +904 +391 +147 +978 +246 +414 +389 +669 +567 +742 +542 +220 +821 +8 +683 +806 +868 +164 +518 +993 +494 +873 +833 +513 +638 +820 +963 +732 +179 +795 +556 +398 +799 +976 +820 +969 +860 +948 +946 +468 +747 +943 +541 +862 +429 +772 +497 +916 +507 +385 +586 +113 +315 +260 +452 +17 +994 +695 +614 +370 +652 +844 +401 +489 +202 +205 +33 +922 +909 +147 +870 +698 +40 +317 +407 +594 +535 +419 +95 +281 +272 +700 +191 +4 +310 +257 +824 +786 +14 +573 +556 +929 +834 +554 +413 +799 +365 +83 +634 +635 +539 +361 +692 +987 +313 +731 +814 +704 +184 +79 +822 +768 +304 +364 +186 +171 +501 +724 +882 +112 +170 +781 +461 +533 +490 +343 +200 +4 +728 +417 +271 +689 +846 +433 +369 +645 +635 +378 +781 +965 +355 +204 +371 +302 +559 +892 +139 +196 +857 +999 +760 +657 +491 +338 +35 +91 +579 +380 +30 +746 +265 +507 +801 +41 +744 +8 +898 +994 +227 +243 +626 +338 +449 +531 +317 +576 +392 +495 +485 +670 +279 +526 +929 +813 +914 +62 +178 +408 +626 +575 +823 +181 +823 +654 +507 +277 +655 +255 +750 +968 +424 +376 +710 +434 +185 +91 +83 +6 +778 +651 +826 +335 +784 +681 +786 +539 +345 +406 +419 +18 +790 +211 +862 +826 +924 +686 +591 +35 +559 +749 +419 +724 +811 +438 +401 +702 +151 +527 +745 +892 +120 +262 +868 +26 +158 +656 +346 +684 +315 +614 +690 +583 +766 +731 +606 +889 +596 +807 +134 +753 +680 +951 +86 +395 +85 +697 +240 +652 +919 +190 +662 +693 +749 +746 +367 +831 +331 +389 +513 +592 +33 +901 +333 +10 +861 +183 +328 +251 +2 +868 +447 +598 +55 +257 +184 +672 +86 +766 +202 +132 +756 +335 +914 +313 +141 +699 +831 +677 +951 +92 +793 +504 +410 +189 +862 +495 +397 +%% +468 +909 +379 +165 +886 +771 +159 +963 +553 diff --git a/examples/machsuite/stencil/stencil3d.py b/examples/machsuite/stencil/stencil3d.py index f124c9f79f..ebe8e4fe8f 100644 --- a/examples/machsuite/stencil/stencil3d.py +++ b/examples/machsuite/stencil/stencil3d.py @@ -105,8 +105,10 @@ def read_check_data(file_path): return check_sol -file_path_data = "input.data" -file_path_check = "check.data" +import os +_dir = os.path.dirname(os.path.abspath(__file__)) +file_path_data = os.path.join(_dir, "stencil3d_input.data") +file_path_check = os.path.join(_dir, "stencil3d_check.data") np_orig, np_C = read_data(file_path_data) check_sol = read_check_data(file_path_check) print("\nnp_C:") diff --git a/examples/machsuite/stencil/stencil3d_check.data b/examples/machsuite/stencil/stencil3d_check.data new file mode 100644 index 0000000000..a643e1cf24 --- /dev/null +++ b/examples/machsuite/stencil/stencil3d_check.data @@ -0,0 +1,16385 @@ +%% +839 +147 +454 +933 +267 +957 +355 +72 +849 +363 +305 +928 +270 +225 +325 +435 +360 +864 +613 +963 +275 +226 +352 +728 +579 +208 +66 +205 +821 +605 +139 +858 +661 +125 +248 +803 +122 +165 +889 +868 +617 +623 +518 +941 +678 +841 +428 +481 +621 +9 +913 +760 +520 +738 +135 +606 +326 +552 +697 +744 +559 +407 +303 +282 +969 +393 +115 +451 +818 +553 +655 +481 +255 +353 +810 +326 +180 +447 +735 +23 +31 +725 +70 +666 +911 +772 +26 +766 +475 +267 +415 +976 +488 +521 +402 +94 +198 +952 +862 +198 +106 +729 +802 +769 +63 +60 +194 +967 +845 +632 +262 +309 +911 +722 +571 +496 +167 +874 +884 +582 +804 +961 +140 +578 +660 +640 +949 +411 +552 +619 +945 +269 +726 +555 +354 +488 +122 +218 +110 +413 +795 +103 +515 +776 +844 +781 +272 +432 +549 +710 +337 +568 +515 +779 +276 +171 +179 +132 +940 +774 +646 +770 +282 +477 +499 +123 +330 +862 +381 +132 +385 +657 +282 +779 +556 +548 +871 +998 +145 +897 +140 +866 +595 +464 +275 +132 +775 +462 +40 +957 +915 +824 +926 +663 +622 +638 +612 +958 +201 +452 +682 +55 +582 +910 +396 +374 +504 +900 +910 +519 +442 +844 +324 +517 +438 +5 +411 +708 +540 +729 +947 +266 +726 +428 +530 +433 +920 +262 +161 +765 +598 +277 +339 +346 +275 +647 +89 +728 +50 +820 +835 +682 +394 +82 +584 +889 +973 +74 +28 +424 +936 +672 +995 +188 +203 +363 +342 +169 +864 +474 +532 +166 +936 +521 +838 +922 +116 +728 +299 +784 +839 +404 +637 +334 +623 +301 +703 +578 +396 +64 +178 +901 +849 +171 +469 +38 +648 +465 +200 +508 +420 +928 +849 +536 +422 +637 +871 +78 +897 +757 +865 +462 +548 +252 +675 +36 +682 +338 +285 +98 +938 +223 +153 +424 +509 +400 +449 +768 +896 +304 +561 +215 +378 +144 +682 +120 +83 +247 +508 +695 +89 +389 +112 +808 +834 +592 +980 +173 +735 +257 +824 +306 +36 +426 +630 +282 +458 +175 +584 +898 +742 +275 +803 +198 +743 +61 +112 +465 +648 +721 +456 +51 +852 +716 +115 +870 +186 +156 +23 +715 +936 +619 +902 +491 +410 +642 +746 +577 +45 +238 +284 +658 +422 +437 +904 +901 +535 +942 +469 +659 +576 +484 +470 +818 +691 +156 +708 +177 +183 +868 +17 +644 +429 +298 +596 +784 +300 +624 +338 +362 +422 +784 +200 +810 +198 +390 +294 +331 +445 +371 +856 +144 +989 +648 +219 +807 +952 +778 +326 +21 +803 +724 +360 +351 +154 +81 +373 +769 +14 +451 +307 +152 +996 +644 +113 +346 +660 +187 +763 +443 +148 +846 +7 +876 +722 +491 +186 +802 +355 +38 +564 +661 +721 +304 +641 +835 +536 +512 +776 +686 +437 +272 +212 +800 +577 +923 +757 +186 +599 +484 +604 +174 +342 +161 +907 +36 +566 +156 +375 +826 +640 +371 +544 +201 +151 +923 +336 +450 +196 +887 +348 +313 +122 +135 +339 +219 +695 +884 +325 +357 +503 +298 +519 +859 +857 +332 +87 +603 +184 +459 +356 +924 +846 +874 +662 +900 +488 +330 +769 +-2650 +-957 +-2312 +-329 +1423 +-1068 +1586 +-802 +-422 +-2014 +240 +-164 +5 +-36 +610 +326 +-805 +749 +323 +1169 +-932 +1791 +1689 +-787 +2817 +-428 +-168 +1772 +-1937 +-822 +249 +494 +1814 +-853 +329 +-1098 +2695 +-143 +-1220 +-304 +-2425 +1890 +-3551 +2405 +858 +300 +73 +515 +1402 +1958 +3018 +-2256 +-3387 +3119 +81 +-1714 +-1431 +-1640 +443 +2884 +-1713 +-236 +98 +133 +-626 +1293 +-1622 +-3710 +2358 +-1923 +3637 +-2588 +300 +1842 +-3302 +-3010 +2485 +2263 +917 +949 +-3808 +1763 +-2001 +3833 +779 +-1985 +-2134 +752 +-2107 +1006 +1663 +-2014 +1742 +-2665 +963 +972 +2107 +-3844 +2420 +546 +-230 +2548 +-3751 +-13 +1137 +-2462 +2265 +2431 +-277 +-2414 +664 +1 +1472 +-1928 +2436 +-3385 +1651 +-2467 +2815 +842 +-1884 +4180 +-1360 +-958 +2791 +-2735 +818 +830 +-1032 +63 +-344 +2269 +-2153 +873 +595 +-3209 +808 +-2385 +2221 +219 +1479 +-1078 +740 +750 +-1084 +864 +3115 +-3815 +2028 +-768 +-1166 +-312 +3152 +-2260 +1682 +-2086 +697 +-1292 +40 +82 +1872 +-2658 +348 +792 +-1101 +1608 +587 +-1850 +-490 +480 +-1639 +2470 +-2092 +-1116 +589 +835 +-149 +-1946 +493 +125 +-3234 +-2465 +1148 +-3541 +3486 +-1126 +-2081 +-1463 +4210 +-2292 +953 +595 +-3002 +-296 +90 +-2437 +2966 +2542 +-1593 +3306 +-233 +-2644 +1117 +-439 +-3770 +2565 +698 +187 +1658 +-1461 +1301 +1690 +-1800 +2645 +-2325 +-1195 +-1785 +2764 +-463 +2412 +1632 +-304 +213 +522 +-1972 +2180 +-543 +752 +-2110 +769 +1758 +1214 +-533 +-2434 +2006 +-650 +1393 +2804 +65 +990 +2680 +1019 +-2095 +-1157 +-713 +-2232 +2358 +-649 +305 +172 +882 +1171 +-2150 +-1314 +426 +580 +-1369 +-16 +-1129 +-766 +2932 +-454 +-766 +-2090 +-1746 +-1724 +3346 +-1193 +1646 +692 +199 +192 +1823 +2305 +-3913 +3885 +-2353 +1004 +-2145 +1571 +2798 +-929 +-2290 +360 +846 +2675 +267 +502 +111 +-1526 +3402 +-2755 +-433 +-1128 +2887 +-715 +-3043 +1604 +2015 +-1854 +426 +-2670 +533 +381 +3479 +-979 +92 +-455 +968 +2157 +-2787 +-1921 +2600 +-1766 +-38 +2223 +1397 +-1163 +196 +585 +1460 +-1558 +-555 +-1412 +-2473 +1013 +1683 +875 +-531 +3507 +1426 +-2703 +-2353 +1161 +237 +666 +1431 +1459 +-1890 +-913 +3116 +-3643 +2012 +-1202 +887 +-1997 +323 +-1956 +1243 +306 +540 +519 +-1799 +1644 +-1265 +228 +-2283 +235 +-240 +1483 +436 +-858 +-803 +1142 +1724 +-1859 +787 +274 +497 +-1104 +-809 +-1279 +-1601 +-2685 +1937 +-1006 +-1465 +-258 +-2021 +2303 +498 +672 +511 +943 +771 +2740 +2689 +-2825 +381 +294 +1426 +-482 +1569 +-1589 +-432 +-682 +-2686 +-1027 +154 +637 +-767 +-1684 +-2616 +2338 +-356 +996 +649 +-2491 +2467 +123 +-925 +-1946 +513 +127 +376 +413 +1185 +-882 +-164 +660 +753 +529 +-808 +658 +-1228 +-1783 +512 +1618 +-806 +-3131 +857 +809 +683 +-1595 +2175 +-205 +2334 +-1981 +19 +480 +-85 +899 +1777 +-2409 +442 +2096 +156 +175 +462 +2413 +-167 +-247 +-3273 +118 +1654 +-1515 +3254 +-2630 +1646 +1652 +-2940 +2583 +804 +160 +1050 +-3201 +-2132 +2686 +-1433 +-1913 +2035 +2425 +-3204 +-302 +1507 +-2140 +-1415 +-723 +371 +684 +845 +646 +735 +743 +219 +195 +459 +681 +782 +393 +644 +807 +815 +713 +533 +633 +289 +556 +639 +631 +901 +438 +58 +876 +160 +51 +481 +286 +153 +371 +217 +929 +-2169 +-763 +-2583 +652 +-462 +12 +-2091 +1293 +-1455 +3608 +-883 +2612 +-145 +-791 +2 +457 +2709 +686 +2470 +1685 +1830 +-565 +-3495 +1748 +-92 +-2790 +1972 +-1634 +959 +-1690 +596 +932 +-95 +-2798 +80 +-1912 +-1031 +-2439 +4496 +-1189 +-1658 +2344 +-2062 +491 +-2351 +-286 +321 +893 +-1613 +2712 +-1539 +767 +1244 +-394 +-2785 +2327 +871 +1056 +2886 +-1481 +1639 +-1050 +32 +962 +1039 +-1419 +31 +3084 +370 +64 +-126 +1753 +-1421 +-570 +-119 +428 +-2023 +1976 +575 +460 +-293 +-2465 +1610 +-2967 +-634 +1639 +-342 +-2048 +2619 +2034 +-1992 +3342 +-1090 +-1947 +665 +463 +-2357 +3588 +-2385 +3049 +-2865 +-1964 +3303 +2184 +449 +-1057 +-261 +-3454 +-2220 +623 +955 +157 +-1154 +2362 +-1110 +-1574 +1844 +-279 +-78 +-2635 +2157 +-1698 +1105 +1601 +-773 +1617 +559 +571 +2311 +-1361 +-3006 +2378 +1627 +852 +1339 +2234 +-2612 +-610 +-635 +406 +-1821 +962 +583 +753 +2862 +-78 +49 +1548 +-2947 +-1144 +2431 +1101 +-1423 +3420 +-2701 +746 +2519 +354 +511 +932 +-4470 +2900 +-2640 +2228 +903 +1074 +-1354 +1320 +1250 +93 +209 +3214 +-1465 +-1155 +136 +234 +1993 +3099 +-1965 +-1210 +1323 +1476 +1760 +2170 +-1112 +1204 +1807 +-2924 +-2624 +1495 +801 +693 +1907 +-3852 +2744 +2732 +-1950 +-74 +-2637 +3261 +-1782 +-163 +968 +149 +1955 +1545 +759 +717 +1585 +-326 +1947 +-1059 +2726 +-1175 +675 +-1180 +744 +-1820 +3036 +800 +559 +-2058 +463 +578 +2558 +-2834 +-78 +1192 +623 +-1837 +-733 +2992 +-1976 +-894 +-3288 +-2157 +-582 +-1338 +803 +466 +-3149 +-1143 +1421 +-1764 +392 +-2912 +2793 +-586 +1043 +1533 +1672 +-1116 +-482 +237 +350 +869 +-2860 +3051 +-1656 +4242 +-2933 +2894 +1299 +837 +-2153 +1183 +-4208 +1318 +-2317 +1219 +729 +518 +2773 +-3374 +3010 +-3615 +1145 +-3248 +2053 +1660 +843 +-2477 +1817 +731 +2475 +-2549 +689 +493 +-1105 +3911 +-4147 +4075 +-370 +517 +-1397 +-2393 +327 +-1106 +2187 +-1757 +1661 +2038 +903 +246 +-1303 +-3089 +2395 +-1413 +-292 +-1122 +1378 +177 +875 +2263 +-2516 +2614 +-3814 +-1031 +320 +84 +-1326 +789 +2672 +-1025 +4095 +-998 +371 +-1708 +2712 +-3233 +-2046 +2119 +1621 +710 +366 +961 +1112 +-1813 +1614 +-728 +-2231 +1707 +1948 +833 +-530 +3822 +-2683 +2214 +-872 +2282 +753 +151 +-2078 +-351 +-1056 +2922 +1154 +181 +-2886 +-683 +-1169 +-783 +-997 +2272 +-3675 +-551 +317 +511 +2901 +-1887 +3447 +-2279 +1667 +2837 +1076 +-1575 +-376 +2031 +1764 +1498 +16 +10 +57 +100 +2613 +-1858 +-649 +1584 +2340 +-2501 +-1234 +-222 +1129 +-299 +-230 +-2470 +3743 +1576 +587 +695 +-2258 +93 +-771 +2487 +-654 +448 +-2820 +943 +-1759 +-348 +936 +947 +-1396 +-2222 +35 +226 +1735 +2890 +-1383 +600 +-889 +-840 +1303 +668 +584 +3300 +-3763 +2303 +1735 +2071 +4 +253 +-339 +714 +2139 +-2164 +1029 +-682 +-2099 +-731 +1388 +-3905 +2875 +-2474 +1911 +-2280 +663 +50 +581 +-1192 +-916 +1007 +2931 +-1332 +2207 +-1476 +-700 +-38 +-26 +-1442 +1849 +-1411 +816 +195 +-123 +3606 +-2213 +-3 +2701 +-1334 +1417 +-2114 +528 +-187 +-1937 +1424 +-356 +-187 +254 +345 +239 +521 +181 +810 +353 +410 +565 +480 +497 +868 +732 +673 +998 +164 +944 +930 +199 +747 +706 +186 +501 +580 +264 +790 +216 +195 +210 +847 +491 +350 +856 +368 +971 +3409 +-519 +-1555 +-322 +-2770 +2107 +-1770 +1085 +-208 +1460 +118 +-795 +1723 +478 +966 +-2709 +-2088 +-1364 +1893 +-2503 +3307 +863 +723 +1433 +-1254 +959 +-165 +-289 +-1024 +525 +713 +3085 +1996 +-1147 +-625 +-1780 +-511 +-748 +2912 +-434 +950 +-373 +-2105 +3898 +-1564 +257 +525 +-2317 +-2531 +721 +3394 +1907 +-1467 +-1445 +-3296 +977 +-2344 +106 +1914 +-2130 +-291 +447 +786 +1088 +-2197 +-946 +-3604 +-2714 +3815 +-869 +3166 +1021 +2093 +-2820 +2987 +-1367 +3366 +53 +550 +2524 +1984 +2084 +854 +854 +-3224 +-1901 +-2588 +-3692 +1864 +-2802 +2041 +-1321 +-1357 +787 +1 +428 +-1805 +-919 +-1032 +2643 +525 +-1775 +2013 +1291 +984 +1546 +-191 +1990 +207 +187 +473 +-243 +-818 +521 +269 +592 +3097 +14 +-2496 +-2229 +-1472 +-2184 +2926 +-2978 +-1307 +396 +755 +-1667 +1432 +1392 +-3141 +-1539 +-1489 +-2696 +2406 +265 +2411 +2311 +-3366 +3257 +846 +531 +79 +-1931 +-1544 +1022 +-95 +167 +-1986 +-1554 +-821 +2016 +-3537 +1634 +-2321 +582 +-472 +732 +579 +412 +-783 +1223 +237 +1892 +-468 +775 +1242 +-80 +-1771 +3092 +-2662 +-786 +-1451 +804 +156 +1163 +-2188 +864 +-537 +1271 +9 +3184 +-3128 +-916 +3047 +-1755 +2172 +-367 +1244 +731 +330 +-865 +2394 +-379 +-3083 +-2089 +-2097 +-516 +-1890 +516 +-955 +47 +-1161 +-1091 +252 +921 +569 +-1718 +-1364 +-208 +-147 +886 +-971 +-808 +-157 +1211 +64 +-1194 +-2355 +827 +-1397 +983 +79 +-1191 +1670 +-222 +2845 +-2036 +68 +-17 +-1133 +1354 +288 +132 +1232 +444 +-628 +998 +771 +2104 +663 +-1204 +-305 +-1043 +3268 +-1675 +-872 +1421 +-895 +1769 +1661 +-2353 +1767 +679 +964 +1108 +-34 +2659 +-103 +-703 +-145 +-2817 +86 +1934 +-1369 +939 +1502 +-1049 +-2053 +901 +462 +-2908 +3653 +-2421 +-1550 +-1370 +1156 +-118 +1518 +-343 +2036 +1222 +-2107 +-678 +137 +82 +246 +2607 +-3609 +3677 +206 +-3497 +4123 +-1125 +-1306 +3047 +-1324 +-3221 +1862 +31 +-2738 +726 +81 +1311 +4141 +-2661 +-225 +4391 +-3479 +-864 +-1546 +-751 +-1837 +2571 +310 +2552 +3019 +668 +826 +-86 +-379 +-1928 +-1271 +-3279 +2316 +2853 +1402 +-2322 +-424 +1205 +-2364 +-2321 +-2516 +711 +62 +-2512 +1438 +670 +1366 +60 +48 +-1085 +-2446 +621 +1448 +-1176 +1178 +-2652 +2601 +25 +452 +2395 +-983 +-638 +-904 +-1836 +1606 +1010 +90 +-1022 +2522 +-1390 +287 +2860 +2064 +42 +49 +-2425 +-1683 +-465 +838 +-1383 +1496 +-1096 +-96 +-417 +-369 +-1978 +-2188 +1011 +-2920 +25 +918 +-945 +3218 +-2662 +623 +-2011 +-2263 +-1737 +1881 +-1278 +196 +1869 +2621 +-3537 +2056 +692 +183 +1926 +96 +679 +-2860 +1332 +1654 +1630 +-519 +-1856 +2528 +-120 +2444 +-2864 +3457 +284 +280 +1803 +-3402 +2620 +-1982 +668 +666 +266 +-1306 +-247 +-2241 +1029 +-3403 +2459 +-2885 +765 +115 +1548 +1166 +-3293 +1072 +-1307 +1581 +-2780 +1547 +-1294 +1517 +1163 +2589 +-98 +-1241 +403 +74 +180 +-1424 +1189 +-3366 +-2512 +1479 +1685 +-1170 +2137 +2068 +-2660 +-2289 +579 +-959 +473 +562 +2553 +-2654 +490 +2262 +79 +2138 +-1655 +-1142 +998 +-3285 +-1634 +1642 +1819 +-160 +862 +548 +692 +940 +33 +121 +207 +191 +625 +559 +290 +954 +980 +862 +53 +218 +284 +607 +91 +838 +154 +900 +117 +135 +128 +746 +650 +749 +372 +781 +575 +790 +740 +596 +3407 +-3542 +2238 +1565 +2114 +641 +555 +483 +-295 +-219 +-2993 +-646 +844 +1860 +363 +432 +542 +218 +-2748 +1994 +-3262 +939 +482 +-1630 +-2366 +1003 +1476 +1479 +-1719 +-37 +956 +753 +-1964 +-1276 +-532 +-128 +3891 +396 +-1971 +1994 +-286 +2162 +87 +2126 +1256 +-3077 +860 +464 +2246 +1016 +-94 +-2779 +-2500 +365 +-428 +629 +-1487 +-2713 +2445 +-3223 +-88 +3686 +217 +362 +-416 +2839 +-797 +1888 +2484 +-1334 +3124 +-2443 +1275 +1481 +-2181 +-1012 +99 +-1006 +651 +198 +465 +50 +1052 +1890 +-1734 +3016 +2879 +977 +2332 +-367 +2176 +-1869 +2636 +-2785 +430 +704 +-891 +-1287 +-248 +-934 +-1939 +893 +-2177 +-103 +-155 +-1131 +343 +-2240 +1216 +3625 +49 +354 +1178 +-2024 +-1853 +2375 +-1638 +-908 +1917 +-215 +1887 +667 +1252 +-539 +2458 +680 +320 +425 +-620 +2445 +2980 +-1144 +2517 +-1624 +1631 +-2053 +-2012 +2004 +-706 +1729 +-1655 +-1155 +792 +313 +3108 +-2104 +-3351 +3217 +-3545 +2970 +1100 +-1122 +222 +-27 +102 +2027 +-893 +-1674 +451 +176 +3009 +2170 +-3196 +1490 +2559 +-1244 +-1890 +-1073 +595 +-1264 +-923 +-1816 +3607 +314 +778 +496 +-2800 +-1679 +1044 +-1605 +-3364 +863 +-3118 +1697 +586 +-2216 +1553 +1856 +-3604 +251 +706 +857 +1863 +-377 +-625 +2876 +2141 +1532 +3712 +-2601 +-136 +1042 +998 +381 +1042 +691 +63 +618 +3052 +-1836 +288 +-1447 +353 +3278 +-1140 +-158 +2616 +-1069 +-2315 +2424 +-2792 +2819 +432 +323 +2360 +-2299 +656 +2113 +-2510 +-1942 +1003 +399 +-2976 +-3241 +2705 +279 +565 +1397 +360 +765 +-1758 +-556 +204 +-1586 +39 +2997 +-3246 +1615 +1783 +3257 +-3428 +-2362 +1801 +-2439 +962 +29 +-1474 +-2349 +1329 +-1694 +2722 +-2195 +2192 +1451 +-3338 +-114 +1260 +654 +-811 +911 +987 +151 +-1588 +1701 +-825 +3161 +181 +86 +-2995 +2711 +-778 +1127 +740 +-1257 +-147 +-2250 +735 +321 +562 +-1153 +983 +-2749 +3720 +-3876 +964 +156 +1521 +-2449 +750 +2929 +-1680 +-786 +287 +942 +-1586 +-789 +103 +737 +-3911 +4123 +2110 +-2206 +437 +333 +1760 +65 +-1012 +177 +619 +81 +2212 +-3447 +569 +1480 +550 +-2633 +-3594 +2287 +-294 +-2369 +-503 +3111 +-597 +1314 +492 +99 +2160 +569 +-186 +-91 +1775 +1470 +-89 +4 +-1676 +3157 +-1194 +246 +-808 +-1316 +969 +501 +-4203 +2091 +-77 +2231 +-2313 +902 +-2139 +2151 +266 +-1357 +1311 +2424 +-3385 +1614 +973 +99 +4295 +54 +871 +-242 +-245 +-379 +-346 +2052 +1296 +-2500 +-379 +-2345 +-1056 +1192 +431 +821 +-392 +543 +-1891 +3481 +-1126 +2354 +1909 +49 +941 +-806 +550 +1901 +2100 +-3144 +173 +181 +-217 +2035 +-960 +-573 +-1342 +-605 +976 +769 +-1107 +-1356 +-1471 +-712 +466 +1593 +301 +848 +-2237 +-3186 +1799 +1093 +2222 +-760 +1550 +-197 +2014 +1727 +-989 +1375 +779 +-1968 +776 +861 +-626 +1255 +587 +350 +-2641 +324 +-3068 +1114 +61 +-296 +1127 +-26 +-2492 +-1007 +538 +270 +-2360 +766 +470 +2748 +-231 +1451 +1627 +1585 +-1320 +133 +1095 +273 +1577 +2154 +122 +658 +-3413 +2568 +1542 +985 +-1599 +54 +641 +2451 +-3443 +2899 +1937 +-2394 +1692 +-49 +739 +225 +352 +407 +762 +142 +124 +735 +963 +55 +944 +380 +817 +848 +174 +677 +97 +166 +707 +305 +677 +727 +464 +197 +856 +369 +906 +3 +964 +462 +446 +455 +736 +343 +-3005 +2925 +-727 +-3715 +3208 +-3037 +2095 +1517 +1600 +-829 +2362 +-2176 +2491 +-2452 +596 +787 +525 +-565 +1379 +-481 +2290 +-823 +-3377 +3806 +-665 +2217 +-2426 +1176 +-1172 +4385 +190 +21 +582 +1925 +2803 +-1685 +-1853 +1924 +-988 +-2258 +-772 +-2931 +1835 +726 +-1893 +-1683 +153 +806 +-1506 +1753 +-3128 +2496 +-2712 +2335 +3023 +-2782 +2584 +771 +-1502 +2241 +-632 +-303 +854 +110 +564 +-1000 +-1574 +1603 +2930 +1816 +-3363 +2711 +-3315 +-460 +1618 +1100 +-450 +-1293 +307 +834 +-1818 +-3024 +-232 +-1542 +-798 +-1967 +-1902 +2365 +1124 +-2792 +-1642 +1070 +225 +-1184 +511 +336 +335 +3670 +-1754 +-2003 +157 +231 +-2059 +-1099 +-3192 +-715 +303 +829 +-3238 +-614 +838 +670 +2097 +-1820 +2337 +3098 +-1134 +-1138 +-1473 +2554 +322 +2638 +-3273 +1865 +-707 +-3386 +987 +934 +837 +-892 +-195 +-437 +-2522 +112 +1564 +1073 +1176 +1485 +-1625 +-2499 +-439 +-24 +144 +39 +-757 +1231 +1510 +-1361 +2988 +968 +31 +389 +-3082 +-922 +762 +562 +-163 +335 +881 +938 +-1419 +-1297 +2985 +34 +-1003 +-2327 +1019 +-84 +1162 +-281 +1613 +-904 +-1973 +-1788 +379 +19 +1421 +2251 +-3424 +2965 +172 +-727 +1628 +317 +645 +-1423 +241 +2062 +2113 +916 +591 +750 +-877 +1748 +-2009 +-3099 +2551 +-196 +-943 +1185 +-1261 +798 +-2641 +-2280 +-2370 +2433 +440 +616 +-3762 +308 +403 +2824 +-501 +-2305 +-1863 +150 +-1968 +276 +2510 +2223 +-2830 +-857 +966 +841 +-507 +1163 +1378 +-1682 +2565 +839 +-1410 +1960 +947 +2354 +-915 +-891 +2158 +-1025 +443 +743 +1456 +1145 +-1422 +-1401 +92 +-1479 +2621 +487 +-775 +-3395 +1275 +-369 +-768 +805 +691 +163 +2318 +226 +-2038 +-259 +813 +1729 +-1997 +-2811 +2882 +-705 +-1609 +2529 +-793 +-2418 +499 +630 +2067 +184 +432 +-1726 +-166 +672 +-278 +-689 +-1248 +-866 +-575 +657 +2332 +1076 +559 +539 +-2534 +-261 +-2725 +2087 +763 +1877 +-251 +1165 +823 +-1530 +1333 +-1154 +-2617 +1259 +481 +278 +76 +3402 +-2126 +-978 +2281 +-3324 +157 +1654 +534 +185 +580 +-2268 +908 +-1413 +892 +84 +1368 +2220 +-786 +-399 +-3207 +2143 +416 +1859 +-2653 +851 +-289 +-899 +1543 +-531 +155 +731 +185 +-1951 +-165 +-1106 +2664 +-2717 +1081 +1804 +-420 +-2341 +2689 +-1878 +-777 +1389 +160 +991 +1231 +1401 +1256 +299 +-1379 +1267 +-1346 +1803 +-3399 +1559 +-2517 +-613 +2894 +-856 +920 +242 +-2543 +-1871 +-66 +-2828 +-162 +-1737 +-1609 +-2114 +1509 +2189 +-1359 +1894 +1341 +-1855 +936 +381 +1269 +-260 +396 +-2161 +2880 +2239 +1110 +-2760 +859 +1304 +953 +-2933 +-1007 +3362 +666 +268 +-2244 +2022 +-550 +-1257 +1234 +-2697 +-716 +2579 +2907 +-666 +-2192 +1907 +-1787 +-1411 +270 +480 +2563 +1373 +-59 +2091 +-1594 +492 +-173 +1153 +-3568 +3731 +-1492 +2990 +-761 +327 +692 +213 +-3324 +26 +1049 +-1349 +1561 +1848 +-1701 +1930 +523 +-2999 +-931 +335 +-106 +-965 +142 +927 +1742 +-2928 +2871 +-2280 +-2894 +2124 +-3664 +522 +1849 +-43 +-533 +1971 +-2311 +-2333 +336 +101 +2465 +-1280 +-1798 +-598 +1188 +-89 +2680 +-2472 +-1988 +2835 +-2002 +-2137 +216 +2473 +356 +12 +569 +673 +889 +127 +301 +758 +254 +519 +992 +5 +219 +789 +959 +335 +334 +716 +360 +522 +751 +971 +250 +299 +965 +140 +25 +91 +360 +988 +849 +909 +782 +727 +834 +263 +2105 +-854 +-440 +-36 +-1551 +-1641 +-822 +682 +-1114 +-2784 +-1976 +-1678 +782 +631 +928 +-2922 +-972 +2214 +1891 +-571 +4013 +-2451 +1137 +4 +1763 +1568 +1640 +-2490 +722 +324 +3521 +-2587 +471 +136 +-70 +172 +-1958 +-1254 +1977 +-1403 +421 +-417 +-1328 +1649 +490 +73 +-2680 +1869 +-91 +-715 +-614 +-2178 +932 +806 +1856 +-2208 +-1254 +759 +1861 +-2434 +418 +605 +928 +1682 +549 +715 +-3062 +-185 +-1827 +-1195 +-1335 +2929 +-3292 +-30 +514 +3241 +354 +421 +854 +1651 +1138 +1499 +1952 +-1187 +637 +376 +-1225 +3304 +-1719 +1400 +1862 +-3068 +53 +782 +-836 +-2542 +3476 +-187 +-2188 +3393 +2106 +1220 +1331 +-169 +1975 +-60 +138 +2744 +437 +61 +2893 +-3126 +-1523 +-3039 +2054 +-1039 +1213 +-1616 +2170 +-1430 +154 +764 +2213 +2264 +394 +699 +-1614 +1857 +1804 +-1635 +-2037 +1250 +-1917 +-1975 +-1647 +768 +-2591 +2515 +-3213 +1382 +503 +453 +-1524 +-1226 +-1075 +858 +1882 +1041 +1204 +-1422 +2143 +1836 +-910 +2387 +2473 +667 +168 +276 +371 +-956 +510 +611 +-2068 +-898 +1103 +184 +-4471 +2035 +-1231 +-2946 +-1339 +2687 +258 +805 +-1612 +1765 +858 +-2995 +2313 +-1410 +1884 +-3026 +3036 +-335 +-2824 +1738 +-1383 +-733 +168 +597 +977 +-1 +-347 +1844 +-402 +-218 +-244 +1547 +-273 +1086 +2405 +2370 +-321 +-2622 +752 +835 +2265 +-1898 +-2279 +-2172 +3336 +-2367 +-781 +1566 +1904 +-3555 +89 +147 +474 +1084 +916 +517 +1987 +470 +353 +2627 +-3950 +2070 +1243 +2184 +814 +2868 +-808 +-70 +-1709 +1289 +973 +593 +-3687 +2236 +2324 +913 +2344 +-2330 +-334 +-2707 +-1023 +-44 +1075 +-3043 +2059 +-610 +636 +466 +-869 +-3092 +1415 +-2648 +2912 +-2073 +132 +283 +1895 +21 +-456 +1377 +-107 +2024 +255 +37 +2058 +-118 +-1932 +781 +-320 +1761 +-1562 +-562 +718 +475 +-534 +-896 +-630 +34 +641 +447 +1933 +1394 +2473 +-1353 +-1439 +-1413 +-594 +479 +1007 +-1836 +2540 +-2719 +2065 +-2421 +223 +28 +-660 +-2745 +417 +2133 +-2453 +2167 +3106 +-2956 +3079 +-1915 +-1029 +3758 +-1915 +2262 +246 +511 +442 +1432 +2370 +-2601 +3156 +1292 +-1313 +-327 +-947 +-1437 +1851 +-1854 +-428 +1702 +529 +823 +-3812 +1935 +-319 +-98 +479 +1058 +-2494 +1200 +712 +-505 +999 +-1871 +-387 +2916 +638 +318 +2440 +312 +-1679 +-431 +817 +7 +796 +-1679 +1194 +-349 +225 +-283 +820 +-2367 +221 +222 +-2722 +1916 +2167 +2651 +-1077 +1752 +-1730 +2109 +826 +786 +1663 +-728 +1065 +293 +646 +979 +-287 +1559 +496 +-297 +-1743 +-2596 +1170 +-2084 +1745 +-2688 +1598 +-1803 +43 +-3730 +839 +157 +-1110 +820 +-872 +1456 +2794 +976 +-2171 +-1783 +-2539 +1994 +125 +2008 +1245 +3260 +719 +740 +2602 +-720 +1542 +1604 +-2621 +-1261 +-212 +919 +-1161 +-2585 +218 +-3008 +-505 +-1513 +562 +216 +384 +997 +1450 +-2690 +659 +-2855 +-2214 +1060 +1956 +-1121 +-1062 +3270 +-2755 +1955 +76 +708 +1015 +995 +-1409 +153 +-80 +2754 +1317 +1926 +-2535 +443 +-1692 +2069 +2096 +3176 +481 +133 +2673 +98 +-3627 +2573 +1221 +-3491 +-186 +-1001 +1005 +1813 +-2844 +1791 +-2701 +-2057 +947 +695 +565 +558 +928 +285 +325 +923 +614 +306 +62 +504 +648 +5 +767 +546 +197 +941 +134 +591 +464 +169 +962 +785 +434 +409 +301 +104 +646 +839 +670 +884 +878 +59 +2240 +-359 +-2301 +364 +-674 +91 +-747 +3552 +-2728 +2483 +8 +-159 +-467 +-1952 +325 +94 +-75 +267 +2890 +-1593 +-1821 +90 +-1910 +-1139 +3429 +2460 +-1401 +-1162 +-1567 +-43 +836 +54 +-1474 +-206 +-1491 +1507 +-2338 +1774 +-2885 +3300 +-2635 +-2527 +260 +1733 +-487 +-1324 +924 +393 +3927 +-1930 +-2770 +3199 +-1616 +157 +2506 +-3314 +1327 +2607 +1203 +-2404 +1708 +6 +670 +710 +-1786 +124 +1086 +-3937 +2065 +-2444 +-1074 +2633 +803 +-3911 +3970 +-2980 +710 +-1060 +978 +392 +-1145 +-476 +1252 +1752 +1535 +1393 +423 +76 +2540 +-1032 +-1642 +1771 +-549 +2668 +392 +21 +-2266 +2936 +-1819 +-2114 +-609 +-2391 +20 +1078 +-2540 +-1233 +2530 +-615 +-1142 +-3443 +538 +363 +2024 +1465 +1992 +2367 +2724 +-2491 +12 +1321 +311 +-1528 +-2249 +1110 +873 +421 +94 +233 +1087 +-2243 +-2357 +2421 +1275 +-66 +1819 +297 +-992 +980 +1635 +-2239 +-2062 +259 +262 +335 +-2225 +3728 +-1867 +-2506 +-769 +-2388 +-457 +579 +2361 +-2537 +1999 +375 +-1355 +-1220 +765 +702 +577 +-2679 +-405 +2741 +26 +504 +-2059 +277 +2044 +555 +1658 +1953 +-1722 +2772 +709 +669 +163 +1877 +-901 +1000 +-1647 +-1945 +372 +1890 +2181 +-2162 +1727 +195 +-356 +-2136 +781 +948 +-3432 +-152 +-376 +-980 +-685 +710 +-2513 +240 +-3552 +2898 +-402 +-1277 +1705 +-214 +889 +921 +1119 +-412 +2231 +-2497 +2253 +-1362 +1746 +-2977 +-131 +1147 +-2466 +-2091 +1709 +351 +242 +525 +-4303 +-215 +-1138 +-2188 +-1604 +1711 +1010 +-2433 +-12 +-2964 +3556 +-1705 +331 +743 +922 +940 +2934 +1340 +-1298 +1045 +2524 +-2840 +3161 +-1943 +2309 +517 +-673 +37 +1903 +-3463 +673 +563 +-1927 +1776 +-1775 +38 +-3442 +1502 +-1326 +917 +2377 +-709 +-1184 +2678 +-2042 +2387 +93 +247 +-1204 +-1735 +313 +800 +2578 +-2319 +3003 +-1818 +-2592 +-2126 +589 +-580 +-1353 +427 +757 +834 +2364 +-1923 +2272 +1823 +-880 +-710 +-22 +-1247 +649 +-324 +1398 +2562 +630 +3299 +302 +75 +-1269 +-1101 +-861 +-2488 +415 +-196 +-1988 +-194 +763 +-1198 +-330 +-1822 +-1922 +-72 +216 +80 +-878 +1142 +-2400 +2834 +-2545 +1775 +1027 +-941 +827 +1103 +-1359 +964 +1115 +-1261 +887 +201 +-1322 +-1727 +1439 +-1004 +1105 +-634 +-2293 +2475 +738 +-942 +-789 +2029 +666 +-1350 +633 +101 +3550 +3024 +-3002 +2760 +2400 +-2238 +-797 +1522 +-733 +-639 +-1630 +697 +-2876 +-354 +487 +734 +-2473 +-728 +-1620 +-2467 +352 +-1203 +-364 +-4068 +1935 +-1521 +70 +2052 +796 +2171 +213 +111 +2207 +871 +-1038 +-1396 +2287 +-1165 +2038 +2599 +-2148 +1923 +12 +2163 +1853 +-94 +965 +277 +-2150 +42 +-1570 +567 +-2267 +-85 +1634 +3215 +-334 +-491 +-1560 +-2618 +-459 +-4311 +980 +689 +-1946 +-1709 +-2858 +2095 +-544 +3272 +-3122 +-2492 +-1710 +3318 +-479 +-673 +811 +3006 +314 +459 +2801 +-2640 +-1083 +1904 +198 +890 +1941 +-589 +35 +2073 +-1703 +-2554 +3089 +-2857 +839 +312 +-2089 +-1031 +-774 +1815 +758 +-3896 +2517 +-919 +-1522 +2325 +825 +-170 +1042 +-2333 +317 +914 +-3173 +2015 +2569 +261 +94 +1538 +-244 +-1332 +-211 +-1163 +1943 +-2589 +-1577 +2084 +658 +537 +491 +513 +46 +635 +414 +997 +78 +147 +616 +894 +195 +857 +703 +622 +147 +118 +533 +984 +672 +242 +680 +106 +134 +319 +8 +144 +83 +898 +546 +198 +351 +525 +434 +-805 +490 +1105 +-266 +-4 +2146 +-2593 +-389 +885 +546 +1101 +417 +3054 +445 +710 +-979 +1651 +-2156 +-1369 +2127 +-1587 +-1127 +1924 +-2734 +-1170 +2761 +-1584 +1091 +-1245 +427 +402 +2412 +-1448 +529 +-3249 +1949 +2487 +2105 +1194 +-832 +-394 +-574 +1856 +-1586 +1486 +65 +840 +-4631 +-377 +3560 +378 +1097 +1209 +-914 +-1171 +-1156 +-1378 +-28 +-2789 +3272 +-1948 +294 +279 +3398 +-690 +703 +2065 +1094 +-2204 +-597 +2046 +-2068 +3952 +-2292 +2625 +-3687 +-453 +547 +708 +2301 +-18 +-2309 +-662 +-2035 +3058 +-2465 +160 +1965 +71 +2214 +-1362 +-38 +98 +342 +88 +84 +1734 +-1205 +-252 +-1657 +2217 +-2114 +1496 +-3054 +-1635 +2584 +-1947 +2395 +1118 +472 +291 +556 +-611 +3 +-1974 +-2569 +220 +1388 +-68 +2224 +-860 +-2567 +1525 +-3477 +3027 +616 +841 +1242 +-1286 +3174 +-2015 +4063 +-2973 +-638 +-2978 +-312 +2845 +2934 +-1238 +3296 +-2674 +192 +956 +1290 +-2710 +1842 +3533 +-1264 +1226 +1736 +-21 +594 +-2367 +-1100 +-2466 +-550 +-933 +49 +798 +-2435 +1171 +-181 +-2759 +-1176 +-2565 +1482 +2560 +-2769 +1013 +-1787 +2173 +2019 +-1355 +662 +490 +1072 +1099 +994 +331 +1640 +2323 +2803 +-1700 +-2743 +-503 +2724 +-551 +2164 +1361 +441 +872 +207 +-1445 +2776 +101 +-1741 +2304 +-2036 +-2024 +2423 +-1738 +-2718 +1305 +-2041 +-1436 +888 +563 +-288 +1272 +-3956 +1994 +1268 +-1212 +2091 +937 +1123 +223 +3577 +-1985 +482 +2086 +804 +351 +2585 +1907 +388 +-1373 +1160 +-1699 +-2114 +2378 +-1873 +600 +-1655 +1870 +-1495 +-3117 +521 +425 +570 +-3799 +43 +356 +170 +3092 +586 +1989 +-470 +132 +-2234 +3003 +-2375 +3156 +69 +599 +506 +2526 +2039 +-886 +-763 +173 +-1274 +-1757 +-2076 +-2469 +-85 +-651 +2985 +-1673 +742 +417 +-2836 +1193 +-1222 +1988 +-2429 +-1340 +2080 +-1460 +2473 +2447 +716 +-986 +-329 +912 +13 +165 +-1981 +2387 +-684 +325 +668 +-2179 +385 +2867 +-2378 +854 +-2526 +1521 +1728 +-1824 +218 +670 +-454 +-166 +1044 +-127 +1705 +1404 +3330 +-3444 +2131 +2324 +-639 +-544 +1210 +-385 +64 +574 +2270 +-233 +2574 +-2809 +-1990 +-1941 +-1585 +-365 +409 +2747 +-1794 +-2420 +-1856 +761 +476 +183 +2441 +92 +-2777 +426 +2694 +2206 +-160 +-1839 +2523 +249 +-422 +1780 +3185 +-2574 +397 +911 +-4293 +-2289 +3473 +-3257 +-3520 +3026 +565 +1342 +-1068 +-1421 +7 +-812 +-2160 +-83 +97 +877 +2034 +619 +-2300 +2011 +2670 +74 +2291 +2039 +-1450 +1814 +511 +-797 +8 +2522 +799 +722 +833 +2441 +-716 +864 +-1666 +-48 +-90 +-880 +76 +-2807 +-721 +-524 +1382 +-2829 +666 +293 +64 +-2242 +3031 +-1727 +-6 +-1486 +719 +-2049 +1163 +-870 +2255 +572 +107 +4399 +249 +368 +2527 +806 +2629 +-1970 +318 +-1051 +2622 +-901 +1938 +354 +558 +364 +-1719 +-3148 +942 +865 +-1846 +1355 +2342 +-2425 +-76 +533 +-971 +1865 +1672 +-3738 +1304 +567 +-3483 +3988 +343 +688 +-376 +1616 +1128 +2642 +-1854 +2912 +-3230 +2721 +-1870 +2036 +-743 +-1445 +3062 +-1967 +606 +592 +211 +-475 +-1803 +-1415 +-1991 +-412 +2007 +22 +-941 +60 +583 +1373 +490 +2266 +600 +404 +939 +721 +472 +348 +69 +92 +744 +136 +137 +906 +844 +554 +993 +756 +362 +394 +816 +938 +299 +192 +385 +86 +322 +526 +528 +489 +80 +243 +343 +96 +252 +354 +-2225 +-314 +718 +972 +-1415 +1086 +-1875 +3957 +-2382 +1117 +1046 +1119 +-1970 +-492 +170 +736 +1481 +843 +1639 +-698 +-327 +-1643 +-250 +-295 +2079 +2536 +-3579 +-1970 +-242 +-57 +173 +942 +-2022 +-161 +-312 +3534 +-2113 +-2090 +-1056 +-150 +240 +-872 +1765 +19 +2322 +1988 +623 +448 +3381 +1564 +-2700 +-1175 +-1239 +1168 +628 +-71 +-118 +2680 +-1545 +-2361 +369 +-2697 +244 +824 +-481 +-1500 +-2157 +2077 +-870 +1964 +394 +637 +1561 +-3547 +2224 +1409 +2757 +1447 +817 +968 +-2556 +-1149 +1613 +-1995 +1681 +1261 +-556 +-2050 +978 +542 +-160 +949 +-3143 +614 +144 +980 +-2328 +2241 +-1069 +-346 +3507 +-2714 +2010 +730 +673 +-2636 +-911 +2647 +469 +1500 +170 +102 +1730 +-914 +1189 +-501 +2074 +-2110 +1872 +-2397 +1468 +2155 +-208 +-2544 +103 +170 +658 +297 +576 +-291 +-1857 +3165 +-3346 +1863 +2248 +2509 +-459 +-851 +-1692 +-22 +2283 +275 +295 +366 +-612 +-345 +-1522 +-2004 +-780 +913 +-905 +-2769 +-1793 +1273 +-2969 +44 +103 +-1065 +345 +948 +404 +535 +624 +-592 +2945 +1091 +91 +605 +214 +787 +2690 +-1290 +275 +1538 +70 +48 +-744 +397 +-75 +2029 +-1960 +-263 +-3867 +2595 +991 +-489 +-1903 +16 +-750 +-951 +101 +332 +1506 +-1882 +826 +-2583 +3479 +-1887 +3790 +-1447 +2114 +-2093 +-915 +-3380 +3396 +-1459 +380 +658 +-1968 +609 +1844 +1271 +-3198 +196 +-1854 +2438 +-139 +-220 +1447 +2392 +-2472 +2716 +161 +987 +-1836 +-1103 +-505 +1832 +-1720 +-291 +-2324 +-314 +2008 +-899 +-268 +-2221 +-910 +95 +408 +949 +1876 +-205 +1660 +211 +80 +-1091 +460 +-499 +-1067 +76 +-441 +-2230 +3072 +740 +633 +946 +1551 +-3931 +2303 +-1560 +3464 +-2629 +1810 +797 +-2155 +3578 +-1721 +3024 +-4015 +1149 +129 +545 +2382 +-704 +-529 +-2451 +-2570 +3404 +396 +1587 +1807 +-2714 +2374 +-2275 +1397 +1971 +370 +6 +2715 +-295 +1805 +361 +1170 +-1329 +1160 +-2061 +854 +3034 +-1670 +2572 +-181 +-1047 +432 +383 +-2009 +-1978 +109 +2398 +-2949 +-2245 +-2457 +2608 +-134 +-948 +-1176 +-1198 +-1224 +-1156 +953 +51 +1592 +-1733 +1734 +2780 +1493 +1793 +2933 +-2617 +-1178 +-2156 +-47 +2927 +552 +-2572 +619 +596 +-1623 +3044 +-1080 +-2385 +-2511 +1878 +-3734 +2163 +21 +-269 +1394 +2193 +-3772 +2121 +980 +45 +2058 +-2093 +-1595 +3127 +-75 +-2245 +2451 +-1702 +-1332 +-486 +-2434 +1076 +1538 +537 +855 +623 +2498 +-1571 +-216 +2701 +-1195 +-95 +-2201 +583 +-2112 +3232 +-1195 +-1253 +-410 +-3732 +753 +771 +-3283 +-1180 +2108 +-1588 +1147 +-1737 +888 +349 +894 +1450 +2079 +27 +0 +-119 +493 +468 +261 +979 +-3107 +-639 +-2613 +2449 +-398 +1211 +-2448 +791 +-1144 +-1028 +-1201 +-2935 +675 +113 +-3301 +3078 +-453 +-1570 +-659 +-80 +338 +2757 +-1636 +2087 +2402 +-1536 +-1032 +3887 +251 +129 +306 +-2937 +-608 +3463 +-2958 +2462 +158 +-1466 +-2767 +1104 +-2212 +1704 +1522 +-3930 +805 +527 +-792 +-417 +-871 +-2565 +2412 +-36 +778 +-1842 +3381 +-2795 +2884 +-73 +-2910 +2067 +938 +298 +574 +1525 +1379 +-2762 +2388 +-193 +-1560 +-1968 +2937 +676 +-2451 +-193 +-72 +-2429 +166 +697 +1 +441 +357 +277 +587 +640 +164 +298 +328 +234 +584 +35 +154 +436 +755 +789 +476 +237 +618 +673 +196 +713 +183 +468 +382 +803 +741 +550 +990 +247 +378 +660 +867 +2017 +1314 +-2532 +-980 +1806 +1702 +-1503 +-79 +-963 +-3177 +3095 +-2952 +3239 +921 +63 +357 +-2279 +1364 +1620 +2324 +-956 +-1061 +0 +1824 +1614 +2093 +-1130 +572 +1987 +253 +630 +1340 +452 +-1186 +-164 +966 +1817 +133 +-1810 +-2618 +-1170 +765 +889 +-2262 +-829 +836 +685 +-4345 +-764 +2594 +-1342 +-3066 +537 +1467 +-96 +523 +-2826 +2152 +981 +1660 +1663 +460 +8 +2745 +-299 +2583 +-1250 +3569 +-3067 +-1200 +1524 +-2176 +1162 +-92 +-1191 +-503 +-180 +844 +84 +783 +-39 +263 +-2586 +780 +191 +-1592 +-1293 +3122 +-1842 +-2925 +859 +-1815 +-1301 +488 +463 +-2193 +-914 +-2114 +3478 +-3879 +1071 +-3191 +3222 +-1592 +3131 +457 +-1993 +1599 +-309 +614 +452 +-662 +-1444 +1951 +-1068 +628 +-120 +-199 +-2751 +702 +-3091 +1998 +898 +-877 +-1608 +12 +607 +-1218 +1546 +-1531 +1996 +-2542 +343 +-1677 +1298 +2853 +-803 +2353 +-1502 +-993 +-3010 +619 +93 +-139 +-2879 +3233 +-2946 +4031 +-1059 +-2130 +1993 +-3105 +-1415 +2491 +-1282 +1863 +1675 +372 +314 +-521 +3133 +-3542 +3008 +-2674 +2073 +-933 +-2062 +3132 +-1182 +1587 +1110 +856 +412 +369 +945 +640 +-3472 +565 +1022 +-948 +2735 +-428 +-1624 +-3520 +2448 +1465 +-1305 +572 +-285 +754 +455 +-2301 +1111 +80 +-179 +2111 +-1903 +-501 +2165 +1134 +186 +2263 +330 +-116 +-3096 +601 +429 +-992 +1541 +279 +2775 +-923 +3646 +-2762 +-124 +-945 +-1946 +1345 +2058 +-4134 +3498 +815 +290 +-1256 +2132 +1766 +-3278 +-742 +-2496 +1767 +495 +-783 +1998 +-1473 +1183 +3051 +-2924 +580 +659 +566 +-2512 +1177 +-2957 +1399 +-393 +2548 +87 +1679 +1242 +-1479 +939 +-1296 +-1030 +393 +176 +-533 +1436 +2152 +-1071 +-2953 +3836 +-3337 +-293 +-1026 +1228 +-3086 +696 +3084 +-2563 +67 +53 +-1828 +2506 +-2259 +1691 +2023 +13 +-1910 +-733 +1950 +-2737 +2090 +701 +-1134 +589 +55 +54 +58 +-3228 +1247 +550 +1660 +-2327 +-1598 +1222 +2141 +-3095 +-623 +421 +70 +-973 +501 +65 +2241 +533 +2667 +-2762 +1693 +3996 +-2928 +2296 +-1346 +741 +986 +-1728 +-625 +-2109 +809 +332 +-1608 +-328 +-3061 +-2104 +-1551 +-976 +376 +-2453 +1725 +1807 +2156 +-66 +768 +2857 +449 +210 +-2373 +648 +2494 +-193 +3865 +-3549 +1635 +2210 +-3522 +-1469 +628 +-616 +-211 +1717 +283 +433 +1481 +2843 +37 +-332 +-3667 +2644 +-1366 +1939 +2390 +-1124 +2385 +-2361 +-2760 +-421 +982 +534 +2120 +-2515 +-878 +-2135 +2903 +-2136 +2722 +-1911 +2099 +-2153 +1792 +-1795 +2196 +2221 +910 +336 +2015 +-473 +-1744 +-1602 +2368 +579 +-3041 +-1360 +1190 +-1694 +-980 +1807 +-3428 +603 +845 +55 +-1319 +1729 +1303 +3338 +1987 +-1907 +-277 +-2011 +-98 +-1513 +1588 +837 +3760 +-673 +167 +769 +2787 +-1795 +2546 +-1390 +1960 +-672 +1813 +-488 +-208 +-928 +-303 +552 +-910 +1035 +422 +557 +2570 +-838 +-895 +1571 +-2335 +2364 +-2456 +-425 +2877 +-1637 +-699 +-880 +2588 +-3236 +946 +623 +-1060 +1189 +1655 +-2702 +3384 +-2916 +-1606 +2488 +-3217 +2129 +-287 +-2945 +1672 +2267 +447 +129 +1916 +-2314 +-609 +2598 +-1016 +87 +-1580 +1021 +-11 +-3400 +2641 +238 +2520 +-2659 +84 +363 +475 +640 +619 +801 +511 +22 +307 +912 +115 +666 +707 +138 +304 +845 +136 +802 +197 +445 +574 +396 +173 +700 +894 +32 +332 +617 +194 +428 +122 +267 +856 +110 +-237 +1395 +-69 +-1720 +3891 +-508 +1769 +1790 +-481 +-1049 +-179 +-2708 +3710 +-1981 +251 +250 +1683 +-295 +1306 +2790 +-3891 +2662 +1464 +-2197 +-2331 +1444 +204 +1467 +-672 +-3071 +892 +329 +-2393 +-20 +-2326 +-2053 +-1341 +489 +-1710 +3570 +1487 +-763 +-1858 +-57 +2202 +-2759 +896 +547 +2996 +1751 +1886 +1090 +3004 +267 +-2455 +-473 +2033 +2070 +-3021 +-2654 +2200 +2228 +673 +599 +1713 +-3202 +-1496 +-2639 +1226 +100 +-1398 +-565 +-2215 +-900 +1043 +266 +1813 +-1239 +917 +24 +2403 +1412 +1309 +2778 +-2695 +-257 +2368 +-1918 +725 +1082 +2650 +522 +-2479 +1222 +937 +588 +2460 +-2738 +442 +1365 +2089 +73 +2772 +2379 +705 +1034 +-2724 +784 +556 +972 +974 +380 +1682 +2209 +-3483 +1751 +-134 +1351 +-1090 +-11 +-1736 +-2265 +-923 +478 +735 +2314 +277 +732 +-131 +-2431 +2073 +-2814 +912 +-1040 +-2177 +-1 +-2816 +1975 +1624 +-1749 +779 +1420 +712 +743 +905 +-1330 +1793 +3033 +350 +-2562 +3347 +459 +3856 +-2935 +1228 +-301 +1915 +151 +354 +714 +-2616 +2900 +-2238 +642 +-2217 +-2285 +1470 +1653 +-3302 +2685 +-2650 +413 +24 +-67 +271 +789 +2722 +-276 +-1100 +-314 +126 +2009 +-3333 +1676 +1074 +-642 +-3109 +1610 +1218 +-3233 +824 +563 +-1494 +2495 +-113 +-90 +-1918 +-1821 +3679 +-3168 +1385 +-840 +-1280 +1405 +607 +1624 +19 +167 +3698 +-3392 +-2149 +-1760 +-252 +1252 +-2399 +864 +-1933 +1724 +-1665 +-408 +2641 +-1385 +948 +924 +1001 +-3037 +2761 +213 +2525 +1082 +2056 +-2170 +2118 +757 +-2157 +1225 +-3017 +886 +440 +437 +-575 +2452 +-3049 +2377 +1214 +132 +-152 +-1591 +-2631 +751 +2384 +-2187 +381 +3048 +275 +465 +1270 +414 +-2165 +1280 +274 +-3499 +1199 +2061 +2177 +577 +2751 +-3043 +-1612 +2286 +448 +548 +-306 +-3196 +2099 +-1166 +1011 +-247 +709 +-756 +-2587 +-211 +-3205 +3482 +-473 +-2936 +682 +547 +-533 +2029 +-1893 +-3155 +1676 +2906 +-99 +-1658 +-780 +382 +3114 +-1814 +1137 +764 +330 +258 +477 +-1110 +1467 +-1382 +-1234 +-3438 +1785 +2396 +-1156 +-323 +-1251 +-868 +-1419 +-1064 +731 +913 +1609 +2018 +64 +3322 +-1187 +-1545 +2078 +-1447 +2116 +975 +-2022 +-1323 +2205 +-458 +320 +779 +-963 +-926 +-699 +-2617 +922 +1458 +-1991 +-2578 +1755 +-780 +-2885 +2667 +-1632 +460 +929 +705 +-2791 +28 +-292 +1720 +2482 +-3022 +1041 +781 +-2525 +2939 +1499 +2879 +-598 +1869 +413 +497 +-1291 +2433 +-1482 +1231 +-1813 +-1217 +967 +-852 +850 +-587 +-2276 +-176 +2537 +-867 +165 +740 +-2921 +3332 +-982 +2554 +-541 +1282 +2118 +552 +342 +2032 +367 +-284 +25 +-2419 +878 +424 +-899 +-63 +-25 +-2422 +-2058 +1853 +-913 +2089 +-1278 +2522 +-130 +2158 +-3946 +-439 +222 +387 +-2561 +3280 +-2671 +2 +2327 +-1367 +2567 +196 +-33 +-1895 +-405 +-3499 +4311 +228 +100 +306 +-376 +1792 +-617 +2062 +2481 +-787 +-2198 +-2065 +1258 +2429 +-1214 +2930 +-3775 +1559 +403 +518 +-1752 +-2465 +-1093 +3255 +-1898 +2116 +2188 +-403 +-1735 +1018 +-393 +-1479 +2713 +-178 +967 +805 +-1416 +1603 +2258 +-989 +-496 +-2132 +3120 +-451 +-764 +525 +479 +1011 +592 +1368 +96 +672 +667 +862 +32 +513 +432 +14 +918 +473 +683 +495 +752 +331 +456 +162 +528 +462 +607 +533 +219 +114 +948 +779 +9 +966 +396 +591 +78 +347 +658 +716 +266 +210 +-1489 +-1277 +-1648 +709 +-2517 +-1663 +-68 +-998 +-399 +-1872 +2256 +1022 +-717 +-1964 +380 +385 +-1948 +473 +2314 +-188 +762 +-2613 +-2013 +-1666 +809 +-1548 +1664 +-2435 +824 +3632 +50 +995 +-170 +2911 +-2618 +584 +2291 +1937 +2395 +-4013 +2732 +2657 +424 +2566 +-438 +3109 +20 +95 +-2455 +1000 +985 +-1086 +-2279 +-1435 +1023 +3804 +-2453 +-3644 +3792 +1792 +-3517 +-1450 +436 +315 +-1218 +-905 +767 +-972 +-271 +1107 +1024 +-2451 +667 +-31 +-2516 +-139 +-1837 +850 +704 +959 +-2390 +-480 +-263 +390 +174 +-2993 +1232 +2999 +1421 +-1944 +717 +-1997 +-1265 +-3051 +876 +791 +-477 +1358 +43 +-3327 +1520 +118 +-1118 +-2841 +-1841 +1121 +-1581 +1011 +-514 +-88 +84 +117 +-818 +-19 +3729 +-2101 +-2192 +1264 +-1394 +2422 +1492 +1819 +-387 +1212 +-3139 +2086 +275 +482 +1831 +415 +-4167 +3691 +-248 +-1004 +2365 +-1873 +-886 +1945 +-2497 +-2326 +2250 +-1134 +211 +314 +-2455 +2542 +793 +-1808 +-456 +2399 +-409 +1178 +-617 +1358 +2195 +310 +-3002 +1320 +548 +838 +-1607 +1953 +-1471 +18 +-175 +1659 +-1812 +-2145 +810 +-206 +-416 +-1374 +-712 +-464 +115 +933 +-1115 +160 +2078 +823 +-1035 +887 +3307 +-2116 +-3093 +2665 +-34 +3093 +-2518 +2908 +235 +686 +2274 +-3333 +2320 +-2053 +1070 +-492 +135 +1453 +1578 +-2790 +614 +-3544 +3165 +-280 +251 +259 +-2122 +3378 +2106 +1203 +-2777 +-107 +2203 +513 +1760 +-2026 +2580 +2209 +-3159 +-1062 +42 +541 +-2265 +596 +-522 +-857 +-683 +971 +-3344 +-320 +-273 +-1569 +-2726 +2160 +2854 +908 +74 +506 +2803 +-448 +149 +-462 +1174 +486 +705 +2392 +-2348 +564 +2550 +-4007 +2300 +-2632 +240 +678 +-1731 +1876 +-1917 +-214 +-849 +-1634 +239 +-1720 +3406 +-4019 +2212 +3619 +-1889 +238 +419 +256 +1161 +589 +1340 +-2155 +40 +2693 +388 +146 +-1684 +1742 +141 +-3791 +1144 +3531 +76 +540 +1159 +-1802 +258 +2853 +902 +-1745 +21 +-1721 +3640 +-593 +567 +1640 +652 +-154 +925 +439 +-2359 +-1041 +2447 +-2204 +2144 +2396 +390 +169 +-3923 +2638 +2186 +-190 +1083 +-41 +37 +703 +1000 +714 +-1891 +611 +462 +2693 +-3493 +1867 +1609 +72 +-1249 +2868 +-2031 +-1603 +960 +635 +-1222 +569 +-889 +2070 +918 +-3214 +3527 +-8 +-2709 +3242 +1363 +-1527 +-988 +3162 +245 +283 +868 +2012 +-1691 +2413 +-821 +1553 +435 +-1778 +158 +-1241 +-2580 +-1888 +1717 +1124 +316 +726 +518 +920 +1020 +1026 +1142 +-1801 +1809 +-534 +89 +2390 +-1088 +1366 +-3500 +864 +126 +92 +3029 +-2235 +-949 +-2735 +191 +1678 +-858 +-1035 +-1561 +-689 +1830 +-50 +1392 +2008 +841 +145 +-1912 +1163 +-128 +-194 +-1722 +946 +-817 +2495 +-1728 +-1565 +-815 +1338 +3472 +-2117 +53 +536 +3302 +-2771 +-2015 +-1238 +805 +-220 +-497 +-1248 +2647 +-2471 +465 +-847 +-2908 +-11 +733 +10 +-2165 +-206 +2759 +-1806 +-2146 +59 +-2451 +2099 +1368 +158 +-414 +83 +89 +1842 +141 +563 +2511 +2081 +-2724 +-1272 +2333 +-2122 +-119 +1964 +-1406 +-894 +125 +-529 +-2796 +-1107 +608 +807 +-2062 +-2199 +2379 +-2798 +-396 +239 +-577 +1098 +2703 +-3346 +994 +1134 +-940 +2874 +43 +733 +731 +314 +998 +839 +724 +248 +339 +130 +349 +645 +813 +958 +757 +659 +224 +451 +986 +878 +591 +578 +77 +629 +291 +869 +743 +712 +873 +756 +643 +596 +613 +825 +-1179 +529 +-1121 +3437 +-2631 +3182 +-2107 +981 +1880 +984 +-2284 +2162 +1694 +-513 +30 +478 +2284 +564 +-717 +-859 +1105 +2436 +-1395 +1932 +-3637 +2489 +91 +-263 +-2443 +-334 +33 +262 +-108 +-1438 +-1255 +1194 +-1483 +913 +1805 +2324 +-1177 +-375 +-1321 +-1883 +-268 +-1764 +731 +63 +3838 +-548 +783 +-1569 +-851 +-2164 +-1686 +-2543 +1015 +710 +192 +-209 +2454 +-1215 +289 +611 +-930 +-1219 +1922 +-1765 +2137 +-1088 +1706 +-1384 +2024 +1633 +-1632 +316 +2454 +-2014 +818 +780 +-566 +2471 +1307 +1391 +-2142 +1398 +2697 +-2132 +833 +2061 +-1928 +-333 +1591 +2579 +96 +417 +2612 +-2734 +-1658 +2306 +-268 +-2337 +40 +313 +-1632 +1845 +1505 +1556 +2029 +-1831 +991 +305 +368 +1997 +-1510 +2451 +208 +-859 +98 +-2011 +-2574 +2374 +1291 +-2038 +2012 +-1176 +872 +612 +795 +-2749 +910 +-1203 +1801 +64 +719 +2226 +1127 +-3639 +2364 +889 +-2257 +-405 +678 +947 +2196 +-1750 +2985 +-1230 +-1631 +408 +-685 +2176 +-515 +-1460 +-1286 +-45 +1762 +-745 +259 +277 +2972 +-2861 +804 +-2874 +2634 +-299 +3207 +-513 +-910 +1169 +-593 +2875 +-2480 +1717 +195 +814 +-2841 +479 +-213 +5 +-948 +-2223 +-447 +-1926 +2319 +-2576 +2543 +-3890 +3204 +-2163 +961 +865 +1870 +-788 +-735 +-1870 +-875 +-1926 +1267 +195 +13 +651 +657 +-1767 +-225 +-2178 +640 +489 +3052 +-3046 +-962 +-430 +2094 +-223 +-901 +-446 +882 +2536 +-3765 +3216 +-515 +587 +132 +340 +-2468 +-665 +1475 +3177 +-3387 +1886 +-1692 +1362 +1786 +-1764 +113 +65 +-2555 +89 +786 +135 +573 +1822 +1842 +-2237 +2020 +-1389 +2909 +-3615 +3488 +-110 +-1206 +2786 +-1351 +91 +736 +969 +-3233 +193 +1796 +-1198 +-381 +-1786 +1732 +134 +-951 +553 +-76 +-1278 +-2618 +3253 +790 +646 +-652 +1680 +-2611 +2015 +-2715 +-1201 +-242 +2254 +1000 +-2433 +-1073 +1000 +1634 +-2633 +933 +518 +3491 +-1870 +2323 +-447 +-1104 +735 +-963 +-867 +-542 +-566 +-463 +914 +-1998 +-619 +655 +225 +-2447 +1913 +-470 +1407 +-3484 +-1412 +-1491 +1765 +470 +957 +-2768 +704 +-1531 +-276 +665 +543 +1013 +-2451 +960 +1308 +1339 +-1925 +2667 +-2982 +3328 +-2543 +3106 +-2406 +-1395 +2317 +135 +899 +-401 +1045 +106 +-3465 +3041 +119 +-760 +400 +1425 +-1760 +-2443 +-2183 +3936 +-3120 +771 +558 +-1861 +89 +-535 +-1898 +-2074 +-1531 +-2312 +2431 +-1575 +635 +2347 +-636 +1276 +-2872 +592 +569 +370 +-1433 +875 +-2304 +523 +917 +1824 +-1186 +1051 +-3497 +2267 +-938 +-2289 +829 +870 +331 +-2485 +-638 +1639 +2674 +-2161 +1243 +-2037 +1873 +-1565 +-331 +799 +2188 +266 +801 +260 +996 +3058 +-1973 +-1951 +-1871 +4349 +-1372 +-378 +199 +508 +-369 +1110 +-3267 +538 +-2839 +581 +847 +-1612 +-783 +3168 +3122 +-2881 +2205 +831 +-1315 +191 +2380 +1953 +931 +-772 +1944 +709 +359 +643 +2949 +1171 +-1613 +455 +-1191 +375 +1112 +2218 +-1548 +-1310 +-1056 +1036 +211 +406 +899 +1823 +-4425 +470 +3173 +-2351 +1275 +-43 +2508 +-3726 +716 +-347 +2950 +-990 +-207 +821 +959 +-3486 +3100 +-3153 +892 +-1388 +169 +-2280 +-1930 +3176 +907 +-464 +-728 +-151 +655 +467 +994 +639 +963 +150 +482 +322 +89 +473 +993 +182 +123 +852 +368 +267 +171 +149 +812 +508 +12 +732 +616 +440 +716 +182 +869 +221 +16 +791 +600 +415 +576 +567 +210 +1151 +-337 +1688 +-2342 +3050 +-3346 +1679 +-1585 +1889 +-2184 +-1578 +854 +-2433 +-1772 +506 +678 +411 +-981 +-355 +-132 +-48 +1074 +223 +-697 +-1063 +2487 +-523 +-3235 +3894 +1620 +486 +424 +-2975 +3248 +1754 +-1515 +-316 +-1119 +-3420 +2295 +1704 +1495 +-3214 +3239 +-1002 +-1768 +284 +431 +2515 +-1918 +-227 +-319 +130 +2761 +1367 +656 +-1664 +639 +377 +-155 +-441 +2303 +258 +364 +-1967 +-1106 +644 +1904 +-423 +-1161 +-1841 +-998 +-975 +-2482 +-1100 +568 +-1750 +-357 +969 +198 +2046 +-1586 +-1260 +1143 +272 +1967 +-2299 +1212 +2161 +-1465 +-319 +2930 +639 +-179 +59 +801 +1105 +59 +302 +902 +-2100 +3186 +570 +2946 +-1914 +-2196 +-2411 +-3493 +-242 +-317 +659 +806 +-1909 +1217 +306 +-3690 +927 +-3068 +2149 +-1720 +1722 +-698 +1951 +1212 +-513 +2958 +94 +791 +-2018 +3146 +1683 +1250 +-1915 +2718 +-2601 +1339 +-64 +2797 +-2618 +2192 +2249 +-178 +208 +851 +1314 +-1037 +-2669 +427 +12 +-2482 +1711 +-2664 +465 +-2906 +215 +-1549 +451 +-1427 +999 +265 +-2609 +-1161 +2152 +1936 +629 +1382 +-2835 +2548 +-351 +2173 +2789 +-1771 +2514 +1302 +579 +630 +1682 +-1887 +361 +929 +-1834 +1785 +-1664 +1313 +-2574 +887 +543 +2074 +-3415 +-1031 +972 +162 +1520 +-3353 +1316 +806 +3458 +-2136 +-324 +1936 +-2330 +570 +-2835 +1934 +1566 +2951 +328 +255 +667 +2544 +-401 +618 +-1259 +363 +2779 +-2338 +-2296 +1480 +3347 +-1240 +-2474 +-78 +498 +59 +2821 +-1218 +-2356 +-2522 +1897 +1002 +-38 +-1388 +-2283 +2910 +-3583 +-1638 +-967 +874 +83 +90 +-1691 +414 +-612 +-698 +1767 +-2260 +-1006 +-527 +-617 +-966 +1320 +2020 +-368 +1633 +625 +563 +1077 +1905 +-1218 +1415 +814 +1155 +-945 +-1056 +936 +-3148 +-1139 +1798 +3160 +-3116 +496 +662 +-323 +668 +-222 +1553 +1161 +2015 +151 +-770 +1170 +1803 +2395 +-1776 +-2166 +207 +463 +412 +-902 +-2860 +-512 +-1898 +908 +1376 +36 +-602 +-899 +2597 +728 +-555 +-1747 +268 +913 +697 +-215 +1383 +1063 +2381 +-461 +2612 +134 +-269 +-1739 +-1303 +-2277 +576 +522 +529 +558 +885 +-539 +-29 +-1536 +-763 +3281 +-1595 +-1452 +-2040 +-2779 +-838 +314 +757 +2791 +96 +975 +884 +2037 +-1419 +776 +256 +-4197 +3854 +-1455 +2362 +2414 +-1238 +1561 +2521 +-3055 +-701 +276 +125 +-840 +-1163 +608 +2857 +935 +-145 +146 +-57 +-1530 +-25 +-1169 +-887 +658 +1315 +125 +393 +-1745 +1140 +1476 +-2483 +-1584 +779 +-2843 +3383 +597 +2880 +-3298 +3472 +1242 +-1867 +408 +800 +3333 +1978 +-847 +1441 +-1311 +1548 +837 +-2856 +-420 +-2247 +2112 +-3368 +216 +1851 +351 +137 +-2402 +506 +-2560 +2729 +-2958 +704 +-1200 +-2283 +935 +-1567 +897 +2016 +-1895 +3086 +6 +287 +3412 +-3232 +777 +838 +-1447 +2801 +-2210 +2256 +-577 +-2025 +-412 +1621 +-2307 +493 +777 +744 +-1960 +567 +-2626 +-985 +336 +-3665 +1626 +1865 +-2087 +-1328 +1 +504 +-999 +442 +528 +887 +-3108 +1652 +2369 +-3272 +3550 +1243 +1744 +-2735 +1145 +1523 +-21 +-455 +1756 +440 +621 +168 +-436 +1711 +1982 +-753 +-2454 +2392 +-28 +-1222 +-1083 +2197 +1860 +-434 +2707 +-3265 +947 +538 +327 +873 +873 +73 +839 +452 +392 +522 +98 +168 +368 +532 +232 +468 +87 +580 +874 +143 +510 +93 +263 +807 +650 +786 +757 +170 +768 +100 +20 +895 +103 +532 +1406 +-1319 +-2222 +3072 +-1256 +-2632 +581 +1698 +-2927 +1504 +-1506 +795 +156 +882 +305 +646 +1709 +-1570 +-2288 +3112 +-2872 +-2237 +3451 +-2745 +1894 +-1755 +-1790 +1262 +-1168 +-869 +781 +965 +-171 +1414 +65 +-2831 +2165 +1531 +813 +1056 +-2958 +1699 +2232 +-1814 +2268 +-2070 +919 +953 +-1041 +-1360 +-638 +1130 +1984 +-990 +-2043 +2657 +-716 +-463 +2265 +1563 +2336 +-2547 +920 +740 +510 +-2260 +786 +-2488 +-857 +-1456 +975 +-3156 +3295 +2309 +-3826 +3114 +-2080 +-64 +213 +293 +-56 +3110 +-1802 +-188 +1497 +254 +74 +-321 +-1358 +636 +2248 +-3421 +378 +-2188 +749 +878 +-2837 +-832 +529 +1760 +-1227 +2068 +-2075 +-491 +2779 +445 +560 +1262 +-212 +2869 +883 +204 +-192 +1721 +-2243 +3411 +-1 +-1500 +-1062 +2686 +50 +-874 +-1499 +1633 +194 +-3320 +576 +714 +-703 +-2750 +21 +-611 +-2710 +3371 +-668 +-2317 +-2843 +2746 +-902 +1143 +-1972 +190 +544 +45 +-1243 +457 +-1528 +2800 +134 +-2841 +1506 +820 +112 +-1466 +1776 +-1923 +-1982 +396 +340 +386 +3241 +216 +1006 +-818 +-1924 +1455 +-2343 +3473 +-1813 +546 +-3195 +-223 +32 +-955 +969 +884 +-2290 +1411 +1725 +-174 +-1681 +2119 +-1723 +-1328 +-575 +568 +-344 +405 +30 +-1801 +821 +8 +1088 +1237 +907 +-3127 +-583 +2184 +-952 +1243 +1426 +-302 +205 +149 +1504 +602 +179 +795 +-75 +-2125 +793 +2402 +691 +1686 +1161 +1994 +2191 +-594 +76 +1591 +-884 +2305 +429 +772 +-603 +2813 +418 +-732 +1164 +-3260 +-1561 +-435 +155 +-3328 +3967 +1054 +597 +-1568 +652 +844 +-570 +-361 +-927 +-552 +-3328 +3723 +3404 +-1513 +2201 +1784 +-2812 +-1053 +-1059 +-390 +535 +419 +-2045 +-1306 +-389 +1987 +-1219 +-3038 +-275 +-401 +1257 +1518 +-1887 +637 +-402 +2219 +834 +554 +-1234 +1733 +-511 +-2559 +1208 +946 +446 +-1227 +-639 +2735 +-1546 +1568 +2271 +718 +184 +79 +2993 +1673 +-900 +305 +-1785 +-2304 +152 +1390 +2771 +-2964 +-2028 +1656 +-430 +-4 +490 +343 +-1248 +-3324 +1978 +-1369 +-962 +984 +1073 +-1031 +-583 +1722 +1645 +-1325 +1519 +2563 +355 +204 +647 +-534 +548 +2156 +-2636 +-1157 +1876 +3524 +1573 +178 +143 +65 +-3103 +-1998 +579 +380 +-2379 +2403 +-2049 +-128 +3466 +-3671 +2501 +-4091 +1186 +2087 +-2899 +-719 +1979 +197 +449 +531 +-533 +1392 +-1147 +-355 +-481 +1465 +-1522 +386 +1959 +-12 +3530 +-2035 +-1530 +-166 +626 +575 +3413 +-2372 +1230 +658 +649 +-1536 +2146 +-2573 +316 +2304 +-991 +-464 +1260 +746 +185 +91 +-2708 +-3085 +1652 +-12 +2602 +-865 +1489 +1198 +1711 +-188 +-887 +689 +-389 +-3046 +790 +211 +2445 +1114 +2427 +408 +533 +-1878 +847 +1705 +-1511 +1432 +1947 +-477 +-783 +1927 +151 +527 +15 +1757 +-3383 +-2311 +3421 +-3271 +-1366 +211 +-860 +1705 +-1717 +496 +2044 +-628 +766 +731 +-589 +1352 +178 +2138 +-2577 +2060 +457 +2414 +-1888 +85 +-1606 +1492 +-1443 +861 +919 +190 +1224 +357 +1037 +1097 +-1633 +1712 +-901 +-532 +979 +920 +-2339 +2630 +-749 +-3038 +861 +183 +-287 +-1748 +-3796 +2915 +-167 +-236 +-2332 +266 +-2329 +748 +-2841 +2088 +-2026 +-1136 +756 +335 +914 +313 +141 +699 +831 +677 +951 +92 +793 +504 +410 +189 +862 +495 +397 +468 +909 +379 +165 +886 +771 +159 +963 +553 +259 +333 +548 +946 +281 +873 +688 +467 +2256 +-353 +2173 +-307 +1742 +3387 +-1855 +-152 +465 +374 +-146 +-1478 +-197 +1840 +46 +586 +-2553 +2616 +399 +894 +-169 +-1780 +-2341 +1696 +262 +-380 +448 +1357 +-200 +1113 +408 +123 +-1961 +-1379 +2079 +-1883 +-115 +741 +135 +-2677 +2020 +-2950 +1376 +-550 +2256 +-2618 +920 +804 +-841 +-2002 +2702 +78 +1077 +-2763 +1835 +604 +-1670 +943 +-1692 +-1370 +-863 +1691 +221 +627 +-3143 +2354 +762 +1956 +343 +353 +-2725 +3648 +-1849 +-727 +2460 +-2922 +-99 +-700 +816 +917 +2131 +755 +1401 +-2242 +1924 +-1764 +1877 +-957 +2251 +-3211 +2258 +-1111 +923 +-2595 +897 +33 +3696 +-2918 +806 +-2106 +-1296 +-2912 +2262 +-1754 +-1687 +1210 +8 +1395 +-152 +1402 +22 +988 +1164 +-1017 +2617 +-2084 +608 +2709 +-2776 +-1227 +1430 +2020 +-4053 +2660 +-3203 +-441 +333 +590 +2076 +-99 +-1837 +1680 +1566 +-2505 +-203 +1862 +273 +-3004 +3565 +-2172 +373 +2010 +166 +167 +430 +-641 +2080 +-1991 +2376 +-282 +624 +-144 +1798 +1976 +-2337 +1087 +2727 +-3323 +418 +294 +538 +-664 +-1246 +-103 +-292 +-1052 +2404 +-2822 +-2004 +-2604 +1441 +-2390 +950 +-270 +462 +775 +-1037 +3093 +-3397 +-1443 +-580 +2269 +2021 +1161 +1449 +1741 +923 +1976 +531 +-1019 +320 +53 +-97 +235 +1826 +1612 +417 +-852 +-940 +-911 +803 +-3105 +1495 +-1367 +566 +461 +469 +800 +-1544 +857 +883 +-162 +474 +429 +-2426 +439 +203 +-57 +-1307 +1710 +399 +-2511 +994 +112 +-1669 +-1233 +-1309 +2190 +-2043 +116 +3324 +-1892 +686 +-1194 +250 +-3030 +2390 +-142 +551 +702 +1860 +1935 +-153 +-2557 +3054 +97 +-2820 +-1440 +643 +-787 +1128 +-401 +2097 +3030 +55 +414 +-169 +-341 +-2323 +2136 +-1810 +986 +-602 +-1867 +-371 +1264 +-2538 +-111 +-2262 +-911 +545 +425 +3211 +-1040 +2489 +-1635 +707 +447 +259 +2452 +2243 +-1191 +1998 +-2553 +-2245 +1837 +600 +267 +-2937 +2882 +-2804 +834 +1542 +-153 +-3306 +-206 +-1776 +-1198 +1212 +2841 +-987 +-3730 +938 +444 +747 +1397 +-856 +496 +541 +192 +2810 +-162 +-1352 +-1276 +-564 +-236 +854 +1619 +824 +779 +-491 +-910 +-1403 +3178 +-325 +-853 +-1574 +-599 +-2725 +1388 +-536 +-1981 +1647 +-2703 +750 +353 +-2269 +650 +3011 +-2224 +-1936 +1336 +-175 +-1343 +251 +1452 +3956 +-2303 +2657 +-1839 +363 +662 +229 +-1883 +996 +-629 +392 +2863 +-1059 +1639 +-2292 +429 +-3607 +593 +-1234 +1594 +554 +432 +-2982 +910 +1723 +1511 +-2575 +934 +-2972 +882 +732 +-3449 +3920 +-1845 +2595 +-582 +23 +669 +158 +332 +-2730 +-1050 +-1662 +-207 +429 +-875 +-1821 +953 +-1899 +-1708 +2430 +-2879 +800 +176 +-125 +612 +176 +-979 +728 +-1892 +1456 +-918 +2805 +-1306 +-568 +-1734 +1960 +-1515 +160 +781 +-1081 +1448 +2256 +802 +-533 +3235 +-2235 +917 +1169 +-1185 +3039 +-1382 +-1963 +1357 +153 +320 +2115 +-978 +553 +844 +-2534 +1486 +1212 +-44 +-2861 +2205 +-472 +-1144 +-1531 +391 +982 +200 +2128 +-2010 +-1064 +-135 +2609 +-2147 +-1440 +1431 +-477 +-2289 +-116 +-1862 +1527 +1729 +74 +12 +-3192 +3645 +3869 +-2938 +-2277 +3629 +-1902 +-86 +3098 +2008 +1076 +-155 +-761 +-446 +869 +770 +922 +521 +30 +490 +133 +31 +332 +515 +349 +731 +500 +374 +397 +446 +351 +83 +366 +328 +197 +250 +446 +652 +400 +270 +692 +580 +159 +794 +845 +116 +296 +681 +320 +-245 +200 +-1441 +1472 +951 +2258 +690 +-3171 +2307 +1071 +-2805 +1675 +487 +972 +451 +-2108 +-1596 +2763 +-777 +1002 +-2254 +683 +568 +2261 +-1014 +-2930 +912 +-2423 +65 +945 +935 +2372 +1028 +-3263 +-1306 +2953 +1534 +-2101 +2008 +-2431 +-548 +514 +1977 +-1637 +-517 +257 +525 +1431 +-741 +-1778 +1387 +-3643 +2804 +-2544 +-2601 +2851 +605 +425 +-996 +2740 +485 +986 +24 +614 +-1534 +-1453 +-2472 +1881 +-591 +3920 +-2907 +3340 +-2617 +168 +2590 +-632 +-1390 +567 +376 +-1458 +318 +-794 +-1367 +1941 +-14 +414 +1531 +-1590 +-1779 +-504 +-1342 +321 +2696 +470 +87 +-2568 +1181 +673 +1242 +826 +3210 +-2856 +1160 +-890 +2501 +1627 +-1891 +858 +-348 +908 +963 +-516 +-1913 +311 +1620 +1790 +-3297 +4729 +-2134 +266 +1443 +1158 +-1128 +4108 +-2551 +204 +742 +-354 +-2147 +3123 +-3711 +-1974 +-1115 +-686 +-2903 +-503 +-1835 +1352 +2268 +-3846 +1785 +491 +470 +511 +-1029 +-370 +2901 +-897 +2259 +-1091 +2293 +-887 +640 +1265 +-3298 +2803 +2162 +587 +881 +-1522 +-1931 +3312 +-1058 +-1108 +2491 +-2497 +-2177 +123 +1867 +-2700 +565 +-2915 +1986 +939 +109 +3915 +-1913 +1647 +1873 +-1859 +-1177 +895 +-1000 +1282 +24 +1349 +2362 +-483 +113 +623 +273 +727 +113 +-455 +-2449 +241 +-1100 +1461 +243 +-922 +3834 +-4352 +1677 +153 +-596 +998 +835 +-1369 +-454 +-177 +-74 +314 +-246 +1074 +-534 +3139 +-2844 +1477 +-341 +-81 +-562 +890 +16 +-493 +1442 +-1057 +-1207 +-2068 +-322 +696 +-99 +-2733 +-1719 +1217 +-963 +-1220 +-573 +503 +850 +-745 +465 +741 +2479 +2225 +-999 +2110 +715 +-665 +911 +55 +-687 +1153 +-2582 +245 +414 +638 +1450 +-1309 +356 +580 +-2270 +-2182 +3746 +-2748 +1412 +-1658 +3685 +-494 +-572 +907 +981 +-277 +-2165 +3293 +-3056 +2236 +-1340 +-1093 +-3335 +2607 +-2623 +2258 +-2367 +1828 +-2124 +90 +89 +-2394 +322 +760 +178 +1071 +155 +1970 +1139 +1510 +-1217 +-1381 +-288 +-2268 +4424 +445 +926 +-396 +2801 +-1715 +62 +-1766 +2134 +1168 +-2046 +94 +508 +1726 +1311 +719 +-1173 +559 +152 +1516 +-450 +-1112 +-1923 +-390 +604 +-2892 +2796 +-395 +337 +-1381 +2636 +-1849 +1773 +542 +481 +1122 +2625 +-2096 +2914 +-995 +-2026 +3345 +-2834 +3435 +-2593 +-2328 +592 +1996 +-2066 +679 +899 +-1348 +-3142 +-459 +1339 +-2353 +1315 +-3425 +1970 +-1632 +1935 +372 +2087 +-2450 +-1362 +767 +553 +1914 +2202 +1558 +-1925 +2591 +106 +2740 +1294 +-924 +1482 +-2403 +1096 +-342 +-1512 +898 +603 +888 +-683 +-552 +710 +-1834 +-978 +1130 +-2448 +931 +2229 +-1230 +-742 +189 +2908 +750 +935 +-419 +-990 +-1120 +514 +2219 +-1407 +953 +-2764 +1964 +-3231 +-151 +1044 +729 +-1100 +583 +541 +2328 +-1278 +-310 +1595 +-73 +-1398 +391 +1846 +671 +2784 +1423 +1655 +-1639 +-343 +58 +987 +-1621 +224 +-2913 +262 +3318 +-1208 +-1200 +-2335 +2544 +-25 +-2440 +963 +1728 +-185 +703 +5 +1575 +3272 +1443 +-2557 +-674 +1993 +-2814 +2007 +-2064 +1026 +720 +2932 +-2071 +-1673 +414 +249 +-1129 +-3197 +-2261 +3176 +-2721 +1988 +2388 +-1676 +-2164 +1442 +-2198 +2158 +-1003 +1984 +538 +350 +485 +977 +262 +891 +563 +268 +844 +826 +340 +177 +908 +210 +835 +602 +23 +862 +989 +999 +951 +426 +194 +586 +237 +233 +412 +918 +360 +8 +443 +262 +593 +124 +218 +1176 +-4160 +2355 +-3126 +-1051 +-1909 +-949 +2420 +-744 +1757 +-1452 +2122 +-285 +222 +727 +550 +-2199 +3166 +-956 +2599 +222 +2923 +-1264 +-2212 +-1108 +1127 +-3207 +2865 +-2437 +269 +827 +2334 +-3800 +1108 +1960 +-4302 +1506 +-1866 +839 +2507 +2580 +1785 +1691 +-747 +2838 +309 +674 +278 +2551 +2524 +-2255 +3158 +-2423 +1822 +2159 +-2680 +-2600 +1979 +-1966 +-2250 +2312 +358 +165 +2170 +-566 +-623 +2158 +992 +1346 +-3117 +-1476 +-1250 +351 +1615 +1226 +250 +-1049 +611 +641 +520 +-535 +-2948 +1264 +-692 +-2188 +2605 +1593 +2617 +770 +-1863 +-2095 +3293 +-2413 +109 +436 +859 +-3555 +2898 +-607 +-1999 +-1648 +-232 +98 +-2637 +-2124 +-2137 +-701 +-2723 +3668 +180 +282 +1385 +1587 +-214 +381 +1519 +-372 +-2261 +2515 +556 +-1551 +340 +2942 +-4026 +2395 +352 +799 +-1261 +1140 +-4028 +522 +2153 +2030 +223 +2681 +2683 +948 +1683 +-1663 +3347 +-3329 +551 +869 +-281 +394 +3028 +-1750 +-1527 +2729 +-556 +-1061 +-2260 +1166 +-2758 +2691 +-3372 +-542 +993 +444 +-851 +1810 +-2993 +1946 +722 +-2760 +2132 +1873 +-2781 +-338 +2900 +-790 +-1110 +-2847 +913 +905 +-1839 +-2060 +-1617 +1328 +1948 +1293 +-2826 +2276 +183 +-1050 +-2565 +-1050 +765 +658 +393 +515 +-1855 +329 +-832 +-1758 +677 +374 +-1445 +-2163 +2908 +-1799 +4237 +-3346 +1657 +-1550 +35 +499 +2456 +481 +-810 +-65 +-2347 +-114 +82 +2102 +-3432 +574 +102 +-1523 +-1112 +1358 +396 +884 +579 +1650 +254 +-1453 +2722 +-686 +2787 +-1646 +3162 +1253 +385 +-2673 +1804 +-1645 +491 +656 +-1821 +1611 +878 +-1257 +-3307 +1736 +-3370 +-1320 +-273 +1281 +1467 +-990 +1295 +-1620 +745 +526 +-1485 +2362 +-2126 +364 +1764 +2232 +644 +2605 +-565 +1050 +1228 +-1606 +2374 +1922 +597 +989 +-319 +444 +-137 +110 +-1225 +167 +602 +-969 +-1859 +-210 +-1295 +2555 +-1844 +-1972 +798 +840 +1017 +16 +-953 +-532 +2296 +-3059 +1713 +-90 +-3324 +1282 +746 +-1414 +380 +-1930 +235 +293 +2148 +-2295 +-868 +2645 +-3039 +1947 +-702 +-26 +2311 +1187 +-903 +699 +275 +-2003 +393 +195 +1879 +-1495 +950 +-1610 +848 +-1852 +3014 +-1358 +1191 +-238 +2604 +-830 +1090 +-775 +938 +11 +1528 +-2561 +1964 +-2335 +2070 +2181 +-1263 +678 +-3363 +3370 +-2872 +3264 +-2548 +-2288 +839 +613 +384 +2964 +1005 +1868 +-2010 +-2124 +3524 +-2215 +1972 +-2757 +2274 +741 +-618 +1895 +920 +892 +1311 +-1172 +-2010 +-2016 +1294 +502 +-1803 +-2172 +1217 +-830 +-1725 +-1339 +-2006 +2725 +935 +111 +-1479 +2710 +2418 +-130 +-1325 +-1700 +717 +2178 +1233 +-1825 +962 +1171 +-2206 +1312 +37 +889 +924 +-2846 +-27 +-1778 +1584 +2485 +-1424 +-1239 +-487 +2161 +-2868 +1424 +-750 +2932 +60 +200 +1273 +2628 +-3086 +1541 +-2658 +432 +2713 +-1304 +-1681 +-2592 +2962 +-2746 +949 +1818 +587 +715 +-1719 +244 +-1037 +2025 +-1580 +-2176 +799 +803 +1724 +-1153 +-2520 +1771 +-968 +1686 +211 +352 +951 +-2734 +2696 +255 +1136 +1070 +-504 +1212 +-2671 +1210 +2834 +-3883 +3913 +-2724 +183 +801 +275 +-1214 +1905 +-2859 +-386 +-227 +1632 +-2118 +802 +-1234 +-134 +-888 +-132 +-3156 +318 +834 +370 +908 +943 +474 +122 +379 +900 +632 +794 +417 +493 +317 +547 +785 +882 +587 +544 +497 +462 +376 +191 +200 +121 +263 +613 +355 +113 +335 +223 +214 +449 +239 +-150 +293 +2149 +1726 +-846 +1318 +2261 +2127 +-704 +-1938 +-1503 +-202 +4020 +-2638 +684 +187 +571 +447 +-2149 +-814 +1243 +338 +-2910 +-641 +449 +1983 +3158 +376 +-1022 +-1095 +176 +424 +-1965 +2516 +-1336 +2322 +2504 +667 +-1837 +606 +2606 +-1703 +-3967 +650 +-1582 +-1069 +890 +191 +-2314 +1850 +-1154 +-984 +-1875 +-1691 +-2632 +2625 +-2915 +-1130 +3204 +560 +1354 +-2026 +861 +738 +887 +1091 +1148 +744 +918 +32 +-1447 +1046 +-1002 +3050 +-2646 +1178 +1362 +812 +656 +249 +569 +-1349 +569 +1773 +-2571 +-2737 +2592 +1245 +-2682 +-1400 +74 +-130 +-1358 +1351 +54 +25 +2051 +1938 +-321 +1411 +-1687 +3035 +-2599 +1178 +1801 +-76 +2501 +2010 +-2857 +-1539 +372 +878 +-1126 +1002 +-1729 +252 +1699 +1082 +-2199 +2455 +-1255 +-1610 +2372 +-2702 +2239 +2260 +61 +65 +-2024 +989 +2275 +-1425 +2640 +-2839 +-1052 +-1209 +-2927 +1184 +687 +1594 +1058 +1027 +810 +984 +-16 +-1773 +2168 +-1795 +307 +-3580 +452 +-505 +640 +2448 +-2310 +463 +738 +-1803 +869 +491 +-1579 +3039 +-1107 +-524 +2196 +3355 +-3122 +2074 +2231 +-2476 +-697 +1005 +3278 +-1347 +514 +234 +823 +2881 +-2182 +1138 +-1244 +-801 +2916 +-895 +-442 +-2 +2379 +-2279 +-3577 +2472 +518 +340 +2697 +-2833 +2983 +1125 +-2223 +1633 +498 +-2117 +-1131 +-756 +-1635 +2558 +2733 +-1718 +324 +376 +215 +-2733 +2427 +-1461 +2097 +-2535 +628 +225 +2338 +-1753 +2457 +79 +1610 +-469 +68 +853 +-3484 +1696 +1701 +821 +881 +598 +796 +-2927 +-2094 +-1537 +673 +1680 +-2098 +269 +924 +307 +1519 +-3330 +2144 +-3004 +3264 +-4421 +3391 +1136 +2432 +-1639 +-215 +2333 +-484 +-2096 +899 +388 +39 +-1306 +353 +-1303 +-1033 +2278 +-2683 +2561 +-1043 +1087 +-746 +-1356 +480 +2118 +288 +150 +-1050 +2826 +-1500 +-592 +564 +1683 +-1115 +-2523 +1987 +609 +-708 +1617 +-2690 +2801 +964 +292 +-1527 +391 +-475 +523 +-516 +711 +-1466 +-96 +2728 +-3491 +2481 +273 +-366 +16 +591 +808 +-560 +1538 +2667 +62 +365 +-2743 +2449 +812 +571 +-1121 +-899 +1467 +82 +462 +354 +386 +1858 +-1815 +-645 +1022 +2165 +-1024 +-2674 +-2154 +150 +1708 +-1768 +727 +-1426 +-484 +207 +542 +-2179 +89 +1242 +-1858 +-3049 +2676 +627 +3223 +-399 +-2303 +1843 +-3914 +3670 +2767 +908 +160 +-1511 +182 +-1255 +-122 +2761 +2458 +-1892 +-313 +-1433 +2197 +-1286 +401 +-1552 +-1396 +627 +912 +1700 +-2687 +2197 +1440 +-255 +-2141 +446 +1292 +-518 +655 +-608 +904 +3864 +-3823 +595 +440 +1514 +1855 +-3823 +644 +-817 +-169 +-1041 +1589 +-744 +-1617 +3665 +-2642 +2129 +-69 +195 +539 +-1307 +-68 +2653 +-743 +-1798 +680 +2214 +-1519 +3577 +-2455 +1362 +1006 +-3080 +-715 +513 +910 +2587 +-1897 +1210 +1344 +-899 +-1538 +-703 +244 +-978 +561 +-2505 +1910 +-5 +-124 +872 +523 +-1685 +819 +542 +1049 +1191 +2663 +-3260 +2249 +-2415 +1849 +-2346 +1942 +607 +-1875 +936 +584 +-1357 +219 +-1823 +-1371 +-1823 +40 +1696 +389 +-914 +1394 +990 +-2109 +-2542 +2819 +734 +191 +4 +3206 +-388 +242 +1557 +-2309 +348 +1012 +-477 +-373 +199 +2166 +2791 +1599 +915 +150 +403 +151 +61 +571 +856 +181 +342 +805 +743 +903 +723 +749 +65 +548 +652 +670 +214 +468 +536 +780 +684 +555 +222 +955 +499 +576 +759 +111 +846 +933 +668 +222 +3171 +-1714 +-1082 +-2480 +2432 +-2612 +970 +-2699 +-687 +-729 +-1944 +-205 +-2082 +-660 +165 +747 +-2917 +1132 +44 +1658 +-3325 +760 +-1365 +2169 +-2291 +3605 +-1929 +2351 +-3517 +2695 +474 +637 +2390 +-2076 +-2212 +188 +-2507 +2936 +1561 +611 +-3220 +-1068 +1167 +-2539 +2419 +1434 +745 +870 +-1577 +-598 +1225 +-548 +41 +-1038 +1288 +239 +2221 +2750 +-2905 +-1008 +1135 +623 +440 +978 +1400 +-1548 +-1972 +2486 +669 +1928 +1208 +141 +768 +-1139 +-280 +1672 +1116 +-732 +633 +144 +-505 +-1200 +838 +235 +1882 +-1306 +-1029 +-325 +-2885 +-1156 +1336 +479 +-765 +-78 +607 +900 +-3143 +2685 +-2635 +-1998 +-416 +1956 +2676 +-3132 +3507 +2020 +-2421 +-1629 +4479 +-1126 +639 +268 +226 +-2420 +1893 +-1234 +285 +-920 +-1106 +-309 +-3068 +3757 +-2465 +-295 +-3238 +1546 +153 +895 +1932 +-1427 +1805 +-1157 +-2845 +1122 +444 +1919 +45 +-282 +-2251 +2381 +-1332 +-2935 +823 +981 +511 +2726 +-3190 +951 +516 +1955 +-84 +-1723 +1766 +163 +-997 +2407 +-2837 +4061 +37 +948 +1064 +-2112 +-267 +562 +1169 +-1625 +-1898 +1258 +-2404 +725 +-2117 +-2052 +928 +-2448 +670 +508 +2651 +-2517 +-1108 +-1390 +-1786 +1483 +1876 +2045 +-2601 +1478 +1554 +-472 +3639 +754 +846 +142 +-2981 +2243 +1181 +-502 +-538 +-1025 +-3536 +-297 +-673 +2573 +-1308 +-833 +-3270 +-1712 +627 +329 +-828 +-55 +795 +23 +-925 +2814 +-2 +2141 +1314 +1850 +-309 +-1157 +2809 +2258 +474 +249 +1842 +912 +-2406 +-246 +-1839 +-2257 +-560 +3374 +-324 +436 +-2076 +-161 +-382 +2572 +625 +445 +-221 +-542 +-2109 +3195 +15 +1970 +-358 +-3263 +-91 +-698 +-1223 +181 +1515 +-2928 +66 +76 +3212 +-3180 +3052 +233 +-340 +-2385 +2288 +265 +-1543 +152 +467 +1127 +516 +355 +538 +612 +52 +798 +344 +-3053 +3267 +-823 +-2162 +451 +-447 +-464 +2589 +-2068 +-787 +-552 +666 +718 +-459 +745 +-2725 +-1699 +634 +-393 +2982 +-3064 +925 +4 +-651 +-182 +3560 +-3244 +696 +107 +-464 +-347 +146 +1146 +1407 +641 +-1777 +169 +1405 +1056 +-1270 +-423 +-1555 +165 +582 +243 +2218 +2882 +-2082 +-782 +-942 +-1746 +-809 +484 +996 +-634 +-1331 +-387 +3480 +1668 +898 +531 +-1842 +-3370 +3376 +1176 +160 +-2358 +2374 +-1671 +-1444 +3156 +-2514 +4126 +-3188 +-1452 +407 +327 +-1307 +242 +-1592 +2979 +-1189 +-2722 +954 +190 +-985 +-2436 +-654 +899 +-930 +-510 +7 +838 +2026 +-98 +661 +-2442 +-1916 +3930 +278 +-2859 +1398 +3707 +-3420 +3247 +-2677 +2382 +431 +539 +-593 +-2180 +826 +1966 +-1543 +169 +1568 +-318 +647 +-1867 +-1393 +-1658 +-905 +65 +332 +640 +-1786 +-487 +1416 +-78 +870 +1360 +-2659 +2980 +-1873 +-392 +2549 +290 +3599 +-1470 +840 +881 +697 +-831 +1480 +-619 +-1692 +-1693 +949 +-3296 +1696 +1515 +2701 +-3024 +-771 +-1819 +963 +912 +-860 +1042 +-609 +-1873 +3279 +-450 +1774 +56 +-747 +296 +-393 +1086 +2249 +328 +349 +151 +-1739 +-1468 +955 +730 +-832 +-2216 +953 +1503 +-1204 +-258 +406 +-393 +-1576 +-2617 +870 +657 +-802 +-1537 +3137 +-1108 +286 +-1770 +2566 +-683 +1526 +-539 +-2234 +1475 +-2343 +2467 +538 +213 +645 +11 +650 +159 +364 +932 +30 +551 +958 +783 +199 +471 +960 +475 +875 +475 +312 +133 +675 +603 +709 +237 +103 +182 +237 +875 +991 +116 +646 +735 +945 +24 +-1213 +-2198 +1960 +-227 +-1560 +-714 +1624 +-811 +1633 +-1914 +-681 +-1068 +-1348 +1236 +482 +138 +331 +2180 +275 +1190 +3266 +303 +-3004 +3615 +-1866 +-2124 +3143 +497 +3072 +-436 +812 +685 +783 +-1438 +323 +-3166 +1048 +-1166 +3024 +-3236 +3772 +-3272 +2076 +1717 +-3834 +1677 +728 +521 +248 +-154 +3146 +-339 +-1841 +-513 +1609 +1547 +-1992 +1496 +-1738 +-2378 +787 +591 +88 +7 +-66 +-2499 +1293 +-3189 +-31 +1104 +-2693 +1574 +-3079 +205 +2214 +-1038 +442 +-2471 +874 +649 +862 +1901 +1848 +87 +-2485 +2638 +2091 +1168 +2955 +1086 +-1113 +225 +-267 +643 +313 +990 +593 +60 +3363 +-1447 +-1371 +-1606 +-62 +-1431 +-389 +-2818 +4164 +-2658 +-2350 +1502 +59 +958 +-1758 +-1171 +-1532 +1799 +844 +-2916 +2670 +1905 +-641 +-1199 +-1072 +1314 +-623 +688 +632 +608 +2330 +-1418 +-1033 +-1432 +186 +194 +923 +-4097 +69 +-2709 +3140 +314 +2020 +1351 +26 +972 +-1212 +1868 +-2424 +2588 +-437 +2366 +-1356 +1384 +350 +2059 +-2362 +-22 +2519 +-1289 +270 +789 +1821 +-1903 +1341 +2720 +-2252 +-2356 +2394 +1441 +2613 +-3143 +379 +888 +804 +2657 +292 +55 +-1516 +2701 +-2422 +-596 +988 +-2616 +1695 +127 +716 +1389 +1558 +-2266 +-700 +-2371 +375 +764 +3376 +-3097 +2194 +2334 +920 +374 +3035 +-2169 +1591 +-3399 +897 +-817 +2336 +2008 +424 +672 +-2421 +231 +1895 +-1165 +-371 +974 +-1501 +-1053 +-2479 +1945 +-2410 +-48 +-1788 +-106 +651 +850 +-1131 +-3270 +-323 +2656 +-1518 +1584 +-1704 +688 +-3198 +1242 +2875 +2362 +-936 +-3155 +882 +763 +2316 +1411 +5 +-2202 +2861 +973 +-1221 +1018 +976 +-279 +-1696 +-1724 +-3149 +3050 +702 +252 +-1653 +2904 +-1110 +-1086 +-3198 +1087 +1434 +-1387 +2835 +-1585 +2623 +2482 +-291 +386 +181 +735 +-1625 +-2111 +1058 +3130 +-2837 +545 +-283 +-116 +-2179 +1272 +-1735 +-121 +2037 +-1800 +577 +737 +-1142 +-280 +2041 +12 +1817 +1372 +-3894 +3550 +-2908 +2462 +554 +-2599 +-1404 +-472 +781 +306 +2317 +1919 +-2760 +-1354 +254 +-232 +2775 +1822 +-3266 +3057 +-1593 +783 +523 +54 +938 +106 +2120 +-2461 +1231 +-1167 +1028 +-59 +95 +-1439 +1867 +-1749 +-908 +63 +-2428 +272 +769 +451 +-2554 +3800 +-2217 +-699 +1805 +537 +2224 +2582 +928 +1155 +1085 +-2272 +-507 +-1397 +468 +398 +3660 +-2517 +-2612 +2673 +-902 +2295 +-1741 +-3258 +453 +-2726 +-411 +3144 +-424 +1771 +142 +325 +468 +2814 +-780 +-2414 +1644 +-2655 +-193 +-8 +2147 +297 +2568 +-1841 +-16 +2941 +152 +171 +-2094 +-914 +-726 +-98 +167 +1867 +751 +2070 +-1724 +-1749 +4061 +-981 +2710 +-1673 +12 +841 +1451 +1197 +-348 +239 +-1305 +-2076 +1185 +-1047 +1320 +-472 +-2791 +-1035 +-1015 +6 +211 +249 +-2444 +612 +821 +-1758 +113 +3338 +-747 +2592 +-467 +-1558 +-1078 +1001 +1261 +1119 +103 +541 +3133 +-2688 +-154 +-1425 +1321 +-479 +1536 +-1794 +2061 +-1076 +1039 +-1278 +-2651 +2311 +645 +718 +1537 +-552 +2242 +-2303 +-124 +1683 +272 +-502 +1421 +-1321 +-2496 +3012 +646 +-1566 +65 +553 +2740 +-1204 +-1432 +429 +702 +-1001 +-1928 +-1087 +-1992 +2360 +139 +157 +1054 +-597 +438 +160 +48 +649 +64 +651 +899 +220 +414 +849 +251 +559 +792 +969 +845 +253 +633 +119 +127 +808 +3 +624 +519 +585 +444 +710 +160 +926 +877 +237 +511 +589 +919 +364 +-1130 +289 +1461 +2518 +-1048 +2252 +2338 +-2647 +1087 +414 +1837 +-2414 +2564 +1191 +125 +8 +-1229 +1542 +-3373 +1533 +-262 +-2934 +315 +-687 +1320 +1281 +-3664 +1719 +101 +269 +9 +12 +-1271 +2513 +-33 +1558 +-1487 +-492 +-2623 +-930 +2138 +622 +3275 +-2592 +-107 +-1085 +913 +379 +-1917 +1239 +-2217 +832 +1437 +-853 +-1347 +-779 +692 +-2071 +-2525 +3267 +-2864 +402 +203 +378 +1856 +-1106 +-436 +387 +-306 +1700 +-865 +2274 +-288 +-1337 +3576 +-2699 +1144 +-3408 +703 +355 +483 +1457 +-2875 +3275 +-2733 +-437 +-1845 +-846 +-819 +2000 +-2806 +640 +745 +2880 +743 +730 +914 +110 +-1960 +280 +1909 +1356 +1622 +1388 +-2194 +2977 +-1603 +3116 +-3102 +827 +783 +725 +-1615 +1732 +-1992 +-2785 +1744 +1356 +-1262 +-776 +254 +983 +1216 +128 +2968 +-3913 +727 +817 +554 +-2284 +2079 +-828 +2114 +-2682 +433 +2142 +1534 +-335 +1661 +344 +-3461 +1660 +492 +446 +1968 +-2522 +480 +1243 +-914 +83 +-2972 +3330 +-2390 +2598 +-2854 +854 +-2775 +-372 +240 +346 +-2841 +1837 +-1046 +-757 +213 +-113 +-329 +-3837 +-613 +2220 +2143 +-1726 +-489 +2666 +492 +225 +2543 +1429 +124 +-377 +182 +-694 +2615 +-1037 +-2111 +-2032 +-272 +1419 +-2139 +1153 +745 +159 +661 +-1124 +-1126 +77 +-3225 +2208 +-3579 +1426 +3034 +-3105 +98 +1370 +-1752 +-1518 +298 +760 +-2658 +2257 +-629 +2403 +-959 +-16 +-414 +-974 +1143 +2758 +-1833 +-798 +783 +766 +116 +703 +1247 +3361 +-2428 +389 +1104 +1755 +-543 +282 +1838 +517 +-2389 +549 +781 +-583 +640 +843 +-2912 +-1381 +-1421 +-1883 +-1464 +125 +2463 +-1565 +-2113 +757 +1989 +722 +3254 +-2879 +663 +643 +989 +1740 +-435 +589 +4046 +-2719 +-2294 +717 +3040 +-3798 +-1555 +-1427 +-2952 +3756 +400 +654 +542 +-347 +-2447 +2861 +-1373 +-312 +4240 +-2476 +-1500 +2694 +-866 +1854 +-1470 +-1778 +177 +483 +2074 +-1089 +3412 +-2394 +2475 +-2047 +-53 +1884 +153 +-658 +1437 +-354 +-622 +2086 +159 +753 +-2376 +-3400 +1879 +880 +985 +-837 +751 +-3251 +727 +-1358 +523 +1309 +1816 +2274 +218 +59 +-1013 +1889 +-190 +923 +1670 +-881 +-844 +1495 +-868 +-118 +-2830 +-306 +-1064 +-2126 +707 +27 +209 +1476 +1374 +2469 +-2858 +640 +-2649 +-62 +-1226 +1566 +1377 +18 +-995 +4333 +13 +31 +-1604 +393 +2020 +-2120 +94 +104 +968 +2058 +-508 +172 +1756 +-304 +258 +-2930 +206 +467 +2417 +2459 +-3846 +3939 +-4001 +726 +-364 +-12 +-2167 +-894 +-960 +-2231 +497 +158 +645 +254 +-2710 +645 +1419 +-1477 +3550 +-647 +1517 +-2694 +2997 +-1440 +-655 +536 +-2920 +103 +641 +834 +1641 +-1932 +300 +952 +-3110 +-1397 +-2706 +99 +720 +-1831 +1586 +-3053 +3051 +-579 +279 +931 +1310 +665 +-918 +729 +2340 +-2903 +2033 +1163 +-3477 +3972 +-2920 +1639 +18 +-2413 +894 +811 +-2602 +753 +-525 +3047 +-2459 +1358 +-3227 +2979 +340 +-333 +2122 +-1804 +-770 +1906 +519 +821 +2695 +-1200 +-1990 +2546 +677 +-2323 +1617 +-1343 +2513 +595 +-1231 +393 +-1888 +3068 +219 +548 +-1157 +-1648 +-1171 +2064 +-1931 +-86 +-1288 +621 +-2801 +-135 +3609 +-3790 +1366 +-3283 +987 +950 +9 +940 +224 +531 +315 +738 +843 +502 +597 +290 +631 +439 +778 +817 +40 +37 +848 +623 +868 +690 +543 +225 +881 +84 +303 +688 +773 +1 +127 +74 +840 +56 +-2386 +996 +-286 +-3028 +1277 +878 +-3403 +-1244 +1313 +-1473 +702 +3762 +-1556 +-2821 +753 +70 +2904 +1321 +789 +-1908 +-1192 +1973 +217 +2064 +380 +-1966 +86 +-2257 +2751 +-1496 +835 +976 +1171 +-1985 +-1021 +1279 +2367 +1394 +2270 +-52 +-2890 +3393 +-3003 +-1402 +2161 +2716 +5 +901 +-2380 +1462 +675 +-2137 +2190 +-387 +-1067 +2772 +-18 +135 +-784 +2492 +1671 +-3601 +433 +917 +-2885 +84 +-627 +1425 +-1125 +-1739 +-1241 +-1222 +-1385 +545 +34 +-2 +-921 +3594 +923 +711 +1128 +652 +-1182 +824 +1780 +-655 +3519 +2118 +-2335 +-211 +-2050 +-989 +-317 +-310 +360 +837 +592 +1668 +-648 +-3021 +2674 +-1544 +-3684 +2136 +-1589 +-113 +419 +1360 +-1844 +1270 +295 +53 +2426 +1194 +2119 +3043 +-2169 +623 +1153 +-3246 +1649 +-1090 +-1107 +-384 +-98 +1225 +705 +173 +-2520 +2640 +-4287 +658 +-2148 +1027 +726 +1282 +-834 +-1321 +1920 +-3097 +1220 +1302 +601 +469 +1111 +192 +3777 +-717 +2919 +-1977 +1663 +-2110 +185 +-1767 +-2708 +1577 +4047 +-2848 +692 +683 +337 +-1163 +-2973 +2395 +-2669 +-709 +1471 +2394 +1767 +1735 +2846 +-2246 +-2855 +601 +580 +922 +-3634 +1395 +2522 +-2667 +290 +3292 +-2801 +-2201 +847 +-1906 +-2083 +501 +2847 +-1792 +297 +182 +-219 +2869 +-3062 +1334 +269 +-1319 +1428 +-1826 +-402 +3011 +2076 +616 +-116 +-192 +180 +674 +-774 +-2135 +-2833 +1694 +-2887 +3314 +-1442 +2851 +1582 +-3025 +2459 +1042 +-2273 +-552 +208 +694 +2066 +-949 +2977 +1323 +2440 +-3613 +2384 +-502 +-2764 +2085 +-3384 +879 +1423 +-482 +517 +496 +1997 +2304 +-371 +-39 +-2470 +637 +11 +1452 +-243 +864 +681 +-2081 +-1202 +279 +538 +453 +-2611 +1186 +-7 +-471 +835 +331 +-2148 +480 +-3108 +3560 +-1650 +3106 +1338 +-1232 +103 +464 +818 +-427 +-254 +-1475 +179 +2529 +-3140 +289 +-1159 +1836 +-1857 +-314 +2148 +68 +895 +211 +2893 +-3041 +-1210 +-1595 +863 +-300 +1049 +616 +28 +-442 +2837 +-659 +1608 +926 +175 +414 +-2567 +3728 +-2051 +1001 +-2300 +-1589 +-34 +-753 +2062 +-1632 +-2325 +2654 +856 +227 +466 +21 +1171 +1252 +868 +486 +-38 +785 +-2118 +2580 +-2308 +-1920 +4127 +-3647 +2055 +-2283 +116 +428 +2453 +-3847 +1146 +-3591 +150 +-3052 +3079 +-205 +-310 +2166 +-161 +2389 +644 +-775 +781 +664 +-1523 +551 +1538 +346 +1774 +1625 +923 +-481 +2334 +-366 +-1167 +-1056 +310 +1959 +911 +569 +619 +-1749 +-1282 +1014 +-276 +572 +817 +-200 +-295 +2444 +1363 +854 +1939 +589 +506 +145 +-1425 +1535 +-1707 +1733 +-329 +-356 +2075 +-1899 +1220 +-1073 +-335 +465 +-814 +-2383 +593 +837 +1758 +-1143 +937 +-248 +2558 +2276 +-1893 +423 +270 +2948 +978 +1222 +-53 +3063 +219 +15 +868 +-1504 +2375 +121 +-304 +1118 +-422 +-2164 +1039 +-3282 +1438 +2552 +-3222 +1603 +261 +220 +-334 +-26 +258 +-1926 +-1734 +451 +-525 +-607 +-621 +1881 +-1504 +-2588 +2570 +834 +471 +24 +742 +1171 +-1429 +2796 +-121 +-805 +-1631 +1348 +-658 +247 +2897 +-1442 +-1600 +464 +861 +828 +-393 +153 +-701 +-2713 +-140 +1958 +-1046 +3215 +1041 +-1446 +-3268 +3496 +-703 +1649 +50 +582 +414 +539 +483 +449 +62 +1 +988 +140 +324 +86 +500 +643 +672 +271 +804 +532 +297 +580 +848 +290 +9 +926 +739 +115 +122 +986 +358 +74 +69 +658 +719 +475 +728 +-3118 +1957 +-182 +368 +-1964 +1018 +1897 +-1962 +-522 +1707 +-989 +-48 +3643 +153 +909 +-4405 +3097 +243 +814 +-42 +-610 +1479 +648 +-2277 +1638 +1115 +1200 +-2613 +-937 +258 +542 +2849 +-2009 +37 +2447 +-2792 +-2653 +-2080 +-998 +742 +244 +2226 +1009 +-3027 +649 +145 +435 +436 +-380 +-76 +-3584 +-583 +2334 +1971 +-3230 +4145 +-2289 +-1791 +-2573 +2660 +839 +416 +373 +2072 +-1047 +2611 +462 +2274 +509 +-2620 +3483 +-3030 +763 +-504 +-821 +2694 +-3367 +763 +747 +-1077 +-2594 +3353 +-1133 +-340 +1075 +-1458 +-3751 +4384 +-100 +2937 +905 +-1003 +-1850 +461 +825 +-896 +-106 +-2700 +4062 +-4318 +-665 +4114 +-1863 +1712 +-2132 +-2632 +2428 +1098 +-1950 +949 +617 +-2395 +-1956 +1892 +-498 +3247 +-1670 +-3372 +1289 +-580 +2060 +-1935 +-157 +-416 +-361 +580 +802 +-1453 +-460 +1405 +1024 +-3381 +2733 +3662 +-3125 +2670 +364 +806 +411 +-427 +-1556 +961 +429 +1653 +52 +-3941 +1697 +-517 +-18 +-3788 +1309 +-2843 +1683 +1958 +-1776 +-603 +-96 +332 +619 +-2266 +3420 +-128 +2192 +642 +2385 +-1646 +525 +2831 +-820 +-2681 +2817 +3414 +-2483 +981 +166 +1629 +-882 +-3048 +-45 +1722 +-3142 +-2356 +2661 +-3089 +573 +-1280 +3266 +-2619 +-1129 +524 +696 +-1169 +774 +2289 +192 +918 +-1253 +3877 +-20 +899 +570 +-1716 +-1555 +320 +-384 +529 +95 +2277 +-2302 +1686 +1347 +1552 +-239 +-1606 +-2503 +-1925 +1231 +-2503 +-885 +3268 +-2321 +31 +601 +-667 +-1807 +1993 +-3338 +1389 +-56 +351 +1629 +444 +-455 +1619 +2098 +-4325 +1889 +641 +942 +-2020 +-2038 +-2831 +-705 +-670 +-1525 +1945 +1187 +-2371 +-1489 +-1600 +2617 +2395 +624 +123 +159 +3199 +822 +1258 +69 +-324 +-1236 +2076 +1080 +3455 +-1480 +1751 +-3611 +1788 +-887 +879 +270 +-1377 +374 +1072 +1684 +-805 +-1704 +2056 +-1915 +-2190 +-2114 +1080 +-370 +-2308 +-630 +81 +734 +1821 +999 +-625 +-2253 +-2687 +1976 +-1705 +-361 +1150 +3816 +-3624 +494 +-1034 +1131 +610 +441 +816 +-1809 +-1992 +2138 +2412 +313 +0 +-864 +1961 +-3094 +2072 +-2068 +-2463 +-1356 +270 +21 +2231 +-1354 +-2541 +-878 +2351 +-1088 +1351 +-315 +-1729 +1052 +-1222 +3091 +-2411 +516 +974 +836 +-1300 +326 +1262 +-1024 +2534 +-1763 +-1325 +-1918 +918 +-1516 +844 +-280 +-1257 +1175 +42 +365 +-540 +1999 +-3159 +2973 +-4832 +2223 +379 +-1800 +154 +927 +-2716 +1559 +-1921 +-2993 +745 +697 +-662 +-2242 +2152 +-1241 +2533 +-1589 +2337 +1662 +75 +-2812 +616 +746 +2102 +797 +619 +16 +-527 +-1110 +2360 +-579 +-482 +-2600 +370 +-1433 +-539 +-203 +-148 +-2593 +2425 +-1495 +424 +181 +399 +1761 +374 +135 +1933 +-2052 +1497 +2433 +-388 +-1196 +-1765 +-578 +-1508 +-1669 +548 +736 +-1627 +-1610 +2667 +-2627 +-1674 +-1777 +2670 +-705 +3211 +-1430 +-977 +1618 +3184 +287 +773 +883 +-262 +1161 +-1128 +-1751 +781 +-515 +1396 +-277 +-351 +-1536 +1349 +204 +-516 +-3058 +212 +225 +2042 +1769 +-1876 +534 +889 +-1318 +3367 +-2029 +-1641 +681 +-1986 +2919 +-2294 +663 +470 +282 +319 +-2663 +262 +2650 +210 +-2512 +1500 +-2000 +842 +-216 +-89 +1541 +324 +2184 +733 +90 +114 +909 +148 +687 +772 +556 +472 +194 +454 +275 +136 +35 +867 +325 +465 +105 +233 +589 +204 +627 +750 +314 +520 +372 +384 +783 +172 +964 +651 +333 +460 +976 +-1555 +-1568 +2819 +-3105 +2085 +-2235 +2010 +1226 +191 +878 +908 +-1498 +-2176 +258 +958 +771 +2525 +-251 +173 +-2153 +-525 +-1745 +-12 +-2834 +3154 +-3452 +903 +-649 +2422 +-2965 +708 +526 +-1502 +-2359 +-534 +2613 +-2168 +3228 +-3273 +4391 +-584 +-2904 +751 +-2292 +3386 +-16 +22 +573 +1078 +-257 +-3176 +1897 +1617 +617 +2159 +-2184 +720 +-762 +1813 +-442 +-1043 +-1202 +264 +784 +150 +523 +-600 +2950 +-2805 +1388 +-1156 +-434 +-2014 +1887 +1776 +482 +1745 +-662 +233 +529 +1942 +-1442 +-11 +-1913 +1170 +-27 +1449 +1452 +-3286 +2400 +-3579 +1821 +-4245 +4022 +576 +159 +2139 +-1346 +1370 +-3367 +3768 +-588 +-2732 +3050 +-294 +1225 +3163 +-3565 +2245 +16 +816 +849 +226 +-1500 +-1427 +220 +-603 +199 +1815 +2728 +-2141 +-3173 +1426 +1334 +531 +-2867 +938 +163 +1256 +1733 +1399 +-2124 +1206 +-2036 +-1861 +1 +-663 +2717 +509 +-61 +-1660 +958 +991 +721 +-996 +-612 +2361 +1112 +-1303 +-841 +3469 +-1588 +78 +1826 +2041 +-2471 +-1485 +3536 +307 +214 +-798 +-3100 +224 +-2152 +-1616 +2527 +1142 +1826 +-1389 +-3234 +-1757 +-491 +-619 +893 +5 +189 +-140 +2542 +-478 +1688 +1163 +-364 +2298 +-1410 +-2690 +3389 +638 +-1055 +988 +1537 +803 +688 +2195 +-1214 +-3095 +-1307 +1682 +528 +-3370 +1038 +2225 +-1404 +-2034 +-944 +-1358 +-247 +254 +922 +-1189 +496 +194 +1135 +360 +465 +-499 +-2331 +1591 +1517 +310 +3363 +-2732 +2513 +664 +939 +1172 +951 +-164 +-2667 +-476 +1584 +1211 +786 +3 +1174 +-2087 +-1164 +1278 +1733 +419 +513 +-1271 +-1607 +1710 +3845 +2109 +-2413 +-1799 +448 +-1625 +268 +2309 +-1894 +-2463 +240 +882 +439 +1819 +455 +1467 +-2680 +-2739 +3673 +560 +-1080 +3256 +-3642 +1374 +141 +2222 +-960 +45 +902 +-2336 +-1403 +1305 +1132 +-1003 +-1281 +-1128 +-183 +-1205 +3323 +1064 +1956 +373 +-1049 +991 +808 +-1600 +-1721 +1411 +450 +1650 +702 +1299 +-688 +-189 +-2429 +-17 +-1182 +1956 +-3236 +241 +309 +1573 +2845 +941 +735 +601 +1845 +-794 +-66 +1523 +1101 +2000 +-3025 +3155 +1987 +932 +251 +1429 +-290 +1207 +-2301 +-3131 +275 +-2913 +857 +835 +1015 +82 +1084 +-1835 +2410 +594 +910 +766 +1910 +729 +2839 +523 +1448 +1795 +1526 +-279 +-1300 +-3436 +2487 +1511 +-960 +480 +893 +-1508 +-1998 +642 +-1382 +3726 +-2338 +1179 +204 +-541 +-2550 +3001 +-2955 +3177 +1298 +126 +952 +531 +2555 +-799 +-600 +-1999 +-2401 +-1724 +-395 +220 +280 +2109 +-831 +-3918 +1368 +868 +876 +-340 +-3128 +269 +-1386 +1708 +4106 +-406 +-2115 +3339 +-1512 +1562 +2540 +-213 +-3056 +826 +536 +881 +2155 +-2334 +-874 +-1193 +-3440 +-821 +1030 +-2367 +3298 +583 +337 +84 +607 +839 +100 +285 +2755 +-1484 +1235 +-546 +3484 +-2672 +-228 +-2846 +-1003 +-1927 +909 +-719 +-1980 +269 +711 +1380 +-3063 +1529 +2222 +-2775 +1879 +2007 +945 +-55 +-357 +43 +-2279 +-870 +1519 +500 +927 +951 +-3075 +4268 +-4116 +2994 +-1246 +-1103 +-1294 +-744 +2654 +1612 +1825 +496 +2492 +610 +409 +1317 +1998 +-2711 +536 +-214 +3920 +-3495 +3574 +190 +1414 +-1508 +-3456 +275 +-2224 +274 +915 +266 +38 +935 +728 +220 +344 +940 +337 +191 +144 +792 +884 +314 +986 +150 +408 +285 +957 +786 +863 +56 +231 +867 +834 +853 +87 +241 +194 +530 +291 +47 +709 +-1814 +555 +1672 +1368 +-1881 +983 +-1485 +1762 +-1529 +-717 +-2130 +2439 +2538 +-1233 +942 +953 +796 +940 +-1579 +-535 +1275 +1114 +-2949 +-902 +-179 +1815 +2223 +641 +-3509 +3095 +952 +826 +-2103 +2587 +1712 +669 +258 +-2414 +3818 +-3558 +3240 +2577 +-736 +2904 +-1203 +1410 +747 +94 +-342 +744 +2582 +-1662 +-1204 +2073 +-1369 +1938 +-3320 +-1496 +1456 +-3 +-2527 +1852 +575 +338 +-2117 +-3120 +-1478 +-986 +1994 +-2603 +-661 +447 +202 +-1796 +-1290 +349 +2233 +-2768 +463 +71 +1558 +2484 +484 +-2423 +1339 +-2176 +2456 +614 +347 +1916 +198 +-237 +2035 +-1068 +145 +645 +1315 +1510 +-1075 +3569 +-3802 +-679 +2690 +-3199 +-1181 +2287 +-2199 +2631 +-1572 +1502 +209 +303 +-1597 +2660 +-3871 +1421 +1179 +-1577 +3175 +-1793 +515 +-2999 +3354 +-243 +-1354 +1815 +635 +209 +1829 +-4108 +3412 +-2749 +1465 +-1229 +-2603 +1212 +-2454 +-721 +-1880 +-923 +667 +-3015 +677 +313 +-1972 +2485 +-1615 +270 +-3226 +3935 +-1911 +1307 +1986 +-2043 +1170 +2279 +509 +-932 +124 +766 +584 +1120 +-1092 +-1748 +864 +-2938 +-1396 +1839 +-2464 +2889 +-1841 +1876 +-2028 +-1743 +75 +306 +-998 +1450 +-243 +446 +-1589 +2413 +1824 +-1687 +4114 +-236 +1031 +-1718 +1969 +2790 +626 +347 +2883 +1900 +766 +1723 +1167 +-2803 +-1330 +-2457 +-624 +-144 +-445 +699 +681 +-1423 +629 +494 +-2859 +-624 +-432 +-1710 +-2315 +284 +2550 +2040 +-1189 +129 +1333 +-678 +153 +964 +641 +202 +1623 +-277 +-1377 +2150 +-1357 +-270 +-575 +1193 +-1091 +509 +-2467 +2357 +-2445 +-1134 +184 +43 +1775 +1557 +950 +-1336 +-1383 +-1061 +1092 +-2143 +2792 +-581 +1222 +1934 +-1388 +1833 +18 +271 +317 +-1477 +-2494 +-657 +4214 +-2689 +-224 +3262 +-4480 +3254 +-2240 +1907 +254 +986 +218 +418 +2834 +-3085 +-296 +-1657 +280 +2005 +2203 +-2399 +2329 +-477 +-1366 +-293 +-1639 +1949 +88 +785 +-2008 +2296 +2625 +-1540 +1509 +-2391 +1783 +1343 +-1040 +-298 +-1677 +-1293 +-2074 +2803 +386 +742 +-447 +-903 +-2947 +-351 +-546 +-1058 +1967 +-772 +-1666 +359 +2878 +-487 +429 +-1076 +770 +866 +-2493 +-361 +3497 +-1667 +-538 +2898 +459 +-1021 +-1270 +-150 +72 +-2701 +2005 +-714 +790 +393 +-2694 +-1407 +-1059 +-2115 +-468 +-2768 +1225 +-1953 +-597 +1365 +1661 +2440 +-2551 +-1971 +708 +359 +915 +1855 +-117 +2191 +-1394 +2676 +-432 +-155 +990 +-747 +1854 +-2278 +924 +-1330 +873 +904 +611 +-835 +-777 +-726 +-1657 +2495 +-118 +-1930 +3106 +-2410 +-362 +-2770 +2481 +1034 +91 +326 +1590 +617 +-1157 +1741 +814 +-1919 +-1197 +-833 +-1447 +2337 +-2702 +2143 +-232 +910 +250 +918 +1478 +-3797 +3523 +-1618 +1115 +3208 +-2023 +1639 +966 +1310 +1580 +-1199 +1186 +-956 +964 +850 +-2490 +-1713 +2492 +773 +-2189 +-31 +3268 +-394 +2732 +-845 +-1795 +-2017 +181 +866 +356 +378 +1895 +2366 +-429 +20 +2712 +-833 +-569 +-2523 +3433 +-695 +-760 +3688 +-72 +-206 +413 +584 +-2549 +3579 +-3860 +2810 +-1941 +926 +2086 +-1780 +-841 +-1820 +2326 +-1098 +-1180 +-1083 +792 +219 +-318 +-874 +-1484 +2044 +1232 +-3089 +-502 +-568 +-3047 +2088 +-743 +108 +1834 +367 +141 +973 +277 +370 +920 +37 +216 +214 +25 +265 +900 +678 +584 +751 +758 +812 +954 +215 +683 +629 +529 +636 +618 +91 +827 +17 +693 +121 +16 +690 +629 +558 +696 +192 +2615 +649 +-1924 +984 +-140 +160 +1710 +-321 +-144 +3838 +1526 +-3307 +-107 +-2088 +720 +754 +-609 +2238 +-1862 +-1450 +-3263 +1079 +1362 +1332 +85 +-914 +-1721 +2336 +-138 +-1166 +476 +696 +2565 +-2121 +946 +2200 +1751 +-355 +1821 +-2100 +-3232 +-1368 +-1360 +-870 +1039 +-978 +653 +726 +-3380 +2397 +-1111 +-1923 +1707 +-2967 +-255 +1994 +3873 +-1039 +3732 +-2071 +-526 +-2358 +181 +940 +2516 +2078 +-1768 +2396 +713 +-1181 +400 +2792 +-2672 +2886 +-2239 +-2176 +-663 +1022 +876 +228 +2049 +-1113 +-1797 +946 +-286 +-77 +-1438 +-2890 +905 +1979 +-2326 +3959 +-2562 +-2875 +947 +783 +-1923 +-2554 +1702 +776 +-559 +1834 +-2333 +3227 +-1606 +-3667 +2941 +-3177 +413 +2312 +210 +624 +1423 +2167 +1807 +576 +792 +1025 +-483 +750 +-1408 +3358 +-3769 +2338 +-10 +-1013 +980 +887 +-1785 +580 +-1748 +-221 +1098 +-3639 +2811 +-2418 +3299 +-1651 +351 +223 +559 +3223 +59 +676 +2633 +-1586 +360 +-2771 +2818 +884 +1396 +-2618 +-967 +1587 +-274 +-1493 +-1217 +78 +930 +593 +-128 +-134 +-1803 +3461 +-1252 +1727 +-518 +1779 +2100 +99 +-2326 +-102 +2355 +-2125 +366 +834 +-2065 +3037 +1925 +-2790 +-2943 +1635 +-1679 +63 +-3908 +11 +2545 +-2943 +1104 +-396 +794 +364 +-1223 +-3028 +942 +2069 +1647 +409 +-2622 +2648 +-368 +-2977 +2808 +1661 +-2847 +-1490 +563 +809 +-1146 +1433 +-2324 +-109 +-982 +2785 +735 +1320 +1995 +1653 +-2603 +925 +3679 +-744 +540 +515 +68 +-1737 +964 +-1634 +-1111 +-1095 +-704 +-2047 +-1384 +1396 +1876 +-1633 +-1755 +-237 +52 +134 +572 +702 +971 +74 +1874 +1330 +-399 +-3048 +1763 +1089 +-3598 +-105 +1745 +840 +607 +334 +1652 +1705 +1363 +-142 +-2187 +-1670 +-2302 +2337 +1412 +-2947 +-774 +2906 +-2352 +-2386 +873 +140 +-1347 +2721 +-2163 +-1071 +630 +137 +2440 +-2358 +1923 +-292 +1790 +-481 +877 +-1699 +204 +703 +764 +-2022 +1213 +-1912 +2211 +-2164 +-1443 +-1666 +-383 +1117 +2229 +-7 +938 +-389 +455 +505 +969 +-2176 +2231 +1120 +342 +2215 +1345 +338 +-140 +-1134 +-3741 +1099 +-1040 +3248 +60 +326 +-496 +-1795 +-1256 +1045 +-384 +-3267 +1776 +-2408 +2890 +1267 +2920 +-402 +1722 +-2606 +580 +670 +4213 +-1694 +2094 +-2838 +3650 +-951 +-987 +-1095 +-1611 +670 +-2317 +-1999 +-609 +-2172 +813 +44 +-1134 +-1840 +1987 +-1403 +-2790 +2901 +-1514 +182 +2229 +1246 +1035 +3616 +-1020 +362 +820 +166 +-1236 +3413 +-1810 +-1358 +984 +779 +395 +2009 +-2740 +2849 +-2833 +-1251 +959 +-1208 +793 +430 +-205 +-244 +2188 +-285 +994 +-457 +502 +-474 +-107 +-1977 +3346 +407 +-206 +-412 +524 +49 +-1518 +2562 +-2303 +1693 +2200 +-1773 +2970 +-1361 +-1901 +-684 +-2457 +1787 +-3089 +1337 +432 +121 +-1368 +-1625 +238 +-1985 +-1138 +1183 +-3077 +-1416 +388 +2319 +77 +-1646 +-883 +780 +686 +938 +-1241 +-192 +-1313 +3251 +-1303 +-1890 +1419 +-1539 +-3434 +3399 +-610 +-292 +1415 +-264 +395 +490 +1073 +-1356 +3894 +-4264 +3071 +-2381 +1033 +3918 +342 +-560 +-1335 +67 +-365 +-1197 +7 +331 +531 +-448 +-2442 +3201 +-1600 +2080 +-710 +-2494 +2570 +-55 +-586 +-2110 +635 +96 +572 +910 +491 +270 +171 +68 +884 +592 +635 +519 +94 +718 +386 +836 +366 +234 +488 +33 +540 +306 +535 +43 +630 +602 +935 +222 +999 +496 +662 +644 +592 +619 +661 +101 +-1911 +2705 +-1103 +581 +2201 +180 +-2935 +2628 +-3947 +-2355 +-1520 +978 +-1483 +322 +862 +943 +-852 +-3280 +-157 +879 +-1293 +1343 +-532 +-974 +3129 +-2380 +1194 +-2032 +-433 +-1998 +461 +887 +-1239 +-1871 +1749 +-1898 +1394 +34 +2278 +-104 +1308 +1103 +3023 +491 +-1970 +455 +444 +537 +-405 +-937 +2661 +-3129 +978 +2576 +-4392 +981 +-3416 +777 +-2592 +98 +3014 +1628 +334 +719 +-3236 +2881 +-3502 +3177 +-606 +2337 +1592 +314 +-755 +1711 +-361 +3447 +-580 +-293 +553 +103 +558 +2045 +1308 +624 +-2072 +-2647 +-2418 +1921 +-575 +-2007 +491 +-3007 +1456 +3456 +194 +869 +2785 +-2055 +646 +-2597 +1487 +-930 +3903 +-2743 +835 +2371 +952 +1198 +658 +-2628 +728 +970 +-2488 +-833 +-748 +1684 +-519 +1702 +-898 +-1380 +-81 +601 +1057 +795 +-2659 +-1767 +721 +432 +648 +-2837 +2420 +895 +266 +2327 +-1158 +-386 +-1179 +1974 +-308 +881 +1524 +-297 +283 +437 +-1655 +2679 +-1860 +2464 +-287 +-3109 +253 +4 +-1952 +-1380 +954 +1077 +400 +2787 +17 +686 +-929 +2913 +-1883 +-1703 +1158 +2256 +-710 +-2020 +367 +1626 +1711 +-1501 +800 +-448 +52 +664 +2005 +-4179 +1243 +451 +2496 +-2149 +2314 +-1360 +3116 +-2663 +-500 +2205 +-3390 +-530 +757 +447 +1319 +854 +-2118 +-878 +-1951 +1992 +-168 +-22 +434 +-962 +2743 +-2538 +4419 +-1148 +481 +187 +-1533 +2912 +-2640 +1320 +2644 +-3765 +2648 +1148 +-491 +-602 +-1640 +-257 +-3360 +2160 +68 +683 +-2910 +1909 +494 +1633 +-2002 +706 +-3736 +1954 +961 +-2723 +-38 +480 +2035 +3076 +200 +797 +1967 +-1222 +2007 +1897 +6 +-1206 +2463 +2059 +-2189 +2871 +1354 +-2769 +2540 +-3393 +760 +857 +209 +-741 +-2276 +-620 +3085 +429 +-969 +74 +367 +1354 +1543 +-3940 +1919 +1793 +313 +232 +-2262 +1974 +2169 +-186 +-1457 +726 +-857 +-725 +-1558 +1890 +1270 +2816 +-3527 +2095 +315 +143 +-2428 +212 +-720 +543 +625 +-149 +-1184 +1741 +711 +-571 +-3059 +-784 +1407 +-2219 +17 +291 +3028 +1215 +2066 +-906 +-2986 +3314 +-2871 +2089 +-1430 +-2361 +2249 +-518 +2277 +-1774 +797 +234 +1166 +1215 +-1006 +370 +-821 +-1491 +2263 +1938 +-2636 +2738 +-1703 +-2104 +61 +2980 +53 +456 +-842 +134 +-3 +1435 +984 +1447 +156 +-938 +-1447 +545 +547 +552 +979 +1662 +129 +186 +46 +-651 +-2311 +1303 +2742 +-1436 +-221 +-7 +472 +-821 +-1951 +-1593 +-1996 +193 +909 +942 +-1344 +257 +-1827 +-944 +-847 +-1153 +-246 +726 +1840 +1375 +2294 +2398 +-2859 +738 +445 +327 +-2358 +3139 +-1746 +3199 +-2273 +313 +-1260 +-678 +1753 +-2516 +-1612 +-2080 +2315 +1602 +986 +749 +-625 +1997 +505 +-770 +559 +-936 +1921 +2578 +-832 +-698 +1991 +834 +2169 +-1119 +906 +368 +1117 +394 +-1424 +108 +-530 +-207 +-287 +-455 +2697 +-3893 +2077 +-2733 +-1044 +-517 +442 +547 +2551 +-3240 +3317 +-2902 +-1150 +-437 +2007 +1249 +1804 +-1593 +-887 +3536 +1782 +626 +865 +886 +241 +-2394 +1772 +1032 +2063 +313 +-1079 +-2092 +2074 +-1965 +3138 +-2865 +-360 +1214 +101 +261 +-222 +-1527 +-684 +1442 +-556 +-3116 +3699 +-1307 +2208 +-534 +-2032 +3331 +-580 +-412 +407 +888 +635 +912 +803 +801 +200 +897 +283 +469 +395 +741 +576 +540 +501 +112 +696 +945 +112 +789 +969 +248 +465 +625 +233 +787 +267 +626 +460 +429 +172 +729 +871 +909 +-3171 +1158 +-1438 +-2263 +1738 +262 +1774 +-570 +2423 +973 +-123 +-1621 +-201 +-485 +661 +59 +2347 +2078 +2580 +1772 +2243 +-1281 +-1504 +-16 +-1964 +907 +2592 +1029 +31 +1198 +225 +154 +-770 +638 +-2779 +2502 +-2636 +1828 +-2276 +3134 +1035 +-366 +-3370 +2432 +1763 +619 +603 +78 +-952 +1327 +-1749 +-901 +650 +-3135 +3659 +-2652 +1958 +-297 +-1042 +-2051 +389 +-3718 +550 +764 +-1787 +-2 +6 +-767 +-94 +1845 +-2243 +-805 +-964 +-2732 +1909 +319 +-2680 +3512 +229 +192 +-462 +-371 +2394 +-3397 +1752 +1068 +-193 +527 +898 +2077 +69 +-72 +1137 +-1513 +876 +534 +-1011 +495 +-685 +487 +-528 +-20 +1555 +-2240 +-522 +-2486 +-190 +2211 +-2289 +-159 +464 +68 +2700 +-432 +-413 +-1784 +3647 +-2410 +-1113 +-622 +-1053 +-912 +960 +-1702 +1007 +2697 +217 +731 +525 +-1731 +514 +-1543 +-2915 +1850 +-454 +3140 +3251 +-3639 +1547 +-1817 +1721 +-2923 +363 +696 +-582 +1982 +-1106 +2132 +1542 +1707 +-2460 +919 +-2661 +1731 +1681 +-609 +2345 +-1391 +52 +297 +-1987 +481 +-518 +-1944 +1641 +-3846 +-1807 +1725 +-1515 +667 +-821 +2326 +-1121 +2214 +581 +255 +-344 +-677 +1750 +1944 +-2594 +2305 +2020 +629 +1779 +-1464 +-541 +1841 +2453 +-1371 +791 +509 +-946 +822 +-401 +-716 +1919 +287 +-189 +-159 +-2270 +-68 +-2370 +-1293 +-1765 +-771 +806 +102 +-397 +1275 +2271 +-918 +875 +3161 +-3432 +-2138 +1937 +911 +218 +-655 +-509 +1657 +588 +650 +3626 +-3911 +1407 +-554 +-1767 +-2101 +4557 +-2600 +-586 +499 +846 +-771 +239 +-2092 +788 +574 +-2435 +681 +-1945 +268 +-328 +-1085 +982 +960 +878 +-3342 +1049 +-463 +-3000 +3171 +511 +85 +209 +1336 +-963 +-1114 +-623 +-144 +-3462 +2320 +803 +-247 +-2600 +3894 +-723 +-3960 +469 +883 +-477 +-2444 +1800 +2160 +5 +1201 +2935 +-414 +-1794 +-808 +86 +-2539 +1812 +3226 +555 +541 +1723 +671 +-1872 +-713 +-2541 +336 +2556 +-2837 +-858 +1412 +82 +-133 +-112 +-822 +545 +490 +-2577 +1634 +-2941 +2696 +855 +-1310 +-1731 +-1789 +1360 +3047 +-2291 +672 +-417 +-1803 +411 +954 +2302 +-1379 +2524 +-13 +2072 +939 +2244 +-323 +1933 +-628 +1634 +-244 +-1575 +-2695 +501 +317 +-2337 +-1567 +793 +152 +-1834 +-107 +-1065 +-1758 +309 +277 +-1443 +2509 +326 +-736 +983 +309 +-368 +1445 +589 +137 +-909 +-29 +2306 +-1060 +-974 +839 +-2056 +1092 +2648 +2291 +371 +676 +-3851 +2950 +1243 +-2249 +-38 +-217 +-401 +1847 +-995 +73 +-671 +-1505 +-189 +-2018 +202 +842 +3516 +-2284 +-173 +988 +-431 +-251 +2435 +-2660 +-1640 +2932 +-579 +2506 +-1952 +1207 +32 +19 +-2100 +-3122 +95 +1256 +-1389 +2777 +-531 +-1209 +1979 +2640 +-2545 +593 +-357 +1051 +798 +193 +2407 +1522 +-299 +-1987 +-921 +-799 +-1571 +-155 +-2130 +3272 +695 +2710 +-2153 +-370 +260 +701 +-745 +1789 +-1474 +-1095 +2833 +12 +2574 +1460 +-1577 +-496 +-349 +-2858 +-2126 +3044 +372 +668 +22 +1147 +-840 +576 +-2928 +2262 +-2752 +359 +-1190 +-273 +1889 +700 +-1984 +577 +505 +328 +1574 +107 +3150 +-2691 +4034 +-48 +-2714 +1371 +-2714 +-1602 +-247 +952 +-623 +1259 +301 +910 +300 +565 +281 +383 +593 +702 +335 +766 +979 +140 +611 +809 +209 +325 +313 +109 +365 +154 +591 +707 +72 +615 +133 +456 +73 +732 +232 +52 +490 +174 +549 +16 +2008 +2960 +-1318 +26 +-1206 +1432 +-1772 +381 +2861 +-2888 +2204 +3438 +-2226 +1971 +498 +545 +1779 +-3276 +-944 +174 +-1593 +-856 +2374 +-2183 +567 +524 +-1598 +-221 +-2608 +3184 +532 +106 +-378 +-763 +-2023 +1368 +106 +2054 +-1989 +-1657 +1691 +-1613 +807 +2557 +-1287 +-2992 +900 +755 +-687 +-632 +138 +1258 +-2640 +2668 +-715 +2669 +-1075 +-224 +-1994 +-313 +2216 +1984 +681 +242 +1526 +-1905 +1447 +473 +811 +2007 +-1565 +-2615 +3298 +-25 +-291 +-1170 +-1369 +-3600 +873 +191 +-85 +-443 +1105 +2877 +-3883 +735 +2434 +-1587 +-443 +-1079 +-1682 +2552 +-1509 +2461 +353 +186 +714 +686 +-1011 +-1905 +2279 +-1311 +1011 +1561 +457 +2754 +-1057 +837 +1226 +-2524 +525 +734 +-492 +1105 +1176 +-1273 +-1172 +-77 +-1460 +3225 +645 +2066 +-3734 +2435 +1399 +-460 +840 +543 +-231 +-988 +2759 +-1962 +-678 +863 +219 +-2351 +-1262 +2155 +991 +-2568 +-1226 +-801 +698 +650 +1740 +-1625 +-442 +730 +1399 +-860 +1768 +-3111 +3417 +-1341 +-1234 +-155 +-1278 +3387 +506 +523 +-2816 +547 +-1702 +684 +-1113 +1431 +-1662 +2557 +1141 +-999 +-112 +-2822 +-1745 +-2388 +780 +151 +2583 +757 +264 +669 +-3112 +2515 +-2697 +-945 +575 +743 +1202 +809 +-2125 +-450 +923 +95 +2019 +-2081 +2078 +878 +-1202 +664 +3145 +-1211 +-1013 +-1244 +1060 +217 +3423 +-1647 +738 +62 +-1780 +-518 +-761 +-2710 +-268 +-1382 +110 +2681 +-1032 +-1513 +1326 +-753 +-1044 +-1855 +739 +1 +731 +671 +1471 +1557 +-1049 +1904 +-3167 +-464 +-809 +1189 +708 +-828 +2367 +-2639 +917 +468 +1463 +555 +-2896 +-245 +1746 +2704 +-594 +-121 +2255 +1689 +-2392 +1413 +461 +1209 +334 +100 +1500 +1790 +1929 +-510 +694 +-1391 +237 +-995 +-1777 +1887 +1462 +-3099 +2607 +2069 +847 +766 +249 +-2085 +1216 +-2303 +2246 +-1648 +217 +-2958 +2070 +-387 +791 +529 +-1731 +-3039 +984 +774 +-306 +33 +-2630 +3491 +-3085 +1750 +-2684 +2922 +567 +-2181 +-490 +-1090 +-332 +398 +316 +944 +98 +-1197 +147 +-1902 +2534 +-2534 +1385 +-178 +1624 +-1792 +-81 +1447 +1641 +1868 +412 +312 +-2774 +2800 +-793 +2249 +-3296 +-475 +-2665 +609 +1318 +1648 +-867 +2878 +-2323 +2560 +798 +83 +2371 +2191 +-1915 +1867 +-1158 +257 +3465 +-868 +-2026 +2172 +-733 +-1868 +-1845 +-980 +123 +324 +1760 +2268 +-3076 +-306 +-1547 +-700 +-1334 +-1905 +3591 +-2041 +2168 +-1252 +-709 +2621 +253 +653 +3224 +-2349 +2017 +1880 +2208 +2027 +-1835 +-1189 +-380 +-2419 +1340 +-2317 +2595 +176 +132 +435 +-386 +-137 +224 +-1262 +-3229 +1666 +60 +2109 +-170 +1433 +-2640 +1246 +931 +-2624 +442 +112 +816 +1821 +609 +-2084 +601 +-1140 +-407 +2397 +-3081 +-2639 +1762 +-1682 +578 +-947 +545 +62 +46 +149 +-1497 +4169 +-2352 +3533 +-881 +-2490 +3182 +-2255 +-167 +1238 +-3504 +3448 +270 +86 +-196 +572 +2413 +-2294 +16 +-1188 +-286 +-1175 +-1134 +-1156 +631 +905 +3135 +-3489 +646 +632 +282 +-2317 +-1394 +-30 +-388 +1742 +-555 +531 +-657 +948 +-1802 +2524 +-3161 +480 +962 +142 +-2283 +2782 +-1920 +339 +-2599 +-2737 +4147 +-2061 +2079 +2289 +1802 +-3372 +1857 +2752 +477 +721 +280 +238 +776 +68 +427 +739 +278 +187 +904 +422 +315 +679 +937 +188 +296 +116 +400 +522 +447 +91 +643 +863 +955 +663 +703 +942 +848 +513 +402 +162 +748 +175 +513 +232 +997 +500 +39 +370 +832 +789 +375 +547 +816 +145 +547 +415 +82 +157 +602 +515 +654 +96 +65 +897 +612 +422 +31 +311 +964 +216 +900 +95 +870 +835 +892 +766 +539 +991 +500 +394 +843 +58 +34 +504 +143 +515 +751 +262 +155 +129 +255 +679 +966 +374 +991 +54 +223 +864 +22 +303 +943 +650 +216 +866 +951 +910 +244 +545 +232 +735 +95 +23 +574 +509 +528 +613 +435 +616 +81 +842 +208 +938 +246 +393 +162 +292 +838 +905 +544 +604 +910 +952 +646 +668 +80 +167 +520 +395 +620 +958 +221 +678 +414 +952 +70 +919 +887 +356 +183 +665 +217 +812 +466 +831 +944 +941 +519 +110 +886 +280 +327 +141 +59 +702 +985 +548 +329 +781 +428 +513 +548 +156 +576 +805 +356 +758 +984 +260 +725 +976 +471 +398 +77 +352 +675 +689 +742 +847 +466 +434 +321 +926 +466 +434 +423 +325 +181 +767 +585 +7 +916 +317 +768 +620 +580 +923 +269 +347 +139 +625 +899 +398 +879 +846 +613 +36 +659 +750 +440 +833 +508 +193 +877 +423 +637 +296 +581 +213 +700 +773 +910 +709 +446 +195 +987 +701 +147 +312 +697 +589 +252 +197 +182 +123 +584 +898 +472 +724 +479 +183 +564 +285 +74 +503 +529 +342 +363 +207 +798 +105 +477 +889 +187 +944 +582 +854 +846 +701 +323 +503 +690 +629 +740 +284 +326 +38 +776 +893 +156 +817 +326 +771 +706 +507 +60 +420 +29 +365 +241 +650 +145 +633 +528 +920 +571 +582 +603 +207 +588 +857 +751 +851 +192 +649 +981 +592 +952 +247 +911 +787 +98 +881 +333 +128 +83 +267 +837 +206 +426 +610 +627 +714 +183 +474 +32 +998 +772 +570 +32 +568 +83 +461 +514 +447 +965 +248 +463 +955 +542 +306 +33 +580 +295 +97 +820 +90 +89 +112 +408 +302 +179 +841 +966 +964 +40 +164 +810 +123 +918 +918 +890 +297 +116 +11 +427 +689 +582 +579 +316 +386 +942 +888 +31 +729 +52 +979 +691 +452 +930 +431 +519 +334 +634 +705 +538 +382 +135 +775 +281 +753 +337 +11 +564 +631 +386 +414 +608 +227 +303 +451 +614 +334 +4 +882 +849 +791 +93 +916 +571 +964 +102 +179 +513 +488 +49 +774 +804 +337 +739 +572 +794 +345 +205 +344 +49 +440 +122 +311 +787 +716 +838 +986 +422 +532 +433 +707 +304 +777 +594 +963 +184 +258 +405 +991 +162 +854 +539 +253 +188 +327 +715 +659 +675 +733 +762 +633 +537 +684 +226 +570 +696 +356 +636 +82 +736 +355 +443 +26 +446 +764 +856 +833 +299 +676 +627 +517 +298 +768 +791 +635 +677 +837 +156 +156 +646 +542 +757 +393 +186 +251 +206 +476 +64 +911 +627 +69 +360 +985 +218 +774 +869 +166 +449 +952 +988 +155 +90 +573 +826 +933 +497 +169 +716 +516 +495 +380 +672 +368 +561 +107 +684 +846 +44 +8 +547 +409 +719 +736 +552 +651 +920 +620 +802 +96 +273 +484 +841 diff --git a/examples/machsuite/stencil/stencil3d_input.data b/examples/machsuite/stencil/stencil3d_input.data new file mode 100644 index 0000000000..80ea8e282f --- /dev/null +++ b/examples/machsuite/stencil/stencil3d_input.data @@ -0,0 +1,16388 @@ +%% +6 +-1 +%% +839 +147 +454 +933 +267 +957 +355 +72 +849 +363 +305 +928 +270 +225 +325 +435 +360 +864 +613 +963 +275 +226 +352 +728 +579 +208 +66 +205 +821 +605 +139 +858 +661 +125 +248 +803 +122 +165 +889 +868 +617 +623 +518 +941 +678 +841 +428 +481 +621 +9 +913 +760 +520 +738 +135 +606 +326 +552 +697 +744 +559 +407 +303 +282 +969 +393 +115 +451 +818 +553 +655 +481 +255 +353 +810 +326 +180 +447 +735 +23 +31 +725 +70 +666 +911 +772 +26 +766 +475 +267 +415 +976 +488 +521 +402 +94 +198 +952 +862 +198 +106 +729 +802 +769 +63 +60 +194 +967 +845 +632 +262 +309 +911 +722 +571 +496 +167 +874 +884 +582 +804 +961 +140 +578 +660 +640 +949 +411 +552 +619 +945 +269 +726 +555 +354 +488 +122 +218 +110 +413 +795 +103 +515 +776 +844 +781 +272 +432 +549 +710 +337 +568 +515 +779 +276 +171 +179 +132 +940 +774 +646 +770 +282 +477 +499 +123 +330 +862 +381 +132 +385 +657 +282 +779 +556 +548 +871 +998 +145 +897 +140 +866 +595 +464 +275 +132 +775 +462 +40 +957 +915 +824 +926 +663 +622 +638 +612 +958 +201 +452 +682 +55 +582 +910 +396 +374 +504 +900 +910 +519 +442 +844 +324 +517 +438 +5 +411 +708 +540 +729 +947 +266 +726 +428 +530 +433 +920 +262 +161 +765 +598 +277 +339 +346 +275 +647 +89 +728 +50 +820 +835 +682 +394 +82 +584 +889 +973 +74 +28 +424 +936 +672 +995 +188 +203 +363 +342 +169 +864 +474 +532 +166 +936 +521 +838 +922 +116 +728 +299 +784 +839 +404 +637 +334 +623 +301 +703 +578 +396 +64 +178 +901 +849 +171 +469 +38 +648 +465 +200 +508 +420 +928 +849 +536 +422 +637 +871 +78 +897 +757 +865 +462 +548 +252 +675 +36 +682 +338 +285 +98 +938 +223 +153 +424 +509 +400 +449 +768 +896 +304 +561 +215 +378 +144 +682 +120 +83 +247 +508 +695 +89 +389 +112 +808 +834 +592 +980 +173 +735 +257 +824 +306 +36 +426 +630 +282 +458 +175 +584 +898 +742 +275 +803 +198 +743 +61 +112 +465 +648 +721 +456 +51 +852 +716 +115 +870 +186 +156 +23 +715 +936 +619 +902 +491 +410 +642 +746 +577 +45 +238 +284 +658 +422 +437 +904 +901 +535 +942 +469 +659 +576 +484 +470 +818 +691 +156 +708 +177 +183 +868 +17 +644 +429 +298 +596 +784 +300 +624 +338 +362 +422 +784 +200 +810 +198 +390 +294 +331 +445 +371 +856 +144 +989 +648 +219 +807 +952 +778 +326 +21 +803 +724 +360 +351 +154 +81 +373 +769 +14 +451 +307 +152 +996 +644 +113 +346 +660 +187 +763 +443 +148 +846 +7 +876 +722 +491 +186 +802 +355 +38 +564 +661 +721 +304 +641 +835 +536 +512 +776 +686 +437 +272 +212 +800 +577 +923 +757 +186 +599 +484 +604 +174 +342 +161 +907 +36 +566 +156 +375 +826 +640 +371 +544 +201 +151 +923 +336 +450 +196 +887 +348 +313 +122 +135 +339 +219 +695 +884 +325 +357 +503 +298 +519 +859 +857 +332 +87 +603 +184 +459 +356 +924 +846 +874 +662 +900 +488 +330 +769 +96 +252 +42 +325 +657 +347 +749 +421 +428 +214 +576 +718 +541 +341 +610 +326 +323 +559 +655 +666 +509 +889 +864 +510 +900 +456 +598 +906 +245 +126 +249 +494 +776 +530 +661 +310 +854 +522 +415 +243 +43 +723 +50 +984 +547 +314 +73 +515 +814 +975 +966 +97 +82 +911 +482 +6 +32 +316 +507 +901 +335 +404 +98 +133 +405 +640 +224 +24 +812 +258 +955 +32 +308 +692 +22 +41 +882 +960 +917 +949 +44 +622 +240 +972 +748 +209 +68 +289 +121 +665 +823 +383 +733 +66 +963 +972 +774 +6 +799 +669 +619 +793 +3 +519 +662 +214 +959 +922 +491 +57 +664 +1 +660 +276 +769 +92 +717 +233 +879 +464 +256 +938 +493 +573 +858 +97 +818 +830 +516 +433 +512 +773 +326 +577 +657 +27 +501 +116 +785 +548 +738 +386 +740 +750 +540 +624 +987 +59 +574 +371 +446 +407 +897 +213 +682 +237 +634 +180 +40 +82 +689 +67 +600 +568 +428 +764 +601 +155 +491 +542 +278 +741 +262 +221 +589 +835 +516 +154 +533 +428 +70 +163 +605 +116 +904 +330 +194 +227 +928 +342 +953 +595 +55 +229 +619 +251 +921 +933 +175 +942 +457 +81 +694 +508 +92 +975 +698 +187 +664 +377 +776 +758 +447 +936 +63 +208 +106 +720 +730 +986 +882 +472 +213 +522 +397 +764 +381 +599 +187 +639 +760 +654 +266 +164 +844 +606 +733 +819 +65 +990 +897 +753 +61 +153 +167 +145 +927 +511 +575 +499 +884 +660 +203 +349 +426 +580 +340 +599 +138 +492 +797 +399 +298 +100 +205 +281 +926 +476 +676 +682 +199 +192 +855 +832 +74 +932 +138 +433 +251 +795 +848 +392 +358 +678 +875 +927 +267 +502 +562 +425 +815 +101 +177 +371 +702 +193 +88 +696 +875 +368 +717 +252 +533 +381 +979 +262 +417 +255 +460 +657 +55 +114 +867 +355 +550 +847 +738 +312 +196 +585 +742 +266 +223 +66 +96 +536 +835 +639 +605 +991 +612 +94 +233 +659 +237 +666 +774 +715 +29 +136 +707 +52 +917 +433 +542 +317 +384 +157 +716 +610 +540 +519 +300 +757 +238 +438 +82 +342 +534 +690 +462 +138 +167 +727 +780 +261 +787 +274 +704 +422 +452 +116 +120 +91 +763 +259 +227 +306 +82 +899 +563 +450 +511 +943 +901 +983 +860 +183 +566 +468 +706 +315 +681 +187 +270 +176 +34 +144 +154 +637 +387 +172 +87 +957 +570 +759 +526 +48 +847 +553 +321 +67 +253 +309 +376 +413 +711 +316 +405 +721 +780 +496 +338 +442 +293 +340 +559 +614 +315 +55 +857 +809 +714 +351 +943 +530 +910 +196 +390 +454 +602 +538 +813 +170 +538 +769 +156 +175 +690 +823 +511 +539 +54 +349 +788 +320 +966 +182 +898 +667 +38 +901 +804 +160 +580 +27 +60 +967 +151 +96 +858 +830 +168 +358 +703 +233 +125 +310 +371 +684 +845 +646 +735 +743 +219 +195 +459 +681 +782 +393 +644 +807 +815 +713 +533 +633 +289 +556 +639 +631 +901 +438 +58 +876 +160 +51 +481 +286 +153 +371 +217 +929 +159 +302 +37 +552 +509 +319 +89 +706 +323 +926 +607 +966 +432 +178 +2 +457 +861 +597 +876 +906 +755 +412 +64 +802 +523 +211 +827 +441 +446 +1 +596 +932 +672 +149 +416 +160 +268 +71 +993 +462 +233 +886 +295 +536 +139 +131 +321 +893 +418 +827 +370 +638 +652 +348 +43 +706 +597 +772 +984 +475 +542 +218 +32 +962 +700 +251 +430 +838 +630 +558 +487 +747 +404 +584 +395 +580 +217 +826 +575 +460 +370 +177 +626 +212 +368 +570 +317 +179 +849 +940 +279 +948 +202 +86 +665 +463 +133 +838 +194 +819 +143 +262 +928 +905 +764 +382 +459 +35 +13 +489 +955 +157 +302 +771 +230 +283 +826 +545 +614 +139 +637 +259 +650 +780 +355 +683 +559 +571 +884 +335 +22 +831 +758 +665 +850 +827 +123 +368 +479 +557 +391 +699 +583 +753 +975 +571 +535 +768 +109 +303 +944 +848 +486 +916 +240 +621 +911 +535 +511 +932 +59 +848 +200 +961 +827 +818 +585 +890 +806 +685 +686 +932 +183 +154 +136 +234 +849 +903 +266 +409 +756 +870 +975 +949 +489 +803 +806 +58 +61 +763 +801 +693 +809 +23 +991 +893 +342 +423 +95 +979 +234 +389 +805 +541 +763 +955 +759 +717 +877 +370 +958 +624 +915 +291 +347 +339 +424 +200 +952 +689 +649 +197 +463 +578 +825 +102 +547 +779 +491 +64 +445 +937 +206 +153 +2 +68 +307 +288 +803 +466 +53 +314 +562 +224 +267 +34 +969 +621 +742 +802 +765 +321 +166 +439 +350 +869 +144 +924 +430 +995 +76 +779 +813 +703 +271 +539 +40 +640 +136 +601 +729 +518 +873 +314 +712 +53 +306 +13 +786 +936 +732 +201 +810 +766 +944 +263 +689 +493 +464 +923 +133 +897 +327 +447 +232 +21 +543 +353 +863 +496 +875 +797 +903 +246 +233 +86 +711 +259 +487 +280 +562 +343 +745 +703 +260 +997 +114 +356 +320 +84 +215 +477 +858 +274 +974 +527 +754 +342 +840 +92 +52 +834 +646 +659 +366 +961 +592 +262 +691 +377 +295 +805 +915 +556 +497 +992 +12 +862 +403 +992 +753 +151 +130 +287 +398 +926 +677 +648 +90 +223 +162 +389 +236 +933 +31 +376 +317 +511 +929 +205 +943 +313 +807 +962 +567 +95 +301 +769 +715 +835 +540 +366 +57 +100 +974 +374 +468 +828 +890 +92 +114 +340 +579 +479 +502 +268 +944 +746 +587 +695 +337 +498 +373 +987 +570 +509 +8 +430 +233 +548 +624 +658 +259 +96 +35 +226 +900 +985 +446 +621 +461 +360 +531 +554 +603 +884 +110 +842 +890 +551 +4 +253 +597 +757 +840 +265 +690 +290 +54 +304 +644 +37 +898 +233 +833 +147 +663 +50 +551 +410 +356 +643 +962 +405 +885 +185 +470 +385 +454 +254 +751 +303 +816 +195 +534 +912 +91 +716 +967 +370 +784 +153 +450 +364 +207 +692 +568 +322 +254 +345 +239 +521 +181 +810 +353 +410 +565 +480 +497 +868 +732 +673 +998 +164 +944 +930 +199 +747 +706 +186 +501 +580 +264 +790 +216 +195 +210 +847 +491 +350 +856 +368 +646 +974 +394 +252 +332 +107 +729 +432 +650 +542 +749 +700 +453 +712 +478 +966 +249 +149 +175 +742 +96 +939 +719 +799 +761 +438 +838 +599 +459 +219 +525 +713 +991 +650 +200 +334 +147 +322 +407 +984 +545 +738 +549 +391 +983 +79 +257 +525 +215 +87 +482 +944 +702 +247 +27 +54 +564 +209 +574 +788 +229 +423 +447 +786 +755 +151 +240 +10 +182 +991 +428 +921 +760 +871 +40 +976 +293 +924 +53 +550 +999 +820 +893 +616 +539 +67 +12 +15 +67 +847 +101 +867 +305 +215 +787 +1 +408 +159 +237 +364 +829 +557 +164 +717 +700 +713 +710 +542 +726 +517 +187 +473 +361 +283 +451 +474 +666 +949 +421 +22 +124 +277 +325 +909 +178 +282 +396 +755 +294 +690 +695 +4 +164 +105 +54 +741 +531 +925 +909 +117 +907 +654 +531 +79 +181 +187 +613 +565 +371 +55 +201 +433 +749 +84 +757 +103 +583 +401 +732 +579 +531 +388 +630 +766 +987 +485 +636 +677 +545 +264 +966 +89 +243 +241 +804 +156 +580 +179 +525 +360 +695 +609 +986 +75 +350 +915 +483 +705 +295 +770 +731 +330 +450 +688 +443 +9 +94 +81 +308 +54 +448 +374 +480 +274 +325 +728 +921 +569 +292 +209 +493 +500 +569 +236 +174 +319 +715 +382 +250 +138 +497 +413 +983 +79 +385 +626 +578 +997 +111 +321 +326 +365 +690 +438 +518 +640 +520 +501 +998 +771 +821 +633 +375 +352 +218 +892 +181 +450 +934 +581 +869 +743 +72 +643 +679 +964 +665 +692 +905 +453 +245 +445 +44 +640 +858 +456 +768 +783 +106 +138 +901 +462 +170 +994 +258 +91 +84 +575 +418 +919 +750 +857 +815 +297 +274 +169 +82 +246 +805 +205 +887 +434 +18 +942 +271 +272 +992 +218 +197 +864 +521 +95 +726 +81 +711 +999 +118 +343 +914 +122 +330 +97 +299 +150 +911 +817 +886 +965 +668 +826 +488 +386 +100 +135 +70 +811 +972 +628 +47 +207 +548 +234 +12 +225 +711 +62 +98 +623 +608 +668 +461 +686 +420 +93 +420 +823 +229 +619 +43 +869 +25 +452 +599 +321 +359 +431 +150 +831 +539 +428 +269 +820 +197 +635 +829 +840 +42 +49 +149 +162 +375 +537 +213 +730 +302 +455 +350 +393 +102 +157 +485 +17 +25 +918 +590 +974 +79 +543 +137 +110 +205 +729 +311 +588 +886 +963 +74 +763 +692 +183 +826 +654 +523 +86 +657 +817 +758 +454 +150 +863 +669 +941 +109 +898 +284 +280 +809 +103 +835 +246 +634 +713 +569 +346 +426 +366 +616 +244 +805 +43 +765 +115 +746 +645 +134 +430 +223 +717 +23 +664 +460 +778 +866 +875 +528 +43 +403 +74 +444 +253 +557 +13 +82 +906 +887 +454 +890 +841 +108 +169 +661 +292 +473 +562 +850 +283 +534 +821 +549 +892 +456 +303 +520 +103 +234 +793 +876 +520 +862 +548 +692 +940 +33 +121 +207 +191 +625 +559 +290 +954 +980 +862 +53 +218 +284 +607 +91 +838 +154 +900 +117 +135 +128 +746 +650 +749 +372 +781 +575 +790 +740 +596 +956 +197 +739 +861 +849 +513 +656 +688 +541 +502 +137 +468 +719 +871 +363 +432 +590 +337 +53 +796 +164 +671 +513 +373 +178 +792 +907 +930 +343 +562 +956 +753 +362 +328 +290 +436 +940 +632 +145 +725 +424 +851 +831 +996 +703 +25 +860 +464 +831 +728 +330 +104 +133 +559 +428 +418 +242 +79 +768 +169 +475 +932 +217 +362 +591 +950 +420 +844 +934 +649 +999 +356 +712 +693 +143 +301 +474 +368 +651 +198 +567 +557 +735 +824 +318 +957 +982 +782 +923 +526 +665 +289 +848 +28 +430 +704 +367 +173 +280 +241 +62 +546 +124 +483 +524 +378 +574 +196 +811 +996 +49 +354 +649 +84 +266 +807 +162 +303 +709 +486 +806 +788 +679 +586 +867 +571 +320 +425 +560 +914 +998 +436 +619 +232 +702 +173 +259 +970 +540 +683 +262 +258 +792 +313 +951 +223 +44 +963 +179 +851 +638 +203 +399 +430 +606 +772 +351 +133 +451 +176 +987 +736 +65 +856 +886 +273 +107 +241 +504 +160 +425 +247 +853 +525 +778 +496 +152 +178 +408 +293 +93 +528 +129 +562 +544 +169 +781 +859 +33 +618 +706 +857 +866 +430 +331 +847 +957 +913 +974 +85 +445 +585 +647 +616 +484 +732 +63 +618 +980 +149 +478 +455 +672 +951 +316 +424 +816 +251 +224 +833 +110 +969 +432 +323 +858 +179 +652 +817 +106 +229 +487 +601 +128 +16 +777 +621 +659 +772 +360 +765 +315 +307 +424 +150 +484 +885 +80 +831 +862 +882 +70 +112 +607 +262 +962 +29 +91 +65 +563 +233 +897 +280 +584 +780 +163 +502 +706 +642 +282 +461 +987 +151 +129 +672 +380 +814 +639 +392 +31 +980 +485 +666 +739 +387 +285 +25 +735 +321 +427 +231 +497 +162 +904 +96 +557 +638 +823 +83 +732 +994 +101 +130 +287 +942 +349 +347 +329 +423 +53 +934 +820 +256 +514 +399 +923 +700 +335 +541 +619 +81 +778 +8 +423 +626 +404 +173 +36 +815 +210 +6 +450 +938 +359 +650 +492 +99 +736 +625 +537 +630 +837 +740 +400 +552 +170 +822 +351 +533 +178 +488 +969 +501 +49 +879 +659 +850 +123 +627 +153 +899 +456 +327 +550 +788 +80 +843 +973 +99 +990 +631 +635 +509 +300 +466 +412 +922 +788 +98 +242 +110 +282 +543 +431 +821 +644 +767 +253 +968 +420 +942 +954 +728 +748 +400 +623 +831 +717 +95 +173 +181 +457 +904 +432 +420 +366 +501 +865 +830 +469 +329 +204 +559 +541 +636 +301 +848 +196 +92 +938 +852 +836 +515 +777 +715 +878 +870 +412 +788 +557 +81 +776 +861 +318 +711 +790 +627 +92 +566 +27 +850 +652 +581 +758 +621 +49 +86 +538 +270 +10 +603 +863 +911 +351 +974 +913 +965 +458 +714 +744 +612 +771 +711 +122 +658 +32 +863 +929 +731 +246 +742 +900 +818 +86 +990 +847 +283 +842 +710 +739 +225 +352 +407 +762 +142 +124 +735 +963 +55 +944 +380 +817 +848 +174 +677 +97 +166 +707 +305 +677 +727 +464 +197 +856 +369 +906 +3 +964 +462 +446 +455 +736 +343 +209 +880 +537 +65 +993 +19 +810 +897 +873 +470 +817 +187 +760 +220 +596 +787 +662 +487 +729 +526 +894 +326 +32 +965 +543 +873 +438 +788 +404 +995 +190 +21 +643 +877 +925 +280 +237 +759 +136 +12 +289 +80 +828 +826 +140 +91 +153 +806 +380 +826 +50 +716 +59 +900 +848 +74 +742 +424 +367 +909 +431 +398 +854 +110 +497 +414 +218 +884 +994 +788 +27 +747 +23 +346 +572 +767 +460 +205 +307 +834 +225 +47 +384 +300 +326 +164 +139 +956 +595 +17 +181 +726 +545 +96 +511 +336 +592 +878 +276 +43 +215 +380 +37 +368 +9 +274 +473 +614 +17 +375 +838 +670 +990 +243 +829 +888 +153 +128 +301 +938 +768 +951 +9 +721 +336 +23 +987 +934 +747 +484 +653 +369 +24 +436 +775 +700 +687 +874 +99 +92 +161 +291 +144 +39 +334 +610 +753 +481 +929 +759 +664 +456 +27 +388 +610 +615 +396 +486 +881 +938 +367 +405 +912 +673 +369 +25 +615 +466 +540 +432 +713 +300 +112 +213 +379 +19 +605 +842 +12 +799 +563 +288 +735 +601 +648 +245 +550 +916 +693 +691 +591 +750 +464 +745 +5 +161 +982 +455 +381 +652 +328 +582 +198 +218 +46 +839 +440 +616 +45 +454 +500 +863 +641 +62 +26 +565 +317 +552 +901 +865 +10 +536 +966 +841 +606 +781 +780 +429 +833 +566 +367 +972 +759 +861 +508 +426 +759 +484 +443 +743 +806 +782 +293 +176 +609 +348 +758 +598 +451 +4 +502 +351 +454 +566 +691 +163 +817 +414 +42 +215 +779 +672 +97 +31 +829 +253 +255 +928 +402 +161 +499 +630 +851 +532 +301 +218 +562 +645 +250 +316 +306 +203 +388 +622 +788 +620 +559 +539 +165 +391 +10 +649 +736 +723 +522 +784 +705 +109 +706 +251 +21 +517 +481 +278 +475 +955 +63 +288 +650 +217 +697 +858 +660 +385 +586 +128 +435 +370 +892 +84 +794 +936 +369 +261 +115 +746 +630 +921 +2 +317 +437 +241 +638 +481 +155 +731 +607 +398 +463 +353 +889 +247 +588 +931 +236 +98 +716 +78 +373 +735 +160 +991 +792 +898 +771 +517 +287 +547 +180 +732 +17 +573 +84 +396 +945 +520 +920 +242 +73 +299 +512 +6 +314 +164 +21 +198 +858 +938 +348 +705 +813 +398 +936 +381 +631 +653 +528 +182 +933 +847 +663 +136 +851 +820 +625 +113 +379 +882 +666 +268 +208 +987 +514 +389 +704 +106 +394 +980 +986 +524 +103 +761 +202 +307 +270 +480 +889 +886 +828 +952 +335 +457 +421 +806 +122 +927 +225 +960 +299 +356 +692 +213 +10 +563 +880 +337 +590 +747 +101 +963 +624 +10 +197 +670 +223 +101 +142 +927 +753 +152 +918 +133 +32 +915 +98 +712 +761 +537 +330 +811 +174 +131 +336 +101 +872 +356 +279 +352 +578 +651 +867 +148 +229 +911 +77 +150 +546 +820 +356 +12 +569 +673 +889 +127 +301 +758 +254 +519 +992 +5 +219 +789 +959 +335 +334 +716 +360 +522 +751 +971 +250 +299 +965 +140 +25 +91 +360 +988 +849 +909 +782 +727 +711 +620 +859 +461 +459 +312 +305 +160 +281 +581 +344 +3 +93 +95 +782 +631 +731 +2 +467 +873 +828 +404 +819 +127 +745 +698 +841 +767 +570 +118 +722 +324 +974 +128 +521 +525 +343 +399 +8 +141 +705 +146 +591 +569 +278 +518 +490 +73 +183 +754 +413 +423 +86 +52 +500 +459 +816 +159 +203 +653 +836 +178 +418 +605 +698 +946 +730 +629 +43 +178 +4 +335 +311 +807 +10 +534 +788 +894 +354 +421 +631 +848 +960 +881 +763 +361 +570 +740 +518 +972 +275 +890 +898 +96 +53 +782 +421 +267 +996 +341 +169 +959 +969 +884 +717 +531 +883 +722 +659 +894 +437 +61 +942 +13 +311 +29 +635 +333 +692 +451 +895 +355 +404 +824 +934 +964 +394 +699 +343 +629 +680 +169 +160 +586 +283 +98 +318 +664 +94 +772 +28 +698 +503 +453 +47 +230 +308 +560 +774 +681 +710 +287 +774 +877 +477 +958 +814 +667 +168 +276 +352 +260 +579 +587 +141 +173 +674 +427 +1 +827 +348 +101 +190 +873 +258 +805 +365 +856 +530 +127 +675 +149 +768 +226 +985 +512 +206 +814 +247 +276 +168 +597 +650 +527 +290 +569 +564 +300 +387 +767 +585 +786 +931 +947 +402 +156 +752 +835 +912 +196 +17 +168 +935 +38 +328 +849 +850 +124 +549 +579 +574 +805 +916 +517 +812 +722 +647 +787 +82 +718 +803 +982 +878 +973 +496 +343 +363 +853 +973 +593 +117 +946 +976 +761 +942 +77 +437 +58 +429 +470 +549 +53 +807 +539 +636 +466 +259 +20 +504 +101 +906 +154 +284 +377 +888 +430 +362 +767 +592 +836 +255 +37 +766 +379 +192 +493 +521 +599 +167 +234 +546 +362 +378 +333 +446 +594 +641 +447 +841 +714 +884 +393 +165 +245 +372 +500 +725 +102 +837 +189 +651 +221 +223 +28 +233 +116 +553 +660 +210 +876 +978 +176 +962 +54 +357 +823 +210 +767 +246 +511 +516 +872 +854 +214 +947 +951 +376 +431 +321 +123 +601 +126 +396 +869 +529 +823 +6 +810 +515 +464 +831 +689 +59 +753 +618 +265 +559 +87 +441 +999 +638 +318 +903 +848 +321 +536 +711 +510 +385 +364 +646 +415 +438 +389 +594 +135 +221 +222 +27 +898 +899 +830 +356 +526 +118 +633 +847 +742 +853 +556 +828 +549 +646 +979 +558 +966 +658 +429 +251 +35 +516 +156 +699 +278 +790 +310 +554 +85 +839 +157 +260 +735 +470 +819 +861 +430 +45 +149 +63 +645 +471 +722 +712 +907 +719 +740 +991 +584 +857 +880 +65 +126 +164 +482 +79 +80 +243 +27 +257 +329 +562 +216 +648 +713 +795 +189 +436 +5 +51 +755 +713 +193 +120 +873 +151 +633 +76 +708 +805 +647 +330 +528 +519 +864 +744 +815 +157 +539 +147 +959 +873 +977 +481 +133 +956 +577 +28 +862 +698 +135 +471 +215 +464 +793 +7 +531 +115 +369 +947 +695 +565 +558 +928 +285 +325 +923 +614 +306 +62 +504 +648 +5 +767 +546 +197 +941 +134 +591 +464 +169 +962 +785 +434 +409 +301 +104 +646 +839 +670 +884 +878 +59 +785 +483 +213 +393 +350 +422 +315 +851 +124 +920 +576 +423 +257 +126 +325 +94 +478 +501 +790 +217 +104 +311 +25 +383 +979 +998 +445 +263 +120 +298 +836 +54 +314 +227 +197 +574 +53 +656 +11 +789 +116 +46 +538 +716 +363 +304 +924 +393 +899 +159 +91 +884 +210 +427 +697 +82 +664 +766 +692 +108 +827 +438 +670 +710 +398 +550 +665 +98 +670 +5 +241 +944 +702 +115 +961 +126 +592 +502 +978 +392 +319 +586 +783 +794 +846 +719 +570 +801 +998 +380 +433 +785 +548 +809 +392 +21 +148 +988 +345 +115 +289 +149 +566 +839 +134 +154 +918 +522 +351 +89 +538 +363 +931 +812 +842 +869 +912 +37 +602 +815 +591 +115 +105 +627 +580 +577 +94 +233 +608 +167 +206 +851 +809 +373 +754 +524 +437 +698 +739 +121 +2 +353 +262 +335 +94 +752 +121 +183 +291 +43 +467 +679 +991 +296 +885 +582 +172 +296 +765 +702 +426 +94 +367 +831 +336 +266 +248 +724 +924 +757 +995 +942 +332 +947 +709 +669 +534 +847 +458 +597 +193 +100 +553 +834 +902 +358 +905 +729 +490 +254 +781 +948 +58 +426 +439 +260 +325 +425 +22 +356 +67 +896 +495 +368 +763 +484 +889 +921 +669 +442 +580 +9 +781 +252 +646 +36 +443 +589 +174 +49 +811 +711 +242 +525 +11 +480 +247 +8 +227 +672 +743 +148 +461 +141 +862 +211 +551 +665 +922 +940 +973 +823 +381 +671 +873 +193 +976 +232 +852 +479 +336 +544 +782 +146 +673 +563 +237 +710 +278 +375 +27 +459 +340 +484 +822 +224 +249 +957 +401 +851 +93 +247 +171 +168 +523 +752 +721 +101 +825 +60 +43 +38 +520 +492 +348 +766 +757 +834 +788 +279 +969 +860 +324 +148 +414 +230 +528 +361 +750 +958 +754 +995 +302 +75 +82 +114 +324 +169 +415 +488 +265 +283 +757 +310 +270 +170 +103 +424 +216 +80 +238 +568 +231 +699 +205 +780 +520 +366 +737 +617 +153 +462 +520 +340 +887 +201 +189 +286 +497 +433 +807 +478 +57 +915 +775 +282 +248 +800 +584 +260 +633 +101 +987 +946 +36 +804 +929 +195 +283 +714 +421 +175 +103 +546 +6 +294 +487 +734 +230 +433 +8 +103 +581 +221 +357 +6 +678 +335 +581 +979 +837 +909 +213 +111 +772 +735 +160 +131 +635 +236 +909 +887 +254 +660 +605 +928 +967 +509 +965 +277 +21 +323 +109 +429 +103 +431 +788 +951 +359 +460 +198 +43 +385 +30 +980 +689 +223 +42 +43 +794 +373 +896 +71 +20 +175 +978 +317 +115 +529 +772 +314 +459 +769 +44 +351 +848 +589 +661 +751 +446 +514 +817 +129 +41 +802 +209 +839 +312 +103 +310 +473 +982 +636 +112 +848 +381 +185 +964 +619 +450 +766 +199 +317 +914 +111 +819 +819 +708 +548 +694 +437 +87 +323 +520 +690 +159 +305 +866 +658 +537 +491 +513 +46 +635 +414 +997 +78 +147 +616 +894 +195 +857 +703 +622 +147 +118 +533 +984 +672 +242 +680 +106 +134 +319 +8 +144 +83 +898 +546 +198 +351 +525 +605 +547 +590 +584 +434 +368 +600 +163 +140 +654 +670 +759 +577 +849 +445 +710 +518 +759 +255 +161 +686 +165 +221 +666 +79 +440 +855 +269 +536 +327 +427 +402 +726 +269 +470 +61 +769 +961 +776 +701 +148 +239 +478 +722 +420 +607 +65 +840 +20 +363 +998 +709 +756 +785 +415 +253 +175 +313 +373 +38 +917 +141 +294 +279 +998 +422 +652 +883 +753 +239 +300 +870 +377 +985 +420 +756 +51 +361 +547 +708 +904 +504 +96 +289 +306 +990 +100 +639 +913 +640 +921 +420 +402 +559 +342 +88 +474 +834 +165 +166 +152 +715 +247 +756 +45 +79 +881 +344 +850 +808 +472 +291 +689 +466 +517 +98 +109 +344 +736 +562 +839 +315 +76 +500 +116 +961 +616 +841 +793 +238 +932 +449 +992 +75 +456 +64 +492 +957 +896 +243 +820 +24 +192 +956 +621 +78 +777 +950 +370 +568 +825 +502 +475 +105 +222 +39 +361 +92 +49 +798 +203 +591 +524 +175 +268 +192 +863 +955 +125 +587 +475 +960 +973 +446 +662 +490 +676 +837 +869 +713 +772 +959 +974 +353 +63 +338 +920 +660 +971 +682 +441 +872 +553 +395 +996 +601 +412 +841 +278 +170 +772 +183 +98 +502 +318 +345 +888 +563 +551 +713 +95 +754 +685 +312 +749 +751 +786 +609 +966 +242 +509 +908 +804 +351 +910 +850 +524 +295 +550 +188 +203 +867 +316 +446 +258 +622 +143 +64 +521 +425 +776 +108 +589 +583 +654 +941 +750 +817 +380 +334 +6 +888 +340 +829 +69 +599 +673 +958 +950 +383 +270 +437 +338 +156 +64 +35 +279 +611 +918 +477 +742 +417 +24 +681 +466 +740 +23 +173 +865 +362 +856 +844 +624 +416 +582 +624 +13 +165 +157 +844 +672 +730 +515 +26 +666 +842 +403 +762 +156 +831 +839 +204 +218 +670 +313 +416 +769 +544 +679 +640 +895 +98 +959 +999 +210 +226 +462 +195 +64 +574 +871 +525 +844 +108 +127 +263 +249 +251 +759 +994 +79 +39 +120 +341 +476 +183 +738 +433 +42 +331 +861 +974 +380 +350 +939 +554 +380 +844 +811 +60 +397 +911 +3 +62 +642 +27 +76 +987 +787 +773 +271 +133 +260 +302 +57 +321 +97 +877 +900 +509 +37 +731 +890 +634 +969 +835 +270 +695 +541 +374 +537 +881 +799 +722 +770 +885 +357 +426 +221 +350 +632 +447 +389 +105 +461 +501 +736 +192 +666 +293 +421 +254 +799 +51 +156 +218 +687 +288 +585 +411 +852 +528 +488 +938 +249 +368 +772 +744 +963 +96 +335 +442 +929 +487 +810 +701 +718 +406 +32 +215 +942 +865 +336 +719 +986 +279 +382 +723 +488 +844 +713 +51 +563 +431 +27 +866 +343 +688 +400 +805 +820 +884 +308 +865 +146 +824 +293 +779 +509 +326 +925 +392 +606 +592 +556 +569 +271 +141 +44 +397 +688 +351 +277 +619 +697 +710 +798 +959 +600 +404 +939 +721 +472 +348 +69 +92 +744 +136 +137 +906 +844 +554 +993 +756 +362 +394 +816 +938 +299 +192 +385 +86 +322 +526 +528 +489 +80 +243 +343 +96 +252 +354 +288 +666 +779 +579 +202 +485 +253 +995 +201 +725 +547 +616 +98 +367 +170 +736 +809 +813 +916 +532 +356 +30 +221 +525 +835 +985 +67 +63 +412 +490 +173 +942 +421 +517 +511 +932 +148 +128 +242 +380 +410 +403 +715 +555 +961 +899 +623 +448 +925 +687 +143 +294 +213 +703 +593 +446 +451 +718 +325 +141 +753 +177 +244 +824 +567 +155 +145 +732 +570 +805 +532 +661 +685 +93 +816 +856 +965 +819 +817 +968 +120 +200 +492 +151 +841 +803 +319 +234 +814 +491 +518 +674 +22 +534 +144 +980 +97 +673 +237 +429 +984 +191 +723 +708 +603 +74 +364 +838 +684 +799 +170 +102 +623 +317 +596 +452 +725 +172 +817 +230 +805 +684 +326 +69 +462 +598 +658 +297 +519 +278 +231 +886 +77 +690 +920 +826 +492 +391 +205 +320 +878 +400 +295 +366 +312 +199 +215 +213 +415 +677 +358 +35 +41 +460 +32 +332 +620 +309 +345 +948 +541 +639 +546 +523 +939 +793 +502 +603 +515 +709 +953 +498 +749 +675 +70 +48 +367 +545 +692 +933 +447 +552 +35 +822 +631 +420 +320 +429 +539 +274 +101 +332 +559 +290 +801 +370 +989 +356 +948 +534 +940 +123 +240 +21 +859 +226 +380 +658 +186 +673 +959 +845 +33 +369 +213 +961 +702 +461 +838 +789 +150 +929 +161 +987 +336 +458 +680 +724 +91 +149 +35 +589 +829 +418 +301 +120 +267 +435 +408 +949 +997 +451 +945 +550 +537 +332 +639 +528 +367 +526 +175 +202 +855 +722 +633 +946 +938 +100 +987 +266 +859 +268 +754 +628 +211 +934 +234 +859 +112 +571 +129 +545 +881 +433 +452 +98 +148 +926 +746 +853 +947 +302 +813 +342 +676 +790 +370 +6 +789 +472 +938 +724 +640 +193 +569 +426 +849 +955 +285 +870 +473 +177 +432 +383 +136 +97 +770 +936 +128 +85 +122 +802 +607 +435 +169 +188 +79 +60 +953 +51 +568 +251 +815 +912 +636 +749 +770 +49 +265 +209 +492 +923 +403 +94 +619 +596 +308 +853 +282 +89 +157 +669 +23 +681 +402 +347 +717 +952 +16 +804 +980 +45 +713 +128 +175 +835 +282 +230 +765 +339 +158 +264 +94 +543 +525 +620 +855 +623 +977 +118 +275 +892 +427 +313 +278 +506 +202 +972 +364 +181 +329 +6 +753 +771 +87 +244 +551 +201 +535 +207 +520 +531 +597 +821 +883 +503 +349 +251 +493 +468 +352 +594 +29 +127 +14 +728 +548 +620 +90 +633 +541 +306 +202 +55 +675 +113 +13 +908 +481 +124 +243 +602 +777 +932 +261 +884 +911 +248 +246 +888 +251 +129 +337 +44 +442 +903 +134 +967 +506 +241 +94 +471 +236 +656 +589 +22 +805 +527 +288 +396 +373 +132 +891 +592 +393 +208 +850 +202 +813 +376 +179 +764 +938 +298 +514 +717 +608 +6 +792 +411 +46 +72 +880 +475 +227 +353 +406 +76 +166 +697 +1 +441 +357 +277 +587 +640 +164 +298 +328 +234 +584 +35 +154 +436 +755 +789 +476 +237 +618 +673 +196 +713 +183 +468 +382 +803 +741 +550 +990 +247 +378 +660 +703 +945 +906 +213 +388 +885 +770 +345 +365 +357 +78 +867 +243 +991 +921 +63 +597 +368 +967 +946 +865 +468 +305 +348 +731 +904 +816 +429 +566 +819 +253 +630 +629 +562 +400 +512 +603 +774 +410 +106 +3 +223 +697 +709 +405 +548 +836 +685 +26 +455 +923 +210 +46 +526 +592 +409 +390 +43 +732 +680 +988 +903 +460 +8 +861 +409 +853 +272 +946 +19 +120 +562 +153 +410 +460 +375 +532 +613 +844 +84 +540 +405 +510 +118 +551 +411 +78 +313 +980 +265 +2 +441 +16 +247 +488 +463 +40 +112 +136 +930 +59 +463 +46 +972 +499 +859 +458 +246 +664 +500 +614 +452 +284 +180 +633 +479 +482 +375 +249 +59 +514 +38 +766 +512 +324 +138 +12 +607 +235 +455 +336 +729 +100 +356 +125 +706 +856 +399 +957 +215 +363 +21 +619 +93 +238 +17 +846 +293 +994 +325 +94 +649 +62 +209 +989 +439 +988 +787 +372 +314 +373 +877 +59 +924 +243 +805 +269 +184 +767 +532 +994 +855 +914 +664 +369 +945 +577 +48 +533 +824 +457 +985 +279 +181 +35 +888 +861 +520 +702 +372 +754 +455 +120 +649 +673 +634 +837 +324 +482 +810 +764 +587 +955 +687 +504 +28 +601 +429 +307 +823 +816 +959 +417 +955 +70 +539 +374 +296 +824 +971 +19 +978 +815 +290 +314 +861 +975 +51 +273 +170 +741 +628 +574 +844 +265 +760 +809 +125 +580 +659 +656 +303 +753 +34 +656 +549 +975 +627 +795 +852 +222 +545 +415 +269 +393 +176 +480 +764 +906 +279 +201 +929 +95 +469 +481 +718 +65 +629 +808 +47 +67 +53 +175 +716 +319 +709 +912 +624 +113 +422 +804 +33 +717 +693 +360 +351 +55 +54 +367 +26 +733 +641 +962 +241 +101 +702 +902 +63 +417 +529 +378 +150 +501 +65 +675 +515 +956 +140 +741 +923 +68 +902 +466 +619 +580 +59 +112 +18 +809 +332 +199 +381 +97 +108 +250 +278 +495 +142 +742 +877 +902 +537 +634 +909 +449 +210 +3 +672 +798 +402 +916 +3 +607 +760 +1 +205 +643 +476 +373 +933 +283 +433 +759 +940 +483 +418 +42 +609 +482 +853 +802 +366 +850 +128 +47 +672 +982 +534 +923 +146 +93 +182 +845 +197 +796 +268 +821 +254 +708 +226 +786 +934 +910 +336 +691 +409 +92 +263 +993 +533 +36 +147 +655 +286 +529 +771 +73 +530 +845 +55 +268 +798 +729 +982 +908 +330 +354 +120 +292 +260 +805 +842 +969 +311 +167 +769 +897 +494 +873 +464 +908 +535 +807 +449 +392 +240 +437 +499 +549 +652 +422 +557 +906 +399 +473 +844 +376 +783 +12 +328 +795 +255 +214 +352 +882 +150 +946 +623 +346 +566 +711 +300 +976 +61 +82 +710 +42 +619 +444 +2 +924 +910 +447 +129 +650 +249 +545 +848 +425 +192 +108 +617 +341 +12 +891 +557 +948 +154 +84 +363 +475 +640 +619 +801 +511 +22 +307 +912 +115 +666 +707 +138 +304 +845 +136 +802 +197 +445 +574 +396 +173 +700 +894 +32 +332 +617 +194 +428 +122 +267 +856 +110 +385 +773 +600 +318 +947 +680 +947 +627 +253 +230 +317 +191 +898 +110 +251 +250 +653 +603 +902 +967 +105 +905 +674 +76 +107 +698 +628 +683 +516 +79 +892 +329 +198 +551 +111 +145 +307 +692 +308 +896 +776 +458 +222 +599 +920 +255 +896 +547 +946 +887 +883 +555 +844 +485 +27 +454 +758 +611 +35 +154 +995 +969 +673 +599 +871 +24 +276 +23 +649 +373 +137 +192 +67 +284 +517 +472 +738 +513 +917 +24 +947 +698 +793 +880 +151 +361 +851 +345 +714 +690 +795 +474 +5 +632 +937 +588 +937 +152 +508 +881 +823 +625 +982 +985 +658 +689 +54 +556 +615 +847 +974 +380 +836 +723 +120 +716 +526 +648 +271 +434 +125 +97 +307 +554 +682 +981 +277 +732 +525 +138 +653 +284 +504 +178 +102 +423 +110 +746 +815 +201 +745 +829 +712 +743 +537 +366 +923 +998 +557 +83 +968 +820 +955 +227 +812 +537 +942 +693 +354 +714 +212 +993 +170 +594 +13 +142 +683 +697 +142 +807 +187 +655 +670 +455 +271 +789 +969 +579 +337 +441 +354 +758 +150 +580 +499 +445 +24 +891 +791 +95 +824 +563 +474 +829 +525 +320 +90 +232 +962 +195 +704 +310 +268 +821 +845 +583 +19 +167 +962 +91 +228 +216 +368 +734 +252 +515 +314 +632 +274 +689 +836 +454 +948 +924 +690 +161 +923 +619 +995 +849 +801 +203 +757 +661 +112 +667 +217 +603 +440 +437 +617 +845 +178 +872 +943 +625 +651 +280 +190 +765 +909 +103 +500 +942 +275 +465 +704 +643 +182 +629 +524 +1 +667 +854 +915 +715 +956 +108 +201 +779 +448 +548 +381 +73 +657 +314 +805 +610 +600 +324 +89 +331 +191 +880 +388 +115 +682 +547 +425 +581 +271 +28 +937 +970 +511 +237 +387 +547 +951 +336 +574 +448 +330 +258 +527 +422 +814 +220 +350 +129 +793 +936 +370 +552 +328 +136 +129 +177 +731 +913 +843 +880 +585 +951 +372 +224 +729 +357 +976 +778 +127 +294 +702 +469 +320 +779 +243 +409 +358 +276 +777 +488 +244 +66 +617 +465 +80 +839 +343 +840 +929 +705 +61 +609 +437 +896 +849 +56 +628 +528 +223 +945 +776 +987 +558 +937 +413 +497 +311 +908 +258 +716 +326 +222 +793 +396 +646 +524 +233 +577 +911 +479 +165 +740 +108 +956 +251 +730 +506 +856 +907 +632 +597 +891 +701 +646 +461 +163 +878 +424 +134 +565 +297 +63 +234 +829 +560 +869 +333 +817 +633 +865 +77 +166 +222 +387 +145 +884 +51 +443 +962 +452 +902 +603 +523 +140 +256 +14 +956 +557 +100 +306 +330 +749 +464 +977 +946 +383 +22 +186 +782 +828 +259 +739 +140 +724 +403 +518 +103 +106 +354 +991 +419 +657 +814 +495 +154 +630 +412 +304 +951 +754 +967 +805 +271 +690 +844 +413 +247 +38 +984 +538 +391 +480 +758 +772 +823 +720 +96 +672 +667 +862 +32 +513 +432 +14 +918 +473 +683 +495 +752 +331 +456 +162 +528 +462 +607 +533 +219 +114 +948 +779 +9 +966 +396 +591 +78 +347 +658 +716 +266 +210 +111 +265 +196 +505 +127 +204 +268 +319 +338 +187 +760 +661 +496 +155 +380 +385 +202 +666 +858 +596 +530 +149 +39 +1 +439 +417 +828 +268 +622 +953 +50 +995 +473 +965 +111 +471 +794 +884 +859 +86 +947 +981 +773 +963 +548 +877 +20 +95 +151 +712 +660 +135 +18 +181 +641 +915 +217 +18 +995 +797 +1 +247 +436 +315 +136 +205 +576 +145 +331 +487 +657 +152 +516 +309 +13 +308 +98 +448 +704 +959 +209 +455 +577 +536 +337 +12 +835 +933 +819 +311 +383 +53 +34 +21 +876 +791 +599 +672 +524 +64 +607 +400 +342 +140 +231 +742 +243 +609 +380 +408 +84 +117 +485 +703 +970 +255 +117 +562 +301 +752 +673 +942 +479 +588 +138 +799 +275 +482 +803 +537 +44 +918 +467 +415 +824 +367 +371 +853 +243 +89 +674 +402 +211 +314 +233 +918 +712 +304 +400 +890 +679 +769 +513 +768 +889 +474 +104 +640 +548 +838 +302 +854 +352 +376 +405 +795 +402 +120 +429 +624 +480 +377 +239 +404 +115 +933 +461 +574 +874 +531 +239 +676 +971 +82 +14 +784 +601 +925 +325 +778 +235 +686 +895 +161 +876 +104 +347 +345 +782 +767 +757 +64 +504 +141 +928 +433 +251 +259 +345 +935 +946 +562 +8 +496 +829 +723 +835 +213 +784 +973 +151 +161 +42 +541 +161 +593 +616 +444 +393 +687 +54 +407 +482 +99 +53 +896 +904 +554 +74 +506 +945 +716 +542 +452 +772 +625 +710 +746 +259 +512 +912 +76 +741 +178 +240 +678 +368 +876 +244 +323 +291 +150 +602 +408 +984 +28 +997 +922 +235 +635 +419 +256 +667 +656 +684 +222 +522 +907 +666 +498 +360 +622 +516 +82 +671 +978 +76 +540 +680 +240 +706 +940 +831 +486 +464 +220 +957 +616 +773 +760 +628 +578 +925 +439 +62 +325 +963 +419 +935 +952 +600 +561 +59 +993 +873 +538 +492 +331 +37 +703 +687 +622 +346 +823 +867 +893 +183 +740 +876 +696 +402 +746 +138 +324 +960 +635 +326 +618 +342 +889 +839 +166 +937 +468 +216 +945 +515 +187 +378 +969 +245 +283 +530 +871 +310 +960 +515 +562 +624 +221 +325 +377 +62 +165 +721 +791 +316 +726 +660 +735 +625 +673 +631 +321 +842 +361 +465 +762 +388 +635 +68 +631 +126 +92 +737 +163 +155 +27 +438 +857 +447 +324 +83 +389 +907 +785 +871 +883 +841 +145 +193 +384 +148 +114 +194 +689 +412 +877 +178 +123 +484 +820 +991 +105 +53 +536 +799 +20 +16 +139 +462 +468 +401 +493 +921 +71 +458 +268 +88 +516 +733 +10 +147 +519 +797 +112 +78 +225 +33 +951 +948 +473 +319 +435 +363 +781 +141 +563 +799 +639 +101 +228 +595 +111 +456 +971 +319 +269 +470 +427 +48 +430 +608 +807 +127 +205 +772 +24 +251 +266 +368 +719 +914 +69 +762 +848 +499 +963 +43 +733 +731 +314 +998 +839 +724 +248 +339 +130 +349 +645 +813 +958 +757 +659 +224 +451 +986 +878 +591 +578 +77 +629 +291 +869 +743 +712 +873 +756 +643 +596 +613 +825 +486 +588 +377 +970 +145 +884 +158 +712 +833 +658 +233 +882 +699 +239 +30 +478 +872 +630 +363 +433 +647 +945 +296 +713 +15 +917 +458 +286 +127 +303 +33 +262 +497 +366 +219 +461 +263 +692 +801 +911 +451 +616 +225 +227 +343 +130 +731 +63 +999 +404 +558 +47 +102 +6 +184 +136 +601 +639 +542 +569 +838 +201 +289 +611 +283 +232 +826 +241 +621 +261 +666 +150 +865 +743 +82 +554 +896 +255 +818 +780 +548 +849 +841 +823 +211 +645 +983 +308 +788 +867 +166 +507 +912 +779 +96 +417 +977 +241 +310 +908 +381 +134 +512 +438 +195 +915 +772 +823 +990 +405 +991 +305 +670 +850 +445 +846 +477 +227 +449 +175 +125 +989 +938 +447 +844 +504 +872 +612 +725 +201 +641 +463 +696 +573 +715 +936 +596 +103 +830 +680 +316 +393 +678 +947 +979 +264 +938 +228 +233 +569 +630 +937 +403 +144 +362 +538 +657 +369 +259 +277 +821 +32 +597 +52 +782 +596 +976 +486 +351 +682 +618 +863 +266 +661 +195 +814 +208 +355 +496 +329 +156 +61 +427 +156 +626 +291 +923 +122 +807 +268 +961 +865 +969 +190 +326 +41 +226 +29 +683 +610 +580 +606 +552 +239 +508 +177 +640 +489 +980 +96 +353 +451 +659 +480 +464 +472 +761 +890 +107 +968 +263 +394 +132 +340 +117 +373 +770 +879 +135 +734 +234 +554 +808 +242 +241 +543 +11 +496 +786 +135 +499 +943 +897 +221 +754 +320 +877 +20 +988 +445 +375 +889 +253 +588 +736 +969 +69 +753 +774 +314 +304 +108 +772 +484 +528 +357 +436 +415 +129 +983 +790 +646 +500 +807 +279 +704 +36 +315 +537 +864 +694 +139 +290 +534 +571 +262 +933 +518 +987 +294 +880 +581 +264 +537 +280 +324 +460 +397 +355 +563 +41 +312 +655 +225 +73 +682 +721 +837 +47 +273 +257 +642 +520 +524 +18 +411 +105 +419 +665 +543 +566 +162 +632 +855 +878 +273 +692 +128 +960 +110 +704 +49 +217 +680 +135 +899 +465 +569 +420 +24 +902 +491 +410 +636 +774 +159 +51 +6 +898 +74 +771 +558 +111 +412 +316 +64 +70 +137 +119 +798 +290 +464 +731 +286 +649 +48 +592 +569 +403 +263 +599 +53 +371 +613 +697 +452 +524 +39 +817 +461 +139 +575 +870 +331 +177 +246 +665 +787 +222 +713 +198 +579 +106 +257 +865 +881 +646 +679 +260 +996 +871 +52 +50 +307 +949 +428 +315 +491 +459 +364 +778 +189 +513 +138 +581 +847 +451 +289 +956 +925 +126 +799 +595 +453 +666 +782 +885 +640 +342 +843 +709 +359 +590 +968 +811 +259 +274 +218 +594 +976 +874 +245 +233 +411 +597 +670 +406 +899 +704 +23 +540 +817 +150 +589 +558 +922 +64 +547 +506 +986 +414 +533 +821 +959 +11 +887 +81 +439 +46 +341 +21 +295 +934 +690 +620 +536 +495 +553 +467 +994 +639 +963 +150 +482 +322 +89 +473 +993 +182 +123 +852 +368 +267 +171 +149 +812 +508 +12 +732 +616 +440 +716 +182 +869 +221 +16 +791 +600 +415 +576 +567 +210 +713 +363 +675 +345 +796 +41 +604 +399 +652 +82 +51 +495 +113 +164 +506 +678 +655 +361 +378 +420 +461 +566 +515 +411 +374 +849 +168 +17 +952 +670 +486 +424 +118 +919 +710 +139 +365 +340 +59 +955 +793 +858 +55 +859 +456 +89 +284 +431 +758 +105 +409 +354 +508 +780 +540 +598 +283 +604 +550 +665 +564 +662 +258 +364 +102 +44 +586 +749 +443 +229 +55 +157 +368 +63 +106 +646 +265 +402 +969 +198 +756 +306 +354 +810 +601 +871 +235 +688 +841 +218 +313 +867 +675 +406 +59 +801 +775 +522 +559 +718 +217 +976 +686 +985 +305 +80 +42 +57 +547 +589 +659 +806 +310 +843 +563 +77 +387 +26 +666 +361 +696 +537 +820 +847 +657 +887 +94 +791 +290 +938 +845 +652 +162 +752 +159 +600 +511 +845 +290 +971 +905 +494 +208 +851 +688 +266 +201 +608 +354 +84 +589 +222 +392 +6 +439 +237 +587 +349 +999 +265 +156 +162 +908 +874 +616 +692 +108 +889 +390 +895 +991 +382 +849 +747 +579 +630 +669 +151 +708 +693 +247 +705 +162 +631 +45 +701 +811 +865 +149 +387 +972 +162 +806 +21 +735 +680 +999 +305 +519 +807 +107 +608 +276 +910 +859 +997 +328 +255 +812 +791 +491 +642 +560 +721 +987 +166 +99 +875 +972 +467 +61 +548 +498 +59 +817 +384 +27 +76 +778 +662 +413 +21 +35 +733 +13 +188 +162 +554 +83 +90 +212 +598 +290 +267 +752 +211 +297 +86 +380 +306 +533 +886 +511 +791 +625 +563 +558 +856 +361 +756 +702 +573 +292 +178 +612 +13 +258 +858 +935 +241 +496 +662 +476 +680 +436 +777 +822 +966 +567 +393 +813 +907 +833 +283 +155 +428 +463 +412 +366 +38 +376 +308 +656 +869 +524 +345 +410 +854 +552 +363 +65 +536 +913 +697 +363 +604 +802 +992 +579 +984 +546 +297 +5 +149 +9 +489 +581 +697 +558 +885 +453 +352 +328 +628 +985 +336 +234 +80 +24 +160 +488 +616 +827 +594 +975 +884 +720 +292 +531 +479 +69 +939 +345 +838 +958 +370 +634 +748 +128 +198 +276 +125 +159 +253 +626 +859 +505 +498 +360 +639 +430 +553 +359 +340 +526 +479 +125 +393 +268 +616 +797 +128 +114 +522 +134 +939 +741 +907 +151 +946 +724 +254 +408 +800 +959 +794 +514 +774 +235 +717 +474 +30 +299 +110 +751 +152 +527 +771 +351 +137 +299 +445 +123 +888 +68 +475 +144 +64 +441 +154 +771 +769 +234 +946 +6 +287 +922 +70 +477 +641 +228 +754 +177 +812 +316 +81 +466 +814 +143 +739 +777 +744 +268 +627 +175 +228 +358 +18 +809 +950 +127 +109 +342 +631 +346 +649 +528 +887 +79 +825 +937 +113 +930 +881 +809 +160 +514 +792 +527 +672 +815 +517 +621 +168 +236 +939 +851 +292 +161 +866 +371 +111 +283 +940 +838 +627 +852 +34 +947 +538 +327 +873 +873 +73 +839 +452 +392 +522 +98 +168 +368 +532 +232 +468 +87 +580 +874 +143 +510 +93 +263 +807 +650 +786 +757 +170 +768 +100 +20 +895 +103 +532 +905 +166 +167 +935 +294 +26 +650 +731 +114 +450 +115 +453 +386 +652 +305 +646 +777 +202 +94 +896 +20 +20 +931 +207 +587 +208 +101 +577 +435 +406 +781 +965 +430 +606 +442 +39 +795 +697 +623 +663 +133 +736 +884 +495 +931 +100 +919 +953 +278 +14 +368 +591 +874 +296 +197 +861 +398 +592 +951 +957 +939 +155 +920 +740 +374 +39 +490 +156 +373 +125 +344 +81 +974 +821 +82 +851 +157 +212 +213 +293 +561 +897 +282 +472 +782 +573 +426 +390 +518 +609 +798 +74 +414 +111 +749 +878 +179 +349 +585 +835 +339 +736 +172 +486 +947 +659 +621 +709 +556 +947 +883 +204 +385 +658 +303 +986 +436 +216 +166 +764 +615 +490 +315 +918 +425 +26 +576 +714 +306 +37 +392 +507 +46 +790 +233 +72 +1 +826 +453 +675 +156 +400 +544 +45 +272 +380 +310 +912 +409 +30 +620 +589 +355 +227 +533 +54 +74 +325 +340 +386 +940 +620 +754 +431 +118 +661 +175 +949 +119 +427 +12 +258 +449 +355 +969 +884 +381 +878 +904 +391 +147 +978 +246 +414 +389 +669 +567 +742 +542 +220 +821 +8 +683 +806 +868 +164 +518 +993 +494 +873 +833 +513 +638 +820 +963 +732 +179 +795 +556 +398 +799 +976 +820 +969 +860 +948 +946 +468 +747 +943 +541 +862 +429 +772 +497 +916 +507 +385 +586 +113 +315 +260 +452 +17 +994 +695 +614 +370 +652 +844 +401 +489 +202 +205 +33 +922 +909 +147 +870 +698 +40 +317 +407 +594 +535 +419 +95 +281 +272 +700 +191 +4 +310 +257 +824 +786 +14 +573 +556 +929 +834 +554 +413 +799 +365 +83 +634 +635 +539 +361 +692 +987 +313 +731 +814 +704 +184 +79 +822 +768 +304 +364 +186 +171 +501 +724 +882 +112 +170 +781 +461 +533 +490 +343 +200 +4 +728 +417 +271 +689 +846 +433 +369 +645 +635 +378 +781 +965 +355 +204 +371 +302 +559 +892 +139 +196 +857 +999 +760 +657 +491 +338 +35 +91 +579 +380 +30 +746 +265 +507 +801 +41 +744 +8 +898 +994 +227 +243 +626 +338 +449 +531 +317 +576 +392 +495 +485 +670 +279 +526 +929 +813 +914 +62 +178 +408 +626 +575 +823 +181 +823 +654 +507 +277 +655 +255 +750 +968 +424 +376 +710 +434 +185 +91 +83 +6 +778 +651 +826 +335 +784 +681 +786 +539 +345 +406 +419 +18 +790 +211 +862 +826 +924 +686 +591 +35 +559 +749 +419 +724 +811 +438 +401 +702 +151 +527 +745 +892 +120 +262 +868 +26 +158 +656 +346 +684 +315 +614 +690 +583 +766 +731 +606 +889 +596 +807 +134 +753 +680 +951 +86 +395 +85 +697 +240 +652 +919 +190 +662 +693 +749 +746 +367 +831 +331 +389 +513 +592 +33 +901 +333 +10 +861 +183 +328 +251 +2 +868 +447 +598 +55 +257 +184 +672 +86 +766 +202 +132 +756 +335 +914 +313 +141 +699 +831 +677 +951 +92 +793 +504 +410 +189 +862 +495 +397 +468 +909 +379 +165 +886 +771 +159 +963 +553 +259 +333 +548 +946 +281 +873 +688 +467 +962 +535 +844 +743 +980 +976 +377 +532 +434 +507 +373 +250 +487 +874 +46 +586 +115 +778 +767 +756 +526 +117 +120 +664 +592 +280 +444 +699 +526 +667 +408 +123 +7 +215 +770 +202 +610 +577 +378 +143 +579 +42 +734 +576 +893 +170 +920 +804 +180 +48 +900 +625 +697 +93 +561 +572 +261 +505 +376 +278 +534 +644 +221 +627 +14 +675 +723 +749 +715 +391 +205 +916 +363 +297 +791 +76 +341 +298 +816 +917 +923 +735 +696 +155 +837 +244 +768 +462 +705 +4 +841 +226 +533 +126 +897 +33 +963 +85 +653 +150 +255 +72 +607 +149 +320 +762 +643 +766 +506 +648 +22 +988 +845 +310 +877 +347 +643 +642 +7 +198 +742 +862 +87 +904 +43 +241 +333 +590 +841 +298 +329 +665 +682 +92 +259 +562 +470 +194 +981 +355 +429 +665 +166 +167 +516 +318 +749 +407 +860 +457 +598 +496 +690 +681 +237 +470 +855 +36 +418 +294 +584 +390 +345 +355 +368 +518 +809 +35 +17 +94 +491 +132 +584 +375 +462 +775 +522 +995 +100 +181 +311 +997 +976 +724 +829 +849 +874 +995 +699 +284 +320 +53 +453 +751 +893 +678 +568 +510 +425 +499 +744 +164 +700 +575 +780 +569 +469 +800 +226 +645 +761 +644 +620 +621 +286 +589 +685 +304 +391 +797 +687 +247 +994 +112 +123 +408 +295 +692 +223 +484 +896 +112 +429 +85 +485 +60 +912 +512 +551 +702 +839 +897 +376 +195 +870 +539 +59 +13 +518 +385 +496 +354 +909 +922 +55 +414 +543 +481 +112 +706 +292 +431 +134 +123 +470 +662 +1 +325 +80 +426 +545 +425 +966 +554 +807 +217 +679 +550 +414 +788 +924 +377 +689 +54 +6 +618 +600 +267 +113 +968 +123 +581 +805 +450 +50 +432 +214 +98 +655 +927 +222 +46 +938 +444 +545 +746 +304 +624 +578 +682 +977 +394 +72 +226 +472 +569 +747 +770 +824 +779 +390 +314 +291 +946 +325 +271 +247 +332 +40 +714 +458 +200 +650 +33 +750 +353 +25 +608 +904 +238 +99 +567 +433 +134 +553 +912 +985 +176 +855 +59 +363 +662 +316 +175 +714 +428 +413 +975 +241 +660 +198 +532 +69 +356 +266 +559 +554 +432 +101 +614 +906 +662 +37 +509 +55 +552 +505 +71 +781 +172 +869 +283 +23 +669 +465 +459 +98 +200 +35 +236 +511 +284 +317 +489 +26 +17 +841 +38 +800 +176 +563 +713 +584 +392 +530 +102 +637 +410 +979 +305 +326 +104 +706 +186 +160 +781 +646 +945 +952 +761 +546 +859 +216 +709 +775 +538 +947 +234 +115 +577 +153 +320 +930 +568 +658 +738 +228 +769 +621 +531 +72 +729 +334 +219 +165 +650 +982 +200 +852 +425 +483 +475 +747 +344 +123 +654 +334 +227 +346 +275 +579 +603 +74 +12 +9 +979 +948 +107 +24 +948 +154 +445 +915 +978 +638 +503 +293 +431 +869 +770 +922 +521 +30 +490 +133 +31 +332 +515 +349 +731 +500 +374 +397 +446 +351 +83 +366 +328 +197 +250 +446 +652 +400 +270 +692 +580 +159 +794 +845 +116 +296 +681 +585 +434 +514 +364 +828 +810 +876 +585 +135 +798 +520 +20 +802 +679 +972 +451 +133 +218 +961 +508 +842 +263 +594 +694 +746 +267 +29 +464 +175 +505 +945 +935 +940 +460 +15 +295 +978 +826 +109 +679 +283 +368 +706 +907 +365 +414 +257 +525 +770 +306 +164 +533 +188 +799 +86 +86 +819 +519 +689 +519 +972 +795 +986 +24 +448 +137 +66 +164 +900 +611 +975 +165 +874 +25 +614 +891 +547 +349 +567 +376 +217 +379 +227 +268 +947 +587 +787 +801 +312 +21 +326 +177 +662 +864 +470 +87 +17 +418 +719 +761 +785 +860 +212 +575 +302 +874 +773 +213 +642 +644 +908 +963 +419 +114 +703 +845 +888 +113 +946 +191 +557 +877 +870 +595 +956 +172 +204 +742 +415 +52 +830 +38 +220 +227 +265 +15 +358 +348 +995 +843 +127 +708 +491 +470 +484 +216 +705 +892 +461 +926 +323 +646 +323 +668 +603 +100 +810 +901 +587 +881 +304 +142 +968 +501 +338 +868 +148 +37 +339 +703 +156 +384 +44 +799 +939 +109 +981 +236 +679 +694 +185 +420 +634 +430 +802 +723 +719 +972 +478 +540 +623 +273 +580 +479 +374 +6 +354 +308 +725 +550 +651 +979 +63 +725 +621 +441 +998 +835 +323 +469 +407 +299 +370 +428 +751 +565 +895 +88 +620 +416 +446 +369 +890 +16 +325 +805 +335 +220 +129 +396 +796 +377 +36 +84 +634 +147 +300 +212 +503 +850 +508 +854 +708 +878 +884 +371 +683 +559 +298 +638 +583 +418 +682 +6 +245 +414 +632 +840 +353 +584 +685 +81 +69 +943 +140 +689 +358 +999 +520 +373 +907 +981 +537 +343 +982 +81 +869 +244 +164 +22 +760 +93 +736 +199 +493 +89 +90 +89 +47 +622 +578 +519 +814 +595 +832 +628 +652 +202 +362 +440 +132 +925 +445 +926 +630 +944 +168 +422 +220 +935 +833 +280 +541 +631 +853 +926 +636 +386 +559 +152 +797 +457 +122 +128 +242 +462 +186 +777 +534 +603 +422 +990 +383 +581 +542 +481 +722 +834 +297 +768 +186 +247 +840 +161 +885 +242 +112 +720 +696 +45 +679 +899 +387 +105 +483 +675 +62 +587 +103 +670 +301 +700 +453 +798 +13 +190 +767 +553 +938 +952 +802 +236 +671 +540 +834 +671 +410 +600 +4 +478 +347 +357 +898 +603 +757 +526 +391 +412 +43 +131 +641 +108 +680 +723 +97 +261 +567 +979 +750 +935 +641 +289 +249 +570 +786 +207 +568 +20 +843 +80 +331 +637 +629 +448 +583 +541 +993 +451 +388 +874 +563 +260 +547 +749 +837 +973 +896 +787 +281 +418 +58 +987 +473 +539 +58 +655 +968 +323 +195 +223 +838 +603 +150 +753 +718 +530 +703 +5 +758 +985 +707 +164 +435 +793 +74 +671 +100 +672 +685 +964 +278 +145 +414 +249 +153 +75 +218 +775 +39 +908 +923 +261 +102 +677 +339 +827 +407 +689 +538 +350 +485 +977 +262 +891 +563 +268 +844 +826 +340 +177 +908 +210 +835 +602 +23 +862 +989 +999 +951 +426 +194 +586 +237 +233 +412 +918 +360 +8 +443 +262 +593 +124 +614 +669 +84 +782 +54 +314 +232 +313 +726 +472 +670 +95 +931 +318 +222 +727 +597 +138 +981 +607 +947 +643 +819 +328 +244 +395 +703 +42 +811 +85 +269 +827 +963 +38 +703 +840 +154 +696 +192 +751 +938 +939 +995 +835 +466 +909 +309 +674 +790 +998 +942 +375 +864 +186 +530 +796 +40 +103 +975 +373 +332 +920 +358 +165 +912 +482 +434 +940 +894 +605 +76 +245 +220 +442 +794 +823 +699 +413 +611 +641 +617 +222 +28 +721 +364 +87 +965 +974 +759 +364 +34 +86 +888 +237 +109 +436 +566 +13 +879 +557 +173 +181 +353 +635 +64 +8 +85 +216 +13 +978 +180 +282 +676 +695 +522 +713 +932 +412 +159 +989 +606 +308 +735 +912 +49 +830 +352 +799 +306 +586 +30 +487 +998 +861 +506 +971 +938 +831 +973 +618 +862 +107 +551 +869 +472 +624 +945 +339 +427 +961 +446 +389 +124 +710 +197 +788 +30 +304 +993 +444 +274 +669 +124 +817 +753 +367 +714 +801 +29 +371 +736 +335 +124 +9 +913 +905 +220 +53 +55 +739 +852 +705 +210 +833 +558 +262 +177 +169 +475 +502 +393 +515 +244 +351 +235 +86 +446 +511 +221 +187 +858 +351 +987 +26 +703 +145 +35 +499 +872 +609 +381 +221 +76 +368 +632 +762 +206 +490 +651 +102 +364 +540 +396 +884 +668 +997 +632 +194 +749 +490 +977 +293 +866 +742 +668 +17 +621 +155 +491 +656 +293 +901 +711 +198 +146 +642 +134 +325 +562 +878 +899 +430 +786 +184 +745 +526 +312 +927 +201 +445 +820 +956 +591 +999 +428 +831 +798 +489 +987 +862 +597 +989 +530 +688 +437 +371 +475 +545 +496 +184 +122 +417 +457 +839 +184 +159 +798 +840 +685 +530 +294 +460 +805 +140 +752 +411 +57 +593 +667 +382 +344 +28 +235 +293 +917 +240 +353 +811 +95 +684 +620 +553 +983 +853 +579 +757 +523 +18 +393 +195 +915 +181 +503 +191 +521 +287 +849 +373 +753 +738 +897 +653 +594 +324 +938 +11 +686 +190 +767 +170 +693 +866 +565 +494 +84 +833 +178 +956 +164 +131 +839 +613 +690 +941 +764 +734 +193 +280 +871 +154 +575 +137 +663 +681 +231 +761 +920 +892 +964 +525 +286 +119 +517 +402 +254 +158 +627 +210 +18 +190 +140 +957 +935 +111 +481 +991 +811 +322 +57 +97 +564 +800 +748 +163 +467 +512 +156 +806 +37 +889 +728 +144 +392 +193 +584 +802 +403 +206 +498 +536 +101 +666 +406 +993 +60 +200 +878 +830 +54 +712 +17 +459 +903 +312 +173 +100 +765 +266 +658 +957 +587 +715 +252 +475 +314 +866 +286 +161 +582 +689 +649 +281 +69 +717 +573 +731 +211 +352 +505 +134 +891 +494 +573 +681 +553 +707 +47 +714 +919 +34 +926 +29 +183 +801 +471 +335 +802 +55 +250 +489 +909 +275 +483 +352 +497 +381 +523 +27 +318 +834 +370 +908 +943 +474 +122 +379 +900 +632 +794 +417 +493 +317 +547 +785 +882 +587 +544 +497 +462 +376 +191 +200 +121 +263 +613 +355 +113 +335 +223 +214 +449 +239 +502 +569 +767 +802 +385 +610 +742 +723 +360 +69 +113 +351 +995 +14 +684 +187 +457 +524 +227 +540 +783 +597 +2 +411 +543 +853 +960 +551 +302 +135 +176 +424 +252 +766 +294 +946 +901 +669 +113 +734 +864 +255 +27 +536 +291 +422 +890 +191 +145 +879 +454 +386 +229 +45 +22 +965 +44 +303 +917 +720 +812 +401 +861 +738 +800 +755 +769 +894 +699 +430 +253 +715 +210 +795 +261 +869 +941 +711 +656 +249 +624 +348 +633 +905 +54 +8 +908 +846 +3 +150 +412 +473 +338 +583 +54 +25 +778 +853 +537 +702 +218 +849 +198 +757 +711 +477 +881 +688 +28 +296 +372 +878 +403 +672 +326 +554 +889 +598 +9 +857 +224 +342 +922 +317 +747 +927 +61 +65 +149 +669 +838 +282 +908 +32 +111 +308 +55 +761 +779 +993 +894 +716 +810 +984 +556 +462 +820 +216 +577 +10 +339 +407 +615 +903 +130 +757 +664 +326 +869 +491 +386 +987 +283 +500 +995 +961 +180 +931 +762 +124 +280 +599 +961 +259 +514 +234 +702 +847 +117 +602 +336 +577 +979 +536 +381 +442 +754 +79 +109 +792 +518 +340 +781 +157 +995 +627 +120 +644 +506 +61 +287 +329 +417 +816 +930 +199 +324 +376 +433 +103 +992 +355 +649 +185 +631 +587 +797 +328 +937 +661 +884 +453 +68 +853 +58 +717 +920 +597 +737 +494 +730 +97 +195 +213 +680 +807 +300 +527 +924 +307 +534 +13 +748 +71 +890 +19 +956 +723 +850 +315 +570 +961 +517 +170 +899 +388 +449 +258 +459 +132 +449 +825 +248 +918 +479 +726 +526 +487 +707 +950 +288 +150 +288 +917 +223 +218 +665 +792 +138 +23 +745 +616 +580 +768 +126 +965 +964 +292 +229 +635 +359 +492 +550 +518 +300 +382 +905 +80 +883 +659 +435 +417 +591 +808 +591 +810 +970 +700 +568 +80 +751 +677 +830 +407 +350 +780 +514 +457 +354 +386 +835 +276 +454 +623 +770 +192 +49 +170 +615 +727 +208 +554 +427 +457 +207 +542 +60 +292 +714 +202 +152 +943 +733 +949 +327 +249 +479 +76 +924 +941 +908 +160 +165 +408 +368 +615 +882 +885 +346 +371 +175 +598 +237 +507 +245 +242 +627 +912 +947 +188 +705 +635 +366 +222 +498 +614 +444 +545 +299 +650 +965 +18 +595 +440 +814 +749 +66 +470 +104 +326 +472 +838 +487 +119 +949 +161 +711 +402 +195 +539 +411 +480 +928 +356 +65 +577 +799 +442 +969 +113 +709 +650 +84 +349 +513 +910 +992 +350 +774 +727 +156 +179 +402 +456 +323 +464 +196 +749 +516 +537 +872 +523 +185 +537 +577 +710 +711 +811 +192 +858 +142 +704 +102 +836 +656 +400 +936 +584 +112 +347 +199 +160 +156 +447 +869 +795 +300 +803 +681 +180 +206 +886 +734 +191 +387 +834 +465 +394 +608 +34 +682 +776 +526 +558 +632 +976 +982 +974 +915 +150 +403 +151 +61 +571 +856 +181 +342 +805 +743 +903 +723 +749 +65 +548 +652 +670 +214 +468 +536 +780 +684 +555 +222 +955 +499 +576 +759 +111 +846 +933 +668 +222 +739 +162 +309 +236 +716 +104 +503 +122 +190 +199 +18 +219 +129 +376 +165 +747 +109 +540 +405 +689 +85 +537 +240 +777 +77 +913 +355 +739 +51 +906 +474 +637 +722 +93 +4 +393 +121 +995 +896 +694 +64 +247 +466 +142 +790 +975 +745 +870 +272 +306 +608 +402 +354 +425 +858 +854 +797 +834 +12 +253 +833 +706 +440 +978 +739 +161 +296 +921 +775 +938 +814 +725 +485 +354 +425 +818 +855 +460 +633 +144 +383 +350 +642 +653 +701 +457 +586 +474 +24 +249 +599 +575 +473 +511 +607 +900 +146 +832 +150 +30 +328 +856 +911 +117 +940 +846 +201 +203 +943 +427 +639 +268 +391 +84 +562 +160 +425 +315 +330 +400 +28 +970 +106 +342 +28 +652 +153 +895 +919 +318 +626 +114 +30 +543 +524 +656 +411 +472 +208 +999 +324 +205 +823 +981 +899 +889 +8 +573 +599 +770 +428 +365 +799 +630 +174 +905 +278 +947 +37 +948 +885 +236 +257 +611 +647 +282 +278 +826 +261 +462 +34 +177 +733 +299 +670 +508 +921 +185 +102 +155 +114 +638 +949 +926 +143 +804 +750 +306 +994 +693 +846 +142 +113 +698 +859 +479 +241 +332 +2 +380 +427 +905 +314 +225 +136 +268 +627 +329 +193 +443 +771 +505 +324 +859 +518 +949 +841 +955 +428 +341 +986 +969 +474 +249 +627 +515 +133 +484 +162 +205 +429 +981 +441 +555 +212 +543 +542 +891 +625 +445 +565 +250 +170 +865 +654 +728 +491 +56 +394 +292 +254 +622 +662 +39 +66 +76 +875 +89 +839 +453 +395 +208 +743 +475 +250 +502 +741 +827 +695 +590 +538 +612 +503 +584 +448 +17 +942 +378 +84 +294 +338 +539 +938 +300 +387 +373 +666 +718 +410 +574 +15 +142 +768 +535 +725 +72 +608 +567 +481 +433 +916 +10 +696 +107 +507 +610 +477 +674 +848 +510 +331 +564 +822 +723 +142 +379 +380 +520 +582 +243 +924 +899 +283 +399 +399 +47 +273 +511 +733 +437 +9 +453 +945 +870 +898 +531 +19 +15 +959 +796 +471 +154 +919 +376 +289 +833 +83 +950 +21 +217 +407 +327 +236 +312 +257 +991 +320 +179 +610 +301 +168 +48 +162 +752 +153 +256 +7 +838 +939 +481 +490 +95 +91 +996 +634 +83 +734 +945 +3 +874 +162 +770 +431 +539 +342 +100 +556 +693 +157 +653 +848 +624 +548 +74 +274 +136 +369 +402 +332 +640 +220 +366 +847 +496 +411 +611 +284 +903 +374 +336 +883 +525 +952 +280 +840 +881 +631 +384 +798 +310 +136 +207 +586 +155 +712 +787 +892 +120 +417 +252 +963 +912 +379 +469 +386 +170 +956 +513 +890 +625 +433 +583 +472 +670 +798 +529 +349 +151 +21 +47 +577 +378 +260 +91 +849 +871 +401 +467 +460 +456 +148 +154 +870 +657 +307 +113 +888 +263 +401 +106 +814 +561 +773 +505 +158 +766 +357 +887 +538 +213 +645 +11 +650 +159 +364 +932 +30 +551 +958 +783 +199 +471 +960 +475 +875 +475 +312 +133 +675 +603 +709 +237 +103 +182 +237 +875 +991 +116 +646 +735 +945 +24 +54 +61 +830 +600 +370 +315 +618 +283 +570 +157 +407 +171 +369 +769 +482 +138 +366 +815 +617 +817 +989 +441 +90 +949 +266 +142 +963 +765 +957 +730 +812 +685 +579 +296 +443 +8 +505 +386 +915 +228 +925 +18 +846 +607 +29 +847 +728 +521 +427 +421 +961 +298 +131 +398 +849 +846 +280 +541 +82 +1 +447 +504 +88 +7 +440 +68 +647 +20 +368 +799 +316 +867 +32 +475 +786 +259 +489 +76 +874 +649 +800 +934 +932 +484 +57 +959 +981 +871 +878 +677 +396 +405 +381 +594 +313 +990 +735 +724 +932 +185 +154 +320 +703 +352 +407 +219 +992 +98 +20 +647 +59 +958 +300 +149 +133 +509 +543 +58 +927 +721 +291 +269 +458 +694 +398 +626 +632 +608 +930 +148 +111 +170 +436 +465 +632 +9 +411 +134 +969 +841 +872 +703 +26 +972 +653 +685 +73 +939 +481 +803 +376 +797 +746 +807 +134 +638 +932 +476 +270 +789 +856 +325 +569 +972 +112 +23 +901 +937 +978 +194 +478 +537 +761 +940 +292 +55 +482 +823 +147 +412 +453 +91 +995 +677 +660 +644 +734 +83 +348 +205 +375 +764 +924 +188 +928 +989 +615 +633 +863 +212 +679 +28 +467 +270 +683 +696 +424 +672 +41 +433 +899 +594 +453 +776 +240 +246 +163 +823 +118 +360 +235 +484 +651 +850 +340 +8 +344 +888 +407 +815 +209 +540 +4 +781 +888 +895 +252 +72 +882 +763 +880 +690 +294 +163 +869 +821 +392 +535 +566 +430 +310 +304 +42 +783 +702 +252 +356 +908 +363 +237 +4 +564 +664 +324 +855 +312 +932 +990 +481 +590 +181 +735 +197 +175 +666 +952 +162 +530 +388 +321 +39 +737 +398 +515 +699 +172 +577 +737 +388 +445 +815 +585 +957 +704 +46 +923 +19 +967 +574 +45 +291 +382 +781 +306 +864 +740 +164 +332 +762 +578 +940 +802 +69 +907 +180 +509 +561 +656 +938 +106 +823 +404 +592 +401 +801 +500 +590 +466 +728 +231 +62 +268 +39 +515 +769 +451 +190 +979 +313 +578 +845 +723 +994 +958 +741 +736 +579 +189 +125 +259 +468 +398 +961 +233 +14 +884 +495 +831 +327 +8 +446 +18 +503 +967 +412 +657 +142 +325 +764 +955 +185 +112 +528 +267 +491 +450 +818 +559 +884 +294 +518 +969 +152 +171 +33 +286 +314 +418 +533 +811 +853 +842 +348 +89 +992 +271 +756 +194 +12 +841 +716 +652 +522 +437 +131 +174 +616 +559 +649 +177 +13 +119 +438 +355 +211 +249 +233 +521 +607 +152 +468 +910 +629 +944 +504 +220 +193 +491 +635 +605 +103 +541 +916 +39 +334 +153 +667 +573 +801 +487 +882 +339 +518 +252 +119 +893 +645 +718 +869 +223 +609 +108 +410 +587 +606 +492 +766 +308 +120 +905 +493 +221 +65 +553 +821 +128 +123 +466 +519 +134 +90 +264 +161 +830 +620 +703 +742 +357 +438 +160 +48 +649 +64 +651 +899 +220 +414 +849 +251 +559 +792 +969 +845 +253 +633 +119 +127 +808 +3 +624 +519 +585 +444 +710 +160 +926 +877 +237 +511 +589 +919 +364 +35 +570 +758 +971 +451 +834 +790 +68 +654 +663 +823 +218 +890 +686 +125 +8 +170 +830 +117 +809 +450 +26 +381 +435 +799 +659 +120 +656 +726 +525 +9 +12 +195 +863 +449 +758 +347 +228 +17 +275 +922 +679 +864 +142 +360 +439 +913 +379 +81 +622 +203 +605 +704 +311 +152 +451 +531 +61 +44 +736 +39 +269 +203 +378 +665 +304 +312 +591 +457 +711 +279 +838 +286 +255 +865 +93 +474 +6 +703 +355 +797 +829 +105 +970 +161 +502 +360 +506 +302 +759 +30 +496 +572 +993 +743 +730 +857 +702 +105 +448 +862 +796 +789 +724 +151 +941 +416 +932 +3 +654 +783 +725 +395 +676 +67 +64 +832 +694 +448 +442 +551 +741 +790 +713 +771 +36 +727 +817 +622 +113 +549 +343 +741 +124 +568 +934 +806 +585 +899 +560 +14 +662 +492 +446 +788 +154 +550 +777 +434 +337 +51 +965 +334 +945 +100 +501 +48 +353 +240 +346 +181 +684 +299 +469 +348 +305 +403 +2 +457 +938 +856 +197 +272 +950 +492 +225 +829 +910 +470 +352 +386 +420 +794 +205 +123 +55 +424 +569 +62 +549 +745 +159 +580 +419 +292 +572 +1 +747 +61 +596 +993 +49 +441 +619 +77 +104 +298 +760 +105 +788 +429 +995 +373 +682 +329 +425 +864 +948 +152 +349 +433 +387 +116 +703 +765 +996 +165 +680 +773 +888 +542 +577 +731 +744 +137 +661 +662 +295 +640 +843 +250 +389 +29 +27 +304 +585 +853 +314 +202 +598 +748 +689 +919 +203 +663 +643 +677 +871 +344 +573 +995 +70 +139 +481 +804 +1 +218 +399 +161 +947 +400 +654 +650 +361 +185 +915 +424 +439 +966 +74 +143 +895 +427 +779 +311 +211 +177 +483 +817 +258 +974 +300 +944 +206 +490 +728 +416 +536 +819 +547 +547 +854 +159 +753 +103 +34 +788 +760 +802 +284 +518 +28 +402 +215 +479 +838 +968 +966 +218 +59 +330 +852 +756 +871 +871 +320 +272 +646 +261 +265 +13 +293 +248 +225 +707 +27 +461 +919 +973 +928 +197 +477 +223 +581 +361 +859 +816 +517 +337 +969 +13 +31 +285 +694 +824 +441 +464 +700 +769 +824 +470 +542 +819 +508 +476 +133 +206 +467 +903 +967 +5 +976 +26 +600 +608 +466 +224 +303 +385 +91 +531 +582 +645 +254 +13 +576 +643 +517 +986 +519 +759 +148 +866 +133 +360 +310 +36 +343 +641 +834 +866 +304 +623 +664 +68 +41 +12 +447 +612 +227 +505 +11 +826 +396 +279 +931 +809 +599 +494 +695 +699 +71 +664 +738 +84 +878 +102 +626 +479 +273 +894 +811 +302 +459 +364 +912 +121 +439 +85 +972 +702 +599 +693 +87 +294 +928 +519 +821 +978 +198 +47 +935 +443 +25 +545 +460 +931 +647 +405 +394 +177 +930 +219 +548 +281 +43 +15 +703 +102 +283 +236 +518 +74 +467 +978 +59 +643 +198 +987 +950 +9 +940 +224 +531 +315 +738 +843 +502 +597 +290 +631 +439 +778 +817 +40 +37 +848 +623 +868 +690 +543 +225 +881 +84 +303 +688 +773 +1 +127 +74 +840 +56 +55 +639 +596 +66 +610 +585 +57 +183 +577 +345 +816 +945 +266 +27 +753 +70 +815 +903 +612 +208 +340 +756 +613 +825 +538 +270 +419 +246 +867 +291 +835 +976 +736 +273 +343 +772 +924 +773 +774 +527 +185 +928 +78 +221 +892 +805 +5 +901 +115 +621 +486 +244 +936 +526 +352 +843 +494 +387 +181 +830 +812 +21 +433 +917 +134 +434 +458 +795 +513 +218 +162 +365 +46 +421 +406 +427 +501 +929 +923 +711 +793 +675 +357 +756 +851 +462 +948 +787 +51 +349 +54 +304 +340 +509 +360 +837 +869 +911 +336 +222 +872 +253 +81 +716 +175 +383 +414 +750 +171 +635 +295 +53 +805 +898 +867 +970 +344 +550 +530 +50 +621 +327 +297 +403 +494 +689 +705 +173 +135 +813 +31 +585 +163 +621 +786 +672 +487 +320 +729 +48 +632 +714 +601 +469 +704 +626 +968 +684 +834 +222 +629 +342 +475 +308 +119 +609 +991 +114 +692 +683 +424 +398 +98 +823 +169 +412 +694 +882 +980 +901 +856 +173 +103 +428 +580 +922 +53 +806 +696 +180 +560 +891 +65 +75 +479 +184 +161 +610 +696 +75 +297 +182 +383 +880 +60 +726 +538 +477 +616 +254 +613 +934 +837 +638 +313 +135 +180 +674 +354 +89 +64 +919 +293 +995 +438 +912 +781 +298 +752 +667 +105 +124 +208 +694 +949 +500 +940 +843 +882 +176 +939 +628 +157 +752 +18 +685 +631 +389 +517 +496 +858 +879 +376 +296 +39 +449 +683 +801 +312 +706 +547 +381 +503 +490 +538 +453 +303 +807 +478 +331 +549 +417 +94 +514 +102 +977 +356 +984 +861 +361 +103 +464 +652 +374 +297 +195 +462 +750 +26 +281 +130 +832 +319 +621 +939 +583 +895 +211 +946 +6 +86 +16 +500 +422 +529 +553 +515 +562 +914 +608 +933 +773 +175 +414 +196 +863 +161 +587 +206 +117 +343 +323 +696 +59 +286 +923 +832 +601 +466 +21 +695 +780 +650 +587 +565 +397 +179 +773 +32 +129 +993 +180 +690 +71 +116 +428 +806 +79 +724 +39 +455 +59 +894 +536 +480 +868 +732 +941 +682 +514 +781 +664 +264 +543 +797 +690 +831 +955 +964 +592 +931 +611 +404 +482 +677 +838 +911 +569 +505 +210 +281 +816 +603 +754 +927 +554 +588 +869 +813 +749 +986 +713 +506 +145 +156 +598 +404 +892 +703 +564 +897 +202 +734 +393 +490 +555 +370 +106 +593 +837 +879 +440 +811 +692 +997 +799 +251 +514 +679 +888 +731 +733 +545 +879 +219 +15 +613 +342 +994 +520 +431 +576 +416 +154 +547 +64 +637 +947 +202 +749 +261 +220 +441 +499 +463 +157 +25 +401 +316 +381 +404 +668 +325 +67 +744 +753 +471 +24 +702 +638 +151 +851 +388 +176 +241 +645 +424 +577 +829 +338 +196 +769 +861 +828 +444 +344 +121 +105 +280 +549 +425 +951 +571 +118 +77 +987 +538 +737 +50 +582 +414 +539 +483 +449 +62 +1 +988 +140 +324 +86 +500 +643 +672 +271 +804 +532 +297 +580 +848 +290 +9 +926 +739 +115 +122 +986 +358 +74 +69 +658 +719 +475 +323 +91 +919 +349 +398 +150 +693 +731 +126 +529 +889 +361 +296 +913 +153 +909 +52 +928 +716 +557 +284 +226 +668 +590 +192 +697 +898 +625 +30 +183 +258 +542 +871 +157 +487 +876 +9 +36 +92 +312 +591 +576 +858 +540 +126 +466 +145 +435 +597 +334 +372 +7 +515 +953 +722 +97 +990 +102 +125 +111 +918 +479 +416 +373 +765 +328 +991 +783 +946 +673 +51 +736 +44 +538 +454 +430 +945 +20 +763 +747 +444 +74 +994 +517 +562 +655 +317 +18 +982 +637 +871 +746 +300 +107 +461 +825 +419 +318 +202 +971 +26 +301 +934 +343 +717 +205 +165 +916 +648 +222 +949 +617 +54 +122 +781 +695 +846 +235 +112 +565 +487 +690 +226 +500 +396 +325 +580 +802 +213 +435 +691 +661 +1 +854 +970 +151 +862 +805 +771 +452 +311 +284 +961 +429 +671 +527 +42 +834 +413 +476 +16 +539 +214 +855 +820 +245 +393 +354 +332 +619 +188 +913 +377 +943 +706 +900 +302 +805 +919 +405 +80 +909 +913 +145 +981 +166 +588 +504 +40 +590 +906 +120 +121 +766 +52 +480 +138 +922 +166 +137 +524 +696 +468 +654 +764 +753 +902 +394 +973 +538 +639 +612 +20 +166 +343 +206 +529 +95 +698 +83 +780 +899 +938 +590 +279 +95 +260 +646 +81 +431 +735 +72 +31 +601 +457 +96 +715 +18 +728 +516 +783 +884 +502 +504 +619 +873 +19 +759 +641 +942 +274 +40 +5 +199 +224 +157 +951 +903 +147 +186 +392 +959 +938 +667 +123 +159 +982 +751 +720 +366 +215 +259 +933 +845 +983 +305 +741 +180 +880 +414 +879 +270 +357 +548 +718 +624 +175 +205 +676 +100 +66 +273 +621 +411 +177 +251 +81 +734 +901 +550 +272 +23 +87 +730 +291 +326 +705 +958 +53 +369 +291 +566 +610 +441 +722 +273 +43 +791 +965 +639 +426 +298 +783 +98 +673 +140 +21 +271 +270 +21 +866 +289 +24 +324 +912 +357 +513 +342 +161 +477 +491 +887 +72 +563 +974 +836 +456 +549 +660 +441 +889 +228 +324 +101 +462 +231 +531 +664 +289 +518 +42 +365 +304 +663 +182 +870 +45 +797 +724 +224 +511 +418 +134 +669 +288 +121 +745 +697 +309 +115 +736 +440 +764 +303 +968 +749 +511 +62 +618 +713 +937 +671 +619 +16 +221 +267 +906 +487 +505 +68 +604 +264 +456 +317 +423 +213 +806 +121 +424 +181 +604 +849 +776 +516 +731 +89 +761 +928 +509 +286 +155 +387 +313 +196 +548 +736 +324 +411 +959 +30 +73 +220 +957 +492 +858 +48 +215 +865 +970 +523 +773 +883 +644 +677 +355 +97 +386 +423 +897 +402 +323 +158 +560 +549 +382 +23 +212 +225 +945 +763 +215 +574 +674 +257 +970 +65 +74 +529 +355 +997 +210 +673 +470 +282 +488 +126 +329 +939 +614 +171 +631 +192 +494 +376 +318 +771 +696 +947 +733 +90 +114 +909 +148 +687 +772 +556 +472 +194 +454 +275 +136 +35 +867 +325 +465 +105 +233 +589 +204 +627 +750 +314 +520 +372 +384 +783 +172 +964 +651 +333 +460 +976 +240 +275 +957 +46 +618 +36 +795 +782 +567 +653 +665 +326 +185 +518 +958 +771 +871 +552 +550 +95 +216 +72 +315 +164 +887 +79 +785 +475 +696 +77 +708 +526 +293 +58 +421 +977 +211 +816 +120 +973 +549 +36 +705 +290 +937 +409 +22 +573 +626 +309 +3 +836 +822 +912 +816 +209 +467 +285 +835 +396 +375 +194 +264 +784 +642 +417 +400 +980 +356 +706 +316 +358 +2 +807 +858 +718 +807 +264 +233 +529 +943 +279 +470 +169 +717 +540 +754 +694 +41 +977 +233 +750 +17 +980 +576 +159 +900 +286 +512 +102 +922 +368 +336 +971 +398 +770 +990 +259 +785 +618 +816 +849 +543 +202 +217 +439 +528 +417 +810 +958 +47 +30 +868 +764 +514 +140 +938 +163 +634 +704 +791 +136 +450 +88 +239 +423 +358 +968 +788 +426 +136 +595 +991 +721 +312 +423 +796 +564 +144 +469 +968 +397 +477 +895 +892 +63 +147 +952 +307 +214 +179 +64 +354 +136 +263 +999 +922 +897 +227 +15 +33 +304 +348 +540 +5 +189 +520 +905 +357 +763 +836 +650 +856 +344 +118 +916 +445 +277 +604 +835 +803 +688 +958 +451 +8 +445 +965 +555 +13 +521 +860 +383 +2 +197 +152 +404 +254 +922 +454 +483 +469 +639 +664 +657 +401 +200 +822 +890 +521 +949 +172 +898 +664 +939 +791 +588 +458 +62 +401 +718 +778 +764 +616 +774 +227 +427 +503 +877 +419 +513 +385 +273 +811 +990 +676 +68 +302 +603 +367 +551 +900 +373 +205 +654 +882 +439 +849 +587 +744 +38 +41 +863 +697 +557 +978 +150 +841 +716 +922 +333 +45 +902 +166 +164 +775 +583 +262 +344 +445 +321 +395 +970 +849 +868 +598 +315 +991 +808 +276 +301 +837 +601 +816 +760 +764 +370 +432 +241 +407 +217 +714 +69 +241 +309 +839 +980 +729 +666 +743 +926 +472 +452 +779 +732 +898 +35 +983 +961 +932 +251 +782 +596 +719 +67 +21 +541 +99 +521 +599 +700 +607 +684 +393 +956 +594 +910 +675 +821 +778 +888 +719 +705 +809 +636 +370 +146 +90 +947 +767 +404 +480 +893 +307 +286 +525 +449 +951 +304 +688 +467 +366 +32 +880 +174 +956 +659 +126 +952 +674 +747 +340 +208 +155 +56 +164 +311 +625 +451 +947 +346 +56 +718 +868 +876 +501 +23 +406 +242 +759 +943 +296 +78 +940 +485 +893 +987 +457 +18 +826 +536 +771 +835 +241 +245 +273 +7 +240 +595 +235 +995 +653 +621 +482 +461 +839 +100 +563 +925 +521 +642 +314 +979 +286 +358 +18 +137 +2 +504 +351 +140 +269 +711 +856 +229 +847 +831 +243 +892 +918 +531 +393 +356 +409 +219 +312 +653 +500 +927 +806 +208 +994 +134 +936 +446 +362 +136 +250 +953 +883 +840 +610 +956 +610 +409 +698 +586 +163 +675 +638 +931 +56 +817 +455 +738 +282 +52 +519 +334 +274 +915 +266 +38 +935 +728 +220 +344 +940 +337 +191 +144 +792 +884 +314 +986 +150 +408 +285 +957 +786 +863 +56 +231 +867 +834 +853 +87 +241 +194 +530 +291 +47 +709 +317 +789 +929 +735 +177 +502 +414 +837 +379 +417 +257 +804 +799 +384 +942 +953 +793 +881 +386 +377 +541 +568 +83 +271 +617 +868 +985 +777 +50 +913 +952 +826 +308 +975 +985 +810 +594 +317 +981 +93 +924 +926 +675 +979 +340 +774 +747 +94 +264 +673 +856 +330 +485 +742 +458 +727 +47 +225 +828 +489 +41 +575 +575 +338 +167 +21 +139 +386 +770 +51 +367 +625 +309 +295 +325 +585 +778 +12 +463 +71 +922 +926 +477 +141 +583 +67 +872 +570 +479 +974 +531 +706 +725 +276 +145 +645 +911 +851 +425 +966 +23 +280 +911 +47 +136 +795 +482 +914 +409 +749 +209 +303 +393 +840 +4 +736 +697 +274 +983 +204 +192 +10 +984 +683 +332 +717 +635 +209 +613 +6 +803 +35 +597 +135 +36 +434 +34 +215 +294 +414 +483 +109 +677 +313 +240 +747 +241 +226 +8 +980 +296 +666 +693 +337 +712 +835 +475 +233 +124 +766 +574 +710 +170 +81 +373 +263 +368 +861 +325 +848 +219 +685 +199 +62 +75 +306 +441 +992 +550 +526 +306 +898 +788 +316 +999 +666 +666 +245 +858 +985 +626 +347 +972 +912 +657 +849 +706 +123 +142 +133 +452 +422 +480 +580 +550 +326 +629 +494 +61 +357 +252 +160 +24 +549 +978 +928 +515 +677 +667 +583 +527 +686 +641 +202 +751 +476 +267 +533 +34 +304 +489 +717 +464 +682 +208 +801 +40 +296 +184 +43 +881 +834 +686 +309 +223 +105 +514 +277 +932 +661 +707 +925 +303 +720 +18 +271 +716 +286 +66 +184 +931 +96 +522 +978 +160 +897 +316 +971 +578 +608 +218 +418 +784 +10 +299 +66 +616 +810 +996 +242 +808 +589 +323 +461 +219 +697 +88 +785 +241 +720 +933 +231 +793 +278 +947 +613 +291 +376 +201 +91 +170 +853 +386 +742 +392 +297 +188 +330 +463 +556 +959 +338 +153 +575 +934 +313 +619 +568 +770 +866 +36 +275 +913 +85 +275 +863 +651 +141 +228 +624 +697 +151 +731 +411 +790 +393 +8 +132 +326 +35 +337 +181 +607 +22 +290 +753 +865 +816 +102 +4 +708 +359 +518 +651 +473 +634 +308 +965 +481 +373 +732 +481 +902 +201 +615 +331 +873 +904 +697 +489 +217 +222 +191 +868 +389 +178 +951 +275 +385 +30 +840 +668 +91 +326 +781 +510 +415 +733 +728 +366 +153 +177 +422 +826 +301 +852 +606 +581 +250 +918 +706 +46 +997 +430 +775 +958 +316 +701 +720 +876 +669 +376 +605 +484 +964 +850 +117 +236 +996 +676 +220 +671 +936 +454 +973 +406 +21 +57 +417 +563 +356 +378 +803 +924 +623 +801 +874 +464 +533 +34 +935 +443 +391 +979 +527 +468 +413 +584 +251 +945 +129 +910 +487 +544 +749 +85 +233 +308 +847 +454 +327 +364 +792 +219 +316 +285 +170 +912 +666 +11 +150 +152 +50 +804 +417 +472 +833 +546 +141 +973 +277 +370 +920 +37 +216 +214 +25 +265 +900 +678 +584 +751 +758 +812 +954 +215 +683 +629 +529 +636 +618 +91 +827 +17 +693 +121 +16 +690 +629 +558 +696 +192 +900 +820 +249 +650 +491 +603 +885 +580 +512 +975 +560 +32 +303 +74 +720 +754 +632 +851 +173 +230 +39 +779 +898 +734 +552 +369 +325 +728 +284 +146 +476 +696 +800 +358 +750 +928 +942 +615 +997 +240 +72 +251 +363 +399 +462 +250 +653 +726 +58 +869 +424 +269 +856 +156 +484 +992 +950 +465 +963 +108 +216 +2 +181 +940 +932 +924 +172 +942 +765 +257 +541 +972 +204 +926 +143 +145 +265 +484 +876 +228 +956 +522 +277 +688 +441 +252 +107 +89 +497 +851 +268 +968 +129 +113 +947 +783 +440 +208 +815 +800 +492 +716 +258 +689 +86 +111 +877 +314 +521 +763 +210 +624 +745 +924 +874 +854 +845 +709 +488 +403 +206 +843 +213 +933 +540 +522 +980 +887 +367 +437 +329 +461 +792 +64 +732 +29 +766 +368 +531 +686 +765 +964 +59 +676 +853 +377 +319 +157 +954 +774 +669 +8 +333 +702 +525 +382 +444 +608 +930 +593 +524 +593 +176 +803 +453 +898 +474 +755 +786 +637 +211 +432 +794 +83 +366 +834 +280 +984 +841 +161 +86 +845 +324 +458 +3 +381 +910 +122 +596 +413 +794 +364 +230 +143 +605 +877 +802 +691 +147 +896 +407 +18 +988 +726 +176 +125 +563 +809 +197 +582 +34 +373 +346 +924 +809 +985 +936 +757 +200 +652 +978 +464 +540 +515 +472 +336 +574 +216 +76 +199 +218 +187 +413 +799 +631 +266 +255 +403 +52 +134 +782 +845 +879 +574 +666 +486 +297 +61 +871 +778 +10 +461 +738 +608 +607 +334 +908 +980 +691 +351 +212 +34 +75 +848 +847 +252 +397 +923 +191 +116 +873 +140 +319 +892 +240 +140 +554 +525 +807 +135 +842 +637 +888 +587 +449 +150 +204 +703 +497 +242 +698 +203 +845 +193 +289 +147 +404 +657 +752 +477 +598 +425 +455 +505 +644 +130 +873 +698 +627 +905 +823 +482 +373 +272 +42 +535 +520 +870 +60 +326 +386 +37 +388 +557 +419 +76 +778 +107 +831 +941 +929 +366 +705 +131 +580 +670 +988 +118 +684 +55 +972 +377 +273 +38 +232 +747 +271 +190 +230 +39 +813 +44 +171 +153 +602 +126 +164 +972 +296 +513 +941 +939 +746 +947 +336 +497 +820 +166 +205 +947 +140 +75 +522 +746 +608 +797 +368 +966 +217 +326 +584 +413 +793 +430 +356 +689 +784 +620 +730 +465 +571 +363 +365 +260 +883 +669 +533 +550 +524 +49 +125 +789 +331 +772 +926 +405 +931 +305 +147 +330 +207 +651 +79 +686 +432 +121 +34 +121 +431 +194 +199 +500 +88 +116 +573 +831 +396 +62 +218 +647 +686 +938 +397 +342 +470 +872 +317 +103 +666 +189 +101 +957 +407 +538 +731 +494 +395 +490 +601 +294 +992 +187 +933 +181 +734 +986 +611 +388 +303 +357 +354 +178 +7 +331 +484 +197 +95 +970 +500 +650 +409 +113 +803 +545 +256 +217 +542 +425 +572 +910 +491 +270 +171 +68 +884 +592 +635 +519 +94 +718 +386 +836 +366 +234 +488 +33 +540 +306 +535 +43 +630 +602 +935 +222 +999 +496 +662 +644 +592 +619 +661 +101 +141 +853 +317 +575 +999 +710 +278 +816 +37 +33 +229 +414 +107 +421 +862 +943 +303 +4 +434 +663 +514 +872 +548 +531 +923 +157 +666 +215 +153 +45 +461 +887 +183 +24 +686 +367 +869 +854 +943 +652 +747 +679 +925 +624 +244 +441 +444 +537 +137 +380 +739 +57 +812 +949 +15 +585 +47 +514 +139 +507 +944 +664 +334 +719 +31 +950 +94 +976 +611 +958 +659 +589 +242 +712 +470 +977 +501 +614 +553 +103 +643 +954 +785 +581 +152 +1 +68 +589 +368 +351 +564 +287 +744 +954 +194 +869 +960 +250 +604 +209 +686 +471 +970 +24 +483 +881 +933 +848 +558 +151 +728 +970 +299 +273 +511 +832 +734 +842 +326 +52 +354 +792 +879 +824 +177 +181 +721 +432 +452 +39 +828 +820 +733 +881 +295 +249 +327 +802 +749 +868 +914 +498 +283 +437 +301 +899 +274 +950 +722 +195 +334 +214 +10 +425 +886 +863 +857 +916 +17 +686 +379 +921 +133 +329 +856 +852 +348 +164 +563 +795 +869 +500 +655 +380 +52 +664 +732 +18 +645 +623 +892 +538 +911 +391 +895 +41 +547 +766 +109 +291 +757 +447 +647 +573 +136 +403 +459 +896 +642 +598 +505 +130 +786 +177 +928 +298 +481 +187 +174 +992 +142 +714 +859 +165 +867 +834 +544 +259 +108 +234 +115 +796 +68 +683 +183 +804 +748 +800 +106 +281 +31 +775 +605 +137 +427 +429 +860 +980 +200 +797 +880 +557 +933 +949 +551 +285 +827 +934 +432 +986 +684 +9 +865 +224 +760 +857 +665 +553 +267 +447 +923 +480 +244 +655 +697 +903 +767 +25 +694 +652 +313 +232 +40 +840 +883 +497 +356 +615 +382 +282 +298 +886 +842 +805 +72 +708 +315 +143 +69 +537 +484 +518 +489 +480 +260 +625 +497 +384 +18 +306 +609 +13 +17 +291 +985 +863 +905 +478 +90 +940 +180 +766 +236 +178 +571 +393 +833 +268 +797 +234 +781 +720 +520 +652 +391 +381 +962 +780 +215 +976 +337 +88 +530 +787 +53 +456 +362 +408 +521 +794 +830 +739 +529 +176 +156 +676 +466 +509 +617 +731 +129 +186 +252 +269 +49 +629 +874 +383 +443 +451 +633 +507 +165 +267 +163 +681 +909 +942 +129 +593 +25 +178 +242 +262 +454 +743 +928 +888 +829 +760 +97 +594 +445 +327 +111 +992 +321 +911 +125 +429 +404 +437 +737 +167 +298 +362 +916 +975 +986 +749 +334 +860 +516 +438 +475 +423 +931 +933 +490 +343 +770 +726 +870 +587 +906 +368 +691 +519 +236 +199 +175 +351 +456 +503 +882 +5 +771 +158 +255 +455 +442 +547 +905 +38 +873 +12 +224 +380 +930 +770 +775 +173 +467 +984 +840 +809 +865 +886 +617 +43 +883 +709 +855 +503 +380 +266 +813 +164 +898 +209 +354 +621 +101 +261 +437 +202 +512 +857 +497 +127 +882 +303 +835 +356 +254 +949 +422 +382 +407 +888 +635 +912 +803 +801 +200 +897 +283 +469 +395 +741 +576 +540 +501 +112 +696 +945 +112 +789 +969 +248 +465 +625 +233 +787 +267 +626 +460 +429 +172 +729 +871 +909 +60 +825 +359 +197 +873 +726 +709 +620 +886 +659 +559 +279 +242 +497 +661 +59 +767 +839 +918 +979 +935 +484 +298 +487 +385 +652 +951 +737 +456 +646 +225 +154 +186 +404 +53 +897 +331 +842 +314 +970 +801 +377 +56 +963 +810 +544 +603 +78 +38 +498 +132 +308 +552 +323 +862 +234 +660 +265 +47 +152 +518 +21 +550 +764 +41 +436 +444 +394 +609 +934 +191 +173 +287 +58 +646 +505 +42 +821 +229 +192 +296 +529 +892 +52 +664 +752 +500 +475 +621 +737 +584 +628 +579 +452 +876 +534 +474 +556 +408 +348 +571 +541 +770 +104 +350 +245 +597 +974 +249 +350 +464 +68 +882 +448 +403 +180 +985 +229 +207 +336 +345 +392 +706 +444 +704 +784 +217 +731 +626 +182 +575 +221 +183 +830 +406 +963 +960 +177 +836 +291 +795 +27 +363 +696 +441 +803 +375 +934 +931 +716 +30 +515 +150 +735 +931 +608 +950 +349 +52 +297 +39 +591 +336 +312 +730 +21 +63 +733 +361 +609 +564 +916 +490 +731 +581 +255 +399 +432 +876 +857 +294 +981 +909 +680 +751 +161 +410 +936 +808 +319 +791 +509 +407 +648 +566 +487 +853 +889 +601 +342 +22 +133 +23 +160 +274 +315 +806 +102 +371 +765 +868 +387 +720 +928 +73 +87 +616 +480 +382 +180 +254 +691 +588 +650 +995 +99 +741 +434 +71 +194 +954 +105 +368 +469 +611 +298 +481 +321 +788 +574 +329 +549 +191 +492 +371 +291 +708 +795 +688 +111 +551 +359 +125 +872 +511 +85 +543 +750 +371 +315 +407 +350 +14 +851 +680 +476 +208 +892 +440 +64 +469 +883 +377 +161 +801 +824 +515 +741 +941 +322 +142 +362 +418 +182 +694 +951 +555 +541 +640 +512 +83 +414 +20 +532 +788 +57 +324 +639 +312 +318 +425 +270 +545 +490 +234 +686 +146 +911 +601 +290 +200 +204 +817 +990 +209 +543 +401 +82 +411 +954 +833 +496 +940 +802 +795 +669 +861 +516 +947 +771 +695 +497 +89 +29 +501 +317 +129 +324 +674 +642 +226 +487 +425 +40 +451 +659 +291 +874 +560 +471 +983 +309 +349 +810 +559 +450 +254 +444 +766 +205 +343 +562 +126 +651 +976 +999 +371 +676 +15 +939 +696 +130 +338 +471 +510 +665 +359 +556 +352 +281 +424 +215 +202 +842 +886 +239 +444 +585 +236 +582 +862 +120 +282 +992 +389 +883 +344 +615 +32 +19 +93 +13 +405 +525 +204 +883 +518 +354 +730 +994 +284 +711 +488 +749 +798 +193 +869 +774 +302 +31 +132 +379 +220 +316 +249 +923 +753 +883 +33 +507 +260 +701 +589 +786 +282 +97 +755 +606 +921 +708 +107 +263 +456 +156 +125 +953 +372 +668 +589 +618 +397 +428 +201 +782 +44 +436 +153 +321 +853 +577 +38 +688 +505 +328 +645 +638 +916 +211 +999 +449 +91 +560 +132 +131 +521 +721 +384 +717 +301 +910 +300 +565 +281 +383 +593 +702 +335 +766 +979 +140 +611 +809 +209 +325 +313 +109 +365 +154 +591 +707 +72 +615 +133 +456 +73 +732 +232 +52 +490 +174 +549 +16 +777 +892 +366 +411 +178 +693 +325 +605 +925 +225 +899 +914 +142 +768 +498 +545 +808 +38 +264 +492 +186 +512 +750 +134 +525 +476 +444 +529 +117 +911 +532 +106 +340 +186 +60 +842 +527 +918 +245 +198 +632 +175 +443 +967 +372 +124 +900 +755 +240 +271 +499 +717 +279 +934 +436 +806 +368 +231 +66 +423 +750 +747 +681 +242 +468 +156 +710 +742 +593 +926 +261 +67 +932 +433 +303 +266 +8 +56 +873 +191 +359 +411 +740 +830 +96 +804 +937 +336 +611 +486 +263 +911 +222 +645 +353 +186 +627 +732 +330 +181 +730 +473 +743 +909 +824 +999 +330 +867 +618 +159 +525 +734 +677 +824 +709 +75 +366 +379 +288 +967 +731 +999 +128 +867 +768 +528 +840 +543 +543 +332 +927 +177 +313 +715 +565 +172 +547 +976 +615 +12 +163 +296 +698 +650 +763 +348 +434 +683 +759 +582 +606 +81 +980 +387 +276 +306 +256 +809 +506 +523 +114 +534 +247 +630 +325 +630 +144 +890 +875 +371 +470 +72 +1 +53 +780 +151 +873 +737 +670 +606 +45 +930 +198 +325 +608 +486 +770 +715 +267 +349 +923 +95 +814 +323 +782 +572 +350 +788 +940 +223 +55 +50 +637 +663 +944 +273 +738 +62 +180 +337 +336 +17 +347 +366 +433 +690 +258 +110 +672 +407 +292 +215 +739 +1 +712 +651 +699 +667 +368 +740 +56 +251 +311 +608 +693 +499 +789 +206 +917 +468 +868 +687 +5 +424 +742 +923 +385 +524 +864 +838 +284 +742 +733 +816 +334 +100 +843 +987 +865 +463 +591 +311 +452 +320 +423 +839 +744 +244 +894 +960 +847 +766 +472 +130 +684 +242 +737 +292 +464 +73 +660 +419 +516 +504 +282 +189 +984 +774 +384 +294 +13 +841 +110 +537 +182 +916 +650 +50 +188 +273 +370 +426 +316 +944 +347 +231 +292 +329 +645 +108 +608 +657 +841 +279 +434 +768 +851 +916 +412 +312 +102 +852 +478 +885 +9 +261 +150 +587 +979 +987 +431 +937 +92 +939 +798 +83 +926 +994 +265 +754 +182 +526 +932 +225 +252 +926 +369 +227 +7 +260 +123 +324 +947 +975 +86 +349 +101 +332 +263 +25 +822 +342 +791 +290 +411 +989 +253 +653 +962 +331 +836 +782 +733 +907 +243 +206 +375 +110 +602 +121 +820 +474 +132 +435 +500 +444 +591 +276 +13 +862 +603 +780 +394 +632 +104 +705 +690 +168 +442 +112 +537 +829 +535 +231 +362 +415 +389 +716 +32 +52 +632 +409 +578 +448 +545 +62 +467 +633 +383 +918 +169 +881 +301 +17 +666 +2 +506 +777 +93 +962 +270 +86 +429 +626 +711 +169 +437 +407 +444 +238 +71 +94 +593 +769 +856 +173 +646 +632 +375 +108 +95 +377 +315 +627 +406 +526 +299 +635 +456 +785 +84 +717 +962 +142 +4 +775 +307 +374 +9 +41 +990 +261 +848 +918 +803 +134 +820 +963 +477 +721 +280 +238 +776 +68 +427 +739 +278 +187 +904 +422 +315 +679 +937 +188 +296 +116 +400 +522 +447 +91 +643 +863 +955 +663 +703 +942 +848 +513 +402 +162 +748 +175 +513 +232 +997 +500 +39 +370 +832 +789 +375 +547 +816 +145 +547 +415 +82 +157 +602 +515 +654 +96 +65 +897 +612 +422 +31 +311 +964 +216 +900 +95 +870 +835 +892 +766 +539 +991 +500 +394 +843 +58 +34 +504 +143 +515 +751 +262 +155 +129 +255 +679 +966 +374 +991 +54 +223 +864 +22 +303 +943 +650 +216 +866 +951 +910 +244 +545 +232 +735 +95 +23 +574 +509 +528 +613 +435 +616 +81 +842 +208 +938 +246 +393 +162 +292 +838 +905 +544 +604 +910 +952 +646 +668 +80 +167 +520 +395 +620 +958 +221 +678 +414 +952 +70 +919 +887 +356 +183 +665 +217 +812 +466 +831 +944 +941 +519 +110 +886 +280 +327 +141 +59 +702 +985 +548 +329 +781 +428 +513 +548 +156 +576 +805 +356 +758 +984 +260 +725 +976 +471 +398 +77 +352 +675 +689 +742 +847 +466 +434 +321 +926 +466 +434 +423 +325 +181 +767 +585 +7 +916 +317 +768 +620 +580 +923 +269 +347 +139 +625 +899 +398 +879 +846 +613 +36 +659 +750 +440 +833 +508 +193 +877 +423 +637 +296 +581 +213 +700 +773 +910 +709 +446 +195 +987 +701 +147 +312 +697 +589 +252 +197 +182 +123 +584 +898 +472 +724 +479 +183 +564 +285 +74 +503 +529 +342 +363 +207 +798 +105 +477 +889 +187 +944 +582 +854 +846 +701 +323 +503 +690 +629 +740 +284 +326 +38 +776 +893 +156 +817 +326 +771 +706 +507 +60 +420 +29 +365 +241 +650 +145 +633 +528 +920 +571 +582 +603 +207 +588 +857 +751 +851 +192 +649 +981 +592 +952 +247 +911 +787 +98 +881 +333 +128 +83 +267 +837 +206 +426 +610 +627 +714 +183 +474 +32 +998 +772 +570 +32 +568 +83 +461 +514 +447 +965 +248 +463 +955 +542 +306 +33 +580 +295 +97 +820 +90 +89 +112 +408 +302 +179 +841 +966 +964 +40 +164 +810 +123 +918 +918 +890 +297 +116 +11 +427 +689 +582 +579 +316 +386 +942 +888 +31 +729 +52 +979 +691 +452 +930 +431 +519 +334 +634 +705 +538 +382 +135 +775 +281 +753 +337 +11 +564 +631 +386 +414 +608 +227 +303 +451 +614 +334 +4 +882 +849 +791 +93 +916 +571 +964 +102 +179 +513 +488 +49 +774 +804 +337 +739 +572 +794 +345 +205 +344 +49 +440 +122 +311 +787 +716 +838 +986 +422 +532 +433 +707 +304 +777 +594 +963 +184 +258 +405 +991 +162 +854 +539 +253 +188 +327 +715 +659 +675 +733 +762 +633 +537 +684 +226 +570 +696 +356 +636 +82 +736 +355 +443 +26 +446 +764 +856 +833 +299 +676 +627 +517 +298 +768 +791 +635 +677 +837 +156 +156 +646 +542 +757 +393 +186 +251 +206 +476 +64 +911 +627 +69 +360 +985 +218 +774 +869 +166 +449 +952 +988 +155 +90 +573 +826 +933 +497 +169 +716 +516 +495 +380 +672 +368 +561 +107 +684 +846 +44 +8 +547 +409 +719 +736 +552 +651 +920 +620 +802 +96 +273 +484 +841 diff --git a/examples/machsuite/viterbi/viterbi_allo.py b/examples/machsuite/viterbi/viterbi_allo.py index a9e4511dee..98f623e0d6 100644 --- a/examples/machsuite/viterbi/viterbi_allo.py +++ b/examples/machsuite/viterbi/viterbi_allo.py @@ -48,10 +48,14 @@ def viterbi(obs: int32[N_OBS], init: float32[N_STATES], transition: float32[N_ST return path +import os +from viterbi import viterbi as viterbi_ref + s = allo.customize(viterbi) mod = s.build() -inputfile = 'input.data' +data_dir = os.path.dirname(os.path.abspath(__file__)) +inputfile = os.path.join(data_dir, 'input.data') init, transition, emission, obs = read_viterbi_input(inputfile) init = np.array(init, dtype=np.float32) @@ -59,14 +63,10 @@ def viterbi(obs: int32[N_OBS], init: float32[N_STATES], transition: float32[N_ST emission = np.array(emission, dtype=np.float32) obs = np.array(obs, dtype=np.int32) -# init = -np.log(init) -# transition = -np.log(transition) -# emission = -np.log(emission) +path = mod(obs, init, transition, emission) -# print("Initial probabilities (log-space):\n", init) -# print("Transition matrix (log-space):\n", transition) -# print("Emission matrix (log-space):\n", emission) -# print("Observations:\n", obs) +# Run Python reference for comparison +ref_path = viterbi_ref(obs, init, transition, emission) -path = mod(obs, init, transition, emission) -print("Predicted path:", path) +np.testing.assert_array_equal(path, ref_path) +print("PASS!") From 2444bfb980e43612c2c4423d2b311fb9edbcf4c6 Mon Sep 17 00:00:00 2001 From: Niansong Zhang Date: Thu, 5 Feb 2026 19:28:29 -0500 Subject: [PATCH 04/16] [MachSuite] Remove all data files and make tests self-contained Replace 36 .data files (~130K lines) with programmatic input generation and Python/NumPy reference validation in each test. All 19 benchmarks generate their own inputs (seeded random or inline constants) and validate against a Python reference implementation instead of golden data files. Co-Authored-By: Claude Opus 4.6 --- examples/machsuite/aes/check.data | 17 - examples/machsuite/aes/input.data | 50 - examples/machsuite/aes/run_test.py | 37 +- examples/machsuite/backprop/check.data | 5257 ----- examples/machsuite/backprop/check.data.old | 5257 ----- examples/machsuite/backprop/input.data | 7867 -------- examples/machsuite/backprop/run_test.py | 51 +- examples/machsuite/bfs/bfs_bulk_allo.py | 30 +- examples/machsuite/bfs/bfs_queue_allo.py | 31 +- examples/machsuite/bfs/check.data | 11 - examples/machsuite/bfs/check2.data | 11 - examples/machsuite/bfs/input.data | 4612 ----- .../machsuite/fft/strided/check_strided.data | 2050 -- .../machsuite/fft/strided/input_strided.data | 3076 --- .../machsuite/fft/strided/test_strided.py | 107 +- .../fft/transpose/check_transpose.data | 1026 - .../fft/transpose/input_transpose.data | 1026 - .../machsuite/fft/transpose/test_transpose.py | 55 +- examples/machsuite/gemm/input.data | 8194 -------- examples/machsuite/md/grid/check.data | 1921 -- examples/machsuite/md/grid/input.data | 1986 -- examples/machsuite/md/grid/md_kernel_test.py | 92 +- examples/machsuite/md/knn/check.data | 771 - examples/machsuite/md/knn/input.data | 4868 ----- examples/machsuite/md/knn/md_kernel_test.py | 85 +- examples/machsuite/merge/check.data | 2049 -- examples/machsuite/merge/check1.data | 7 - examples/machsuite/merge/input.data | 2049 -- examples/machsuite/merge/input1.data | 7 - examples/machsuite/merge/testing.py | 23 +- examples/machsuite/nw/check.data | 5 - examples/machsuite/nw/input.data | 5 - examples/machsuite/nw/test_nw.py | 136 +- examples/machsuite/sort/radix/check.data | 2049 -- examples/machsuite/sort/radix/input.data | 2049 -- examples/machsuite/sort/radix/test_radix.py | 39 +- examples/machsuite/spmv/crs/check.data | 495 - examples/machsuite/spmv/crs/input.data | 4325 ---- examples/machsuite/spmv/crs/run_test.py | 57 +- examples/machsuite/spmv/ellpack/check.data | 495 - examples/machsuite/spmv/ellpack/input.data | 10377 ---------- examples/machsuite/spmv/ellpack/run_test.py | 49 +- examples/machsuite/stencil/stencil2d.py | 90 +- .../machsuite/stencil/stencil2d_check.data | 8193 -------- .../machsuite/stencil/stencil2d_input.data | 8203 -------- examples/machsuite/stencil/stencil3d.py | 146 +- .../machsuite/stencil/stencil3d_check.data | 16385 --------------- .../machsuite/stencil/stencil3d_input.data | 16388 ---------------- examples/machsuite/viterbi/check.data | 141 - examples/machsuite/viterbi/input.data | 8400 -------- examples/machsuite/viterbi/test.data | 19 - examples/machsuite/viterbi/viterbi_allo.py | 28 +- 52 files changed, 479 insertions(+), 130218 deletions(-) delete mode 100644 examples/machsuite/aes/check.data delete mode 100644 examples/machsuite/aes/input.data delete mode 100644 examples/machsuite/backprop/check.data delete mode 100644 examples/machsuite/backprop/check.data.old delete mode 100644 examples/machsuite/backprop/input.data delete mode 100644 examples/machsuite/bfs/check.data delete mode 100644 examples/machsuite/bfs/check2.data delete mode 100644 examples/machsuite/bfs/input.data delete mode 100644 examples/machsuite/fft/strided/check_strided.data delete mode 100644 examples/machsuite/fft/strided/input_strided.data delete mode 100644 examples/machsuite/fft/transpose/check_transpose.data delete mode 100644 examples/machsuite/fft/transpose/input_transpose.data delete mode 100644 examples/machsuite/gemm/input.data delete mode 100644 examples/machsuite/md/grid/check.data delete mode 100644 examples/machsuite/md/grid/input.data delete mode 100644 examples/machsuite/md/knn/check.data delete mode 100644 examples/machsuite/md/knn/input.data delete mode 100644 examples/machsuite/merge/check.data delete mode 100644 examples/machsuite/merge/check1.data delete mode 100644 examples/machsuite/merge/input.data delete mode 100644 examples/machsuite/merge/input1.data delete mode 100644 examples/machsuite/nw/check.data delete mode 100644 examples/machsuite/nw/input.data delete mode 100644 examples/machsuite/sort/radix/check.data delete mode 100644 examples/machsuite/sort/radix/input.data delete mode 100644 examples/machsuite/spmv/crs/check.data delete mode 100644 examples/machsuite/spmv/crs/input.data delete mode 100644 examples/machsuite/spmv/ellpack/check.data delete mode 100644 examples/machsuite/spmv/ellpack/input.data delete mode 100644 examples/machsuite/stencil/stencil2d_check.data delete mode 100644 examples/machsuite/stencil/stencil2d_input.data delete mode 100644 examples/machsuite/stencil/stencil3d_check.data delete mode 100644 examples/machsuite/stencil/stencil3d_input.data delete mode 100644 examples/machsuite/viterbi/check.data delete mode 100644 examples/machsuite/viterbi/input.data delete mode 100644 examples/machsuite/viterbi/test.data diff --git a/examples/machsuite/aes/check.data b/examples/machsuite/aes/check.data deleted file mode 100644 index 0cb19c8ff0..0000000000 --- a/examples/machsuite/aes/check.data +++ /dev/null @@ -1,17 +0,0 @@ -%% -142 -162 -183 -202 -81 -103 -69 -191 -234 -252 -73 -144 -75 -73 -96 -137 \ No newline at end of file diff --git a/examples/machsuite/aes/input.data b/examples/machsuite/aes/input.data deleted file mode 100644 index 073af848e0..0000000000 --- a/examples/machsuite/aes/input.data +++ /dev/null @@ -1,50 +0,0 @@ -%% -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -%% -0 -17 -34 -51 -68 -85 -102 -119 -136 -153 -170 -187 -204 -221 -238 -255 \ No newline at end of file diff --git a/examples/machsuite/aes/run_test.py b/examples/machsuite/aes/run_test.py index 435a3c1211..d016329119 100644 --- a/examples/machsuite/aes/run_test.py +++ b/examples/machsuite/aes/run_test.py @@ -1,42 +1,25 @@ import os +import sys import allo import numpy as np -import sys _dir = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, _dir) from aes import encrypt_ecb -def parse_data(file_name): - data_arrays = [] - current_array = [] - - with open(file_name, 'r') as f: - for line in f: - if line.strip() == '%%': - if current_array: - data_arrays.append(current_array) - current_array = [] - else: - num = float(line.strip()) - current_array.append(num) - - data_arrays.append(current_array) - - return data_arrays - if __name__ == "__main__": - input_data = parse_data(os.path.join(_dir, "input.data")) - check_data = parse_data(os.path.join(_dir, "check.data")) - - np_input = [np.asarray(lst).astype(np.uint8) for lst in input_data] - np_check = [np.asarray(lst) for lst in check_data] + # AES-256 test vector: key = 0..31, plaintext = 0x00,0x11,...,0xFF + k = np.array(list(range(32)), dtype=np.uint8) + buf = np.array([0, 17, 34, 51, 68, 85, 102, 119, + 136, 153, 170, 187, 204, 221, 238, 255], dtype=np.uint8) - [k, buf] = np_input - [buf_check] = np_check + # Known expected ciphertext from MachSuite reference + expected = np.array([142, 162, 183, 202, 81, 103, 69, 191, + 234, 252, 73, 144, 75, 73, 96, 137], dtype=np.uint8) s = allo.customize(encrypt_ecb) mod = s.build(target="llvm") mod(k, buf) - np.testing.assert_allclose(buf, buf_check, rtol=1e-5, atol=1e-5) \ No newline at end of file + np.testing.assert_array_equal(buf, expected) + print("PASS!") diff --git a/examples/machsuite/backprop/check.data b/examples/machsuite/backprop/check.data deleted file mode 100644 index 742653bcaa..0000000000 --- a/examples/machsuite/backprop/check.data +++ /dev/null @@ -1,5257 +0,0 @@ -%% --0.0000000000000098 --0.0000000000000164 -0.0000000000000109 -0.0000000000005129 -0.0000000001947615 -0.0000000000004273 --0.0000000000000305 -0.0000000000000683 --0.0000000000000789 --0.0000000000368703 --0.0000000000000566 -0.0000000000006188 --0.0000000000000649 --0.0000000000004516 --0.0000000001116954 -0.0000000000000044 -0.0000000000009661 --0.0000000000007033 --0.0000000000001874 -0.0000000001086297 --0.0000000000000193 -0.0000000000000030 --0.0000000000000530 --0.0000000000000770 --0.0000000002672591 --0.0000000000035510 -0.0000000000001000 -0.0000000000000109 --0.0000000000002083 -0.0000000001066484 --0.0000000000000114 --0.0000000000000259 --0.0000000000000004 --0.0000000000000003 -0.0000000000669081 -0.0000000000000156 -0.0000000000015897 -0.0000000000000263 --0.0000000000001533 -0.0000000000921694 -0.0000000000002495 --0.0000000000000871 --0.0000000000001601 --0.0000000000005312 -0.0000000000073635 -0.0000000000000618 --0.0000000000000037 -0.0000000000004589 -0.0000000000001451 --0.0000000000039101 -0.0000000000000008 --0.0000000000029292 --0.0000000000001128 --0.0000000000002889 --0.0000000000206070 --0.0000000000002777 -0.0000000000006937 -0.0000000000000006 -0.0000000000002686 --0.0000000002246947 -0.0000000000001845 -0.0000000000000244 -0.0000000000002768 --0.0115610146642162 --0.0000000000000012 --0.0000000000000021 -0.0000000000000014 -0.0000000000000650 -0.0000000000246622 -0.0000000000000541 --0.0000000000000039 -0.0000000000000086 --0.0000000000000100 --0.0000000000046688 --0.0000000000000072 -0.0000000000000784 --0.0000000000000082 --0.0000000000000572 --0.0000000000141434 -0.0000000000000006 -0.0000000000001223 --0.0000000000000891 --0.0000000000000237 -0.0000000000137546 --0.0000000000000024 -0.0000000000000004 --0.0000000000000067 --0.0000000000000097 --0.0000000000338402 --0.0000000000004496 -0.0000000000000127 -0.0000000000000014 --0.0000000000000264 -0.0000000000135044 --0.0000000000000014 --0.0000000000000033 --0.0000000000000000 --0.0000000000000000 -0.0000000000084720 -0.0000000000000020 -0.0000000000002013 -0.0000000000000034 --0.0000000000000194 -0.0000000000116718 -0.0000000000000316 --0.0000000000000110 --0.0000000000000203 --0.0000000000000672 -0.0000000000009341 -0.0000000000000078 --0.0000000000000005 -0.0000000000000581 -0.0000000000000184 --0.0000000000004950 -0.0000000000000001 --0.0000000000003709 --0.0000000000000143 --0.0000000000000366 --0.0000000000026093 --0.0000000000000352 -0.0000000000000878 -0.0000000000000001 -0.0000000000000340 --0.0000000000284507 -0.0000000000000234 -0.0000000000000031 -0.0000000000000350 --0.0014639994621174 --0.0000000000000017 --0.0000000000000029 -0.0000000000000019 -0.0000000000000898 -0.0000000000341043 -0.0000000000000748 --0.0000000000000053 -0.0000000000000120 --0.0000000000000138 --0.0000000000064562 --0.0000000000000099 -0.0000000000001084 --0.0000000000000114 --0.0000000000000791 --0.0000000000195583 -0.0000000000000008 -0.0000000000001692 --0.0000000000001231 --0.0000000000000328 -0.0000000000190208 --0.0000000000000034 -0.0000000000000005 --0.0000000000000093 --0.0000000000000135 --0.0000000000467965 --0.0000000000006217 -0.0000000000000175 -0.0000000000000019 --0.0000000000000365 -0.0000000000186747 --0.0000000000000020 --0.0000000000000045 --0.0000000000000001 --0.0000000000000001 -0.0000000000117156 -0.0000000000000027 -0.0000000000002783 -0.0000000000000046 --0.0000000000000268 -0.0000000000161404 -0.0000000000000437 --0.0000000000000152 --0.0000000000000280 --0.0000000000000930 -0.0000000000012915 -0.0000000000000108 --0.0000000000000006 -0.0000000000000803 -0.0000000000000254 --0.0000000000006845 -0.0000000000000001 --0.0000000000005129 --0.0000000000000198 --0.0000000000000506 --0.0000000000036083 --0.0000000000000486 -0.0000000000001215 -0.0000000000000001 -0.0000000000000470 --0.0000000000393435 -0.0000000000000323 -0.0000000000000043 -0.0000000000000485 --0.0020244944365725 --0.0000000000000099 --0.0000000000000167 -0.0000000000000110 -0.0000000000005197 -0.0000000001972972 -0.0000000000004328 --0.0000000000000309 -0.0000000000000692 --0.0000000000000799 --0.0000000000373499 --0.0000000000000573 -0.0000000000006268 --0.0000000000000658 --0.0000000000004574 --0.0000000001131455 -0.0000000000000044 -0.0000000000009788 --0.0000000000007124 --0.0000000000001895 -0.0000000001100329 --0.0000000000000196 -0.0000000000000031 --0.0000000000000536 --0.0000000000000780 --0.0000000002707129 --0.0000000000035964 -0.0000000000001013 -0.0000000000000111 --0.0000000000002110 -0.0000000001080342 --0.0000000000000115 --0.0000000000000262 --0.0000000000000004 --0.0000000000000003 -0.0000000000677741 -0.0000000000000159 -0.0000000000016102 -0.0000000000000269 --0.0000000000001552 -0.0000000000933770 -0.0000000000002527 --0.0000000000000882 --0.0000000000001621 --0.0000000000005379 -0.0000000000074794 -0.0000000000000626 --0.0000000000000037 -0.0000000000004647 -0.0000000000001471 --0.0000000000039593 -0.0000000000000008 --0.0000000000029666 --0.0000000000001143 --0.0000000000002925 --0.0000000000208735 --0.0000000000002813 -0.0000000000007027 -0.0000000000000006 -0.0000000000002721 --0.0000000002275983 -0.0000000000001869 -0.0000000000000247 -0.0000000000002804 --0.0117121786755768 --0.0000000000000784 --0.0000000000001320 -0.0000000000000875 -0.0000000000041195 -0.0000000015642941 -0.0000000000034322 --0.0000000000002454 -0.0000000000005484 --0.0000000000006337 --0.0000000002961370 --0.0000000000004548 -0.0000000000049702 --0.0000000000005217 --0.0000000000036270 --0.0000000008971259 -0.0000000000000350 -0.0000000000077599 --0.0000000000056487 --0.0000000000015060 -0.0000000008725126 --0.0000000000001553 -0.0000000000000244 --0.0000000000004254 --0.0000000000006185 --0.0000000021466203 --0.0000000000285226 -0.0000000000008034 -0.0000000000000876 --0.0000000000016733 -0.0000000008565874 --0.0000000000000914 --0.0000000000002079 --0.0000000000000031 --0.0000000000000024 -0.0000000005374031 -0.0000000000001256 -0.0000000000127688 -0.0000000000002106 --0.0000000000012311 -0.0000000007402795 -0.0000000000020043 --0.0000000000006992 --0.0000000000012860 --0.0000000000042669 -0.0000000000591135 -0.0000000000004966 --0.0000000000000296 -0.0000000000036858 -0.0000000000011656 --0.0000000000314082 -0.0000000000000064 --0.0000000000235276 --0.0000000000009061 --0.0000000000023206 --0.0000000001655147 --0.0000000000022303 -0.0000000000055721 -0.0000000000000051 -0.0000000000021572 --0.0000000018047440 -0.0000000000014815 -0.0000000000001960 -0.0000000000022233 --0.0928553649451751 --0.0000000000000027 --0.0000000000000046 -0.0000000000000031 -0.0000000000001440 -0.0000000000546800 -0.0000000000001200 --0.0000000000000086 -0.0000000000000192 --0.0000000000000222 --0.0000000000103516 --0.0000000000000159 -0.0000000000001737 --0.0000000000000182 --0.0000000000001268 --0.0000000000313598 -0.0000000000000012 -0.0000000000002712 --0.0000000000001975 --0.0000000000000527 -0.0000000000305006 --0.0000000000000054 -0.0000000000000009 --0.0000000000000149 --0.0000000000000216 --0.0000000000750396 --0.0000000000009972 -0.0000000000000281 -0.0000000000000031 --0.0000000000000585 -0.0000000000299425 --0.0000000000000032 --0.0000000000000073 --0.0000000000000001 --0.0000000000000001 -0.0000000000187858 -0.0000000000000044 -0.0000000000004464 -0.0000000000000073 --0.0000000000000430 -0.0000000000258752 -0.0000000000000701 --0.0000000000000244 --0.0000000000000450 --0.0000000000001492 -0.0000000000020629 -0.0000000000000174 --0.0000000000000010 -0.0000000000001289 -0.0000000000000407 --0.0000000000010982 -0.0000000000000002 --0.0000000000008225 --0.0000000000000317 --0.0000000000000812 --0.0000000000057859 --0.0000000000000780 -0.0000000000001948 -0.0000000000000002 -0.0000000000000754 --0.0000000000630886 -0.0000000000000518 -0.0000000000000069 -0.0000000000000777 --0.0032456559147978 --0.0000000000000026 --0.0000000000000044 -0.0000000000000029 -0.0000000000001388 -0.0000000000527069 -0.0000000000001156 --0.0000000000000083 -0.0000000000000185 --0.0000000000000214 --0.0000000000099780 --0.0000000000000153 -0.0000000000001675 --0.0000000000000176 --0.0000000000001222 --0.0000000000302278 -0.0000000000000012 -0.0000000000002615 --0.0000000000001903 --0.0000000000000508 -0.0000000000293989 --0.0000000000000052 -0.0000000000000008 --0.0000000000000143 --0.0000000000000208 --0.0000000000723292 --0.0000000000009611 -0.0000000000000271 -0.0000000000000030 --0.0000000000000564 -0.0000000000288618 --0.0000000000000031 --0.0000000000000070 --0.0000000000000001 --0.0000000000000001 -0.0000000000181074 -0.0000000000000042 -0.0000000000004302 -0.0000000000000071 --0.0000000000000415 -0.0000000000249423 -0.0000000000000675 --0.0000000000000236 --0.0000000000000433 --0.0000000000001438 -0.0000000000019905 -0.0000000000000167 --0.0000000000000010 -0.0000000000001242 -0.0000000000000393 --0.0000000000010584 -0.0000000000000002 --0.0000000000007928 --0.0000000000000305 --0.0000000000000782 --0.0000000000055769 --0.0000000000000751 -0.0000000000001878 -0.0000000000000002 -0.0000000000000727 --0.0000000000608099 -0.0000000000000499 -0.0000000000000066 -0.0000000000000749 --0.0031286039292721 --0.0000000000000002 --0.0000000000000004 -0.0000000000000003 -0.0000000000000119 -0.0000000000045097 -0.0000000000000099 --0.0000000000000007 -0.0000000000000016 --0.0000000000000018 --0.0000000000008537 --0.0000000000000013 -0.0000000000000143 --0.0000000000000015 --0.0000000000000105 --0.0000000000025863 -0.0000000000000001 -0.0000000000000224 --0.0000000000000163 --0.0000000000000043 -0.0000000000025153 --0.0000000000000004 -0.0000000000000001 --0.0000000000000012 --0.0000000000000018 --0.0000000000061883 --0.0000000000000822 -0.0000000000000023 -0.0000000000000003 --0.0000000000000048 -0.0000000000024694 --0.0000000000000003 --0.0000000000000006 --0.0000000000000000 --0.0000000000000000 -0.0000000000015492 -0.0000000000000004 -0.0000000000000368 -0.0000000000000006 --0.0000000000000035 -0.0000000000021342 -0.0000000000000058 --0.0000000000000020 --0.0000000000000037 --0.0000000000000123 -0.0000000000001705 -0.0000000000000014 --0.0000000000000001 -0.0000000000000106 -0.0000000000000034 --0.0000000000000905 -0.0000000000000000 --0.0000000000000678 --0.0000000000000026 --0.0000000000000067 --0.0000000000004772 --0.0000000000000064 -0.0000000000000161 -0.0000000000000000 -0.0000000000000062 --0.0000000000052028 -0.0000000000000043 -0.0000000000000006 -0.0000000000000064 --0.0002676939355446 --0.0000000000000013 --0.0000000000000022 -0.0000000000000015 -0.0000000000000694 -0.0000000000263534 -0.0000000000000578 --0.0000000000000041 -0.0000000000000092 --0.0000000000000107 --0.0000000000049890 --0.0000000000000077 -0.0000000000000837 --0.0000000000000088 --0.0000000000000611 --0.0000000000151138 -0.0000000000000006 -0.0000000000001307 --0.0000000000000952 --0.0000000000000254 -0.0000000000146993 --0.0000000000000026 -0.0000000000000004 --0.0000000000000072 --0.0000000000000104 --0.0000000000361643 --0.0000000000004805 -0.0000000000000135 -0.0000000000000015 --0.0000000000000282 -0.0000000000144309 --0.0000000000000015 --0.0000000000000035 --0.0000000000000001 --0.0000000000000000 -0.0000000000090536 -0.0000000000000021 -0.0000000000002151 -0.0000000000000035 --0.0000000000000207 -0.0000000000124713 -0.0000000000000338 --0.0000000000000118 --0.0000000000000217 --0.0000000000000719 -0.0000000000009955 -0.0000000000000084 --0.0000000000000005 -0.0000000000000621 -0.0000000000000196 --0.0000000000005292 -0.0000000000000001 --0.0000000000003964 --0.0000000000000153 --0.0000000000000391 --0.0000000000027884 --0.0000000000000376 -0.0000000000000939 -0.0000000000000001 -0.0000000000000363 --0.0000000000304046 -0.0000000000000250 -0.0000000000000033 -0.0000000000000375 --0.0015643098934745 --0.0000000000000050 --0.0000000000000084 -0.0000000000000056 -0.0000000000002616 -0.0000000000993540 -0.0000000000002180 --0.0000000000000156 -0.0000000000000348 --0.0000000000000403 --0.0000000000188088 --0.0000000000000289 -0.0000000000003157 --0.0000000000000331 --0.0000000000002304 --0.0000000000569803 -0.0000000000000022 -0.0000000000004929 --0.0000000000003588 --0.0000000000000957 -0.0000000000554180 --0.0000000000000099 -0.0000000000000016 --0.0000000000000270 --0.0000000000000393 --0.0000000001363433 --0.0000000000018117 -0.0000000000000510 -0.0000000000000056 --0.0000000000001063 -0.0000000000544053 --0.0000000000000058 --0.0000000000000132 --0.0000000000000002 --0.0000000000000002 -0.0000000000341331 -0.0000000000000080 -0.0000000000008110 -0.0000000000000133 --0.0000000000000782 -0.0000000000470167 -0.0000000000001273 --0.0000000000000444 --0.0000000000000817 --0.0000000000002710 -0.0000000000037516 -0.0000000000000315 --0.0000000000000019 -0.0000000000002341 -0.0000000000000740 --0.0000000000019951 -0.0000000000000004 --0.0000000000014944 --0.0000000000000575 --0.0000000000001474 --0.0000000000105127 --0.0000000000001417 -0.0000000000003539 -0.0000000000000003 -0.0000000000001370 --0.0000000001146289 -0.0000000000000941 -0.0000000000000124 -0.0000000000001412 --0.0058974866268355 --0.0000000000000007 --0.0000000000000012 -0.0000000000000008 -0.0000000000000375 -0.0000000000142336 -0.0000000000000312 --0.0000000000000022 -0.0000000000000050 --0.0000000000000058 --0.0000000000026946 --0.0000000000000041 -0.0000000000000452 --0.0000000000000047 --0.0000000000000330 --0.0000000000081628 -0.0000000000000003 -0.0000000000000706 --0.0000000000000514 --0.0000000000000137 -0.0000000000079386 --0.0000000000000014 -0.0000000000000002 --0.0000000000000039 --0.0000000000000056 --0.0000000000195312 --0.0000000000002595 -0.0000000000000073 -0.0000000000000008 --0.0000000000000152 -0.0000000000077940 --0.0000000000000008 --0.0000000000000019 --0.0000000000000000 --0.0000000000000000 -0.0000000000048897 -0.0000000000000011 -0.0000000000001162 -0.0000000000000019 --0.0000000000000112 -0.0000000000067362 -0.0000000000000182 --0.0000000000000064 --0.0000000000000117 --0.0000000000000388 -0.0000000000005387 -0.0000000000000045 --0.0000000000000003 -0.0000000000000335 -0.0000000000000106 --0.0000000000002857 -0.0000000000000001 --0.0000000000002141 --0.0000000000000082 --0.0000000000000211 --0.0000000000015060 --0.0000000000000203 -0.0000000000000507 -0.0000000000000000 -0.0000000000000196 --0.0000000000164206 -0.0000000000000135 -0.0000000000000018 -0.0000000000000202 --0.0008449250797163 --0.0000000000000023 --0.0000000000000039 -0.0000000000000026 -0.0000000000001210 -0.0000000000459424 -0.0000000000001008 --0.0000000000000072 -0.0000000000000161 --0.0000000000000186 --0.0000000000086974 --0.0000000000000134 -0.0000000000001460 --0.0000000000000153 --0.0000000000001065 --0.0000000000263482 -0.0000000000000010 -0.0000000000002279 --0.0000000000001659 --0.0000000000000442 -0.0000000000256257 --0.0000000000000046 -0.0000000000000007 --0.0000000000000125 --0.0000000000000182 --0.0000000000630462 --0.0000000000008377 -0.0000000000000236 -0.0000000000000026 --0.0000000000000491 -0.0000000000251576 --0.0000000000000027 --0.0000000000000061 --0.0000000000000001 --0.0000000000000001 -0.0000000000157834 -0.0000000000000037 -0.0000000000003750 -0.0000000000000062 --0.0000000000000362 -0.0000000000217412 -0.0000000000000589 --0.0000000000000205 --0.0000000000000378 --0.0000000000001253 -0.0000000000017352 -0.0000000000000146 --0.0000000000000009 -0.0000000000001083 -0.0000000000000342 --0.0000000000009225 -0.0000000000000002 --0.0000000000006910 --0.0000000000000266 --0.0000000000000682 --0.0000000000048611 --0.0000000000000655 -0.0000000000001637 -0.0000000000000001 -0.0000000000000634 --0.0000000000530053 -0.0000000000000435 -0.0000000000000058 -0.0000000000000653 --0.0027270761635947 --0.0000000000008389 --0.0000000000014156 -0.0000000000009384 -0.0000000000441680 -0.0000000167703098 -0.0000000000367932 --0.0000000000026303 -0.0000000000058795 --0.0000000000067927 --0.0000000031747688 --0.0000000000048744 -0.0000000000532814 --0.0000000000055914 --0.0000000000388808 --0.0000000096175894 -0.0000000000003757 -0.0000000000831930 --0.0000000000605561 --0.0000000000161273 -0.0000000093533488 --0.0000000000016644 -0.0000000000002618 --0.0000000000045599 --0.0000000000066292 --0.0000000230118808 --0.0000000003057362 -0.0000000000086128 -0.0000000000009405 --0.0000000000179367 -0.0000000091830608 --0.0000000000009787 --0.0000000000022281 --0.0000000000000331 --0.0000000000000259 -0.0000000057610581 -0.0000000000013480 -0.0000000001368770 -0.0000000000022733 --0.0000000000131969 -0.0000000079367058 -0.0000000000214857 --0.0000000000074972 --0.0000000000137835 --0.0000000000457309 -0.0000000006348018 -0.0000000000053241 --0.0000000000003170 -0.0000000000395072 -0.0000000000124983 --0.0000000003366247 -0.0000000000000684 --0.0000000002521971 --0.0000000000097151 --0.0000000000248683 --0.0000000017743370 --0.0000000000239119 -0.0000000000597336 -0.0000000000000544 -0.0000000000231298 --0.0000000193469400 -0.0000000000158843 -0.0000000000021007 -0.0000000000238339 --0.9955074257772755 -%% --0.0230289932934938 -0.0049203964988968 --0.0252930057550963 --0.0046460658563544 --0.0066800347195709 -0.0010820087054782 --0.0256042178678607 -0.0020045539272132 --0.0002800579057567 --0.0209124274776235 --0.0221550297762456 --0.0056549445794095 --0.0107610190364864 --0.0183689079995457 --0.0049531465093816 -0.0252557144836619 -0.0259831260799702 --0.0118947325227342 -0.0029722930374244 -0.0126844326505232 -0.0165163432604053 --0.0146925778944128 -0.0143831481903726 --0.0153474803511679 --0.0001139710316259 -0.0128796321825670 -0.0186933114507096 -0.0101632282454286 -0.0144399633237420 --0.0113199612000717 --0.0092665808696961 --0.0137016194118561 --0.0152409707751563 -0.0183973205761362 --0.0120657579476518 -0.0126794155910072 --0.0217466042453201 -0.0092891677300844 -0.0030416145368810 --0.0155799494208842 -0.0046872945741323 -0.0255105177541773 --0.0220114237907462 --0.0199163518634336 -0.0263862038732587 -0.0204969242595706 --0.0211859789906072 --0.0061345284151877 -0.0122583934211206 --0.0166487653930138 -0.0042665818402627 --0.0179336733248837 --0.0204722120636469 -0.0151512498724603 -0.0106941451000012 -0.0159265136755592 -0.0002538996563997 -0.0062890112695094 -0.0081323337206767 -0.0090114254520141 -0.0215622961930607 -0.0074872786584855 -0.0247090927692855 --0.0113066555839721 --0.0202003260184811 --0.0061953039447422 --0.0174163628156024 --0.0174118098699416 --0.0055719440337579 --0.0135989390080610 -0.0206601778578890 -0.0035822199101666 --0.0026063911620806 --0.0205734594009415 --0.0182096744357109 --0.0056086259256552 -0.0190524092080634 -0.0075758163128700 --0.0018952547879010 -0.0056437925327552 -0.0195765613486430 -0.0072856712748139 --0.0057330424061124 -0.0123466999397734 --0.0199903730956204 --0.0192348441986010 --0.0282721227949390 --0.0144286382630304 -0.0165617299383194 -0.0079911312557735 --0.0058852594882458 --0.0265267094856982 --0.0065059074037435 --0.0215566880657410 -0.0186255651844200 -0.0083978620295524 -0.0047414306872064 -0.0031699499348425 -0.0255343795441899 -0.0075313354612483 --0.0152506150050121 -0.0010175610407458 --0.0256917851814969 --0.0218588932185900 --0.0039562568862428 -0.0048110748810502 -0.0135599771927556 -0.0154914012054748 -0.0234946774620076 --0.0108029096661851 --0.0179755640540235 -0.0002228435423324 --0.0212713962550744 --0.0148044883240214 --0.0243961055242261 --0.0183484054356525 --0.0044517741937024 --0.0213404564762497 --0.0091461796308047 -0.0263453031982833 -0.0071234535822363 -0.0002810474060267 --0.0144661378173476 -0.0105301741347964 --0.0150268954649960 --0.0094116707483257 --0.0241964768578217 --0.0023670386366501 -0.0204198103222754 -0.0255863755651393 --0.0178091271964281 --0.0156877445472026 -0.0204955532573535 -0.0180102840986019 -0.0165394700879749 --0.0237939507964704 -0.0145095287655403 --0.0074223780228428 -0.0190596189076836 -0.0054724221371635 --0.0195665443638778 --0.0255511993525618 --0.0213760126600069 --0.0023504982331528 -0.0183880200855849 --0.0045357462105218 --0.0103012450855618 -0.0037303962385665 --0.0140001099066123 --0.0060096597058019 -0.0089316026742586 -0.0141424511791213 -0.0147871112342324 -0.0045823593816658 --0.0087945786446617 -0.0159005185906595 -0.0085996314398568 --0.0044514532739155 -0.0011622630303242 --0.0116462340699541 --0.0075925178917415 --0.0003097610652456 --0.0111867184074314 --0.0159010359628223 --0.0062537669944258 -0.0186671923492290 -0.0105412481144269 -0.0133464318652822 -0.0087234084733394 -0.0199847764307513 --0.0153236156396416 -0.0055078050916277 -0.0085468172462252 -0.0067122279076925 -0.0008515991064569 --0.0114933336550629 --0.0121732177807085 -0.0064680510856668 --0.0241323252189244 --0.0111754272431440 --0.0082487427558894 -0.0247878717386618 --0.0034808182610767 -0.0249682660988951 -0.0238774039215953 -0.0046324657799903 -0.0202027857295147 -0.0073639833248214 --0.0119882549528798 -0.0059697346752884 --0.0238285930174423 -0.0172956642029705 -0.0161168960904532 -0.0263092600065899 -0.0091531945690388 --0.0143729936241082 --0.0205499472170225 -0.0060380698475340 --0.0121361721359997 --0.0004472506895536 -0.0256403674406298 --0.0189698502631130 --0.0136233660021267 -0.0178958292683414 --0.0098156006788757 -0.0224348718302955 --0.0249390734261250 -0.0127988229749576 -0.0254704075576967 -0.0046845598902151 --0.0051585542204291 --0.0210396765184014 -0.0017097711462203 -0.0233177411081579 --0.0149622423763491 -0.0094863320749287 -0.0178993318071789 -0.0187820995413578 --0.0184764571378056 --0.0122459056445474 --0.0216372627643502 -0.0158313758939892 --0.0196694390973492 -0.0211432121345832 --0.0015774047240281 --0.0135921806211156 --0.0050860520180162 --0.0074717257595007 -0.0177505176100729 -0.0203034914261778 --0.0143561868789394 -0.0054861988558431 -0.0007510881863759 -0.0234193078309706 -0.0013527182944794 --0.0019493719623586 --0.0033039022332759 -0.0177822445761462 --0.0112827537114195 -0.0239650484491413 -0.0138172606297070 -0.0164793304425519 --0.0084302238014661 --0.0115362880034352 --0.0153634381448155 -0.0083192253649585 --0.0166048299811556 -0.0056615054208231 --0.0259339191607105 --0.0149440761525126 -0.0174956368280773 -0.0074802788037110 -0.0107631928437156 --0.0054147370329202 -0.0190086705877227 -0.0011085153356183 -0.0100177261274636 -0.0073379309685956 --0.0078926122466742 --0.0169540590640057 --0.0246548522486844 -0.0189558451475336 -0.0212352536224179 --0.0120316524714313 -0.0121610310833694 --0.0003264133505880 -0.0174336816688523 --0.0269347615426049 -0.0042883102363326 --0.0157413560215356 -0.0210010477471727 -0.0171046983475711 -0.0082516076265757 -0.0261937046397057 -0.0068051196316823 --0.0070719879629139 -0.0221637383890486 -0.0106630469015646 --0.0205549073350619 --0.0088349029404799 -0.0164720728339162 --0.0075026278239385 -0.0212210214465814 --0.0026323390357148 --0.0075106200833055 --0.0259623094548307 -0.0231429745036762 -0.0074160707504879 -0.0120061387668628 -0.0013302056154139 --0.0213590501220574 -0.0189507893210957 -0.0007345919630844 --0.0127661955604804 -0.0145321830634532 --0.0191130561003273 -0.0242197011087558 -0.0063564031597583 -0.0106133287350510 -0.0240822988725392 --0.0191396825587780 --0.0098498104536725 -0.0258037103771592 --0.0092277089738501 --0.0123807997789851 -0.0167388118399546 --0.0045844491937819 --0.0145911734480372 -0.0158495966470044 -0.0101954083872849 -0.0076104990455199 -0.0307553857557510 -0.0130774238675818 --0.0200506033124389 -0.0105999423243250 -0.0205048597075333 --0.0086366977036642 -0.0075935640000159 --0.0196425351728101 -0.0158971971608083 -0.0233709220935511 --0.0001509173140552 --0.0061539361730337 -0.0167592508532625 --0.0250218229591685 --0.0239214027580377 --0.0005811889432557 -0.0045332220543230 --0.0167722442644459 --0.0246585696595307 --0.0027176309011969 -0.0000742681004030 --0.0140917333512305 -0.0236177616675910 --0.0106667864680967 --0.0143280801638231 --0.0043908946829375 -0.0017335172852093 -0.0038831108169188 -0.0225245403562988 --0.0229980456584995 -0.0244996624301240 -0.0107515025546664 --0.0012840368974250 --0.0153606493702780 --0.0209144577298593 --0.0130127756150735 -0.0139703530845800 -0.0055663046754990 --0.0077114768762088 -0.0233519956733970 -0.0162663934179466 --0.0020706962332610 --0.0076433138787008 --0.0201617661933203 -0.0149965495875946 --0.0170426533256265 --0.0067614956504235 -0.0194255545333975 --0.0162942856567218 --0.0003445840089486 -0.0188425513168102 -0.0113285205916580 -0.0095206182878768 -0.0210543220296225 --0.0179544775489536 --0.0086881682930089 --0.0208441545573753 -0.0215774699701298 --0.0112939308417015 -0.0082994112268992 -0.0157128742642499 --0.0109328067152915 --0.0269473950032601 -0.0018336005726039 -0.0182932275299450 -0.0189825005096954 --0.0150548728613698 -0.0001455968035728 -0.0061757461304544 --0.0164262068529981 --0.0126968677504728 -0.0214871938268868 --0.0260440265530515 --0.0165202973826937 -0.0069684277795671 -0.0207467609030715 --0.0077352115580400 --0.0148647070434838 --0.0134437396843384 --0.0247866705285729 --0.0014088378845184 --0.0255574660391388 --0.0074808979192799 -0.0050464845442972 -0.0045109589395427 --0.0108058242177167 -0.0256009781555193 --0.0082261390766246 -0.0245435337321476 --0.0114049707638612 -0.0021907699054918 --0.0264169979979619 --0.0168850470355974 -0.0052876735138722 --0.0211215630399125 -0.0135206240491723 -0.0158147902009648 --0.0217775704260972 --0.0190099290878595 -0.0029823181418118 --0.0187823615256787 -0.0000946563994132 --0.0218275254507357 -0.0247340052771125 --0.0262533940800777 --0.0232821436160948 --0.0051232599326056 --0.0065599853263820 --0.0048490652930101 --0.0255215871671399 -0.0172232129519255 -0.0255138702044354 -0.0101142840978257 -0.0319135964684049 --0.0111453659328068 -0.0245556987252588 -0.0115388244863220 --0.0055405213958257 -0.0161385681844719 --0.0137628715750016 --0.0260371057844308 --0.0180739281009697 -0.0090178764688011 --0.0070082337495715 --0.0165211481400862 -0.0198139732497241 --0.0137989642043273 -0.0130489468125525 --0.0167898967354569 -0.0132529680386321 --0.0079336318863398 --0.0127260517330658 --0.0260513110248979 --0.0238345061763697 --0.0098182625413107 --0.0147280964974526 --0.0253424680246826 --0.0070247915375145 -0.0016105525305598 --0.0158135869986001 --0.0044822033258170 -0.0218225808723691 --0.0164065813137390 -0.0188211031785409 -0.0216474939558860 --0.0004158606858080 --0.0102278161277198 --0.0102286404859014 -0.0135017399601736 -0.0049669948845306 -0.0070263470552009 --0.0243640114707192 -0.0177144105384036 -0.0210256769782699 --0.0239295395332271 --0.0199568876558316 --0.0269610670649270 -0.0163267948572941 -0.0263530519152263 --0.0075760885477319 --0.0254911134882701 -0.0179338803290151 --0.0009178612191400 -0.0240246015344738 --0.0255941245770363 -0.0141054781671395 -0.0226167303909556 -0.0037022135169088 -0.0265513169676279 -0.0023459377908899 -0.0034094237496907 -0.0145691526173077 -0.0194202324794817 --0.0077526254628140 -0.0229057377108606 --0.0134086706845011 --0.0149537283579391 -0.0273277215926099 --0.0033504417296292 -0.0225905499261507 -0.0067094540152274 --0.0258251154911390 -0.0200657895393493 -0.0065399712948054 --0.0220394325585513 -0.0106781382534688 -0.0016084629471295 -0.0247231313143395 -0.0030774590578663 -0.0199846215728637 --0.0298532739346692 --0.0002381006126481 -0.0196263937583255 --0.0031404412881542 -0.0022006352919269 -0.0248289881644622 -0.0092667484617005 --0.0010548910859345 -0.0216963979642626 --0.0091049676105028 -0.0036254192353997 --0.0212055590597774 --0.0174442320592389 --0.0125326221501140 -0.0029973369394207 --0.0026433693820777 --0.0255643769313937 --0.0040658528023171 --0.0189242822129291 --0.0186234652514790 --0.0052888950964393 -0.0195820313621253 -0.0177125137090902 --0.0108390994785817 --0.0163036674641659 -0.0208182171245464 -0.0167359572015172 --0.0217001486154045 --0.0099721345333223 -0.0222243880547939 --0.0234838449325536 -0.0178495837015621 --0.0114884916143379 -0.0155203555775290 -0.0169115737640464 -0.0038435703404618 --0.0163033773125908 -0.0145558562492244 --0.0083652505468150 -0.0257716067047821 -0.0023123338370212 --0.0235474905458017 --0.0239452632554436 -0.0004248754046620 --0.0036579239998685 --0.0182685109074012 --0.0085230289254241 -0.0220697073806082 -0.0221110129142299 -0.0128441803733467 -0.0084916604510594 -0.0210530989287947 --0.0026287094752735 --0.0198537947445001 -0.0265310663835564 --0.0038131675267505 --0.0046835044720153 --0.0077794578225968 --0.0103489788077358 -0.0093912098722938 --0.0059832108606326 -0.0107118985131609 --0.0096846982933751 --0.0212634275742343 --0.0064938076164558 --0.0179974602358234 --0.0099992158725159 --0.0179293924263019 --0.0170669488122845 --0.0081055915209089 -0.0039840246128149 -0.0106261314729440 --0.0137746150683753 --0.0110717750192263 --0.0074229152019494 --0.0196485047348712 -0.0123514781329053 --0.0016410479574692 -0.0268068189649103 -0.0208021446522604 -0.0042243220536651 --0.0245040985695241 -0.0135016381861126 -0.0063122838937911 -0.0121400495871064 -0.0179567083356844 -0.0050563763239215 --0.0224164001828947 --0.0139218951660991 -0.0105529664254367 --0.0227072618110624 -0.0094284656187222 --0.0105815598523080 -0.0072572858639159 -0.0025075824767072 --0.0035860663715126 --0.0247204695992550 --0.0136122873703888 -0.0244762371081510 --0.0186970524066474 -0.0093324500000421 -0.0212579012874979 --0.0133011859304103 --0.0036756274417674 --0.0002472301789777 -0.0219304096382740 --0.0157959157385321 --0.0117194959183286 --0.0001468405126882 -0.0186931409392993 --0.0018871943145870 --0.0198738776781856 -0.0112867284029655 -0.0011229236993603 -0.0228617918634937 -0.0050808103716020 --0.0169581221742125 --0.0080418966007481 --0.0059323332789922 -0.0192366938871936 -0.0084619038767883 -0.0096020919898927 -0.0096874884058280 -0.0009783965863932 --0.0221950663295195 --0.0083242431038233 --0.0188868487763506 --0.0184306174011506 --0.0050758258970121 --0.0246791210133353 --0.0044343623384888 -0.0163442682695966 -0.0230993845291261 --0.0002444201746181 -0.0090834411856579 --0.0036805039483261 -0.0252364831078320 --0.0106667194312357 --0.0101413398842137 --0.0082420825289993 -0.0091870129836894 -0.0107512415996395 --0.0159710630492942 -0.0229270856211565 -0.0013365741986074 -0.0158303913982821 -0.0164251829772458 -0.0097142077772579 -0.0058587309345706 --0.0114027411431942 -0.0138196888226340 --0.0121688907670401 --0.0093056539785922 --0.0000164856391086 --0.0113533839709042 -0.0221817201425074 -0.0140237094720944 --0.0169832020155928 --0.0204498772209786 --0.0246038403835319 --0.0039063088544682 -0.0215073377608782 --0.0018840477418876 -0.0246791438442134 -0.0071654226617148 -0.0051130414741833 --0.0166954260539430 --0.0105130325312640 -0.0094132719738352 -0.0001717531126411 --0.0108015397251326 --0.0263048891417431 -0.0105149854524560 --0.0149120445510102 --0.0154148878801123 -0.0266916803187058 --0.0051509037347264 -0.0161984313598709 --0.0118901759005034 --0.0026065641073792 -0.0083500861323994 -0.0191578485912314 --0.0159682806167687 --0.0232867326969315 -0.0198350315786938 -0.0064184489072277 -0.0186134507710604 --0.0044032100006290 -0.0157571489547043 -0.0020312438282217 -0.0135572082770700 -0.0165808157192508 -0.0155043205478052 -0.0022992862708415 --0.0128964944753062 -0.0204264924528541 -0.0191881521124445 -0.0231367101067566 --0.0076067345174730 -0.0176440830995405 --0.0161727747190489 -0.0139731411219730 --0.0201843821552811 --0.0095267906273823 --0.0168176520622294 -0.0268015087994085 --0.0187371382827236 -0.0241485049776809 --0.0213957291344041 -0.0174547557964997 --0.0093336355003229 --0.0255942396940584 -0.0063627213410072 --0.0180263159349326 -0.0077927286327281 -0.0139626791483900 -0.0197883891021696 -0.0072254298124162 -0.0069442185672158 -0.0073297714679506 --0.0240227863966999 --0.0297577871663501 -0.0040038476809208 --0.0243525481066120 --0.0108726824003734 -0.0089076815953961 --0.0155865178813678 -0.0180278979483006 --0.0082591444126564 -0.0261992474575092 --0.0251671959512587 -0.0191836634745696 --0.0076149326853094 --0.0177305342959661 -0.0139347252089146 --0.0037344866275631 -0.0039452005680212 --0.0132107753156680 -0.0077399143303150 --0.0184627096375609 --0.0225021760906489 --0.0129210574902971 --0.0197703178479109 --0.0075502711311304 --0.0114771708889093 --0.0085591895187107 --0.0063198749260804 -0.0232575534681917 -0.0055343327370207 --0.0202244880201269 --0.0153480384413811 -0.0185923279493500 -0.0158356704807122 --0.0083168234145021 -0.0107603454461490 --0.0202278384909177 --0.0172250386767594 -0.0191146844179765 -0.0319706087956207 --0.0245886157682323 -0.0207184837304437 -0.0101382821932442 -0.0077927280170279 --0.0173520818721101 -0.0280099559953806 -0.0168768990075073 --0.0055228174906739 -0.0147589920304813 -0.0010902697376745 -0.0262644166780143 --0.0231986427144222 -0.0148733073479502 --0.0101392637776862 --0.0165945962976575 -0.0145291724431328 --0.0229877784015941 --0.0158503170316109 --0.0118624018382282 -0.0003507088363377 -0.0037886430800068 --0.0076975136427026 --0.0038456738993479 --0.0128237308845589 --0.0236332148644066 --0.0078033694094788 --0.0019495918606238 -0.0267757097506795 --0.0108640985937417 -0.0117933154915389 -0.0254905027314041 -0.0263344106855498 --0.0142967753676619 -0.0159678804411420 --0.0108829203714957 --0.0164422298899932 --0.0213300228912849 -0.0056689448562015 --0.0129494293503493 --0.0155917282259145 --0.0161353833038108 -0.0258516439939182 -0.0153004238193108 --0.0051869570223076 --0.0195694438273817 -0.0258458408022135 --0.0178622117350312 -0.0212760258394379 --0.0064924287808996 --0.0089259393490476 -0.0156998715075135 -0.0233696818140040 -0.0095717629506461 -0.0003857563940435 -0.0040864941345366 -0.0262404725601786 --0.0129442126256114 -0.0022907564504689 --0.0029255430402877 -0.0093430154569473 --0.0171430499124091 -0.0215822625007632 -0.0214011457425758 -0.0031124234745712 -0.0094594803286452 --0.0054405230950507 --0.0246886303571479 -0.0243338667155399 --0.0082773112632992 --0.0055162584801036 --0.0120708138663811 --0.0219640477785319 --0.0223929261326208 -0.0147785965539655 --0.0100497058007821 --0.0136883344662581 -0.0056873211232547 --0.0220718264786779 -0.0276506018783924 --0.0007585274578369 -0.0158588007059276 --0.0223847762797498 -0.0330389773275083 --0.0150470384190409 --0.0109916216094796 -0.0048734597441790 --0.0242438932588460 --0.0160395347574705 --0.0170323036810836 --0.0088386220672843 -0.0064647234590357 -0.0194850159233221 --0.0185524663860466 --0.0167215990826729 --0.0265074486860823 --0.0118364366026495 --0.0207205627802208 -0.0180078818591818 --0.0086812699595664 -0.0152851108034427 -0.0101048651315888 --0.0239364678513465 -0.0171663426137495 --0.0017711854780526 --0.0049583260223123 --0.0197159586613590 -0.0245000663412325 --0.0012392939146962 -0.0191998712842798 -0.0246408313878020 --0.0249279931492201 --0.0141031364786540 -0.0189915434660366 -0.0011567057787839 --0.0140539722134892 --0.0234646169275947 --0.0134619785538811 --0.0170320805230929 --0.0016567294265141 --0.0001313461676081 --0.0010714869146726 --0.0148555452614322 -0.0101687038420283 -0.0087287968248959 --0.0197381546992559 --0.0065248319058515 --0.0146439965148938 -0.0062407396534183 --0.0174043928555270 -0.0088542743436868 -0.0032945601093264 --0.0214800226149538 -0.0242724283772956 --0.0203951698972347 --0.0091148647693836 -0.0249003358481925 --0.0224514900897261 -0.0034205481264996 -0.0135558295563537 --0.0118260436515352 -0.0221924413972622 -0.0248629528721488 --0.0209241548850510 -0.0061810025808180 --0.0251414181882197 --0.0190531248253857 -0.0086639252723058 -0.0029655810606961 --0.0165614967624412 -0.0013342074095919 --0.0093161053554040 --0.0035049460296593 --0.0136719918971277 --0.0156824568609215 --0.0227627748640991 -0.0003980744642603 -0.0211894791174620 --0.0069362158970090 -0.0064873722698073 --0.0073927340342712 -0.0056062098917696 --0.0238014521117205 --0.0146005818450932 -0.0070646669845375 --0.0246362717190371 --0.0172388639257203 --0.0262417784522695 -0.0022450500463594 --0.0078681784540594 -0.0074790113921076 --0.0106746988531718 --0.0168143871255590 -0.0016653353287787 --0.0017531408369062 --0.0075771194527548 -0.0226651387890338 --0.0219351214546393 --0.0029008566044612 -0.0020011700800345 --0.0065832340721316 -0.0204806331797920 --0.0192967862341404 --0.0021991599825855 --0.0096022404631081 -0.0091345593795212 -0.0203821370204286 --0.0062078689532644 -0.0267378533303002 -0.0064268076370876 --0.0020295377231449 -0.0123553792246762 -0.0076709008105196 --0.0164714859786055 --0.0145363107913901 --0.0003117577458165 -0.0029555715465821 --0.0227932784678708 --0.0247932443018406 --0.0036641849086711 -0.0256737735012923 --0.0162670206597157 --0.0015724338001182 -0.0174398569063486 --0.0269724914631975 --0.0273588930667105 --0.0121786440368679 -0.0168442377728683 --0.0288311104224838 --0.0198597479698797 -0.0115393933739280 -0.0300525600871476 -0.0189694354711065 --0.0260246865974173 -0.0165763484642221 -0.0167717102733267 -0.0195942943504231 --0.0032194706553198 --0.0163257793000466 -0.0042011997502268 --0.0181730201069018 --0.0039926125087261 -0.0265480894844469 -0.0223362947464999 --0.0145349016258025 -0.0209886461652668 --0.0019129575096693 --0.0097247447666271 --0.0120694433781953 --0.0182206127522414 --0.0006051628045453 -0.0093472323699163 --0.0186989595377292 --0.0289803650185922 -0.0039803351526371 -0.0174215350434439 -0.0266689618095380 -0.0176526442072158 -0.0044108929279606 -0.0012950730157294 --0.0029937132815582 --0.0064510923680106 -0.0183036515706847 --0.0040156944046173 -0.0223217692260544 -0.0067829266317595 -0.0080555591084140 -0.0021541958352263 -0.0100649919342545 --0.0082812908933151 --0.0024947279475291 --0.0147740087308324 -0.0130229656759675 --0.0264037072386709 --0.0072103709012519 --0.0182167333392525 --0.0177381927045675 --0.0011825558714762 --0.0000661635494782 --0.0184469135191488 --0.0129209789361904 -0.0241400413127740 -0.0066455252691874 -0.0139410345844642 --0.0022097167492562 --0.0084931289090129 -0.0171598708755814 -0.0161648287109844 --0.0010879396391532 --0.0197815572017166 --0.0079878078066356 --0.0230602618722429 --0.0046364040601256 -0.0244021726385214 --0.0055195302465072 --0.0074916395864582 --0.0236923947147420 --0.0021455541601259 -0.0250889883031397 -0.0117002211894700 --0.0118362220587241 --0.0176038485194963 -0.0157766025918554 --0.0095007708028786 -0.0077747961064340 --0.0235964870992403 -0.0178863755920799 --0.0143375571702220 -0.0096288200567155 --0.0046428407241143 -0.0134597507987659 --0.0108915200415172 -0.0158875613262902 --0.0130331368419179 --0.0030341655257479 -0.0007054817037885 --0.0168787634358371 --0.0182654733067160 -0.0094205455367958 --0.0174423739897469 --0.0228154622271660 --0.0074869205507972 --0.0048077511168748 -0.0022937643733038 -0.0163556994495638 -0.0220843757845068 -0.0039998149927406 -0.0238143481343248 --0.0155422062920401 --0.0261497436544151 -0.0108314144567609 -0.0189843042378146 -0.0050045703073368 -0.0170882994594618 --0.0050450588328033 --0.0128557154020971 --0.0060181884793562 --0.0024652389787884 --0.0029536715138202 -0.0058348201511042 -0.0195839253096492 -0.0164693774534421 -0.0141600492046651 --0.0225161907565207 --0.0046834209181812 -0.0080193137057055 -0.0108337263184666 -0.0244589219605113 -0.0158177074170769 --0.0014782216164537 -0.0199179590191242 --0.0041564143202124 -0.0125415407485372 --0.0061244176995570 -0.0257591716916182 -0.0013616422909135 --0.0147938776057467 -0.0005398790076621 --0.0086652469918795 -0.0226724857472423 -0.0252462628219263 --0.0164110238575337 --0.0040505173894455 --0.0032034013170858 --0.0051195996926932 -0.0157473384438102 --0.0039283211826736 --0.0135699075990637 --0.0259114177636029 --0.0016523735353257 --0.0003703072610801 --0.0206022846131115 --0.0266527471966907 -0.0185143013379212 -0.0064910203179389 --0.0185462217050762 -0.0133161644611772 -0.0258728272192848 -0.0256770800404790 -0.0061647770090458 --0.0011538560384099 -0.0128118163729149 -0.0177180315080450 --0.0188498164897527 --0.0037045247137865 -0.0076332267570987 -0.0128578152721088 -0.0208034637285267 --0.0072170766373704 -0.0261900927975742 -0.0234503125182236 --0.0157504485039100 -0.0040789766554078 -0.0097346001745708 -0.0211082765476979 --0.0175389634972083 -0.0002899394797891 -0.0030082356900886 --0.0247843129138942 --0.0180450535129823 -0.0265246470231466 -0.0232067905506489 --0.0194949468934849 -0.0206260673756139 -0.0085164392566364 -0.0226819770375403 --0.0106068593949073 -0.0240675290381256 -0.0055688031513851 --0.0005034622536857 --0.0140200306336242 --0.0242332091515538 -0.0068263165744033 -0.0019022457443214 --0.0106679544962165 -0.0005488833372232 --0.0076282560166434 -0.0033904134149874 --0.0200958015949964 --0.0090466203109858 -0.0009961742121134 --0.0140960584094042 --0.0129269541844041 --0.0103692147518660 -0.0145099102874978 --0.0131156792777253 --0.0141056919223237 -0.0051004476296427 --0.0069566656582021 -0.0122442016180120 --0.0184904188411558 -0.0074923806319608 -0.0209049080727697 --0.0172722393843321 -0.0089958054863490 --0.0156072219049478 -0.0249773158117126 -0.0141780642604844 -0.0007571685295463 -0.0135017689182051 -0.0096366335288614 -0.0099308356541411 -0.0009486173024858 -0.0248187467409847 -0.0196537681574590 --0.0207791643437176 -0.0105715300715383 --0.0158630162782477 -0.0161957269325690 -0.0226015363823107 --0.0171077337716052 -0.0205071365612031 -0.0181698660691232 -0.0353029845649202 --0.0030222337259769 -0.0046715751973445 -0.0237222310393897 -0.0261795231530965 -0.0015605905564185 -0.0051060369141964 -0.0120198884780798 -0.0086434710658011 -0.0166541467842005 -0.0056209653930421 --0.0039732971382465 --0.0174209541398732 --0.0323163470929017 -0.0083917005907536 -0.0157428326778130 -0.0035566528267882 -0.0238007992610862 --0.0195027533042119 -0.0124243582858532 -0.0182194910036844 -0.0215282609025178 -0.0204291830646877 -0.0194582015823216 -0.0074954601904511 -0.0031109471479560 -0.0217063131961972 --0.0030751754806385 --0.0244587765236576 --0.0022263669642863 -0.0125193000243777 -0.0073272882754068 -0.0256163843130293 --0.0028122710943111 -0.0324672495175743 -0.0243381148294611 --0.0026666863006674 --0.0147079371165815 -0.0074061444826537 --0.0054209628958996 --0.0020107497348383 -0.0198612479524659 --0.0009502192112472 -0.0234806568841186 --0.0262091882154356 --0.0050236766974830 -0.0200340157974488 --0.0000650166411396 -0.0146296728323875 -0.0126190522364858 -0.0057203313614979 --0.0013284599592641 -0.0187961323576249 -0.0222747686277418 --0.0227688202564034 -0.0040769700055178 --0.0201116582117833 -0.0010682974899826 --0.0134520885845816 --0.0131333485301285 -0.0028629960809074 --0.0100754916827182 --0.0188750400845847 --0.0105449766181241 -0.0093815483549357 -0.0120136267172211 --0.0202390222127653 -0.0183931029941697 --0.0265339471598291 -0.0135582059121639 --0.0095596412051426 --0.0056428915501172 -0.0003037771922435 --0.0203993093845649 --0.0243735451106732 -0.0247791236862332 -0.0122512764078618 -0.0005705781646944 -0.0004260651703583 -0.0178135810452660 -0.0241907395483577 -0.0206293553598955 -0.0157743974187501 -0.0090082301602115 --0.0016927020232008 -0.0195770461078776 --0.0222769691102231 -0.0007850485400590 -0.0129892392693366 --0.0273044546737765 --0.0073910325493133 --0.0092571020096517 -0.0211701624093246 -0.0051760543683377 --0.0095758010902127 --0.0072791548141644 -0.0141025611147349 --0.0236129167724862 -0.0149973083607350 --0.0133270738889861 --0.0037863119987755 --0.0197549525645819 -0.0135110544550434 -0.0095759653827792 -0.0003535552672258 --0.0023542243938280 --0.0099810494298778 --0.0210550263538879 -0.0182829904685402 -0.0071662921680947 -0.0028830343354070 -0.0042445952156096 --0.0262627754102198 --0.0250015848626069 -0.0007016974962957 -0.0239866154698188 -0.0028486727417281 -0.0187230198985437 --0.0031440691125169 -0.0248705399043976 --0.0101192613732353 -0.0191075259915484 --0.0007244713408864 -0.0004486335427950 -0.0024409988688820 --0.0128561248185502 --0.0043124738104944 --0.0226563712898226 -0.0203772430693797 --0.0137372575770590 --0.0186975646044267 --0.0018249394447819 --0.0170201899114172 --0.0163752456433651 -0.0097842013250916 -0.0200817289063759 -0.0143050195153176 -0.0167708297830863 -0.0268033001121960 -0.0187055418635758 -0.0268027376347173 -0.0218106132650417 --0.0041508769759795 --0.0256148432141921 --0.0243237135027417 -0.0121135742810782 --0.0220821592334860 -0.0102115153817322 --0.0013662728544438 --0.0263980635829353 -0.0230463268138109 -0.0055308998037158 --0.0078811157284485 -0.0220480249887228 -0.0231911847356414 --0.0247592956287908 -0.0010958447047949 --0.0172128607596436 -0.0261651155269397 -0.0229948406910921 --0.0140473165138505 -0.0011214792919774 -0.0139587779601826 --0.0027855004802806 -0.0177063663770367 --0.0024811371660231 --0.0067481104281005 --0.0219474903486991 -0.0040964173604216 -0.0133789464190910 -0.0177527240758674 -0.0015383019608196 -0.0085658057912974 -0.0185755985072959 -0.0126734964417626 --0.0137703109960572 -0.0247711993403658 -0.0201898125581186 --0.0108607715536677 -0.0262838470236069 --0.0244862145271882 -0.0180612028208811 --0.0222158745602447 --0.0029265155942689 -0.0008306941303175 --0.0059036401732253 -0.0120397022534946 --0.0213779314944040 -0.0148511508892147 -0.0231243967734258 --0.0005691996148602 -0.0075600579465501 -0.0247295844940854 --0.0091926357344773 --0.0243114528924953 -0.0005017742833438 --0.0133527376742169 -0.0078949377116879 -0.0051876332509875 --0.0168479986409290 --0.0048843136915906 -0.0009400355534636 -0.0157161711166217 -0.0154472097968231 --0.0007699560232882 -0.0222893188180696 --0.0234524096386409 -0.0026833146813527 --0.0075407511594306 -0.0212106965439745 --0.0261727386337204 -0.0074855659637714 --0.0023582322282269 -0.0248945979524844 -0.0079561599083067 --0.0069530445479767 --0.0014402687259073 -0.0172461227359952 -0.0127650227796099 --0.0147524677314393 --0.0124429846477484 -0.0117647584862171 -0.0055612825468295 -0.0139802552803517 --0.0105487061023414 -0.0223177177498514 -0.0129278170113041 -0.0118389836485510 -0.0157237411099276 -0.0277974090860569 --0.0156004067324961 -0.0002212644391130 -0.0184554803459942 -0.0053883012229115 -0.0012163558239288 -0.0000720694174545 -0.0073673502476942 --0.0171916561650183 --0.0044174476074322 -0.0005706189266663 -0.0143980448615580 --0.0005159850861843 --0.0119269441974425 -0.0218525163504568 -0.0048388069449997 -0.0255249118781557 --0.0089111423398539 --0.0105317315936788 -0.0014824013612746 --0.0000937317111512 -0.0141429783775988 --0.0007309671265742 --0.0012438255205910 -0.0141219685069207 --0.0040500551848635 -0.0234767960334112 -0.0299678342824437 -0.0090920321511433 -0.0200577396475988 -0.0025919218850163 -0.0069331250922513 --0.0187448974103257 -0.0209725773848666 --0.0086434602569295 -0.0203399125465578 -0.0020943334441971 -0.0212126651933006 -0.0108646094537839 -0.0090361917453633 -0.0072562824539783 --0.0135765880054329 -0.0290376979253143 -0.0100174243886582 --0.0199896265236663 --0.0058884199777873 --0.0230661101727503 -0.0269876955499814 --0.0074247046898118 -0.0264731256581724 --0.0248318042131597 --0.0025986836756558 --0.0150417334030420 -0.0254579298518347 -0.0013395929995539 --0.0030944790757575 --0.0112660501457101 --0.0097817855624719 --0.0132350871344881 --0.0090786032008242 -0.0147583034010675 -0.0314978024566040 -0.0099418927722241 -0.0032092737678833 --0.0028674402026365 -0.0150795319807256 -0.0025312458371512 --0.0082597225094992 -0.0094569613905836 -0.0021618374613027 --0.0103994351164407 --0.0204470681764872 --0.0159138110447910 -0.0168477880987164 -0.0252530935284165 --0.0206109021094570 --0.0193520422053846 --0.0082372151560844 --0.0001577624082686 -0.0260016411780939 -0.0212134442368518 -0.0063555349041799 --0.0052073020610962 --0.0224351702068600 -0.0082550899170341 -0.0014610941622970 -0.0149760908846181 --0.0155170328943751 --0.0164109341169337 --0.0100069937441726 --0.0051472806671571 --0.0096887068619690 -0.0203373452590451 -0.0202272333744174 -0.0112254715706231 -0.0130111727426532 -0.0188132032585960 -0.0212746538172546 -0.0062267717991982 --0.0249857933468090 --0.0166897906826537 --0.0200091553724581 --0.0107762938590299 --0.0019770732534859 -0.0052643146800200 --0.0183584832503701 --0.0102290734437642 -0.0053283004868705 --0.0029548404949663 --0.0007634742494117 --0.0088036158644177 -0.0022182386932484 --0.0003575834855786 -0.0258187654975323 --0.0118498183341248 -0.0125016866921391 --0.0143709869913313 --0.0224293258484873 -0.0158540413715632 -0.0045829646291710 --0.0089149529564222 --0.0171145546422728 --0.0247084215861223 -0.0213289123989118 --0.0099368971000279 -0.0195070740222966 -0.0087023462707793 --0.0229108787368703 --0.0128314591938512 -0.0201301575533621 --0.0235938631269127 -0.0026983219140476 --0.0009658108246096 --0.0190968024915392 --0.0004021666600006 --0.0108864604667943 -0.0268270561072283 --0.0034468184425621 -0.0234408079341445 -0.0071765492763116 --0.0011295811197548 -0.0261585292517215 -0.0067403081186962 --0.0126573060456083 -0.0082157135578768 -0.0209280247784222 --0.0194034490284212 -0.0206403049162277 -0.0116235634120599 --0.0041633090815313 --0.0218809424850689 -0.0235980163657811 --0.0007672616681485 -0.0032425829198052 -0.0017988963632060 -0.0227481677629075 -0.0107486628710401 --0.0166135411405105 --0.0137313868302370 -0.0206982149067779 -0.0265864950204451 --0.0036698713927188 --0.0226906334334579 -0.0133650321351339 --0.0210805662638216 -0.0079611254574405 --0.0137085229769565 -0.0047518286995909 --0.0293610350895429 -0.0023528197373213 -0.0022825022776035 -0.0112536702770854 -0.0050881279169838 --0.0146515028400387 --0.0219154953696149 --0.0229969006108898 -0.0024047393940172 --0.0096599266205004 -0.0252179038052610 --0.0177328204016340 -0.0223358433103371 --0.0095140391379447 --0.0096924361801851 -0.0231063035911658 -0.0149740758792360 --0.0180072680351614 -0.0227860411990119 --0.0102154642393768 -0.0218607040384597 --0.0134711222624547 -0.0016005199164896 -0.0183946643383174 --0.0088892126411743 --0.0105288240990685 -0.0101210863561884 --0.0077394279319481 -0.0074020855547527 -0.0190786423374928 --0.0064938764939608 --0.0259637607988387 --0.0261270525640072 --0.0185849361409339 -0.0197098777736472 -0.0120319503325635 -0.0252751918489901 --0.0105536753789451 -0.0195196170834363 -0.0067711219378358 -0.0048354458454435 --0.0173326055550087 --0.0044826780465985 --0.0019500543548414 -0.0188643200684146 --0.0064155097917191 --0.0152712162568439 -0.0237558548468389 --0.0155806744788372 --0.0081501474253864 -0.0247918773420680 --0.0247113097360543 -0.0166119341698820 -0.0086211199900030 --0.0081738254183240 --0.0023164651185551 -0.0155503577439307 --0.0068726136675150 -0.0085514487249705 --0.0253912214572613 --0.0123376845655026 --0.0096456367639803 -0.0153069536584029 -0.0035922721985200 -0.0227897037710573 --0.0078679608303328 --0.0070049212405864 -0.0022177861217205 --0.0124016367189742 -0.0174899602260283 -0.0189075105094390 -0.0086030216004748 --0.0258278117529832 -0.0032861117008889 -0.0243436690252608 --0.0164227001618866 --0.0250944171647347 --0.0016265692778276 --0.0039104428881790 -0.0246907192077790 --0.0248082702550138 --0.0135355658480353 --0.0107165266156283 --0.0143421675925093 --0.0254298364589507 -0.0107568667125603 --0.0046545916940613 -0.0209072634209894 --0.0162445246070641 -0.0130970118405289 --0.0255986737982587 --0.0074602566672153 --0.0232762267969951 --0.0078003469344250 -0.0075009161226617 --0.0155948882667142 --0.0264076867693686 --0.0163406997118086 --0.0227327595470254 -0.0038296687521688 -0.0229200756477796 --0.0062978314289838 -0.0095214376994688 --0.0137064921521042 -0.0016901543347825 --0.0237655577621723 --0.0226252345573791 -0.0181724419196047 -0.0112338151645274 -0.0183244051213778 -0.0208596542170896 -0.0170074558895431 --0.0024953842380200 --0.0011775291500578 -0.0249753507710713 -0.0303449098097463 --0.0113098558269128 -0.0123528989530333 -0.0192294717455491 --0.0001883784055542 -0.0003409861568995 --0.0178983127317668 --0.0245087547115582 -0.0114227431377582 --0.0123774961549056 --0.0171607974375957 --0.0052826848792687 --0.0050185051698653 -0.0088802741436206 -0.0004822024783436 --0.0063253335059966 -0.0204742398201266 --0.0036119555965767 --0.0240038604334715 --0.0036521291771198 -0.0058116469842478 -0.0103990313915891 -0.0105020915273350 --0.0151473809328855 --0.0200724541356803 -0.0070410422153170 -0.0104206372269694 --0.0135914164546330 -0.0240195014528706 -0.0139262551758104 --0.0191552997878135 --0.0057116058747303 -0.0226697939322730 -0.0040549417699883 -0.0054094779846471 --0.0102696566500124 -0.0035196854315493 --0.0256855103409850 -0.0140312600525819 --0.0038100277167902 --0.0101994970024936 -0.0097246962618189 --0.0072140286052533 -0.0225042242798918 -0.0069545840095572 --0.0165698163454947 --0.0165327590326636 -0.0221754753826954 -0.0172011486284178 --0.0084810191610423 --0.0241630097087661 -0.0111043467418931 --0.0243645145217250 --0.0174862172430100 --0.0064481927994054 -0.0151991471455480 -0.0118249611072536 -0.0209044220895892 --0.0194726443732609 --0.0030981179886374 --0.0062794456588448 -0.0191845843535371 -0.0070122269644934 -0.0097312434854643 --0.0143682411964284 -0.0245643741905636 -0.0166075979965877 -0.0211005873096540 -0.0204429463890617 -0.0102849887529926 --0.0256744834917619 --0.0130359450653384 --0.0055333147772900 --0.0165696194226501 -0.0184956628118402 --0.0255480102733623 -0.0162290543033157 -0.0082162583364027 --0.0119264452254291 -0.0233679376343993 -0.0133042531663072 --0.0257952235417186 --0.0080444799627582 -0.0076637044728438 -0.0062927459300679 --0.0090139830363939 --0.0058499078396507 -0.0229835470534791 -0.0100530960223689 --0.0226122936066458 -0.0215004044033847 --0.0213577036963511 --0.0124888511527960 --0.0195220279203286 -0.0241093803856128 -0.0059540793841498 --0.0005398353121608 --0.0129706094484465 -0.0183015419908140 -0.0247307861446312 --0.0110366324449350 --0.0119308340538486 --0.0262256904439129 -0.0095801108380927 -0.0013855725377071 --0.0101801538415930 -0.0039990531053476 --0.0258683163677165 -0.0029918863792623 --0.0261898167994867 --0.0229228834836461 --0.0236309529080816 -0.0162500647947486 -0.0029447817686903 -0.0066120084723385 -0.0117560263300417 -0.0265533860832896 --0.0018570557852809 -0.0112814498019609 --0.0025723454325873 -0.0256605015063974 --0.0052120742505418 -0.0096712245213868 --0.0059977992716913 -0.0194061305198454 -0.0158858762366607 --0.0144128659782513 -0.0086211589699159 -0.0109841739457364 -0.0135838055027499 --0.0210297469878729 -0.0206911098035257 -0.0237118101217601 --0.0072118441736143 -0.0248348283820297 -0.0258343254285712 --0.0108152200113841 -0.0226746877213238 --0.0037652038737754 --0.0148894879266646 --0.0117859727695213 -0.0174280152662507 --0.0242262916692112 -0.0252812950325337 --0.0117377639110302 --0.0043754999358235 -0.0097000563876018 --0.0177750842266778 --0.0251648318463775 --0.0018835361407035 --0.0004309947178456 --0.0090937019530002 -0.0062708343118241 --0.0212671951405715 --0.0050620519957523 -0.0181477402748332 --0.0144178055071966 --0.0159241180067508 --0.0120425050136058 -0.0151225359894849 -0.0191930359346051 -0.0009217539774089 -0.0326526035989342 --0.0148198841794293 -0.0151708118936929 -0.0118592779719005 --0.0053926124643473 -0.0085041637791213 --0.0155319000517192 -0.0207436396568968 --0.0142874754271881 --0.0127724527943919 -0.0098076418491638 -0.0072197773111015 --0.0039855311509550 -0.0015360059789842 --0.0159769718220029 -0.0121045997691162 --0.0055996348426651 -0.0169480504500588 -0.0229017720990423 --0.0052883354283561 -0.0146814371110221 --0.0246793121181343 -0.0114712552927498 -0.0163424893335660 --0.0149845431935930 -0.0026655820415473 --0.0184816424631695 -0.0133221104019167 --0.0247829575628576 --0.0131280115480183 --0.0153131302657624 -0.0242298718555528 -0.0087174756989745 --0.0121258346116212 --0.0144754645566216 -0.0038178346445430 --0.0021608806507896 -0.0168919207924523 -0.0016137423299578 -0.0229156532545813 --0.0033581499187878 --0.0264829358958387 --0.0125002801509422 -0.0198013685046653 -0.0205945606495612 --0.0163727659939759 -0.0122812908130188 --0.0174580861842918 -0.0099324011537775 -0.0002739005884356 --0.0004268616582883 -0.0050675664490840 -0.0038072989398287 --0.0168817344752582 --0.0020830803945666 --0.0236537841767238 -0.0107024500998315 -0.0213304306217029 -0.0254620525778210 -0.0189168809328015 -0.0181265522343334 -0.0247042195948637 -0.0199498290514628 --0.0011627977262296 --0.0222363918571097 --0.0207939803234913 -0.0043128051321196 -0.0020164058160442 --0.0101743602669777 --0.0207725758928195 -0.0265444840368582 --0.0113604027343118 -0.0007452667172419 --0.0096999957704583 -0.0012278668758824 --0.0203357677579046 --0.0215321556364537 --0.0139554266648039 -0.0205728460451225 -0.0023467034250480 -0.0236173992545390 --0.0094769234010097 --0.0099362562291311 --0.0080375455698573 -0.0178037824168393 -0.0146870249944720 --0.0056515073383979 -0.0269159318622444 -0.0257128267993250 --0.0246081346875739 -0.0224208216312203 --0.0265650121298003 -0.0167831198518633 --0.0060445463346723 -0.0108946292544756 -0.0136499031730714 --0.0206949753689070 -0.0050740320181454 --0.0222579651815669 --0.0183329226616472 -0.0197922356712494 --0.0042759021813430 --0.0094579111796450 -0.0082950278844058 --0.0057648452015340 -0.0150134176026536 --0.0032462176671702 -0.0213705376402178 --0.0154675342497103 -0.0244976390586748 --0.0145856336936651 -0.0252634958863660 -0.0056859503277384 -0.0067623140639024 -0.0227274579528627 -0.0102971273651788 -0.0150809586744879 --0.0243951087584360 --0.0009183855447626 --0.0013093661484239 -0.0102379323975629 --0.0223312886492032 --0.0052218981621523 --0.0204016945073596 --0.0250415985505706 --0.0233971994628202 -0.0053903165332425 -0.0082372869535932 --0.0043024363850508 --0.0140094639573314 -0.0203322201091104 --0.0086986106334894 --0.0228393375969046 -0.0078566953459264 --0.0224294008702442 --0.0098441420383703 --0.0196453010535769 -0.0107444247418291 -0.0252821014905368 --0.0032864755930940 --0.0118703733633037 -0.0084804142773222 -0.0146335742431145 --0.0151437462017225 -0.0150746915871344 -0.0251915343731033 --0.0185892270573597 -0.0086679519183028 --0.0171542273353039 --0.0228044975673700 --0.0040875673145663 --0.0027900869971507 -0.0257686386249407 -0.0023513566653011 -0.0092997562966268 -0.0080540144695645 -0.0170744814845458 -0.0180374172711715 --0.0122840182287526 --0.0166026581891408 -0.0011213711975485 --0.0049857495274085 -0.0168599037659743 --0.0078815624963519 --0.0113371766528035 -0.0053663637190944 -0.0265710394423251 --0.0133406094130987 --0.0090797483756242 --0.0166566617043994 -0.0111081430349846 -0.0231975546972278 --0.0209341229906561 -0.0041564712025390 -0.0101022969353632 --0.0118458634680906 -0.0167945054724607 -0.0181401517208377 --0.0164413820389450 --0.0004872356619466 -0.0254848170338497 --0.0150598274537423 -0.0000846329199010 --0.0115503005716463 -0.0266443619282604 -0.0017756607324379 --0.0227346954008053 --0.0186418251710071 -0.0103019514824478 --0.0098612653943239 --0.0024361729778886 --0.0084580167878609 -0.0242971157823186 --0.0244137655601224 --0.0241763244882502 -0.0039452252876008 -0.0188667292719683 -0.0167912769773796 -0.0163131050908307 --0.0210382859823645 --0.0259374594522175 -0.0241786629310266 -0.0064641276149163 -0.0257928260559336 --0.0142056599956556 --0.0114827195133547 --0.0159655124818306 -0.0145564106171278 -0.0054564767966800 --0.0106990012037061 -0.0244582565301281 --0.0001969485334864 --0.0260738829906509 -0.0262720757804756 --0.0066829277283511 --0.0242854549872615 -0.0080567845500899 --0.0068921582185431 --0.0207137775833286 -0.0005930754965040 --0.0261854906481241 -0.0143923031274505 --0.0010902465203200 -0.0184585800536270 -0.0208488324386540 --0.0074853865063041 -0.0164802810154838 --0.0252999357349466 -0.0142002562996020 -0.0171377768664308 -0.0138246703914031 --0.0267557577288205 --0.0119335299238958 --0.0035240449797067 -0.0022174220907788 -0.0063124536926775 -0.0032728790746451 --0.0069905845190965 -0.0201044652606530 -0.0057437778354153 --0.0164370695117905 -0.0189167247483447 --0.0161577820399199 -0.0189981064409871 --0.0211465040349362 --0.0246776389040383 -0.0048352426166065 --0.0181964098270899 -0.0220686509158083 --0.0159157815769921 --0.0252106647942024 --0.0005667744320003 -0.0155178227405958 -0.0187341216111015 --0.0232771237072161 -0.0000038560152630 -0.0119072495527857 --0.0144084803583307 --0.0072736137859088 --0.0062228963390089 --0.0170227403907790 --0.0243115786664715 -0.0217046397285252 --0.0074725181570890 --0.0145080184660772 -0.0039985918889759 --0.0012190317212830 --0.0130283504513580 -0.0094906473218115 --0.0130374858657331 --0.0169567168033236 -0.0185412486613533 --0.0232552669312419 --0.0176951503801092 --0.0156371853797415 --0.0118029732792867 -0.0193854347551677 --0.0264663216103241 --0.0189481888460034 -0.0019517370950374 --0.0228008235881185 -0.0259798445193749 --0.0015819075616894 --0.0097589683912802 --0.0081401324673594 --0.0244726636459000 -0.0070509780286141 --0.0104939308623724 --0.0194456665179288 -0.0236381149923092 -0.0249891918621540 --0.0187218010356667 --0.0229912125739027 -0.0240132671460281 -0.0064946795703979 -0.0008001163027587 -0.0026477942723599 -0.0137984376669877 -0.0026031445034811 --0.0104203532729550 -0.0190163181138697 -0.0277190723524535 --0.0059661414851368 -0.0096880659293688 -0.0120433568167028 -0.0125348458124329 -0.0214624548191550 --0.0215223712863453 -0.0089959249683723 --0.0081970454969324 -0.0103789823597059 -0.0213466835610843 --0.0033500711164470 --0.0137314528345546 --0.0099772543105178 --0.0179366381548931 -0.0020888346440088 --0.0219048120818428 --0.0240082558729043 -0.0062201149864233 --0.0056746181259716 -0.0004902400439850 -0.0136174518498627 -0.0051257199251053 --0.0170788310145518 -0.0230954065000724 -0.0085221511646983 --0.0039521501206989 --0.0057291961774339 -0.0108249267654386 -0.0042214688663477 --0.0230211103553421 -0.0009826153644850 -0.0002765126019447 --0.0227289981192313 -0.0153344474926669 --0.0095358758154585 -0.0158886611766285 --0.0038694789878892 -0.0115580718289862 -0.0063970273704137 --0.0002306611680171 -0.0255883650074496 -0.0048977065617250 --0.0050381402590089 --0.0209473206207919 --0.0196890705446783 --0.0154437091321544 --0.0217605344988063 --0.0184118677661985 --0.0191452434101005 -0.0214643672207286 -0.0120814109465998 --0.0025138537003612 -0.0198011621752233 --0.0086779223901191 -0.0040481280715002 -0.0194562719467311 -0.0252738749669532 -0.0097248844655963 --0.0173730260721280 -0.0241161689891958 --0.0068225384775995 -0.0125812352890882 --0.0019974290252562 --0.0067765230205722 -0.0221772665036354 -0.0100919965880058 -0.0071192259887229 --0.0146601465063050 -0.0156691149017753 --0.0152841974468848 -0.0201511976583622 -0.0112564654075466 --0.0223331536235231 --0.0138683122008285 -0.0225891910283591 --0.0190378290471063 --0.0023973220610861 -0.0183289936361645 -0.0176182448888836 --0.0020413697921215 --0.0002738793043991 -0.0245973461586343 --0.0028207793422390 --0.0280528901556233 --0.0125326489102649 --0.0154478010384513 --0.0252026369471752 --0.0155239397371342 --0.0229317366536776 -0.0107456721498605 --0.0229712919047596 --0.0221896808249983 -0.0165504980001176 -0.0214389756040466 -0.0035469426346336 --0.0075812300052171 -0.0061394152403443 -0.0013596066894194 --0.0074639806627515 --0.0079831775429489 -0.0198015757439012 --0.0084096257009855 --0.0149683812607937 --0.0120915243082119 --0.0289869403432726 -0.0195670633029144 --0.0091830732806352 -0.0003839057263232 -0.0070952394150512 -0.0082837491257077 --0.0171726043114256 --0.0223062545718514 -0.0345226772688091 --0.0235913587754209 -0.0024834300295152 --0.0048803146726147 --0.0025769251363673 -0.0076681971325558 -0.0027077743740608 --0.0240407742549480 --0.0026819613304890 --0.0098849275023325 -0.0210343617544900 --0.0134695444123310 -0.0053357724476678 --0.0270471270568031 -0.0056100658552241 -0.0264514172527268 --0.0211250871555416 -0.0151618627768453 --0.0165751123630427 -0.0103772040195573 -0.0211243175944808 --0.0114691789230379 -0.0037203868830252 -0.0000064798675256 -0.0040209235405264 -0.0181645693955742 -0.0073614419989453 --0.0066650234409180 -0.0100303636287771 --0.0185644555634388 --0.0007896541431584 --0.0059791012427664 --0.0040215375793822 -0.0203169322384012 -0.0073004473980708 -0.0054848038733274 --0.0158415125732689 --0.0060073216292796 -0.0043620448266103 -0.0043562748036438 --0.0119803766599959 -0.0109411788940009 -0.0204569132599813 --0.0132097064869472 -0.0169123476178915 -0.0248649617438109 -0.0073288627307034 -0.0128460531274666 -0.0238181280399520 -0.0204274275551321 -0.0206437946535688 --0.0133521023878376 -0.0181260168403925 --0.0015649561271290 -0.0100815100110431 --0.0163111924096407 --0.0097790709810296 --0.0217847579067841 --0.0105772297973559 --0.0117509331927451 --0.0110467783438345 -0.0241865868340919 --0.0083575349176363 --0.0093389980064177 -0.0229239340103408 --0.0128015499699003 --0.0033671812434300 -0.0056077062553237 --0.0164387571172151 -0.0263227812598018 -0.0097097010905770 -0.0022367997925866 -0.0134367252255394 -0.0112908413118156 --0.0180354435167405 -0.0032255749035406 --0.0084139517148155 --0.0072601912252097 --0.0137874365660167 --0.0121586680536941 --0.0036370122660179 --0.0194098051450574 --0.0218218728954072 --0.0064531228073920 -0.0253198273825564 -0.0242527370247739 --0.0032546524153746 -0.0031145039149536 --0.0249404546268063 -0.0191299217904150 -0.0022466428817082 --0.0232468479346574 -0.0251157051512367 -0.0138935080888208 -0.0189898435878960 --0.0188659323163765 --0.0074180171192521 --0.0146536645064452 -0.0013974949933637 -0.0226823677349699 -0.0106572489857069 --0.0009264035559906 --0.0159672033770333 -0.0117434983759188 --0.0188159341025941 --0.0191107171459837 --0.0088112089096726 --0.0042919893903490 --0.0167688363151869 -0.0013042379827633 -0.0246210205430275 --0.0156139853049326 --0.0254206288492246 -0.0212814851707421 -0.0270446512216768 --0.0160973598145986 --0.0044799278738820 --0.0268873046099917 -0.0063755905667579 -0.0262033326589179 --0.0111407355255542 --0.0198329095172985 -0.0103936694415592 -0.0236357884029944 --0.0111435602440384 -0.0175034240251334 -0.0185161047791613 --0.0034302986463094 --0.0173459465461808 --0.0226866694213822 --0.0183334854636693 --0.0148487451668135 -0.0015144582620884 --0.0160144638752439 --0.0068228855268493 --0.0249380008927295 -0.0054899652313798 --0.0059546059299436 --0.0086989881320250 -0.0148850075018806 --0.0068371809435327 -0.0225540793755766 --0.0009418323073326 -0.0082639388300346 -0.0080923816196694 -0.0057994158761989 --0.0067821991065540 -0.0252767056980276 --0.0162487466905654 -0.0038010638913092 --0.0236625524053177 --0.0162053971314599 -0.0190346301029588 -0.0038734215042787 -0.0047664125832740 -0.0105657845853608 --0.0101039827081613 -0.0250794096527909 --0.0036913552816545 -0.0007798200486042 --0.0187172189039672 -0.0126099159745840 --0.0141948927639948 --0.0091914555581946 --0.0064018731555770 -0.0188411219213274 --0.0099482392978998 -0.0099996391914364 --0.0121407215910607 --0.0078830178659410 --0.0094925558609502 --0.0064001368731157 -0.0083694872494997 -0.0166861375526239 --0.0116986854627266 --0.0004653855438334 -0.0010398183386696 --0.0137578987029134 --0.0031484638333128 --0.0027993300108242 --0.0222685814380953 --0.0112534410505532 -0.0094718714030496 -0.0043196932390529 -0.0074475582539071 -0.0147840039730254 -0.0096491028599436 -0.0154225700108286 --0.0002757169702604 --0.0128742125979137 --0.0000461792923304 --0.0068384381129170 -0.0184190588841562 --0.0222245158941248 -0.0099292670011565 --0.0057644496813374 --0.0007448423469077 -0.0265869907003080 --0.0084701920369021 --0.0031795702062750 --0.0130265585420930 --0.0225959991552878 -0.0166418888763762 -0.0143107466787569 -0.0095524701733377 -0.0101362649551659 -0.0248052514775037 -0.0302684084450165 --0.0212244874596961 -0.0279810239653519 -0.0176187239417810 -0.0098552740935522 -0.0194519110124057 --0.0170497281282413 -0.0170367090686632 -0.0096707322432444 -0.0022211685532981 --0.0264974998125634 --0.0123081366088257 --0.0233178179291474 --0.0133965579085866 --0.0179607080622565 --0.0010295448640757 -0.0205756311235817 -0.0135559609173447 -0.0014191790146494 --0.0191205058982356 --0.0096356331672718 -0.0226178086138937 --0.0129150834706869 -0.0196183935228625 -0.0029667524432529 -0.0039767570850423 --0.0269719451421531 --0.0090886214312414 --0.0131489043721370 -0.0151953611772767 --0.0172321175925679 --0.0104501089777222 -0.0158365514311908 -0.0201081351960383 -0.0130882219457078 -0.0243660950342195 -0.0086826848140411 -0.0121324611088751 --0.0258120668164944 --0.0194999120437118 --0.0185562407704495 --0.0170884154544411 --0.0145202051022121 -0.0241984846493076 -0.0263286150486206 --0.0222256956779201 -0.0213523857342847 --0.0152419731846341 -0.0237267424512233 -0.0173997029747480 -0.0154213199661642 -0.0149822525109112 -0.0154920531659180 --0.0130139818027566 --0.0199478892296197 --0.0066609261404342 --0.0160448681464499 --0.0012012411125427 -0.0051211427636588 --0.0182149164836950 -0.0160545753094671 --0.0151133925222791 --0.0089655513297889 -0.0142098619165010 -0.0200354081677910 --0.0225485868468400 --0.0073754739225412 --0.0104008492188063 -0.0143241235398410 -0.0262283184043820 -0.0240688037558946 -0.0174070567755042 -0.0212131486110277 --0.0238224523762094 --0.0064408128977818 --0.0189711364541631 -0.0128875720628164 --0.0251184925907206 --0.0138943697461573 -0.0047183329718648 --0.0113411723524218 --0.0143737378506746 --0.0061121684612285 --0.0180188326558697 --0.0161031615634589 --0.0129465068067252 --0.0216851301288642 --0.0050068704207537 --0.0209339498286528 --0.0222850073955722 -0.0105891010443396 --0.0104168262400350 -0.0103005131673324 -0.0115669467850287 --0.0201374724280150 --0.0289742356664893 -0.0050163575391066 --0.0070687591384951 -0.0253180924495363 --0.0120134693690417 -0.0125216699366729 --0.0011365380245521 --0.0136486748855051 --0.0073200215301783 --0.0121950392973585 --0.0118912148776925 --0.0038325375606203 -0.0024186054923987 -0.0085723778896805 --0.0160736382036825 -0.0086722661061478 -0.0166273467450474 --0.0077908662996980 --0.0061408701375338 -0.0055896853475461 --0.0190160192440924 -0.0170231994925055 -0.0202678720468968 --0.0253393174354422 -0.0071760214122611 --0.0164051287242687 --0.0172315441562356 --0.0166172612725730 -0.0005193987509155 -0.0057833449506745 --0.0090646305526741 -0.0151157260511907 --0.0081447329265898 -0.0072319970572181 -0.0190301934999901 --0.0046820396872567 -0.0020213356971091 --0.0294778077949530 --0.0150058670574031 -0.0014122219918294 --0.0203689555652207 --0.0039458832313976 -0.0168423399544762 --0.0146991214762292 -0.0028912599406633 -0.0241905729834576 --0.0073075142495642 -0.0165614194676545 --0.0114255742051991 --0.0219199725917693 -0.0200534609379641 -0.0004101972214836 -0.0056534539882561 --0.0066699213082372 --0.0029340469179286 --0.0114469729339170 --0.0181954399593306 --0.0252105237537627 --0.0037068276461159 -0.0020738092571566 --0.0014017247922911 -0.0258299262087514 --0.0195960885073449 --0.0136732421004739 -0.0086563127898839 --0.0118229596184431 -0.0220668407052172 --0.0023470441322680 -0.0223761880059359 -0.0094940290423852 --0.0018679170803685 -0.0070416738943848 --0.0108260727882653 -0.0070306767751040 -0.0009755937578306 -0.0233131595048421 -0.0085602354542277 -0.0296807788702112 --0.0194943662161203 --0.0218562270902451 --0.0053591813003720 --0.0192351801335163 --0.0042253195018809 --0.0166991954986740 -0.0190345961364480 --0.0078222288065852 -0.0148539398958922 --0.0109402953943518 --0.0128777750563907 --0.0205239095141436 --0.0049464288367108 -0.0048682687273549 -0.0022114803105441 -0.0202149374939958 -0.0229844005655369 --0.0218570393062679 --0.0096783983883168 -0.0143407826951510 --0.0118744929629601 -0.0027622914171357 -0.0160026647397177 -0.0046523854206474 --0.0146776687848529 --0.0171223663719877 --0.0142517306873163 -0.0109602999140684 -0.0011271323327300 -0.0229986437473148 --0.0113350844937380 --0.0119450102158669 --0.0095216362630914 --0.0216329116249700 --0.0186757143263591 --0.0146996396844963 -0.0125604230431377 --0.0001954383195180 -0.0010164082556720 --0.0240617427465202 -0.0210842318596076 -0.0225597621718832 -0.0017760931724743 --0.0058260402790775 -0.0189088144404451 --0.0029416241287025 -0.0268323562172481 -0.0222561262503344 -0.0202631587871037 -0.0095359567791072 --0.0066216911934200 --0.0009424600231349 -0.0214109088517404 -0.0112239145837225 --0.0223062819441500 --0.0166919044366705 -0.0087696639111804 --0.0098773775891652 --0.0061633288286371 --0.0221892561672759 --0.0173786060566469 --0.0110406308733333 --0.0153458790757579 --0.0255384167617771 --0.0181520880061458 --0.0049822139281959 --0.0210310932326621 -0.0172021550009131 -0.0255707231035967 --0.0019610846855937 --0.0017407995219177 -0.0069511567082596 --0.0141885212051531 -0.0101190446528492 --0.0153114430470756 -0.0052738367963569 -0.0087195576969885 --0.0021999546556721 --0.0216900506899972 -0.0126917888884564 --0.0034402530862540 -0.0164934129745563 -0.0203778618794930 --0.0176257826001247 --0.0033186212284054 -0.0242143029428185 --0.0235360669735178 --0.0008950003404859 --0.0018024416936050 -0.0193854644644328 --0.0134441853011527 -0.0268288294689884 --0.0160387540825461 --0.0223486323114380 --0.0188746900959388 -0.0231308920807415 --0.0016442070967690 --0.0238809438543974 --0.0189518177291567 -0.0092196386412943 --0.0020607403430850 --0.0165443398540873 -0.0099987618480828 --0.0257170910977278 -0.0178420441761484 --0.0162617484892061 --0.0037441396230051 -0.0244535674349451 -0.0041332503236012 --0.0045384478917687 --0.0142811387056078 --0.0024434656028777 -0.0222567577356102 --0.0224951523936894 --0.0091513731688239 -0.0083265137943444 --0.0198136469181439 -0.0078350428468048 -0.0061200423200155 --0.0013333359657149 --0.0065583683664220 --0.0015017779074034 --0.0089073701926732 -0.0211632890058263 -0.0213969414179608 -0.0138136361525773 -0.0102921899710260 -0.0252155896072709 --0.0200157292740656 --0.0079100814059175 --0.0169436057100583 -0.0259124223064375 -0.0269013612924962 -0.0140667306928361 --0.0066036720552049 -0.0081345849072731 --0.0171340476363275 --0.0137966561081384 -0.0024002160688212 -0.0212473779461457 -0.0142246458820589 -0.0048262286830941 --0.0091629776218933 -0.0113520466414272 -0.0156627636156944 --0.0175663076507452 --0.0194982222504781 --0.0249122922318152 -0.0127280170694028 -0.0058506473623601 --0.0027877510378718 -0.0120721372862177 -0.0135749216444652 --0.0109579934721803 -0.0202532632374500 --0.0023317402557771 -0.0017502546267933 --0.0289461361265164 --0.0118117483140401 -0.0110766915312121 -0.0020629087824025 -0.0065968158776028 --0.0047227247297047 -0.0135582212089713 -0.0116657751347903 -0.0250557839755909 -0.0142955682548532 -0.0059492626382418 --0.0231582585559530 -0.0249863588444934 --0.0134722317616081 --0.0102587598716470 --0.0225352988434470 --0.0062505025407488 --0.0315408658795446 --0.0029194132001685 --0.0152645073113159 -0.0209555811374320 --0.0058235674577518 --0.0148177905793521 --0.0218369189422601 --0.0122298092616993 --0.0193366434050095 --0.0009044067128389 --0.0207851646422491 -0.0267548268101918 --0.0058252438237606 -0.0038268548223840 --0.0015811851481884 -0.0186120772303864 -0.0060815419928203 -0.0260216110805523 --0.0177243826825515 --0.0122903487357623 --0.0179632039173087 --0.0160396039845791 --0.0087689719909664 -0.0157606965642732 -0.0115438581677106 -0.0133037144007398 --0.0217329883525603 -0.0023596448861998 --0.0252820582507397 -0.0146143718728576 --0.0073002240457425 -0.0073044230221961 --0.0237965961182303 --0.0229117412789216 --0.0038276595753383 --0.0086391522816969 -0.0054524876380414 -0.0063782051315719 -0.0108690149967086 -0.0146551578581743 -0.0073447786229512 --0.0106203080104737 -0.0240984760746384 --0.0090595657003228 -0.0038226420109936 -0.0111806480238273 -0.0104310639389582 --0.0172668323414913 -0.0221972031376616 -0.0023198523949346 -0.0127999113412894 -0.0224329796231858 -0.0061558108491792 -0.0047803535676826 --0.0262085911849608 -0.0139244399761247 -0.0078053185358014 --0.0043198808024834 -0.0230427018605590 -0.0232910641018591 --0.0074879225311259 --0.0024794431776583 --0.0241079094695752 --0.0226840379567316 -0.0211889595913667 --0.0174791986701232 -0.0136029901498247 -0.0226711068209738 --0.0065137661381228 -0.0183547771624813 --0.0077845532615479 --0.0040810586388027 --0.0106803163448324 --0.0172108726046213 -0.0018192858068538 --0.0247095611168281 -0.0187614268732569 -0.0174689897221700 --0.0164992022900186 -0.0002993907285690 --0.0146950142980749 --0.0126382705659663 --0.0002042497593086 -0.0236090200022682 --0.0014904371581822 -0.0228372328298264 --0.0124192562797675 -0.0264054813692115 --0.0076273403974288 --0.0208809334952081 -0.0268934234930164 --0.0131223866716643 -0.0125516780567865 -0.0155832854150930 -0.0137873382821010 -0.0069781099219221 -0.0015270456792960 -0.0086843025155847 -0.0122231262344392 --0.0114813139341756 --0.0088295510133881 -0.0198874726899216 --0.0050710508370633 -0.0157627244425779 -0.0248076218948919 -0.0053599328699760 -0.0158689637042016 -0.0208048770023908 -0.0122769751210083 -0.0093589090119085 --0.0045031446964414 --0.0109317154507817 --0.0078281789604199 -0.0084001163976606 --0.0009876973538139 --0.0168401705616855 --0.0148933260332047 -0.0233051400818339 -0.0173027774085968 --0.0168618299386728 --0.0135467825681274 --0.0253147106367879 --0.0164437658865473 -0.0140523331447435 --0.0080100963260433 -0.0133837173683430 -0.0011866503675889 -0.0155512375470242 --0.0098494899687930 -0.0242907074164913 --0.0088411272507025 --0.0120159376372246 -0.0178099275875536 -0.0054811969262213 --0.0011176973810460 --0.0058209932255556 -0.0079703165717294 -0.0258704022698211 -0.0224170852668967 --0.0249789525994817 --0.0117103610958032 -0.0016172470908809 --0.0259023755519399 -0.0154293351459133 -0.0159462049137609 --0.0079979480500256 -0.0054657694515795 -0.0071378003140981 --0.0259434403561328 -0.0096904446023784 -0.0247558855650174 -0.0083152178112349 -0.0206289098668489 --0.0185110947972519 --0.0257327724129671 --0.0027170309003478 --0.0183807356743513 -0.0061155186426678 -0.0189462268850059 --0.0039628179207499 -0.0263999116157811 -0.0207295333716607 --0.0187353413328215 -0.0150830931538794 -0.0238952172068023 --0.0250402500490620 --0.0038517376556398 --0.0203831643698046 --0.0123679907692906 -0.0077497945385043 --0.0033435033485962 --0.0164188623911716 --0.0061728644141565 -0.0064654852870650 -0.0083783032151224 --0.0027144019438132 -0.0201354014123453 --0.0094002540015549 --0.0065577646196960 -0.0138900474623738 -0.0095744487496396 --0.0213032583028774 -0.0089510914513149 -0.0178995512159343 -0.0239282789726196 -0.0031383273792736 -0.0032620838391062 -0.0042230100383267 -0.0087093505367002 -0.0057727714460048 -0.0015415131347203 --0.0109772753011512 --0.0005984727665795 -0.0144528276289443 --0.0238212944682503 -0.0067204969359762 -0.0001931978955437 --0.0224429151669938 --0.0091613893703510 --0.0178437716589847 -0.0242251622270760 --0.0133351121235716 --0.0224640680001042 -0.0267428424329441 --0.0248269190677545 -0.0215778704815280 --0.0152839381923961 --0.0085162249699782 --0.0220182137639470 --0.0153622880819927 -0.0116639148749406 --0.0124938192239126 --0.0242303494995583 --0.0238200587049157 -0.0084868954672072 --0.0253432058961700 -0.0094083645735531 -0.0234785263508913 -0.0102786831001466 --0.0231379074639846 --0.0186806655279799 -0.0239991391279501 -0.0050837527198133 --0.0209058081632969 -0.0128481872174367 -0.0158381858065304 --0.0016886665534555 -0.0229166395970860 --0.0202502809851711 -0.0172986551171576 -0.0146236255348049 -0.0145596186934333 -0.0004583210858547 -0.0231577854522075 --0.0201886429003971 --0.0230368995866972 --0.0141025915048326 --0.0195318336754935 --0.0004661418385596 --0.0193638305853516 --0.0026860878991559 --0.0068047109951757 --0.0067984628074703 --0.0202150002362860 -0.0020954537148250 --0.0099128971017901 --0.0219390483235666 --0.0003060138876135 -0.0196973322513976 -0.0027129060166141 -0.0083102971819890 --0.0197697197379776 -0.0204311770945281 --0.0267396321405247 --0.0052479209679611 -0.0096836147161152 --0.0123403728139327 -0.0254600764964355 -0.0096351635215119 --0.0074183186442611 -0.0024880488242916 -0.0127991113692117 -0.0225798267320665 -0.0028846287204724 --0.0031631487530903 -0.0267773656340839 --0.0016305172308956 -0.0075106767848399 -0.0010781505334630 --0.0187041746153795 --0.0090357862249264 -0.0051905404740849 --0.0149792269869728 -0.0175248442172870 -0.0076030277919134 -0.0144060665490437 --0.0209233750401916 --0.0159513386127933 -0.0035211248793751 -0.0084424732103922 -0.0023910894155349 --0.0212011960382294 --0.0084197919217857 -0.0228756479013511 -0.0241426261152831 -0.0187997399662704 --0.0014458825238557 --0.0052952350398471 -0.0136771384251181 --0.0227683140339507 -0.0083995389681315 --0.0218118982022016 -0.0223296612401402 -0.0279516815653371 -0.0075049738738707 -0.0305985736268671 -0.0141532168155229 --0.0176446007568503 -0.0045525696872156 --0.0234047924863452 --0.0164316423893645 --0.0199067106821083 --0.0241223875863193 --0.0193524050099492 --0.0228418616985435 --0.0107249775164352 --0.0207577676406940 --0.0092359145120583 --0.0189895160693280 -0.0131989755246222 -0.0001807541112662 -0.0229383377926695 -0.0118645497374963 -0.0141302940799172 --0.0182436654803717 -0.0203701802566860 -0.0028620339551733 --0.0212396908548801 --0.0044104141146438 -0.0184721838169898 --0.0157803310882305 -0.0097447410610605 -0.0124845795931772 -0.0217238356791734 --0.0190856546590262 -0.0120551375368906 -0.0005380729706366 --0.0088027267197287 -0.0031348593652036 --0.0203940404035481 --0.0041890699796126 -0.0113171918209725 -0.0175653188954030 -0.0022278988019756 --0.0055159206924435 --0.0166068844987757 --0.0118146671019041 -0.0111331557145128 -0.0009859233861710 -0.0110335685275417 -0.0048277831081969 -0.0066185614980177 -0.0127137298716632 -0.0132874519749194 -0.0264618884896627 -0.0207718675780107 --0.0065325548667918 -0.0027209559353438 -0.0244328651450420 -0.0209007119038961 -0.0070065222686682 --0.0036614959286873 -0.0029285526235817 -0.0246106907882676 --0.0053659253297731 -0.0124921477125821 --0.0138102218328132 -0.0167964539331187 --0.0161925294614210 --0.0166345053120670 -0.0245166600651946 -0.0033633111493953 -0.0151821610832843 --0.0120690522110902 --0.0142851290202578 --0.0020620524455191 --0.0013313044530114 -0.0158028766570307 -0.0079406190322513 -0.0197654249543627 -0.0012100450086849 --0.0176707204886469 --0.0107330229739993 -0.0011200145725821 --0.0177832231943985 --0.0260763422593679 -0.0169658893314293 --0.0193683934636807 --0.0189440673227152 -0.0060937094485086 --0.0249416713031772 --0.0128618703300186 --0.0077979886944922 --0.0153201050288750 -0.0182414676639195 -0.0266947644806453 --0.0250797095495613 --0.0196374889712919 -0.0231245796931437 -0.0240817725186582 --0.0114664972893555 --0.0231126011963885 --0.0221747493691526 --0.0152542278115349 -0.0069412096367881 -0.0029868000418762 --0.0240448149729144 --0.0128754812660933 -0.0061537404090517 --0.0220381220321920 --0.0196886044483222 --0.0179026447679425 -0.0042521862490680 --0.0002855138559270 --0.0026868795217441 --0.0210137699045768 --0.0107528385150947 --0.0193521462319146 -0.0154743957609461 --0.0216042780402099 --0.0219673523961676 --0.0127686365944157 --0.0235912132827686 -0.0073170755081015 --0.0010075742411831 -0.0093967566012548 -0.0174758261335272 -0.0255754936941205 -0.0065389596288345 --0.0145778429525829 -0.0020092319251963 --0.0052040421840401 -0.0179821086870695 -0.0052888410320362 --0.0148510800475870 --0.0062191267337265 --0.0173991876554951 --0.0228146312089688 --0.0007032540878569 --0.0098036052181299 -0.0090544237234699 --0.0030222840066871 -0.0244438919557999 -0.0064787743860985 -0.0119521323054135 --0.0017474240631642 --0.0150027144478997 -0.0123201470762861 --0.0240885156135281 -0.0108445305813928 -0.0122896018295269 --0.0137447491692246 -0.0115861391817651 -0.0015350590816156 --0.0208899667928230 --0.0174046368417888 -0.0073293706981065 -0.0198199925844686 --0.0264582651360337 -0.0182923823161836 --0.0175549086587395 --0.0148695448781063 --0.0074091121829949 -0.0065332049099556 -0.0217090974232929 -0.0028853621853172 -0.0086341931531611 -0.0060357710343818 --0.0076070095340685 -0.0212337535999936 --0.0054918384096160 -0.0151303454832211 -0.0113336605962970 --0.0174670901332277 -0.0176963089862756 --0.0000480912956947 --0.0153894442860573 -0.0053776034927462 --0.0214410253015484 -0.0115131817535580 -0.0225382214276394 -0.0193999634626967 --0.0243296985783133 -0.0075056064183772 --0.0028978319479784 -0.0048155476250145 -0.0175158639872576 -0.0213055296323984 --0.0054548781227342 -0.0116492942176170 -0.0182789412418441 --0.0095965307295863 -0.0136438738244518 --0.0069629487443513 -0.0193242658395128 -0.0128902923095392 --0.0115561317097142 --0.0036612562323987 --0.0253325631453924 --0.0075824600707392 -0.0233544297886128 --0.0099742515903462 -0.0162505217385398 -0.0067373588188358 --0.0133593619602581 -0.0197886172368751 -0.0133161695441657 -0.0235477125985655 --0.0184600013394005 -0.0130529920005291 --0.0085249780115524 --0.0050153185906516 --0.0095849322916946 -0.0077695754438180 -0.0257276481265512 --0.0152166881361087 -0.0126002610916432 -0.0082599351046692 -0.0127688450853410 -0.0191647989594114 --0.0010112691712227 -0.0069982916359429 --0.0139947047298336 -0.0262663452019758 -0.0247286948214866 --0.0017029633216388 --0.0150133160389597 -0.0035927450049999 --0.0215741002714139 --0.0206236873809343 -0.0201983108827730 --0.0205219346220776 --0.0084970286108914 --0.0141150999708153 -0.0151435504529708 -0.0020611829463128 --0.0105392267622792 --0.0232634119434568 -0.0232089088817539 --0.0114917474001520 --0.0081759826409969 --0.0239247685226530 -0.0195325097486789 --0.0165649254931282 --0.0192650411800313 --0.0126606332527548 --0.0114806211530439 -0.0232706662265888 -0.0104104411285693 --0.0002529615738327 --0.0089583413829309 --0.0100665509851922 -0.0129342292090293 --0.0117405945572761 --0.0145464948567891 --0.0156357852333997 -0.0028105668053073 -0.0027832436110577 --0.0160951831360471 -0.0186429717582664 -0.0034640870117673 -0.0258029550678899 -0.0105130129823563 --0.0039237839879481 -0.0244451892359883 --0.0135271569889009 -0.0080640229251716 --0.0170156279603559 --0.0025050831369424 --0.0179677664978671 --0.0120945939388038 -0.0072358956739226 -0.0195709233106188 --0.0033181851089118 -0.0240270192178711 --0.0169198020302514 --0.0247802050229526 --0.0256860863262160 -0.0282695173991151 --0.0243729476037315 --0.0142101710923429 --0.0139459658241641 -0.0114686463699996 -0.0158847387513599 -0.0218235572673346 --0.0066244513301607 --0.0290936519900117 -0.0115790020936267 -0.0018275733969521 -0.0218720289880106 --0.0029465313315700 --0.0087029041266689 -0.0163877239970314 --0.0014261324178386 -0.0073647095696339 --0.0110101416002475 -0.0130713386313085 --0.0074636553416041 --0.0176362215437541 --0.0167797213363210 --0.0208471955327267 --0.0188525600883785 -0.0018455696472708 -0.0063562907128516 --0.0127665942650072 --0.0002581220643931 --0.0051772230859848 --0.0099771995937403 -0.0235774701566656 --0.0050295366802799 -0.0102645231194991 -0.0240054197988456 --0.0115126218390441 -0.0263081912390168 --0.0106913455087033 --0.0143164081391905 --0.0037024434307072 --0.0165446545080663 --0.0187235119239653 -0.0123804456752800 -0.0221530775422148 --0.0318554279587426 --0.0112384882554979 -0.0087045076286584 --0.0106563917396521 -0.0080810829062711 -0.0045908601956583 --0.0332576948667892 -0.0222974915122276 -0.0181033400124161 -0.0162786830623844 --0.0244842252651818 -0.0018151573726538 -0.0049624058816256 -0.0013946922949408 -0.0106335177574537 -0.0186451627389994 --0.0144290772131486 --0.0247516287329205 --0.0239221141883389 -0.0226259519099637 --0.0115195670328727 --0.0101011512709511 -0.0104558879882653 --0.0164737887631995 -0.0259371742853356 -0.0063115188832204 -0.0080563430885887 --0.0022073875645669 -0.0024696546273278 -0.0140056954896748 -0.0125591462734443 -0.0204600046491242 --0.0139020992914475 --0.0235609008409175 -0.0074395891129090 -0.0139129644517164 --0.0100546478848068 --0.0134113107297835 --0.0057528289429634 --0.0080096772001762 --0.0219646829436666 -0.0161230567938139 -0.0048041689003487 --0.0184949924233485 -0.0218723403511243 --0.0147087030219972 -0.0062290416627963 --0.0073649412209244 --0.0241750171453204 --0.0040875442015971 --0.0091367848569377 -0.0363262385739983 --0.0051906372531754 --0.0131546402041914 --0.0155112111670918 -0.0198142707488352 --0.0060577013651770 --0.0232416874612225 --0.0253969579168947 --0.0062624982223149 --0.0252903907557907 -0.0043168490823278 --0.0155454193007985 -0.0144264668489362 --0.0205484128384107 --0.0023621907884219 -0.0056319864902606 -0.0162695887253484 -0.0178462980356989 --0.0132010092314091 --0.0272058074016910 -0.0189407335317401 --0.0011384797047700 -0.0220343449285830 -0.0010384269451237 -0.0113188466492502 -0.0132673468504682 --0.0221157869595389 --0.0075445799463578 -0.0136762275584367 --0.0106624476261989 --0.0076920974434237 --0.0098333485196792 -0.0029764188845241 --0.0162591713409692 -0.0024782964059314 --0.0180236927385180 --0.0109102983020963 -0.0123595520815785 -0.0096005833218460 --0.0065992686924553 -0.0001394669372628 --0.0157229659491264 -0.0088095102013973 -0.0219681331901258 -0.0051799052474457 --0.0064748571427398 --0.0086754957551430 --0.0046000776143593 --0.0148207791097546 --0.0166177107427640 -0.0208185023085616 -0.0261718080778477 --0.0071599509866806 --0.0202927732680011 --0.0013481608366886 --0.0028384818610357 --0.0245172802106995 --0.0252714574112762 -0.0032803619815640 --0.0172975091640447 --0.0105023933293773 --0.0226180442763478 --0.0209091501439055 -0.0212448992277898 --0.0117113151255638 --0.0182206935225386 --0.0099503963016864 --0.0226638033977915 --0.0195443241953498 -0.0089386549196138 -0.0052787034415186 -0.0151790312505901 --0.0104070911627498 -0.0152272891721746 --0.0012336330328211 -0.0138596841431303 -0.0167127738816096 -0.0104722783360372 --0.0016305286983771 -0.0058697883625696 --0.0197646382913569 --0.0142276438663169 --0.0007237960789449 --0.0085208054992844 -0.0189141180108643 --0.0104852435309057 --0.0222832792107902 -0.0060728010692527 --0.0199506907743841 --0.0057848827072966 --0.0206014538235055 --0.0148856024432327 -0.0010139855245457 -0.0191334191705794 --0.0214917875648919 --0.0082089230524475 -0.0173866238726921 -0.0026481125128113 -0.0035397055123739 -0.0147457127417400 -0.0234306812976104 --0.0082543311204874 --0.0250739015091105 -0.0010700369180211 -0.0131188694745357 -0.0034912285419586 -0.0080903684386957 -0.0201488639351129 --0.0211726339135267 -0.0164237074519848 -0.0127516617325109 --0.0164222924862159 -0.0209644136067029 --0.0128411200158743 --0.0139912782329592 -0.0086199007666391 --0.0078776483956603 --0.0073254677926962 --0.0176764125264707 -0.0206838398502527 -0.0006067140506509 --0.0195158586229969 -0.0160861680421437 -0.0101513295305040 -0.0058326255487149 -0.0260907487042503 --0.0070471677327457 --0.0130616994026353 --0.0132332346664959 -0.0031548537719236 -0.0269574468767518 -0.0081017828443850 --0.0031726695844065 --0.0230167449097588 -0.0009708928097197 --0.0025668171613542 -0.0159074316807284 --0.0075206738523802 -0.0227825756908342 --0.0210619149400166 --0.0118613589793336 --0.0141575870789201 -0.0253491057710139 --0.0104383517986216 -0.0047204714476573 -0.0032588296213791 --0.0238517090484179 --0.0273171175764132 -0.0081200560003151 --0.0030752421543097 -0.0109384377278021 --0.0094333127122846 --0.0133791622577360 --0.0045346387033103 -0.0082088128332611 -0.0039936678974568 -0.0009587226064972 --0.0098932739641713 --0.0204216070635994 --0.0040824752253792 -0.0159661721075482 -0.0138711812735916 --0.0093152122459410 -0.0006721589451992 --0.0061464395952198 --0.0066754576700972 --0.0148512723303808 -0.0068000953207554 --0.0022998947041662 --0.0228179489948510 -0.0098793176045882 -0.0140813747282661 --0.0027343591134024 -0.0027601305694110 --0.0120081588661410 -0.0096101314790620 --0.0266615884288363 -0.0055291516166398 --0.0238723049313313 --0.0129326380690898 -0.0014998870592820 --0.0233500585553346 -0.0027768666596476 -0.0107192010507907 -0.0172590185272709 -0.0031301023798477 --0.0208415568868258 --0.0194533661620976 -0.0006506404924729 --0.0041678353126302 --0.0126793286103564 -0.0034971632570352 --0.0267642305970580 --0.0162636534152869 -0.0023859079279271 -0.0103952155187494 --0.0231947563705851 --0.0011644225901271 --0.0219504867609446 -0.0167475520052147 -0.0112544526904250 -0.0190133315586312 -0.0035919598242032 --0.0166640209550071 --0.0257739307393340 --0.0238203530605170 --0.0123892932315583 -0.0175382611314799 -0.0142963083837878 -0.0072553561401232 -0.0264989862458557 -0.0016724562223667 -0.0159199144634349 -0.0013566390758085 --0.0041342669208213 -0.0057846915100358 -0.0003418893338606 --0.0236271512346827 --0.0059340573895468 --0.0204068474855542 -0.0077215622484040 --0.0121981815706283 --0.0027078518096838 -0.0122014705681661 --0.0220248029104968 --0.0071602033488082 --0.0106514902630576 --0.0178115041368240 -0.0208012327432472 -0.0091195037557073 -0.0228073940780478 --0.0244358239652995 -0.0116856634661082 -0.0009481061510448 --0.0302510563611030 --0.0127523970622144 -0.0217724235490216 -0.0092038083171169 -0.0160568669068322 -0.0123335802397542 --0.0042202240621053 -0.0256722438193095 --0.0000263599320083 -0.0001615872555299 --0.0098446809436389 -0.0264802254453833 -0.0005009759819526 --0.0037942740483502 --0.0042267559572155 -0.0190256290085297 --0.0164166204248837 -0.0022979816768889 --0.0260020708226323 --0.0126311576407920 -0.0117298065919455 --0.0235308823203143 -0.0098852262606669 -0.0258350893181090 --0.0005790124197215 --0.0259804826982287 -0.0175416758109652 -0.0040293065225001 -0.0027981849830589 -0.0013272352489915 -0.0099205751380510 --0.0036273932063529 -0.0131951562280479 --0.0267640591560160 -0.0192234073431767 --0.0175911298091806 --0.0062610997894556 -0.0178864145401431 --0.0160611420646416 --0.0040304433979705 --0.0231098570085930 --0.0111613912497364 -0.0020275971666657 -0.0057416072354775 --0.0187227267043062 -0.0232254932818851 -0.0142773077544666 --0.0230716017554892 --0.0018114468904332 -0.0230291771099257 --0.0052370690700419 -0.0090949266429119 -0.0190062292379599 --0.0123680016602422 --0.0252140581463739 -0.0000131125590171 -0.0123012877868205 --0.0011414008159983 --0.0000424129347583 -0.0262924647698728 --0.0215200139806397 -0.0010192162634234 -0.0182822521741933 -0.0166484451595216 --0.0131042494800108 -0.0091956695890171 --0.0109472860119317 --0.0145079100308718 --0.0022994354751548 -0.0196589870090607 --0.0069465999752664 -0.0259860621680633 -0.0087169903710595 -0.0213512207591330 -0.0262992905739267 -0.0168685399907670 -0.0192846093221625 -0.0208689597473719 --0.0226714263999207 --0.0206573748220629 --0.0010843106288352 -0.0082147243684824 --0.0261212007681238 -0.0168333174284498 --0.0258633350412501 -0.0049964269217687 -0.0231747723997208 --0.0166595581640268 --0.0164457769390537 -0.0165507467693402 --0.0166005737161075 -0.0176502483842694 --0.0264532499644927 -0.0253490217920770 --0.0220964573080307 --0.0187909834208742 -0.0089234847082104 -0.0054827276829542 -0.0233246433618297 --0.0320088023886584 --0.0169076327624351 -0.0098595724036614 -0.0137920130070378 -0.0149001699087007 --0.0199359131802880 -0.0174520338749243 -0.0060347482414115 --0.0030116561730763 --0.0085236789319611 -0.0227755119448010 -0.0028625579217598 --0.0141995546163667 -0.0110888405827789 -0.0224755605189410 -0.0080420641556079 --0.0014339102878643 --0.0026530647742899 -0.0231025499101912 --0.0227151226080389 -0.0229649283447485 -0.0262565930404624 --0.0145187623863736 -0.0110461757190742 -0.0231602902152217 -0.0002263888725896 --0.0022823502062323 --0.0128591765257330 --0.0209909031501594 -0.0044698807192405 -0.0154954719207173 --0.0053064496420848 --0.0028236413750265 --0.0197183655754655 --0.0002797908180479 -0.0111504803474940 --0.0173610655985604 -0.0228116080181857 --0.0129998111180329 --0.0034161666221274 --0.0057367692307001 --0.0058509286745034 --0.0268823540565413 -0.0066263054244075 -0.0024361498611632 --0.0135998651222386 -0.0037143193890076 -0.0205959630986055 --0.0039587473569595 -0.0106370670393752 -0.0169949615277379 -0.0011367465721220 --0.0145987174485674 --0.0046209607722976 -0.0080349245886306 --0.0081537186806762 -0.0009425905535612 -0.0192839132267024 -0.0029714244578414 -0.0182366412140244 --0.0120197506363203 --0.0004037593172366 --0.0073938145747186 --0.0198673566393149 --0.0244184892391461 -0.0170535394878406 -0.0224223962865367 -0.0198744955912909 --0.0166255141861807 --0.0253046311436627 -0.0264915411685190 --0.0077974741104751 --0.0160790752532903 -0.0263228891657082 --0.0173705251285988 --0.0088388318031273 --0.0264993567398170 --0.0186161917075556 --0.0207152815539610 -0.0110361249420054 --0.0202645972250490 -0.0083011797363911 --0.0283100230780800 --0.0135670175103026 -0.0037168757426447 -0.0226756943378717 -0.0194767513545138 --0.0130620879859947 -0.0140997604655013 --0.0089332923871186 --0.0079431857796963 --0.0109434360242310 -0.0050268523038467 -0.0024217732347540 -0.0204445616775661 --0.0065408223488867 --0.0026762313223312 -0.0232168106409765 -0.0253855454939854 --0.0139846729549337 -0.0051433478401574 -0.0185533509640942 --0.0084036374179598 --0.0102475215883120 -0.0092863321239268 -0.0242965599417870 --0.0251130984714471 -0.0064517058843997 -0.0172747677942267 -0.0106109236403443 -0.0265582937235056 -0.0265564572531999 -0.0000701019978918 -0.0137759657316986 --0.0002813502479210 --0.0136023952687637 --0.0027110880861318 --0.0095000111183264 -0.0052078672676517 -0.0004763942541288 --0.0015756037488042 -0.0184702848824460 --0.0026164016995310 -0.0011464025371413 -0.0083711573014835 -0.0230960345708364 --0.0133156688215127 --0.0251246008289150 --0.0105362654623834 -0.0150425954471409 --0.0132175787191393 --0.0081702366317568 --0.0127298842705907 -0.0236106472089976 -0.0115018422434700 --0.0216910042819230 --0.0242691428547290 -0.0137861056019568 -0.0185142707843335 --0.0051021938986578 --0.0149744123437211 --0.0022617847352161 -0.0206888863559600 --0.0163972299421140 --0.0224452828067931 -0.0196497261006893 --0.0077384783429631 -0.0132138424197032 -0.0150937244617484 -0.0085672605875216 -0.0122415120395085 -0.0157759066036375 --0.0033452370462080 -0.0073322680561496 -0.0006277611375481 --0.0276870340663593 -0.0224414269544086 --0.0003535702517576 -0.0213448342535823 --0.0192938820432564 -0.0076521076348160 -0.0034895520645824 -0.0049336736022698 -0.0166027747742970 -0.0247961769333059 -0.0118414648988174 --0.0052732167047215 -0.0193053617905619 --0.0164277453684467 -0.0101242542780903 --0.0187956025881013 -0.0048360440871095 -0.0040316798342105 -0.0236178752879650 -0.0205888707639304 -0.0107638925880613 -0.0156855468963731 -0.0184781956938699 --0.0168151323809876 -0.0087036459171811 -0.0185040135298720 --0.0055060013863553 --0.0183344685883909 --0.0157159048016225 --0.0182044447087577 -0.0011792127180446 --0.0041575867377568 --0.0137786012043226 -0.0088564134956767 -0.0262423668201111 --0.0043105795157815 -0.0214000840999503 -0.0148682377705626 -0.0046892532567150 --0.0063375108420902 -0.0148488080645232 -0.0240942625965234 --0.0137992234448456 --0.0283783132990159 --0.0048180888429992 -0.0075273827629055 -0.0275203770618024 --0.0099722350616107 -0.0233679810556951 -0.0140279513956306 -0.0092374566012577 --0.0121289283851190 -0.0093109506640591 --0.0157168938737163 --0.0137582881660591 -0.0243780018016793 -0.0262918196643167 --0.0021146395814029 --0.0117926662377082 -0.0152650140565182 -0.0253132021674602 -0.0144526689215001 -0.0182833260574105 -0.0047866328295071 -0.0225917072813932 -0.0167930892061715 --0.0234167368624602 --0.0027303303863483 --0.0194465318470675 --0.0040594662514948 --0.0106240323396795 -0.0239264578438571 -0.0128539091572273 --0.0238238937998063 --0.0184944931825506 -0.0236496739602064 --0.0140613035587314 --0.0154973716656591 -0.0157540565457520 -0.0097739411307419 --0.0142923168988701 --0.0111142174524924 -0.0150094554587315 -0.0020220341110201 --0.0246161812636231 -0.0116822135038426 -0.0078732000834658 --0.0230614091980932 -0.0112066384736556 --0.0135369722659683 --0.0154320053941533 -0.0163490786862151 -0.0099529339965382 --0.0123464997569353 --0.0117642010750010 --0.0132149851924523 --0.0226854972635427 -0.0162284508276086 -0.0215309341233478 --0.0019175709441099 -0.0237608660537189 -0.0253474954600293 -0.0050596773040580 --0.0071731874943283 --0.0259811651323213 -0.0005085711539708 -0.0244261421737438 -0.0073431252560696 -0.0153928658133076 --0.0044740473850188 -0.0186155659570184 --0.0262638276282918 -%% --0.0996242233515387 --0.0817821197780310 --0.0455174544276039 --0.1114324042049003 -0.0766048232674654 --0.0439524216106873 -0.0027304161678876 --0.0317386917725348 --0.0334554406351420 --0.0546258588139816 -0.0830800107304671 -0.0319865070674455 --0.0868698181695295 -0.0725721256200354 -0.0348895423550227 -0.0979672993210382 --0.0794406289530291 --0.0955330588213792 -0.0021521349785970 --0.0379705852151622 -0.0646064385608485 --0.0968017708620578 --0.1106019399869623 --0.0507717495240567 -0.0161693594245545 --0.0531655451902914 --0.0402618007629529 -0.0606906227667691 -0.0130161147900480 --0.1021005606428112 -0.0988383062544555 --0.0371921699877359 -0.0897392598626670 --0.0442416588815535 --0.0522426252608418 --0.0949823896171889 --0.0184157832463320 --0.0980072567173928 --0.1010589184604436 --0.0286122250246738 --0.1156955790074707 -0.0097817330666166 -0.0166471378674858 --0.0225154878356736 --0.1082820578920273 --0.0262120850908840 --0.0610000122907991 --0.0096806807701121 --0.0771171568697014 -0.0919445335664225 --0.0710364313787617 --0.0489222967289398 -0.0121383580352452 -0.0885773338456361 --0.0380150773930497 -0.0588228801959581 --0.0508320051394339 --0.0204234343916550 -0.0132508904133637 --0.0635861478049636 --0.0211598745543321 -0.0857999478949351 --0.0912931078842257 --0.0202266220389991 --0.0462211363866931 --0.1271336326300125 --0.1061884309887289 --0.0107634001015808 -0.0981990457521548 --0.1209854860574763 --0.0758962251204688 --0.0260785683459919 -0.0850337271703734 --0.1048085904421392 --0.1219282780067493 -0.0731893997342861 -0.0450075746812974 -0.1008820796989350 -0.0549907244571834 --0.1111217323719918 -0.0774612577743134 --0.0186055111252823 -0.0983072419343468 --0.0456496698208664 -0.0507762605060868 --0.0913228859288330 --0.0972356980525529 -0.1048492537143617 -0.0220525306191408 --0.0330751400574861 -0.0607542331454814 --0.0087842162790798 --0.0330252830230428 --0.0462523247364146 -0.0243023746255071 --0.1002022670029692 --0.0747910459292012 -0.0673208933987902 --0.0709463046205057 --0.0586500963564134 -0.1185414748601943 --0.0797545580024285 --0.0712191451875383 -0.0361486143895155 --0.1294923110724241 -0.0458306078073747 -0.0769206847589116 -0.0335320788965017 -0.0810950189962810 --0.0240098353141223 --0.1010181437494433 --0.0037475981404372 -0.1106574445420127 --0.0504658293388195 -0.0239848214697703 -0.1246782076706689 --0.0631946345253666 --0.0519393524883510 -0.0323381988771888 -0.0020345994664599 -0.0682850170738396 --0.0899800788388185 --0.0600963845370220 -0.1017346857194354 --0.0196799238982154 --0.0295395174695756 -0.0707254538940238 --0.0008332286287597 --0.1302535569819279 --0.0837400555490177 -0.0988260401396923 -0.0761712426855129 -0.0017606171089582 -0.0717430589069526 -0.0296059740208071 -0.0229266338419653 -0.0147321949071016 --0.0675994756220992 -0.1117236769137300 -0.0878914364466302 -0.0279258340549578 -0.0966381811094455 -0.1016483978917747 -0.0731812025849822 --0.0385449506928364 --0.0192742387789933 -0.0668406998673063 --0.0477885780338232 -0.1138475815682988 -0.0920542151251691 -0.0902559249598058 --0.0881045886406484 -0.0233830544700254 -0.0142003895492596 -0.1226049462672931 --0.0281809397152875 -0.0462843925849212 -0.1158098787378031 --0.1270305628371781 --0.0992972430353542 -0.1215506212048056 -0.0621985853469889 -0.1026255550165789 -0.1229755556270680 --0.1125957480084335 -0.0429777935525003 --0.0436219811981006 -0.0646915942342532 --0.0609462921381673 -0.0072727068175614 --0.0125084823620952 -0.0860216770824451 --0.0473254777053108 --0.0849340208701452 --0.1010218530023032 -0.0234041273680978 --0.0857571690238310 --0.1008787010606095 -0.0590569775313079 -0.0763082342015973 --0.0447611169935454 --0.1123711461379975 -0.0323733047508968 -0.0138166227934286 -0.0408139237853330 -0.0937771641998500 -0.0559064074344851 -0.0117843657576928 -0.0182272495679219 -0.0815899188363977 --0.0313239410401142 --0.0088204963097987 -%% -0.0000024309959634 -0.0000011940519482 -0.0000001835964163 -0.0000108914375019 -0.0000015824130228 --0.0000112183862325 --0.0000003048377791 --0.0000032240606776 --0.0000014808618573 --0.0000058013332860 -0.0000046067771100 --0.0000079444806809 -0.0000016193699661 --0.0000043251616924 -0.0000018027826634 -0.0000000850751456 --0.0000228687501904 --0.0000138252445695 --0.0000216209120993 -0.0000081005109307 --0.0000030817482935 --0.0000001779390965 --0.0000008644527965 -0.0000041928362689 --0.0000053264952537 -0.0000433187601799 --0.0000031216279523 -0.0000074869803423 --0.0000059398079659 -0.0000040586353165 --0.0000021404250008 -0.0000002646219662 --0.0000000183310864 --0.0000000635114084 -0.0000013310358376 --0.0000014806401489 -0.0000312406515020 -0.0000190399625647 -0.0000024094945359 --0.0000087874416011 -0.0000121746326526 -0.0000032995718352 -0.0000036567540018 --0.0000137894573085 --0.0000043481944107 --0.0000024287213155 -0.0000017102711078 --0.0000059164248252 --0.0000066574534314 -0.0000008885581472 -0.0000002993277631 --0.0000371986149118 --0.0000035217156887 --0.0000154233341633 --0.0000072709602701 -0.0000208477681882 -0.0000123386416501 -0.0000000259503844 --0.0000050702074382 --0.0000008393952697 --0.0000163966484635 -0.0000006453034441 --0.0000094373978362 --0.9999999958668438 -%% --0.1291860857293672 --0.1661243489694474 --0.0109893322364429 --0.0904286424884022 -0.0266196518153837 --0.1236332889001019 --0.0004742635525526 -0.1842010831345166 --0.0148344529531679 --0.0222432251069605 -0.2180704823748636 --0.0762323941389193 -0.1817535051708827 --0.0277200797700905 -0.1046528476424183 -0.0783089095366353 --0.1569878709889131 -0.0676528919360666 --0.0809013576661838 --0.0713090379014212 --0.0269990306639233 -0.1512114058392098 --0.1690754419472432 -0.1994093671051502 -0.0811495839896686 --0.0873706577845418 -0.0003474412823032 -0.1976319650195778 -0.1179921460420619 -0.0291047138411761 --0.1705519894640977 --0.0570983721268356 -0.1179423017022843 -0.0701383897200756 --0.1407872467453951 --0.1184027538871611 -0.0000295658419040 --0.1997738049680240 --0.1332803993448991 -0.1848835315203122 --0.0691583324942884 -0.0242693473945267 -0.2040966885869867 -0.0025209169134761 --0.1747364665414304 --0.0724595107049931 --0.0831161040256126 --0.0390092000074772 --0.0257426019140296 -0.1979944816170387 -0.1877451150684942 --0.1212929783019899 -0.1520626153089170 --0.2487334851015169 -0.0749656685321286 -0.0209108556652802 --0.0324820934238170 -0.1560181358291263 -0.0337530990901357 --0.2494894964489852 -0.0222917406317489 --0.0703419110163263 -0.1837842278782003 --0.1211776786853548 -%% -0.5005328769699818 -0.0744359889193578 --0.8625115202858165 diff --git a/examples/machsuite/backprop/check.data.old b/examples/machsuite/backprop/check.data.old deleted file mode 100644 index 430967a855..0000000000 --- a/examples/machsuite/backprop/check.data.old +++ /dev/null @@ -1,5257 +0,0 @@ -%% -0.0000000033101436 -0.0000000015479249 -0.0000000001004358 -0.0000000000364163 -0.0000000000407159 -0.0000014497376937 -0.0000003035337987 -0.0000011983070851 -0.0000010490761193 -0.0000016367837014 -0.0000000132466512 -0.0000000126750943 -0.0000000048075421 -0.0000000018395992 -0.0000000004864273 -0.0000000000281399 -0.0000000201896963 --0.0000000000730134 -0.0000001272024342 -0.0000003213899017 -0.0000142248587956 -0.0000004476003093 -0.0000002151130794 -0.0000000041574232 -0.0000000160759547 -0.0000000011784375 -0.0000000006160755 -0.0000000002257905 -0.0000000000215129 -0.0000000000224720 --0.0000000000132671 -0.0000008242153168 -0.0000117506327550 -0.0000005455789965 -0.0000001210125333 -0.0000001299767681 -0.0000000509761169 -0.0000000501245280 -0.0000000008920892 -0.0000000006712727 -0.0000000011497495 -0.0000000002020437 -0.0000000000685082 --0.0000000001135434 -0.0000003899036725 -0.0000381553882461 -0.0000000346940674 -0.0000001435625174 -0.0000000194364549 -0.0000000492566898 -0.0000000141491509 -0.0000000004145226 -0.0000000015308925 --0.0000000001459076 -0.0000000000778971 -0.0000000000720425 -0.0115611891961562 -0.0000000659418916 -0.0000030881932846 -0.0000001015246746 -0.0000010529318327 -0.0000000431489449 -0.0000000150811733 -0.0000000068133704 -0.0000000004191571 -0.0000000001960107 -0.0000000000127180 -0.0000000000046113 -0.0000000000051558 -0.0000001835774978 -0.0000000384359016 -0.0000001517393231 -0.0000001328424924 -0.0000002072627321 -0.0000000016773980 -0.0000000016050227 -0.0000000006087698 -0.0000000002329449 -0.0000000000615953 -0.0000000000035633 -0.0000000025565824 --0.0000000000092455 -0.0000000161073998 -0.0000000406969856 -0.0000018012652850 -0.0000000566787668 -0.0000000272393510 -0.0000000005264465 -0.0000000020356670 -0.0000000001492232 -0.0000000000780124 -0.0000000000285914 -0.0000000000027241 -0.0000000000028456 --0.0000000000016800 -0.0000001043688015 -0.0000014879600416 -0.0000000690856074 -0.0000000153235840 -0.0000000164587054 -0.0000000064550072 -0.0000000063471719 -0.0000000001129635 -0.0000000000850020 -0.0000000001455905 -0.0000000000255844 -0.0000000000086751 --0.0000000000143778 -0.0000000493727524 -0.0000048315434808 -0.0000000043932427 -0.0000000181790451 -0.0000000024612009 -0.0000000062372793 -0.0000000017916796 -0.0000000000524902 -0.0000000001938539 --0.0000000000184760 -0.0000000000098640 -0.0000000000091226 -0.0014639711678757 -0.0000000083500950 -0.0000003910519803 -0.0000000128558727 -0.0000001333307111 -0.0000000054638674 -0.0000000019096998 -0.0000000008627639 -0.0000000005796344 -0.0000000002710548 -0.0000000000175872 -0.0000000000063768 -0.0000000000071297 -0.0000002538614621 -0.0000000531513627 -0.0000002098338134 -0.0000001837021953 -0.0000002866147651 -0.0000000023196018 -0.0000000022195172 -0.0000000008418417 -0.0000000003221295 -0.0000000000851776 -0.0000000000049275 -0.0000000035353884 --0.0000000000127853 -0.0000000222742335 -0.0000000562781189 -0.0000024908928358 -0.0000000783786401 -0.0000000376681331 -0.0000000007280003 -0.0000000028150367 -0.0000000002063544 -0.0000000001078801 -0.0000000000395378 -0.0000000000037671 -0.0000000000039350 --0.0000000000023232 -0.0000001443271471 -0.0000020576362367 -0.0000000955355305 -0.0000000211903283 -0.0000000227600394 -0.0000000089263532 -0.0000000087772324 -0.0000000001562124 -0.0000000001175456 -0.0000000002013309 -0.0000000000353796 -0.0000000000119964 --0.0000000000198824 -0.0000000682754656 -0.0000066813346241 -0.0000000060752273 -0.0000000251390232 -0.0000000034034893 -0.0000000086252666 -0.0000000024776370 -0.0000000000725865 -0.0000000002680723 --0.0000000000255497 -0.0000000000136405 -0.0000000000126153 -0.0020244630502579 -0.0000000115469889 -0.0000005407690412 -0.0000000177778362 -0.0000001843773356 -0.0000000075557484 -0.0000000026408421 -0.0000000011930793 -0.0000000033532564 -0.0000000015680857 -0.0000000001017440 -0.0000000000368906 -0.0000000000412462 -0.0000014686199826 -0.0000003074872124 -0.0000012139145848 -0.0000010627399376 -0.0000016581017039 -0.0000000134191836 -0.0000000128401811 -0.0000000048701581 -0.0000000018635590 -0.0000000004927628 -0.0000000000285064 -0.0000000204526595 --0.0000000000739644 -0.0000001288591981 -0.0000003255758845 -0.0000144101177707 -0.0000004534301345 -0.0000002179147911 -0.0000000042115719 -0.0000000162853346 -0.0000000011937859 -0.0000000006240996 -0.0000000002287313 -0.0000000000217931 -0.0000000000227647 --0.0000000000134399 -0.0000008349504117 -0.0000119036803330 -0.0000005526848140 -0.0000001225886702 -0.0000001316696321 -0.0000000516400557 -0.0000000507773727 -0.0000000009037083 -0.0000000006800157 -0.0000000011647242 -0.0000000002046752 -0.0000000000694005 --0.0000000001150223 -0.0000003949820187 -0.0000386523478467 -0.0000000351459407 -0.0000001454323586 -0.0000000196896066 -0.0000000498982317 -0.0000000143334357 -0.0000000004199216 -0.0000000015508315 --0.0000000001478079 -0.0000000000789117 -0.0000000000729808 -0.0117117693430054 -0.0000000668007600 -0.0000031284158422 -0.0000001028469753 -0.0000010666456048 -0.0000000437109374 -0.0000000152775977 -0.0000000069021108 -0.0000000265865384 -0.0000000124326831 -0.0000000008066844 -0.0000000002924898 -0.0000000003270235 -0.0000116440584336 -0.0000024379343273 -0.0000096246084936 -0.0000084260095436 -0.0000131463823804 -0.0000001063949576 -0.0000001018043077 -0.0000000386134006 -0.0000000147753638 -0.0000000039069057 -0.0000000002260154 -0.0000001621603716 --0.0000000005864317 -0.0000010216693565 -0.0000025813516554 -0.0001142517833125 -0.0000035950532160 -0.0000017277535043 -0.0000000333917507 -0.0000001291194704 -0.0000000094650196 -0.0000000049482190 -0.0000000018135126 -0.0000000001727882 -0.0000000001804915 --0.0000000001065591 -0.0000066199639786 -0.0000943791797833 -0.0000043820023719 -0.0000009719530829 -0.0000010439524062 -0.0000004094319259 -0.0000004025921055 -0.0000000071651164 -0.0000000053915538 -0.0000000092346022 -0.0000000016227822 -0.0000000005502466 --0.0000000009119623 -0.0000031316431733 -0.0003064579007845 -0.0000002786571375 -0.0000011530709059 -0.0000001561104598 -0.0000003956217690 -0.0000001136436924 -0.0000000033293788 -0.0000000122958815 --0.0000000011719060 -0.0000000006256572 -0.0000000005786337 -0.0928575997909717 -0.0000005296345972 -0.0000248038684633 -0.0000008154297771 -0.0000084569783867 -0.0000003465653487 -0.0000001211295456 -0.0000000547238896 -0.0000000009293314 -0.0000000004345840 -0.0000000000281976 -0.0000000000102240 -0.0000000000114311 -0.0000004070175500 -0.0000000852178871 -0.0000003364277663 -0.0000002945307934 -0.0000004595313006 -0.0000000037190311 -0.0000000035585654 -0.0000000013497298 -0.0000000005164723 -0.0000000001365657 -0.0000000000079004 -0.0000000056683087 --0.0000000000204987 -0.0000000357124074 -0.0000000902310335 -0.0000039936685084 -0.0000001256649271 -0.0000000603935571 -0.0000000011672072 -0.0000000045133660 -0.0000000003308494 -0.0000000001729648 -0.0000000000633913 -0.0000000000060398 -0.0000000000063091 --0.0000000000037248 -0.0000002314005495 -0.0000032990200753 -0.0000001531727244 -0.0000000339745782 -0.0000000364913163 -0.0000000143116760 -0.0000000140725908 -0.0000000002504563 -0.0000000001884615 -0.0000000003227952 -0.0000000000567243 -0.0000000000192338 --0.0000000000318776 -0.0000001094664497 -0.0000107122224335 -0.0000000097404486 -0.0000000403055439 -0.0000000054568344 -0.0000000138289429 -0.0000000039724107 -0.0000000001163783 -0.0000000004298021 --0.0000000000409639 -0.0000000000218698 -0.0000000000202261 -0.0032458333136548 -0.0000000185133540 -0.0000008670181304 -0.0000000285033154 -0.0000002956133530 -0.0000000121141776 -0.0000000042340783 -0.0000000019128714 -0.0000000008957987 -0.0000000004189030 -0.0000000000271802 -0.0000000000098551 -0.0000000000110186 -0.0000003923313392 -0.0000000821430127 -0.0000003242886113 -0.0000002839033856 -0.0000004429502126 -0.0000000035848391 -0.0000000034301633 -0.0000000013010281 -0.0000000004978366 -0.0000000001316381 -0.0000000000076153 -0.0000000054637819 --0.0000000000197591 -0.0000000344238144 -0.0000000869752722 -0.0000038495654971 -0.0000001211306222 -0.0000000582144009 -0.0000000011250914 -0.0000000043505121 -0.0000000003189115 -0.0000000001667238 -0.0000000000611039 -0.0000000000058219 -0.0000000000060814 --0.0000000000035904 -0.0000002230510391 -0.0000031799831828 -0.0000001476458550 -0.0000000327486899 -0.0000000351746148 -0.0000000137952743 -0.0000000135648156 -0.0000000002414192 -0.0000000001816614 -0.0000000003111479 -0.0000000000546775 -0.0000000000185398 --0.0000000000307274 -0.0000001055166263 -0.0000103256986654 -0.0000000093889885 -0.0000000388512184 -0.0000000052599381 -0.0000000133299592 -0.0000000038290759 -0.0000000001121791 -0.0000000004142937 --0.0000000000394858 -0.0000000000210807 -0.0000000000194963 -0.0031287155324666 -0.0000000178453459 -0.0000008357339486 -0.0000000274748424 -0.0000002849468568 -0.0000000116770671 -0.0000000040813020 -0.0000000018438501 -0.0000000000766459 -0.0000000000358420 -0.0000000000023256 -0.0000000000008432 -0.0000000000009428 -0.0000000335684560 -0.0000000070282790 -0.0000000277466185 -0.0000000242911981 -0.0000000378994775 -0.0000000003067242 -0.0000000002934899 -0.0000000001113179 -0.0000000000425956 -0.0000000000112632 -0.0000000000006516 -0.0000000004674893 --0.0000000000016906 -0.0000000029453530 -0.0000000074417343 -0.0000003293744340 -0.0000000103641171 -0.0000000049809106 -0.0000000000962645 -0.0000000003722363 -0.0000000000272865 -0.0000000000142651 -0.0000000000052281 -0.0000000000004981 -0.0000000000005203 --0.0000000000003072 -0.0000000190845804 -0.0000002720841158 -0.0000000126327987 -0.0000000028020268 -0.0000000030095923 -0.0000000011803442 -0.0000000011606258 -0.0000000000206562 -0.0000000000155432 -0.0000000000266223 -0.0000000000046783 -0.0000000000015863 --0.0000000000026291 -0.0000000090281603 -0.0000008834822167 -0.0000000008033359 -0.0000000033241683 -0.0000000004500482 -0.0000000011405312 -0.0000000003276214 -0.0000000000095982 -0.0000000000354476 --0.0000000000033785 -0.0000000000018037 -0.0000000000016681 -0.0002676975789995 -0.0000000015268745 -0.0000000715066462 -0.0000000023507884 -0.0000000243804764 -0.0000000009991073 -0.0000000003492023 -0.0000000001577626 -0.0000000004478994 -0.0000000002094515 -0.0000000000135901 -0.0000000000049275 -0.0000000000055093 -0.0000001961656696 -0.0000000410715063 -0.0000001621443057 -0.0000001419516927 -0.0000002214750997 -0.0000000017924196 -0.0000000017150816 -0.0000000006505141 -0.0000000002489183 -0.0000000000658190 -0.0000000000038076 -0.0000000027318910 --0.0000000000098795 -0.0000000172119072 -0.0000000434876361 -0.0000019247825535 -0.0000000605653111 -0.0000000291071997 -0.0000000005625457 -0.0000000021752560 -0.0000000001594557 -0.0000000000833619 -0.0000000000305520 -0.0000000000029109 -0.0000000000030407 --0.0000000000017952 -0.0000001115255196 -0.0000015899915914 -0.0000000738229256 -0.0000000163743449 -0.0000000175873070 -0.0000000068976371 -0.0000000067824077 -0.0000000001207096 -0.0000000000908307 -0.0000000001555739 -0.0000000000273388 -0.0000000000092699 --0.0000000000153637 -0.0000000527583131 -0.0000051628493327 -0.0000000046944942 -0.0000000194256091 -0.0000000026299690 -0.0000000066649795 -0.0000000019145379 -0.0000000000560895 -0.0000000002071468 --0.0000000000197429 -0.0000000000105404 -0.0000000000097482 -0.0015643577662333 -0.0000000089226730 -0.0000004178669743 -0.0000000137374210 -0.0000001424734247 -0.0000000058385335 -0.0000000020406509 -0.0000000009219250 -0.0000000016886046 -0.0000000007896435 -0.0000000000512354 -0.0000000000185771 -0.0000000000207704 -0.0000007395550827 -0.0000001548417790 -0.0000006112927182 -0.0000005351654861 -0.0000008349730279 -0.0000000067575178 -0.0000000064659497 -0.0000000024524729 -0.0000000009384353 -0.0000000002481413 -0.0000000000143550 -0.0000000102993752 --0.0000000000372463 -0.0000000648898122 -0.0000001639507177 -0.0000072565344538 -0.0000002283344673 -0.0000001097357065 -0.0000000021208275 -0.0000000082008319 -0.0000000006011567 -0.0000000003142788 -0.0000000001151826 -0.0000000000109744 -0.0000000000114636 --0.0000000000067679 -0.0000004204571830 -0.0000059943534727 -0.0000002783163950 -0.0000000617321578 -0.0000000663050920 -0.0000000260044617 -0.0000000255700410 -0.0000000004550817 -0.0000000003424366 -0.0000000005865221 -0.0000000001030686 -0.0000000000349481 --0.0000000000579219 -0.0000001989016668 -0.0000194642185494 -0.0000000176984949 -0.0000000732355875 -0.0000000099151242 -0.0000000251273304 -0.0000000072179107 -0.0000000002114606 -0.0000000007809547 --0.0000000000744319 -0.0000000000397377 -0.0000000000367511 -0.0058977125787165 -0.0000000336389551 -0.0000015753808774 -0.0000000517908144 -0.0000005371324642 -0.0000000220115845 -0.0000000076933636 -0.0000000034757068 -0.0000000002419135 -0.0000000001131262 -0.0000000000073401 -0.0000000000026614 -0.0000000000029756 -0.0000001059504406 -0.0000000221830058 -0.0000000875752656 -0.0000000766690949 -0.0000001196202141 -0.0000000009680982 -0.0000000009263274 -0.0000000003513471 -0.0000000001344425 -0.0000000000355493 -0.0000000000020565 -0.0000000014755133 --0.0000000000053360 -0.0000000092962706 -0.0000000234879743 -0.0000010395876736 -0.0000000327117451 -0.0000000157209979 -0.0000000003038348 -0.0000000011748707 -0.0000000000861231 -0.0000000000450243 -0.0000000000165013 -0.0000000000015722 -0.0000000000016423 --0.0000000000009696 -0.0000000602357077 -0.0000008587655016 -0.0000000398722673 -0.0000000088438971 -0.0000000094990248 -0.0000000037254614 -0.0000000036632251 -0.0000000000651961 -0.0000000000490583 -0.0000000000840265 -0.0000000000147659 -0.0000000000050067 --0.0000000000082980 -0.0000000284951312 -0.0000027884907826 -0.0000000025355287 -0.0000000104919061 -0.0000000014204645 -0.0000000035998013 -0.0000000010340551 -0.0000000000302943 -0.0000000001118814 --0.0000000000106633 -0.0000000000056929 -0.0000000000052650 -0.0008449204946245 -0.0000000048191976 -0.0000002256928551 -0.0000000074196754 -0.0000000769508722 -0.0000000031534322 -0.0000000011021696 -0.0000000004979380 -0.0000000007808299 -0.0000000003651401 -0.0000000000236918 -0.0000000000085902 -0.0000000000096045 -0.0000003419786521 -0.0000000716005935 -0.0000002826686811 -0.0000002474665861 -0.0000003861009818 -0.0000000031247528 -0.0000000029899284 -0.0000000011340512 -0.0000000004339431 -0.0000000001147434 -0.0000000000066379 -0.0000000047625478 --0.0000000000172231 -0.0000000300057846 -0.0000000758126700 -0.0000033555034904 -0.0000001055844455 -0.0000000507430333 -0.0000000009806947 -0.0000000037921576 -0.0000000002779817 -0.0000000001453261 -0.0000000000532617 -0.0000000000050747 -0.0000000000053009 --0.0000000000031296 -0.0000001944241667 -0.0000027718569837 -0.0000001286966526 -0.0000000285456493 -0.0000000306602253 -0.0000000120247577 -0.0000000118238766 -0.0000000002104350 -0.0000000001583465 -0.0000000002712145 -0.0000000000476601 -0.0000000000161604 --0.0000000000267838 -0.0000000919743849 -0.0000090004752580 -0.0000000081839846 -0.0000000338649656 -0.0000000045848658 -0.0000000116191622 -0.0000000033376437 -0.0000000000977818 -0.0000000003611223 --0.0000000000344181 -0.0000000000183752 -0.0000000000169941 -0.0027271691390361 -0.0000000155550341 -0.0000007284739726 -0.0000000239486592 -0.0000002483761338 -0.0000000101784060 -0.0000000035574985 -0.0000000016072062 -0.0000002850268226 -0.0000001332873008 -0.0000000086482374 -0.0000000031357010 -0.0000000035059282 -0.0001248326985218 -0.0000261364130579 -0.0001031827397061 -0.0000903328948896 -0.0001409386680492 -0.0000011406306174 -0.0000010914154658 -0.0000004139634584 -0.0000001584025307 -0.0000000418848395 -0.0000000024230476 -0.0000017384760553 --0.0000000062869704 -0.0000109530318400 -0.0000276739501795 -0.0012248606955493 -0.0000385415614679 -0.0000185227598642 -0.0000003579836216 -0.0000013842536003 -0.0000001014718139 -0.0000000530484675 -0.0000000194421599 -0.0000000018524136 -0.0000000019349989 --0.0000000011423899 -0.0000709707849956 -0.0010118128283073 -0.0000469782160099 -0.0000104200372442 -0.0000111919203665 -0.0000043894050161 -0.0000043160770809 -0.0000000768152078 -0.0000000578013377 -0.0000000990015724 -0.0000000173973926 -0.0000000058990391 --0.0000000097768928 -0.0000335734717181 -0.0032854495669690 -0.0000029874051417 -0.0000123617508003 -0.0000016736165981 -0.0000042413500757 -0.0000012183421566 -0.0000000356933375 -0.0000001318206931 --0.0000000125636751 -0.0000000067074954 -0.0000000062033702 -0.9955003941554625 -0.0000056780646004 -0.0002659153465885 -0.0000087419938490 -0.0000906648891689 -0.0000037154299774 -0.0000012985959124 -0.0000005866794735 -%% --0.0159766908980595 --0.0159766876717542 --0.0159766871112941 --0.0159766876713955 --0.0159766875753671 --0.0159767089416718 --0.0159766877463526 --0.0160073250551973 --0.0159766877859469 --0.0159767651699631 --0.0159766882632052 --0.0159766885463628 --0.0159766870974960 --0.0159766877904846 --0.0159766906525718 --0.0159766877743875 --0.0159766869394323 --0.0159766871146967 --0.0159766874968795 --0.0159766870993232 --0.0159766905137102 --0.0159731495537249 --0.0159766882173568 --0.0159766944097071 --0.0159766906980414 --0.0159766877812873 --0.0155842566281400 --0.0159766869507633 --0.0159766869351870 --0.0159766873750173 --0.0159766897088521 --0.0159766869387253 --0.0159766881653938 --0.0159766897209257 --0.0159766877423484 --0.0159766878374504 --0.0159766869182186 --0.0160329173160141 --0.0159766869951602 --0.0159766869277664 --0.0159766898732550 --0.0159766991435967 --0.0156370520787302 --0.0159767021332008 --0.0159766869554105 --0.0159766869971443 --0.0159766869084713 --0.0159766873148399 --0.0159766876933821 --0.0162183547488910 --0.0159766877861922 --0.0159768097115938 --0.0159766869400880 --0.0159766869770068 --0.0159766904997772 --0.0159766877919417 --0.0159766897214034 --0.0159766872393662 --0.0159767053335342 --0.0159766894612017 --0.0159766877696968 --0.0159766904262806 --0.0159766877936930 --0.0159766909348899 --0.0159770092363493 --0.0159770060099797 --0.0159770054495085 --0.0159770060096210 --0.0159770059135907 --0.0159770272803211 --0.0159770060845796 --0.0160076440039583 --0.0159770061241747 --0.0159770835097330 --0.0159770066014425 --0.0159770068846057 --0.0159770054357100 --0.0159770061287124 --0.0159770089908567 --0.0159770061126150 --0.0159770052776432 --0.0159770054529111 --0.0159770058351015 --0.0159770054375373 --0.0159770088519923 --0.0159734678214435 --0.0159770065555932 --0.0159770127480669 --0.0159770090363272 --0.0159770061195150 --0.0155845671461224 --0.0159770052889745 --0.0159770052733978 --0.0159770057132369 --0.0159770080471182 --0.0159770052769362 --0.0159770065036291 --0.0159770080591920 --0.0159770060805754 --0.0159770061756792 --0.0159770052564291 --0.0160332367747729 --0.0159770053333722 --0.0159770052659771 --0.0159770082115244 --0.0159770174820508 --0.0156373636487996 --0.0159770204717145 --0.0159770052936217 --0.0159770053353563 --0.0159770052466816 --0.0159770056530583 --0.0159770060316080 --0.0162186779030259 --0.0159770061244200 --0.0159771280522513 --0.0159770052782989 --0.0159770053152184 --0.0159770088380591 --0.0159770061301696 --0.0159770080596697 --0.0159770055775831 --0.0159770236721116 --0.0159770077994628 --0.0159770061079242 --0.0159770087645610 --0.0159770061319209 --0.0159770092731804 --0.0159772706058828 --0.0159772673794604 --0.0159772668189800 --0.0159772673791017 --0.0159772672830699 --0.0159772886501502 --0.0159772674540615 --0.0160079058751740 --0.0159772674936573 --0.0159773448804829 --0.0159772679709329 --0.0159772682541007 --0.0159772668051813 --0.0159772674981951 --0.0159772703603862 --0.0159772674820974 --0.0159772666471119 --0.0159772668223827 --0.0159772672045793 --0.0159772668070087 --0.0159772702215196 --0.0159737291329823 --0.0159772679250829 --0.0159772741176579 --0.0159772704058575 --0.0159772674889975 --0.0155848220892948 --0.0159772666584434 --0.0159772666428665 --0.0159772670827127 --0.0159772694166323 --0.0159772666464049 --0.0159772678731179 --0.0159772694287063 --0.0159772674500572 --0.0159772675451626 --0.0159772666258974 --0.0160334990651052 --0.0159772667028418 --0.0159772666354456 --0.0159772695810411 --0.0159772788517194 --0.0156376194564929 --0.0159772818414320 --0.0159772666630907 --0.0159772667048260 --0.0159772666161498 --0.0159772670225332 --0.0159772674010891 --0.0162189432303109 --0.0159772674939026 --0.0159773894237306 --0.0159772666477676 --0.0159772666846877 --0.0159772702075861 --0.0159772674996523 --0.0159772694291840 --0.0159772669470567 --0.0159772850418816 --0.0159772691689728 --0.0159772674774065 --0.0159772701340868 --0.0159772675014036 --0.0159772706427145 --0.0159772821689778 --0.0159772789425530 --0.0159772783820722 --0.0159772789421943 --0.0159772788461624 --0.0159773002132582 --0.0159772790171542 --0.0160079174604442 --0.0159772790567500 --0.0159773564436316 --0.0159772795340260 --0.0159772798171940 --0.0159772783682736 --0.0159772790612878 --0.0159772819234810 --0.0159772790451901 --0.0159772782102041 --0.0159772783854749 --0.0159772787676718 --0.0159772783701009 --0.0159772817846143 --0.0159737406935138 --0.0159772794881759 --0.0159772856807555 --0.0159772819689523 --0.0159772790520902 --0.0155848333683193 --0.0159772782215355 --0.0159772782059586 --0.0159772786458052 --0.0159772809797264 --0.0159772782094970 --0.0159772794362109 --0.0159772809918004 --0.0159772790131499 --0.0159772791082554 --0.0159772781889895 --0.0160335106689011 --0.0159772782659340 --0.0159772781985377 --0.0159772811441354 --0.0159772904148204 --0.0156376307737341 --0.0159772934045351 --0.0159772782261828 --0.0159772782679182 --0.0159772781792419 --0.0159772785856255 --0.0159772789641817 --0.0162189549683410 --0.0159772790569953 --0.0159774009869116 --0.0159772782108598 --0.0159772782477799 --0.0159772817706808 --0.0159772790627450 --0.0159772809922781 --0.0159772785101490 --0.0159772966049870 --0.0159772807320668 --0.0159772790404993 --0.0159772816971815 --0.0159772790644963 --0.0159772822058096 --0.0159772813900014 --0.0159772781635768 --0.0159772776030960 --0.0159772781632181 --0.0159772780671862 --0.0159772994342809 --0.0159772782381780 --0.0160079166799841 --0.0159772782777737 --0.0159773556646516 --0.0159772787550497 --0.0159772790382177 --0.0159772775892973 --0.0159772782823116 --0.0159772811445046 --0.0159772782662139 --0.0159772774312278 --0.0159772776064987 --0.0159772779886956 --0.0159772775911247 --0.0159772810056379 --0.0159737399147089 --0.0159772787091996 --0.0159772849017789 --0.0159772811899759 --0.0159772782731139 --0.0155848326083574 --0.0159772774425593 --0.0159772774269824 --0.0159772778668289 --0.0159772802007501 --0.0159772774305208 --0.0159772786572346 --0.0159772802128240 --0.0159772782341737 --0.0159772783292791 --0.0159772774100133 --0.0160335098872014 --0.0159772774869578 --0.0159772774195615 --0.0159772803651590 --0.0159772896358436 --0.0156376300112134 --0.0159772926255582 --0.0159772774472066 --0.0159772774889419 --0.0159772774002657 --0.0159772778066493 --0.0159772781852055 --0.0162189541776618 --0.0159772782780191 --0.0159774002079294 --0.0159772774318836 --0.0159772774688037 --0.0159772809917044 --0.0159772782837688 --0.0159772802133018 --0.0159772777311728 --0.0159772958260099 --0.0159772799530905 --0.0159772782615230 --0.0159772809182051 --0.0159772782855201 --0.0159772814268331 --0.0157234901584507 --0.0157234869832698 --0.0157234864316909 --0.0157234869829168 --0.0157234868884101 --0.0157235079161414 --0.0157234870566861 --0.0157536388828166 --0.0157234870956530 --0.0157235632534316 --0.0157234875653487 --0.0157234878440192 --0.0157234864181114 --0.0157234871001188 --0.0157234899168530 --0.0157234870842768 --0.0157234862625524 --0.0157234864350396 --0.0157234868111662 --0.0157234864199097 --0.0157234897801918 --0.0157200049307433 --0.0157234875202268 --0.0157234936144522 --0.0157234899616021 --0.0157234870910672 --0.0153372744928160 --0.0157234862737039 --0.0157234862583744 --0.0157234866912351 --0.0157234889880876 --0.0157234862618566 --0.0157234874690871 --0.0157234889999699 --0.0157234870527454 --0.0157234871463404 --0.0157234862416748 --0.0157788256057826 --0.0157234863173972 --0.0157234862510714 --0.0157234891498854 --0.0157234982733280 --0.0153892333302411 --0.0157235012155584 --0.0157234862782774 --0.0157234863193499 --0.0157234862320820 --0.0157234866320113 --0.0157234870045550 --0.0159613245876811 --0.0157234870958945 --0.0157236070892496 --0.0157234862631977 --0.0157234862995315 --0.0157234897664796 --0.0157234871015529 --0.0157234890004400 --0.0157234865577335 --0.0157235043651788 --0.0157234887443615 --0.0157234870796604 --0.0157234896941477 --0.0157234871032763 --0.0157234901946974 --0.0159228291740265 --0.0159228259585965 --0.0159228254000257 --0.0159228259582390 --0.0159228258625344 --0.0159228471568169 --0.0159228260329435 --0.0159533600688478 --0.0159228260724043 --0.0159229031955726 --0.0159228265480539 --0.0159228268302570 --0.0159228253862740 --0.0159228260769267 --0.0159228289293663 --0.0159228260608839 --0.0159228252287432 --0.0159228254034168 --0.0159228257843113 --0.0159228253880951 --0.0159228287909728 --0.0159192997669434 --0.0159228265023601 --0.0159228326738370 --0.0159228289746827 --0.0159228260677604 --0.0155317177395531 --0.0159228252400360 --0.0159228252245122 --0.0159228256628599 --0.0159228279888278 --0.0159228252280385 --0.0159228264505721 --0.0159228280008606 --0.0159228260289528 --0.0159228261237342 --0.0159228252076010 --0.0159788660627736 --0.0159228252842832 --0.0159228252171166 --0.0159228281526765 --0.0159228373917695 --0.0155843352238734 --0.0159228403712961 --0.0159228252446675 --0.0159228252862606 --0.0159228251978865 --0.0159228256028854 --0.0159228259801515 --0.0161636784220983 --0.0159228260726488 --0.0159229475870613 --0.0159228252293967 --0.0159228252661910 --0.0159228287770868 --0.0159228260783790 --0.0159228280013367 --0.0159228255276660 --0.0159228435608418 --0.0159228277420121 --0.0159228260562090 --0.0159228287038380 --0.0159228260801243 --0.0159228292107328 --0.0157664036957137 --0.0157664005118680 --0.0157663999587839 --0.0157664005115141 --0.0157664004167495 --0.0157664215018637 --0.0157664005854847 --0.0157966346934234 --0.0157664006245579 --0.0157664769901648 --0.0157664010955353 --0.0157664013749664 --0.0157663999451673 --0.0157664006290359 --0.0157664034534567 --0.0157664006131506 --0.0157663997891839 --0.0157663999621417 --0.0157664003392948 --0.0157663999469705 --0.0157664033164226 --0.0157629089571063 --0.0157664010502903 --0.0157664071611464 --0.0157664034983279 --0.0157664006199596 --0.0153791340729621 --0.0157663998003658 --0.0157663997849944 --0.0157664002190364 --0.0157664025221568 --0.0157663997884861 --0.0157664009990111 --0.0157664025340715 --0.0157664005815333 --0.0157664006753836 --0.0157663997682493 --0.0158218901487812 --0.0157663998441783 --0.0157663997776715 --0.0157664026843961 --0.0157664118327359 --0.0154312347033524 --0.0157664147829953 --0.0157663998049517 --0.0157663998461363 --0.0157663997586303 --0.0157664001596509 --0.0157664005332113 --0.0160048871526861 --0.0157664006248000 --0.0157665209456071 --0.0157663997898309 --0.0157663998262638 --0.0157664033026730 --0.0157664006304739 --0.0157664025345429 --0.0157664000851705 --0.0157664179412109 --0.0157664022777656 --0.0157664006085217 --0.0157664032301437 --0.0157664006322021 --0.0157664037320594 --0.0157918312968791 --0.0157918281078999 --0.0157918275539240 --0.0157918281075454 --0.0157918280126280 --0.0157918491317396 --0.0157918281816353 --0.0158221110387377 --0.0157918282207715 --0.0157919047095096 --0.0157918286925083 --0.0157918289723899 --0.0157918275402854 --0.0157918282252567 --0.0157918310542316 --0.0157918282093458 --0.0157918273840505 --0.0157918275572872 --0.0157918279350483 --0.0157918275420916 --0.0157918309169765 --0.0157883309233853 --0.0157918286471903 --0.0157918347678995 --0.0157918310991751 --0.0157918282161658 --0.0154039372369541 --0.0157918273952504 --0.0157918273798543 --0.0157918278145960 --0.0157918301214301 --0.0157918273833516 --0.0157918285958284 --0.0157918301333639 --0.0157918281776774 --0.0157918282716791 --0.0157918273630822 --0.0158474072156584 --0.0157918274391336 --0.0157918273725195 --0.0157918302839309 --0.0157918394470214 --0.0154561218756842 --0.0157918424020378 --0.0157918273998438 --0.0157918274410948 --0.0157918273534476 --0.0157918277551149 --0.0157918281292776 --0.0160306992793606 --0.0157918282210140 --0.0157919487358253 --0.0157918273846986 --0.0157918274211902 --0.0157918309032047 --0.0157918282266970 --0.0157918301338361 --0.0157918276805143 --0.0157918455653456 --0.0157918298766448 --0.0157918282047094 --0.0157918308305584 --0.0157918282284279 --0.0157918313332834 --0.0156509794164375 --0.0156509762559497 --0.0156509757069233 --0.0156509762555984 --0.0156509761615290 --0.0156509970919550 --0.0156509763290263 --0.0156809886263732 --0.0156509763678129 --0.0156510521731732 --0.0156509768353350 --0.0156509771127161 --0.0156509756934066 --0.0156509763722580 --0.0156509791759578 --0.0156509763564893 --0.0156509755385675 --0.0156509757102564 --0.0156509760846425 --0.0156509756951965 --0.0156509790399290 --0.0156475103165114 --0.0156509767904220 --0.0156509828564465 --0.0156509792204998 --0.0156509763632483 --0.0152665506618079 --0.0156509755496673 --0.0156509755344087 --0.0156509759652664 --0.0156509782514903 --0.0156509755378748 --0.0156509767395189 --0.0156509782633175 --0.0156509763251039 --0.0156509764182657 --0.0156509755177865 --0.0157060587937464 --0.0156509755931584 --0.0156509755271395 --0.0156509784125393 --0.0156509874937634 --0.0153182691333969 --0.0156509904223787 --0.0156509755542196 --0.0156509755951021 --0.0156509755082380 --0.0156509759063166 --0.0156509762771364 --0.0158877131426279 --0.0156509763680532 --0.0156510958061420 --0.0156509755392098 --0.0156509755753754 --0.0156509790262803 --0.0156509763736854 --0.0156509782637855 --0.0156509758323826 --0.0156509935574244 --0.0156509780088920 --0.0156509763518943 --0.0156509789542831 --0.0156509763754009 --0.0156509794525165 --0.0159748964674722 --0.0159748932415291 --0.0159748926811320 --0.0159748932411705 --0.0159748931451529 --0.0159749145090584 --0.0159748933161191 --0.0160055271848760 --0.0159748933557090 --0.0159749707310362 --0.0159748938329138 --0.0159748941160395 --0.0159748926673354 --0.0159748933602462 --0.0159748962220120 --0.0159748933441509 --0.0159748925092895 --0.0159748926845342 --0.0159748930666740 --0.0159748926691624 --0.0159748960831660 --0.0159713555207753 --0.0159748937870705 --0.0159748999787255 --0.0159748962674765 --0.0159748933510499 --0.0155825062623853 --0.0159748925206192 --0.0159748925050446 --0.0159748929448255 --0.0159748952783983 --0.0159748925085825 --0.0159748937351133 --0.0159748952904705 --0.0159748933121154 --0.0159748934072067 --0.0159748924880781 --0.0160311165720907 --0.0159748925650111 --0.0159748924976249 --0.0159748954427827 --0.0159749047120835 --0.0156352957847245 --0.0159749077013519 --0.0159748925252658 --0.0159748925669950 --0.0159748924783319 --0.0159748928846549 --0.0159748932631546 --0.0162165331834853 --0.0159748933559543 --0.0159750152676656 --0.0159748925099451 --0.0159748925468597 --0.0159748960692346 --0.0159748933617032 --0.0159748952909482 --0.0159748928091897 --0.0159749109013260 --0.0159748950307757 --0.0159748933394607 --0.0159748959957463 --0.0159748933634542 --0.0159748965042984 --0.0159749989833526 --0.0159749957573890 --0.0159749951969884 --0.0159749957570304 --0.0159749956610122 --0.0159750170250535 --0.0159749958319796 --0.0160056298954425 --0.0159749958715697 --0.0159750732473887 --0.0159749963487775 --0.0159749966319050 --0.0159749951831917 --0.0159749958761069 --0.0159749987378909 --0.0159749958600115 --0.0159749950251448 --0.0159749952003906 --0.0159749955825329 --0.0159749951850188 --0.0159749985990440 --0.0159714580141489 --0.0159749963029339 --0.0159750024946283 --0.0159749987833557 --0.0159749958669106 --0.0155826062830253 --0.0159749950364746 --0.0159749950208999 --0.0159749954606836 --0.0159749977942712 --0.0159749950244378 --0.0159749962509764 --0.0159749978063435 --0.0159749958279759 --0.0159749959230677 --0.0159749950039333 --0.0160312194452890 --0.0159749950808667 --0.0159749950134801 --0.0159749979586567 --0.0159750072280164 --0.0156353961411869 --0.0159750102173038 --0.0159749950411212 --0.0159749950828506 --0.0159749949941870 --0.0159749954005126 --0.0159749957790147 --0.0162166372347366 --0.0159749958718150 --0.0159751177843012 --0.0159749950258004 --0.0159749950627152 --0.0159749985851126 --0.0159749958775639 --0.0159749978068212 --0.0159749953250469 --0.0159750134172982 --0.0159749975466470 --0.0159749958553213 --0.0159749985116237 --0.0159749958793149 --0.0159749990201791 --0.0159764204086399 --0.0159764171823893 --0.0159764166219388 --0.0159764171820307 --0.0159764170860040 --0.0159764384519462 --0.0159764172569865 --0.0160070540462161 --0.0159764172965801 --0.0159764946792839 --0.0159764177738304 --0.0159764180569831 --0.0159764166081409 --0.0159764173011177 --0.0159764201631564 --0.0159764172850209 --0.0159764164500799 --0.0159764166253413 --0.0159764170075176 --0.0159764166099681 --0.0159764200242971 --0.0159728791243667 --0.0159764177279828 --0.0159764239202280 --0.0159764202086253 --0.0159764172919206 --0.0155839927937716 --0.0159764164614107 --0.0159764164458347 --0.0159764168856575 --0.0159764192194528 --0.0159764164493729 --0.0159764176760206 --0.0159764192315261 --0.0159764172529824 --0.0159764173480828 --0.0159764164288665 --0.0160326458729764 --0.0159764165058068 --0.0159764164384142 --0.0159764193838529 --0.0159764286540373 --0.0156367873491146 --0.0159764316435907 --0.0159764164660578 --0.0159764165077909 --0.0159764164191194 --0.0159764168254811 --0.0159764172040169 --0.0162180801605595 --0.0159764172968255 --0.0159765392201592 --0.0159764164507356 --0.0159764164876537 --0.0159764200103645 --0.0159764173025749 --0.0159764192320038 --0.0159764167500087 --0.0159764348438698 --0.0159764189718065 --0.0159764172803303 --0.0159764199368691 --0.0159764173043261 --0.0159764204454697 --0.0159769565180675 --0.0159769532917085 --0.0159769527312392 --0.0159769532913499 --0.0159769531953199 --0.0159769745619799 --0.0159769533663082 --0.0160075911847525 --0.0159769534059032 --0.0159770307912066 --0.0159769538831695 --0.0159769541663317 --0.0159769527174408 --0.0159769534104409 --0.0159769562725758 --0.0159769533943436 --0.0159769525593745 --0.0159769527346418 --0.0159769531168309 --0.0159769527192681 --0.0159769561337118 --0.0159734151148288 --0.0159769538373203 --0.0159769600297736 --0.0159769563180461 --0.0159769534012435 --0.0155845157208297 --0.0159769525707057 --0.0159769525551291 --0.0159769529949667 --0.0159769553288404 --0.0159769525586675 --0.0159769537853564 --0.0159769553409141 --0.0159769533623040 --0.0159769534574075 --0.0159769525381604 --0.0160331838712546 --0.0159769526151033 --0.0159769525477084 --0.0159769554932460 --0.0159769647637419 --0.0156373120495444 --0.0159769677533957 --0.0159769525753529 --0.0159769526170874 --0.0159769525284130 --0.0159769529347883 --0.0159769533133368 --0.0162186243886245 --0.0159769534061485 --0.0159770753335781 --0.0159769525600302 --0.0159769525969496 --0.0159769561197787 --0.0159769534118981 --0.0159769553413918 --0.0159769528593134 --0.0159769709537823 --0.0159769550811858 --0.0159769533896528 --0.0159769560462808 --0.0159769534136494 --0.0159769565548985 --0.0159772009077656 --0.0159771976813572 --0.0159771971208793 --0.0159771976809985 --0.0159771975849671 --0.0159772189519542 --0.0159771977559581 --0.0160078360433048 --0.0159771977955536 --0.0159772751820414 --0.0159771982728272 --0.0159771985559938 --0.0159771971070807 --0.0159771978000914 --0.0159772006622701 --0.0159771977839938 --0.0159771969490120 --0.0159771971242820 --0.0159771975064769 --0.0159771971089080 --0.0159772005234040 --0.0159736594503269 --0.0159771982269773 --0.0159772044195254 --0.0159772007077411 --0.0159771977908938 --0.0155847541045125 --0.0159771969603434 --0.0159771969447665 --0.0159771973846109 --0.0159771997185203 --0.0159771969483049 --0.0159771981750126 --0.0159771997305942 --0.0159771977519538 --0.0159771978470588 --0.0159771969277976 --0.0160334291214967 --0.0159771970047416 --0.0159771969373457 --0.0159771998829284 --0.0159772091535662 --0.0156375512412180 --0.0159772121432657 --0.0159771969649907 --0.0159771970067258 --0.0159771969180500 --0.0159771973244316 --0.0159771977029858 --0.0162188724770366 --0.0159771977957989 --0.0159773197250946 --0.0159771969496677 --0.0159771969865876 --0.0159772005094706 --0.0159771978015486 --0.0159771997310719 --0.0159771972489554 --0.0159772153437013 --0.0159771994708619 --0.0159771977793030 --0.0159772004359717 --0.0159771978032999 --0.0159772009445972 --0.0159772836633895 --0.0159772804369644 --0.0159772798764836 --0.0159772804366058 --0.0159772803405738 --0.0159773017076716 --0.0159772805115657 --0.0160079189577238 --0.0159772805511614 --0.0159773579380503 --0.0159772810284375 --0.0159772813116055 --0.0159772798626849 --0.0159772805556993 --0.0159772834178927 --0.0159772805396016 --0.0159772797046154 --0.0159772798798863 --0.0159772802620832 --0.0159772798645123 --0.0159772832790260 --0.0159737421875940 --0.0159772809825874 --0.0159772871751675 --0.0159772834633640 --0.0159772805465016 --0.0155848348259950 --0.0159772797159468 --0.0159772797003699 --0.0159772801402166 --0.0159772824741380 --0.0159772797039083 --0.0159772809306224 --0.0159772824862120 --0.0159772805075614 --0.0159772806026668 --0.0159772796834009 --0.0160335121685764 --0.0159772797603453 --0.0159772796929491 --0.0159772826385470 --0.0159772919092329 --0.0156376322363518 --0.0159772948989479 --0.0159772797205942 --0.0159772797623295 --0.0159772796736532 --0.0159772800800369 --0.0159772804585932 --0.0162189564853766 --0.0159772805514068 --0.0159774024813344 --0.0159772797052711 --0.0159772797421912 --0.0159772832650925 --0.0159772805571565 --0.0159772824866897 --0.0159772800045604 --0.0159772980994001 --0.0159772822264784 --0.0159772805349107 --0.0159772831915932 --0.0159772805589078 --0.0159772837002213 --0.0159736432952889 --0.0159736400695988 --0.0159736395092457 --0.0159736400692402 --0.0159736399732302 --0.0159736613354602 --0.0159736401441830 --0.0160042716103522 --0.0159736401837698 --0.0159737175530285 --0.0159736406609371 --0.0159736409440406 --0.0159736394954502 --0.0159736401883066 --0.0159736430498480 --0.0159736401722126 --0.0159736393374166 --0.0159736395126476 --0.0159736398947575 --0.0159736394972771 --0.0159736429110129 --0.0159701026263057 --0.0159736406150975 --0.0159736468062668 --0.0159736430953089 --0.0159736401791110 --0.0155812838653749 --0.0159736393487455 --0.0159736393331721 --0.0159736397729186 --0.0159736421063083 --0.0159736393367097 --0.0159736405631443 --0.0159736421183795 --0.0159736401401797 --0.0159736402352635 --0.0159736393162069 --0.0160298589906166 --0.0159736393931339 --0.0159736393257530 --0.0159736422706798 --0.0159736515392537 --0.0156340692473943 --0.0159736545282876 --0.0159736393533917 --0.0159736393951176 --0.0159736393064615 --0.0159736397127526 --0.0159736400912226 --0.0162152610600697 --0.0159736401840151 --0.0159737620861649 --0.0159736393380722 --0.0159736393749839 --0.0159736428970826 --0.0159736401897635 --0.0159736421188572 --0.0159736396372933 --0.0159736577280107 --0.0159736418587051 --0.0159736401675228 --0.0159736428236000 --0.0159736401915144 --0.0159736433321122 --0.0159773019347608 --0.0159772987083320 --0.0159772981478505 --0.0159772987079733 --0.0159772986119413 --0.0159773199790635 --0.0159772987829333 --0.0160079372641297 --0.0159772988225291 --0.0159773762095065 --0.0159772992998057 --0.0159772995829741 --0.0159772981340518 --0.0159772988270669 --0.0159773016892637 --0.0159772988109692 --0.0159772979759821 --0.0159772981512532 --0.0159772985334506 --0.0159772981358791 --0.0159773015503967 --0.0159737604549152 --0.0159772992539556 --0.0159773054465428 --0.0159773017347350 --0.0159772988178693 --0.0155848526485596 --0.0159772979873136 --0.0159772979717366 --0.0159772984115838 --0.0159773007455079 --0.0159772979752751 --0.0159772992019905 --0.0159773007575819 --0.0159772987789290 --0.0159772988740346 --0.0159772979547676 --0.0160335305042510 --0.0159772980317121 --0.0159772979643158 --0.0159773009099171 --0.0159773101806135 --0.0156376501192958 --0.0159773131703320 --0.0159772979919609 --0.0159772980336963 --0.0159772979450199 --0.0159772983514041 --0.0159772987299607 --0.0162189750331267 --0.0159772988227744 --0.0159774207528416 --0.0159772979766378 --0.0159772980135580 --0.0159773015364633 --0.0159772988285242 --0.0159773007580596 --0.0159772982759275 --0.0159773163707878 --0.0159773004978480 --0.0159772988062783 --0.0159773014629639 --0.0159772988302755 --0.0159773019715926 --0.0159543763398674 --0.0159543731180676 --0.0159543725583903 --0.0159543731177094 --0.0159543730218152 --0.0159543943582818 --0.0159543731925619 --0.0159849677165495 --0.0159543732321009 --0.0159544505080506 --0.0159543737086927 --0.0159543739914548 --0.0159543725446113 --0.0159543732366322 --0.0159543760947225 --0.0159543732205576 --0.0159543723867684 --0.0159543725617881 --0.0159543729434371 --0.0159543725464361 --0.0159543759560548 --0.0159508399410066 --0.0159543736629083 --0.0159543798466110 --0.0159543761401286 --0.0159543732274477 --0.0155624901065957 --0.0159543723980836 --0.0159543723825290 --0.0159543728217451 --0.0159543751523208 --0.0159543723860624 --0.0159543736110178 --0.0159543751643774 --0.0159543731885633 --0.0159543732835324 --0.0159543723655843 --0.0160105242379335 --0.0159543724424185 --0.0159543723751188 --0.0159543753164941 --0.0159543845738898 --0.0156152118276232 --0.0159543875593188 --0.0159543724027243 --0.0159543724443998 --0.0159543723558506 --0.0159543727616518 --0.0159543731396653 --0.0161957027097334 --0.0159543732323458 --0.0159544949874791 --0.0159543723874232 --0.0159543724242904 --0.0159543759421413 --0.0159543732380873 --0.0159543751648545 --0.0159543726862834 --0.0159543907551830 --0.0159543749050161 --0.0159543732158734 --0.0159543758687474 --0.0159543732398361 --0.0159543763766463 --0.0159196483091053 --0.0159196450943175 --0.0159196445358583 --0.0159196450939601 --0.0159196449982746 --0.0159196662883038 --0.0159196451686497 --0.0159501731056111 --0.0159196452081026 --0.0159197223158661 --0.0159196456836572 --0.0159196459658039 --0.0159196445221094 --0.0159196452126241 --0.0159196480644940 --0.0159196451965844 --0.0159196443646100 --0.0159196445392487 --0.0159196449200671 --0.0159196445239301 --0.0159196479261281 --0.0159161196069949 --0.0159196456379725 --0.0159196518082167 --0.0159196481098012 --0.0159196452034596 --0.0155286149966923 --0.0159196443759006 --0.0159196443603798 --0.0159196447986400 --0.0159196471241433 --0.0159196443639055 --0.0159196455861949 --0.0159196471361737 --0.0159196451646598 --0.0159196452594223 --0.0159196443434720 --0.0159756740049121 --0.0159196444201389 --0.0159196443529857 --0.0159196472879592 --0.0159196565252068 --0.0155812219709467 --0.0159196595041383 --0.0159196443805311 --0.0159196444221159 --0.0159196443337595 --0.0159196447386774 --0.0159196451158682 --0.0161604494495434 --0.0159196452083470 --0.0159197666984879 --0.0159196443652633 --0.0159196444020503 --0.0159196479122449 --0.0159196452140760 --0.0159196471366497 --0.0159196446634731 --0.0159196626930469 --0.0159196468773769 --0.0159196451919105 --0.0159196478390106 --0.0159196452158210 --0.0159196483458042 --0.0077179447704959 --0.0077179432120889 --0.0077179429413691 --0.0077179432119156 --0.0077179431655309 --0.0077179534861282 --0.0077179432481223 --0.0077327420266926 --0.0077179432672476 --0.0077179806461619 --0.0077179434977784 --0.0077179436345524 --0.0077179429347041 --0.0077179432694394 --0.0077179446519176 --0.0077179432616640 --0.0077179428583544 --0.0077179429430126 --0.0077179431276189 --0.0077179429355867 --0.0077179445848430 --0.0077162341897005 --0.0077179434756321 --0.0077179464667321 --0.0077179446738808 --0.0077179432649968 --0.0075283858502035 --0.0077179428638276 --0.0077179428563038 --0.0077179430687556 --0.0077179441960713 --0.0077179428580129 --0.0077179434505323 --0.0077179442019032 --0.0077179432461881 --0.0077179432921254 --0.0077179428481075 --0.0077451038807536 --0.0077179428852727 --0.0077179428527194 --0.0077179442754831 --0.0077179487533497 --0.0075538879172160 --0.0077179501974225 --0.0077179428660723 --0.0077179428862311 --0.0077179428433992 --0.0077179430396881 --0.0077179432225358 --0.0078346756480130 --0.0077179432673661 --0.0077180021611707 --0.0077179428586711 --0.0077179428765040 --0.0077179445781130 --0.0077179432701433 --0.0077179442021339 --0.0077179430032319 --0.0077179517432843 --0.0077179440764483 --0.0077179432593982 --0.0077179445426118 --0.0077179432709892 --0.0077179447882861 --0.0158972176371468 --0.0158972144268882 --0.0158972138692157 --0.0158972144265313 --0.0158972143309806 --0.0158972355910154 --0.0158972145011156 --0.0159276994289256 --0.0158972145405130 --0.0158972915396435 --0.0158972150153976 --0.0158972152971467 --0.0158972138554862 --0.0158972145450281 --0.0158972173928801 --0.0158972145290110 --0.0158972136982087 --0.0158972138726014 --0.0158972142528832 --0.0158972138573043 --0.0158972172547091 --0.0158936939064354 --0.0158972149697772 --0.0158972211313285 --0.0158972174381235 --0.0158972145358765 --0.0155067352332910 --0.0158972137094833 --0.0158972136939845 --0.0158972141316272 --0.0158972164538542 --0.0158972136975052 --0.0158972149180726 --0.0158972164658677 --0.0158972144971313 --0.0158972145917603 --0.0158972136771005 --0.0159531644014238 --0.0158972137536594 --0.0158972136866008 --0.0158972166174394 --0.0158972258416731 --0.0155592680917285 --0.0158972288164077 --0.0158972137141074 --0.0158972137556336 --0.0158972136674017 --0.0158972140717491 --0.0158972144484085 --0.0161376795270184 --0.0158972145407571 --0.0158973358597370 --0.0158972136988611 --0.0158972137355963 --0.0158972172408455 --0.0158972145464780 --0.0158972164663430 --0.0158972139966508 --0.0158972320008236 --0.0158972162074355 --0.0158972145243436 --0.0158972171677144 --0.0158972145482205 --0.0158972176737940 --0.0159379296641191 --0.0159379264456473 --0.0159379258865481 --0.0159379264452895 --0.0159379263494943 --0.0159379476639210 --0.0159379265200646 --0.0159684894406029 --0.0159379265595627 --0.0159380037556889 --0.0159379270356623 --0.0159379273181323 --0.0159379258727834 --0.0159379265640894 --0.0159379294192274 --0.0159379265480314 --0.0159379257151035 --0.0159379258899424 --0.0159379262711972 --0.0159379258746062 --0.0159379292807030 --0.0159343969182443 --0.0159379269899252 --0.0159379331672403 --0.0159379294645866 --0.0159379265549144 --0.0155464481975323 --0.0159379257264070 --0.0159379257108685 --0.0159379261496309 --0.0159379284777991 --0.0159379257143982 --0.0159379269380883 --0.0159379284898433 --0.0159379265160702 --0.0159379266109412 --0.0159379256939413 --0.0159940195622715 --0.0159379257706961 --0.0159379257034659 --0.0159379286418028 --0.0159379378896360 --0.0155991154684576 --0.0159379408719812 --0.0159379257310429 --0.0159379257726754 --0.0159379256842177 --0.0159379260895996 --0.0159379264672227 --0.0161790067338189 --0.0159379265598075 --0.0159380481891715 --0.0159379257157576 --0.0159379257525867 --0.0159379292668038 --0.0159379265655430 --0.0159379284903199 --0.0159379260143091 --0.0159379440645441 --0.0159379282307500 --0.0159379265433521 --0.0159379291934857 --0.0159379265672900 --0.0159379297008600 --0.0159765378209877 --0.0159765345947132 --0.0159765340342585 --0.0159765345943545 --0.0159765344983271 --0.0159765558644273 --0.0159765346693109 --0.0160071716851162 --0.0159765347089048 --0.0159766120921809 --0.0159765351861586 --0.0159765354693134 --0.0159765340204605 --0.0159765347134425 --0.0159765375755023 --0.0159765346973455 --0.0159765338623983 --0.0159765340376611 --0.0159765344198402 --0.0159765340222877 --0.0159765374366420 --0.0159729965105255 --0.0159765351403107 --0.0159765413326017 --0.0159765376209715 --0.0159765347042452 --0.0155841073049574 --0.0159765338737292 --0.0159765338581531 --0.0159765342979792 --0.0159765366317917 --0.0159765338616913 --0.0159765350883481 --0.0159765366438651 --0.0159765346653068 --0.0159765347604078 --0.0159765338411848 --0.0160327637011516 --0.0159765339181257 --0.0159765338507325 --0.0159765367961930 --0.0159765460664460 --0.0156369022504893 --0.0159765490560215 --0.0159765338783763 --0.0159765339201098 --0.0159765338314376 --0.0159765342378023 --0.0159765346163409 --0.0162181993604770 --0.0159765347091502 --0.0159766566333856 --0.0159765338630540 --0.0159765338999724 --0.0159765374227092 --0.0159765347148996 --0.0159765366443428 --0.0159765341623293 --0.0159765522563243 --0.0159765363841436 --0.0159765346926549 --0.0159765373492133 --0.0159765347166508 --0.0159765378578177 --0.0159743828329127 --0.0159743796070739 --0.0159743790466949 --0.0159743796067152 --0.0159743795107008 --0.0159744008739158 --0.0159743796816615 --0.0160050125602318 --0.0159743797212501 --0.0159744570940763 --0.0159743801984394 --0.0159743804815560 --0.0159743790328987 --0.0159743797257871 --0.0159743825874605 --0.0159743797096923 --0.0159743788748579 --0.0159743790500970 --0.0159743794322244 --0.0159743790347257 --0.0159743824486189 --0.0159708420006680 --0.0159743801525977 --0.0159743863440525 --0.0159743826329235 --0.0159743797165911 --0.0155820053076633 --0.0159743788861873 --0.0159743788706132 --0.0159743793103799 --0.0159743816438773 --0.0159743788741510 --0.0159743801006421 --0.0159743816559490 --0.0159743796776579 --0.0159743797727461 --0.0159743788536472 --0.0160306011202808 --0.0159743789305777 --0.0159743788631937 --0.0159743818082564 --0.0159743910772576 --0.0156347931245082 --0.0159743940664293 --0.0159743788908338 --0.0159743789325615 --0.0159743788439014 --0.0159743792502112 --0.0159743796286987 --0.0162160117371816 --0.0159743797214954 --0.0159745016292662 --0.0159743788755135 --0.0159743789124269 --0.0159743824346880 --0.0159743797272441 --0.0159743816564267 --0.0159743791747484 --0.0159743972662999 --0.0159743813962626 --0.0159743797050023 --0.0159743823612020 --0.0159743797289950 --0.0159743828697377 --0.0159770759679930 --0.0159770727416098 --0.0159770721811363 --0.0159770727412512 --0.0159770726452205 --0.0159770940120402 --0.0159770728162101 --0.0160077108636570 --0.0159770728558053 --0.0159771502416872 --0.0159770733330752 --0.0159770736162395 --0.0159770721673378 --0.0159770728603431 --0.0159770757224993 --0.0159770728442456 --0.0159770720092703 --0.0159770721845390 --0.0159770725667309 --0.0159770721691651 --0.0159770755836344 --0.0159735345382839 --0.0159770732872257 --0.0159770794797252 --0.0159770757679700 --0.0159770728511456 --0.0155846322374019 --0.0159770720206016 --0.0159770720050249 --0.0159770724448658 --0.0159770747787569 --0.0159770720085633 --0.0159770732352614 --0.0159770747908307 --0.0159770728122058 --0.0159770729073101 --0.0159770719880561 --0.0160333037414515 --0.0159770720649995 --0.0159770719976042 --0.0159770749431638 --0.0159770842137290 --0.0156374289607559 --0.0159770872034051 --0.0159770720252489 --0.0159770720669837 --0.0159770719783086 --0.0159770723846870 --0.0159770727632383 --0.0162187456448820 --0.0159770728560507 --0.0159771947843916 --0.0159770720099261 --0.0159770720468457 --0.0159770755697011 --0.0159770728618003 --0.0159770747913085 --0.0159770723092114 --0.0159770904038156 --0.0159770745311005 --0.0159770728395548 --0.0159770754962027 --0.0159770728635516 --0.0159770760048242 --0.0159771774881299 --0.0159771742617263 --0.0159771737012492 --0.0159771742613676 --0.0159771741653363 --0.0159771955322920 --0.0159771743363270 --0.0160078125787656 --0.0159771743759225 --0.0159772517622968 --0.0159771748531954 --0.0159771751363615 --0.0159771736874506 --0.0159771743804603 --0.0159771772426347 --0.0159771743643627 --0.0159771735293821 --0.0159771737046518 --0.0159771740868462 --0.0159771736892779 --0.0159771771037689 --0.0159736360358821 --0.0159771748073456 --0.0159771809998845 --0.0159771772881057 --0.0159771743712627 --0.0155847312601080 --0.0159771735407135 --0.0159771735251367 --0.0159771739649804 --0.0159771762988863 --0.0159771735286750 --0.0159771747553809 --0.0159771763109602 --0.0159771743323227 --0.0159771744274276 --0.0159771735081677 --0.0160334056194445 --0.0159771735851117 --0.0159771735177158 --0.0159771764632942 --0.0159771857339184 --0.0156375283194256 --0.0159771887236136 --0.0159771735453607 --0.0159771735870958 --0.0159771734984201 --0.0159771739048011 --0.0159771742833549 --0.0162188487031709 --0.0159771743761678 --0.0159772963052848 --0.0159771735300378 --0.0159771735669577 --0.0159771770898355 --0.0159771743819175 --0.0159771763114379 --0.0159771738293251 --0.0159771919240445 --0.0159771760512283 --0.0159771743596719 --0.0159771770163367 --0.0159771743836688 --0.0159771775249614 --0.0159772479737893 --0.0159772447473714 --0.0159772441868918 --0.0159772447470127 --0.0159772446509810 --0.0159772660180310 --0.0159772448219724 --0.0160078831996373 --0.0159772448615681 --0.0159773222482840 --0.0159772453388431 --0.0159772456220105 --0.0159772441730932 --0.0159772448661059 --0.0159772477282930 --0.0159772448500083 --0.0159772440150240 --0.0159772441902945 --0.0159772445724906 --0.0159772441749205 --0.0159772475894265 --0.0159737065059108 --0.0159772452929931 --0.0159772514855594 --0.0159772477737642 --0.0159772448569083 --0.0155848000136904 --0.0159772440263554 --0.0159772440107785 --0.0159772444506242 --0.0159772467845404 --0.0159772440143169 --0.0159772452410282 --0.0159772467966144 --0.0159772448179681 --0.0159772449130734 --0.0159772439938095 --0.0160334763532752 --0.0159772440707538 --0.0159772440033577 --0.0159772469489490 --0.0159772562196142 --0.0156375973060256 --0.0159772592093225 --0.0159772440310027 --0.0159772440727380 --0.0159772439840619 --0.0159772443904447 --0.0159772447690001 --0.0162189202554959 --0.0159772448618134 --0.0159773667914686 --0.0159772440156797 --0.0159772440525997 --0.0159772475754931 --0.0159772448675631 --0.0159772467970921 --0.0159772443149683 --0.0159772624097676 --0.0159772465368813 --0.0159772448453174 --0.0159772475019940 --0.0159772448693144 --0.0159772480106209 --0.0159772848597227 --0.0159772816332973 --0.0159772810728165 --0.0159772816329387 --0.0159772815369067 --0.0159773029040061 --0.0159772817078986 --0.0160079201563538 --0.0159772817474943 --0.0159773591343890 --0.0159772822247704 --0.0159772825079385 --0.0159772810590178 --0.0159772817520322 --0.0159772846142259 --0.0159772817359345 --0.0159772809009483 --0.0159772810762192 --0.0159772814584161 --0.0159772810608451 --0.0159772844753591 --0.0159737433836616 --0.0159772821789203 --0.0159772883715009 --0.0159772846596972 --0.0159772817428345 --0.0155848359929062 --0.0159772809122797 --0.0159772808967028 --0.0159772813365494 --0.0159772836704711 --0.0159772809002412 --0.0159772821269553 --0.0159772836825451 --0.0159772817038943 --0.0159772817989998 --0.0159772808797337 --0.0160335133691254 --0.0159772809566782 --0.0159772808892819 --0.0159772838348801 --0.0159772931055666 --0.0156376334072211 --0.0159772960952819 --0.0159772809169270 --0.0159772809586624 --0.0159772808699861 --0.0159772812763698 --0.0159772816549261 --0.0162189576998300 --0.0159772817477397 --0.0159774036776765 --0.0159772809016040 --0.0159772809385241 --0.0159772844614256 --0.0159772817534894 --0.0159772836830228 --0.0159772812008933 --0.0159772992957343 --0.0159772834228114 --0.0159772817312436 --0.0159772843879263 --0.0159772817552407 --0.0159772848965544 --0.0159772846862048 --0.0159772814597795 --0.0159772808992986 --0.0159772814594208 --0.0159772813633889 --0.0159773027304880 --0.0159772815343807 --0.0160079199825044 --0.0159772815739765 --0.0159773589608703 --0.0159772820512526 --0.0159772823344206 --0.0159772808855000 --0.0159772815785143 --0.0159772844407080 --0.0159772815624166 --0.0159772807274304 --0.0159772809027013 --0.0159772812848983 --0.0159772808873273 --0.0159772843018412 --0.0159737432101821 --0.0159772820054025 --0.0159772881979830 --0.0159772844861793 --0.0159772815693167 --0.0155848358236362 --0.0159772807387619 --0.0159772807231849 --0.0159772811630316 --0.0159772834969532 --0.0159772807267234 --0.0159772819534375 --0.0159772835090272 --0.0159772815303764 --0.0159772816254819 --0.0159772807062159 --0.0160335131949990 --0.0159772807831604 --0.0159772807157641 --0.0159772836613622 --0.0159772929320487 --0.0156376332373795 --0.0159772959217639 --0.0159772807434092 --0.0159772807851445 --0.0159772806964682 --0.0159772811028520 --0.0159772814814082 --0.0162189575236970 --0.0159772815742218 --0.0159774035041573 --0.0159772807280861 --0.0159772807650063 --0.0159772842879078 --0.0159772815799715 --0.0159772835095049 --0.0159772810273754 --0.0159772991222163 --0.0159772832492936 --0.0159772815577258 --0.0159772842144084 --0.0159772815817228 --0.0159772847230366 --0.0159772911424547 --0.0159772879160281 --0.0159772873555470 --0.0159772879156694 --0.0159772878196375 --0.0159773091867452 --0.0159772879906294 --0.0160079264511311 --0.0159772880302251 --0.0159773654171502 --0.0159772885075014 --0.0159772887906696 --0.0159772873417483 --0.0159772880347630 --0.0159772908969578 --0.0159772880186653 --0.0159772871836787 --0.0159772873589497 --0.0159772877411468 --0.0159772873435757 --0.0159772907580910 --0.0159737496650012 --0.0159772884616513 --0.0159772946542343 --0.0159772909424291 --0.0159772880255653 --0.0155848421213333 --0.0159772871950102 --0.0159772871794333 --0.0159772876192801 --0.0159772899532027 --0.0159772871829717 --0.0159772884096863 --0.0159772899652766 --0.0159772879866251 --0.0159772880817306 --0.0159772871624642 --0.0160335196739654 --0.0159772872394087 --0.0159772871720124 --0.0159772901176117 --0.0159772993883019 --0.0156376395564074 --0.0159773023780183 --0.0159772871996575 --0.0159772872413929 --0.0159772871527165 --0.0159772875591004 --0.0159772879376569 --0.0162189640775832 --0.0159772880304705 --0.0159774099604553 --0.0159772871843345 --0.0159772872212546 --0.0159772907441575 --0.0159772880362202 --0.0159772899657544 --0.0159772874836239 --0.0159773055784720 --0.0159772897055429 --0.0159772880139744 --0.0159772906706581 --0.0159772880379715 --0.0159772911792865 --0.0158310806354878 --0.0158310774385830 --0.0158310768832303 --0.0158310774382276 --0.0158310773430743 --0.0158310985146730 --0.0158310775125017 --0.0158614356310731 --0.0158310775517351 --0.0158311542305695 --0.0158310780246443 --0.0158310783052215 --0.0158310768695579 --0.0158310775562315 --0.0158310803922372 --0.0158310775402810 --0.0158310767129346 --0.0158310768866019 --0.0158310772653019 --0.0158310768713685 --0.0158310802546410 --0.0158275715625732 --0.0158310779792138 --0.0158310841151346 --0.0158310804372924 --0.0158310775471180 --0.0154422225463122 --0.0158310767241624 --0.0158310767087280 --0.0158310771445502 --0.0158310794571174 --0.0158310767122340 --0.0158310779277242 --0.0158310794690809 --0.0158310775085340 --0.0158310776027693 --0.0158310766919142 --0.0158867946761254 --0.0158310767681547 --0.0158310767013750 --0.0158310796200221 --0.0158310888058854 --0.0154945368792922 --0.0158310917682459 --0.0158310767287672 --0.0158310767701207 --0.0158310766822557 --0.0158310770849212 --0.0158310774600138 --0.0160705422715051 --0.0158310775519782 --0.0158311983663030 --0.0158310767135844 --0.0158310767501667 --0.0158310802408350 --0.0158310775576753 --0.0158310794695543 --0.0158310770101353 --0.0158310949394155 --0.0158310792117237 --0.0158310775356331 --0.0158310801680081 --0.0158310775594106 --0.0158310806719825 --0.0142415912685602 --0.0142415883925941 --0.0142415878929936 --0.0142415883922744 --0.0142415883066736 --0.0142416073528456 --0.0142415884590921 --0.0142688989135277 --0.0142415884943869 --0.0142416574753973 --0.0142415889198205 --0.0142415891722304 --0.0142415878806937 --0.0142415884984318 --0.0142415910497296 --0.0142415884840827 --0.0142415877397939 --0.0142415878960267 --0.0142415882367088 --0.0142415878823226 --0.0142415909259467 --0.0142384344731333 --0.0142415888789507 --0.0142415943988836 --0.0142415910902617 --0.0142415884902332 --0.0138917710589210 --0.0142415877498945 --0.0142415877360096 --0.0142415881280794 --0.0142415902084869 --0.0142415877391637 --0.0142415888326302 --0.0142415902192494 --0.0142415884555227 --0.0142415885402977 --0.0142415877208838 --0.0142917121559344 --0.0142415877894704 --0.0142415877293948 --0.0142415903550375 --0.0142415986187278 --0.0139388334735602 --0.0142416012836955 --0.0142415877540370 --0.0142415877912391 --0.0142415877121949 --0.0142415880744366 --0.0142415884118735 --0.0144570133433608 --0.0142415884946055 --0.0142416971803239 --0.0142415877403784 --0.0142415877732882 --0.0142415909135267 --0.0142415884997307 --0.0142415902196752 --0.0142415880071585 --0.0142416041365099 --0.0142415899877284 --0.0142415884799013 --0.0142415908480110 --0.0142415885012918 --0.0142415913013912 --0.0158754931201038 --0.0158754899142493 --0.0158754893573420 --0.0158754899138930 --0.0158754898184733 --0.0158755110493410 --0.0158754899883749 --0.0159059330926390 --0.0158754900277182 --0.0158755669212121 --0.0158754905019513 --0.0158754907833140 --0.0158754893436313 --0.0158754900322271 --0.0158754928761722 --0.0158754900162321 --0.0158754891865695 --0.0158754893607230 --0.0158754897404831 --0.0158754893454469 --0.0158754927381908 --0.0158719742236605 --0.0158754904563936 --0.0158754966094917 --0.0158754929213535 --0.0158754900230881 --0.0154855463268938 --0.0158754891978287 --0.0158754891823511 --0.0158754896193934 --0.0158754919384345 --0.0158754891858670 --0.0158754904047599 --0.0158754919504315 --0.0158754899843962 --0.0158754900788953 --0.0158754891654903 --0.0159313631276447 --0.0158754892419442 --0.0158754891749776 --0.0158754921017953 --0.0158755013133741 --0.0155380071391973 --0.0158755042840276 --0.0158754892024464 --0.0158754892439157 --0.0158754891558048 --0.0158754895595975 --0.0158754899357402 --0.0161156250710746 --0.0158754900279620 --0.0158756111805020 --0.0158754891872211 --0.0158754892239058 --0.0158754927243461 --0.0158754900336751 --0.0158754919509062 --0.0158754894846022 --0.0158755074640747 --0.0158754916923539 --0.0158754900115711 --0.0158754926513154 --0.0158754900354152 --0.0158754931567007 --0.0159554470754596 --0.0159554438534444 --0.0159554432937296 --0.0159554438530862 --0.0159554437571856 --0.0159554650950787 --0.0159554439279436 --0.0159860404973880 --0.0159554439674853 --0.0159555212486016 --0.0159554444441090 --0.0159554447268900 --0.0159554432799498 --0.0159554439720169 --0.0159554468302984 --0.0159554439559412 --0.0159554431220963 --0.0159554432971277 --0.0159554436788022 --0.0159554432817746 --0.0159554466916214 --0.0159519104401619 --0.0159554443983216 --0.0159554505824377 --0.0159554468757075 --0.0159554439628319 --0.0155635346367009 --0.0159554431334123 --0.0159554431178567 --0.0159554435571021 --0.0159554458878336 --0.0159554431213902 --0.0159554443464276 --0.0159554458998911 --0.0159554439239448 --0.0159554440189203 --0.0159554431009108 --0.0160115987273539 --0.0159554431777501 --0.0159554431104460 --0.0159554460520178 --0.0159554553100325 --0.0156162598837753 --0.0159554582956612 --0.0159554431380533 --0.0159554431797316 --0.0159554430911765 --0.0159554434970047 --0.0159554438750436 --0.0161967895778049 --0.0159554439677303 --0.0159555657310039 --0.0159554431227512 --0.0159554431596208 --0.0159554466777070 --0.0159554439734722 --0.0159554459003681 --0.0159554434216314 --0.0159554614917390 --0.0159554456405124 --0.0159554439512568 --0.0159554466043081 --0.0159554439752211 --0.0159554471122410 --0.0159536205166425 --0.0159536172949999 --0.0159536167353498 --0.0159536172946417 --0.0159536171987521 --0.0159536385341780 --0.0159536173694905 --0.0159842104008287 --0.0159536174090276 --0.0159536946812076 --0.0159536178855962 --0.0159536181683445 --0.0159536167215716 --0.0159536174135587 --0.0159536202715096 --0.0159536173974849 --0.0159536165637364 --0.0159536167387475 --0.0159536171203779 --0.0159536167233962 --0.0159536201328487 --0.0159500842902935 --0.0159536178398141 --0.0159536240232151 --0.0159536203169135 --0.0159536174043747 --0.0155617533741551 --0.0159536165750510 --0.0159536165594972 --0.0159536169986919 --0.0159536193291538 --0.0159536165630304 --0.0159536177879261 --0.0159536193412099 --0.0159536173654921 --0.0159536174604566 --0.0159536165425533 --0.0160097656750855 --0.0159536166193837 --0.0159536165520873 --0.0159536194933191 --0.0159536287502632 --0.0156144725298168 --0.0159536317355467 --0.0159536165796914 --0.0159536166213650 --0.0159536165328201 --0.0159536169386014 --0.0159536173165965 --0.0161949351023115 --0.0159536174092725 --0.0159537391584663 --0.0159536165643911 --0.0159536166012565 --0.0159536201189359 --0.0159536174150137 --0.0159536193416869 --0.0159536168632368 --0.0159536349312549 --0.0159536190818613 --0.0159536173928009 --0.0159536200455455 --0.0159536174167624 --0.0159536205534197 --0.0159680736031751 --0.0159680703786105 --0.0159680698184528 --0.0159680703782520 --0.0159680702822755 --0.0159680916370522 --0.0159680704531687 --0.0159986912321361 --0.0159680704927416 --0.0159681478350066 --0.0159680709697425 --0.0159680712527472 --0.0159680698046621 --0.0159680704972768 --0.0159680733578199 --0.0159680704811884 --0.0159680696466837 --0.0159680698218536 --0.0159680702038301 --0.0159680698064884 --0.0159680732190332 --0.0159645341695144 --0.0159680709239188 --0.0159680771129281 --0.0159680734032649 --0.0159680704880845 --0.0155758510615862 --0.0159680696580086 --0.0159680696424407 --0.0159680700820337 --0.0159680724146094 --0.0159680696459771 --0.0159680708719838 --0.0159680724266764 --0.0159680704491667 --0.0159680705442173 --0.0159680696254814 --0.0160242696850194 --0.0159680697023815 --0.0159680696350241 --0.0159680725789235 --0.0159680818442636 --0.0156286180280335 --0.0159680848322547 --0.0159680696626533 --0.0159680697043646 --0.0159680696157394 --0.0159680700218888 --0.0159680704002267 --0.0162096070668568 --0.0159680704929868 --0.0159681923526056 --0.0159680696473391 --0.0159680696842379 --0.0159680732051077 --0.0159680704987332 --0.0159680724271538 --0.0159680699464558 --0.0159680880308614 --0.0159680721670925 --0.0159680704765002 --0.0159680731316508 --0.0159680705004835 --0.0159680736399856 --0.0159681359202507 --0.0159681326956779 --0.0159681321355189 --0.0159681326953195 --0.0159681325993427 --0.0159681539541736 --0.0159681327702363 --0.0159987536266118 --0.0159681328098094 --0.0159682101522703 --0.0159681332868114 --0.0159681335698169 --0.0159681321217281 --0.0159681328143446 --0.0159681356748949 --0.0159681327982561 --0.0159681319637493 --0.0159681321389196 --0.0159681325208971 --0.0159681321235544 --0.0159681355361078 --0.0159645964776205 --0.0159681332409876 --0.0159681394300126 --0.0159681357203401 --0.0159681328051522 --0.0155759123591724 --0.0159681319750743 --0.0159681319595063 --0.0159681323991004 --0.0159681347316820 --0.0159681319630427 --0.0159681331890524 --0.0159681347437490 --0.0159681327662343 --0.0159681328612852 --0.0159681319425470 --0.0160243321438906 --0.0159681320194473 --0.0159681319520897 --0.0159681348959966 --0.0159681441613601 --0.0156286794656917 --0.0159681471493587 --0.0159681319797189 --0.0159681320214303 --0.0159681319328049 --0.0159681323389553 --0.0159681327172942 --0.0162096699844347 --0.0159681328100545 --0.0159682546699820 --0.0159681319644047 --0.0159681320013036 --0.0159681355221824 --0.0159681328158010 --0.0159681347442265 --0.0159681322635221 --0.0159681503479735 --0.0159681344841645 --0.0159681327935679 --0.0159681354487252 --0.0159681328175513 --0.0159681359570613 --0.0159771276202287 --0.0159771243938352 --0.0159771238333598 --0.0159771243934765 --0.0159771242974455 --0.0159771456643345 --0.0159771244684356 --0.0160077626152972 --0.0159771245080310 --0.0159772018941639 --0.0159771249853024 --0.0159771252684677 --0.0159771238195613 --0.0159771245125688 --0.0159771273747343 --0.0159771244964713 --0.0159771236614933 --0.0159771238367625 --0.0159771242189557 --0.0159771238213886 --0.0159771272358689 --0.0159735861790287 --0.0159771249394528 --0.0159771311319724 --0.0159771274202052 --0.0159771245033713 --0.0155846826164911 --0.0159771236728246 --0.0159771236572478 --0.0159771240970902 --0.0159771264309888 --0.0159771236607862 --0.0159771248874883 --0.0159771264430627 --0.0159771244644314 --0.0159771245595359 --0.0159771236402790 --0.0160333555761380 --0.0159771237172227 --0.0159771236498270 --0.0159771265953962 --0.0159771358659915 --0.0156374795110981 --0.0159771388556773 --0.0159771236774719 --0.0159771237192068 --0.0159771236305314 --0.0159771240369111 --0.0159771244154637 --0.0162187980813806 --0.0159771245082763 --0.0159772464370130 --0.0159771236621490 --0.0159771236990688 --0.0159771272219356 --0.0159771245140260 --0.0159771264435404 --0.0159771239614354 --0.0159771420560983 --0.0159771261833316 --0.0159771244917804 --0.0159771271484370 --0.0159771245157773 --0.0159771276570601 --0.0159771675139017 --0.0159771642875001 --0.0159771637270234 --0.0159771642871414 --0.0159771641911102 --0.0159771855580526 --0.0159771643621008 --0.0160078025854294 --0.0159771644016963 --0.0159772417880223 --0.0159771648789688 --0.0159771651621348 --0.0159771637132248 --0.0159771644062341 --0.0159771672684067 --0.0159771643901365 --0.0159771635551564 --0.0159771637304260 --0.0159771641126202 --0.0159771637150521 --0.0159771671295410 --0.0159736260638629 --0.0159771648331191 --0.0159771710256542 --0.0159771673138777 --0.0159771643970365 --0.0155847215306720 --0.0159771635664878 --0.0159771635509110 --0.0159771639907544 --0.0159771663246589 --0.0159771635544493 --0.0159771647811544 --0.0159771663367328 --0.0159771643580965 --0.0159771644532013 --0.0159771635339420 --0.0160333956101452 --0.0159771636108859 --0.0159771635434901 --0.0159771664890667 --0.0159771757596851 --0.0156375185570557 --0.0159771787493784 --0.0159771635711350 --0.0159771636128701 --0.0159771635241944 --0.0159771639305752 --0.0159771643091287 --0.0162188385782094 --0.0159771644019416 --0.0159772863309825 --0.0159771635558121 --0.0159771635927320 --0.0159771671156076 --0.0159771644076913 --0.0159771663372105 --0.0159771638550992 --0.0159771819498073 --0.0159771660770010 --0.0159771643854456 --0.0159771670421088 --0.0159771644094426 --0.0159771675507332 --0.0159770811522159 --0.0159770779258317 --0.0159770773653580 --0.0159770779254731 --0.0159770778294424 --0.0159770991962690 --0.0159770780004320 --0.0160077160578044 --0.0159770780400273 --0.0159771554259342 --0.0159770785172973 --0.0159770788004617 --0.0159770773515595 --0.0159770780445650 --0.0159770809067222 --0.0159770780284676 --0.0159770771934920 --0.0159770773687607 --0.0159770777509528 --0.0159770773533868 --0.0159770807678572 --0.0159735397213596 --0.0159770784714478 --0.0159770846639493 --0.0159770809521929 --0.0159770780353675 --0.0155846372944820 --0.0159770772048233 --0.0159770771892466 --0.0159770776290876 --0.0159770799629795 --0.0159770771927849 --0.0159770784194834 --0.0159770799750533 --0.0159770779964278 --0.0159770780915320 --0.0159770771722777 --0.0160333089438898 --0.0159770772492212 --0.0159770771818258 --0.0159770801273864 --0.0159770893979546 --0.0156374340349416 --0.0159770923876317 --0.0159770772094705 --0.0159770772512054 --0.0159770771625302 --0.0159770775689088 --0.0159770779474602 --0.0162187509073925 --0.0159770780402726 --0.0159771999686531 --0.0159770771941477 --0.0159770772310674 --0.0159770807539239 --0.0159770780460222 --0.0159770799755310 --0.0159770774934332 --0.0159770955880433 --0.0159770797153230 --0.0159770780237767 --0.0159770806804255 --0.0159770780477735 --0.0159770811890472 --0.0159772522571613 --0.0159772490307426 --0.0159772484702628 --0.0159772490303839 --0.0159772489343522 --0.0159772703014079 --0.0159772491053436 --0.0160078874912485 --0.0159772491449393 --0.0159773265316760 --0.0159772496222144 --0.0159772499053819 --0.0159772484564642 --0.0159772491494772 --0.0159772520116650 --0.0159772491333795 --0.0159772482983950 --0.0159772484736655 --0.0159772488558617 --0.0159772484582915 --0.0159772518727985 --0.0159737107883304 --0.0159772495763644 --0.0159772557689324 --0.0159772520571362 --0.0159772491402795 --0.0155848041915345 --0.0159772483097264 --0.0159772482941495 --0.0159772487339953 --0.0159772510679121 --0.0159772482976879 --0.0159772495243995 --0.0159772510799861 --0.0159772491013393 --0.0159772491964446 --0.0159772482771805 --0.0160334806517696 --0.0159772483541248 --0.0159772482867287 --0.0159772512323208 --0.0159772605029884 --0.0156376014980648 --0.0159772634926976 --0.0159772483143737 --0.0159772483561090 --0.0159772482674329 --0.0159772486738158 --0.0159772490523713 --0.0162189246038701 --0.0159772491451847 --0.0159773710748726 --0.0159772482990507 --0.0159772483359707 --0.0159772518588651 --0.0159772491509344 --0.0159772510804638 --0.0159772485983394 --0.0159772666931435 --0.0159772508202530 --0.0159772491286886 --0.0159772517853659 --0.0159772491526857 --0.0159772522939930 --0.0159772763735651 --0.0159772731471415 --0.0159772725866609 --0.0159772731467828 --0.0159772730507509 --0.0159772944178389 --0.0159772732217427 --0.0160079116539132 --0.0159772732613384 --0.0159773506481920 --0.0159772737386142 --0.0159772740217822 --0.0159772725728622 --0.0159772732658762 --0.0159772761280684 --0.0159772732497786 --0.0159772724147928 --0.0159772725900636 --0.0159772729722604 --0.0159772725746896 --0.0159772759892017 --0.0159737348993864 --0.0159772736927642 --0.0159772798853415 --0.0159772761735397 --0.0159772732566786 --0.0155848277153318 --0.0159772724261242 --0.0159772724105473 --0.0159772728503937 --0.0159772751843141 --0.0159772724140857 --0.0159772736407992 --0.0159772751963881 --0.0159772732177384 --0.0159772733128438 --0.0159772723935783 --0.0160335048530816 --0.0159772724705227 --0.0159772724031264 --0.0159772753487231 --0.0159772846194047 --0.0156376251015860 --0.0159772876091183 --0.0159772724307715 --0.0159772724725069 --0.0159772723838306 --0.0159772727902141 --0.0159772731687702 --0.0162189490852179 --0.0159772732615837 --0.0159773951914558 --0.0159772724154485 --0.0159772724523686 --0.0159772759752683 --0.0159772732673335 --0.0159772751968658 --0.0159772727147376 --0.0159772908095691 --0.0159772749366546 --0.0159772732450877 --0.0159772759017689 --0.0159772732690848 --0.0159772764103968 --0.0159773092567349 --0.0159773060303046 --0.0159773054698229 --0.0159773060299459 --0.0159773059339139 --0.0159773273010459 --0.0159773061049060 --0.0160079446001394 --0.0159773061445018 --0.0159773835315146 --0.0159773066217786 --0.0159773069049471 --0.0159773054560242 --0.0159773061490396 --0.0159773090112377 --0.0159773061329419 --0.0159773052979544 --0.0159773054732256 --0.0159773058554231 --0.0159773054578515 --0.0159773088723707 --0.0159737677752668 --0.0159773065759284 --0.0159773127685185 --0.0159773090567090 --0.0159773061398420 --0.0155848597907309 --0.0159773053092859 --0.0159773052937089 --0.0159773057335563 --0.0159773080674815 --0.0159773052972473 --0.0159773065239633 --0.0159773080795555 --0.0159773061009016 --0.0159773061960073 --0.0159773052767398 --0.0160335378519861 --0.0159773053536844 --0.0159773052862881 --0.0159773082318907 --0.0159773175025914 --0.0156376572856568 --0.0159773204923112 --0.0159773053139332 --0.0159773053556686 --0.0159773052669922 --0.0159773056733765 --0.0159773060519334 --0.0162189824658221 --0.0159773061447471 --0.0159774280748701 --0.0159773052986101 --0.0159773053355303 --0.0159773088584372 --0.0159773061504968 --0.0159773080800332 --0.0159773055978999 --0.0159773236927686 --0.0159773078198214 --0.0159773061282510 --0.0159773087849378 --0.0159773061522481 --0.0159773092935667 --0.0159074058342549 --0.0159074026219394 --0.0159074020639097 --0.0159074026215823 --0.0159074025259704 --0.0159074237996269 --0.0159074026962144 --0.0159379071562371 --0.0159074027356370 --0.0159074797841023 --0.0159074032108259 --0.0159074034927556 --0.0159074020501713 --0.0159074027401550 --0.0159074055898317 --0.0159074027241277 --0.0159074018927931 --0.0159074020672975 --0.0159074024478230 --0.0159074020519907 --0.0159074054515722 --0.0159038798458267 --0.0159074031651763 --0.0159074093306754 --0.0159074056351042 --0.0159074027309976 --0.0155166732383998 --0.0159074019040750 --0.0159074018885662 --0.0159074023264893 --0.0159074046502042 --0.0159074018920891 --0.0159074031134385 --0.0159074046622254 --0.0159074026922276 --0.0159074027869172 --0.0159074018716713 --0.0159633884445458 --0.0159074019482793 --0.0159074018811778 --0.0159074048138942 --0.0159074140440380 --0.0155692397563152 --0.0159074170206786 --0.0159074019087019 --0.0159074019502548 --0.0159074018619663 --0.0159074022665728 --0.0159074026434736 --0.0161480217909746 --0.0159074027358813 --0.0159075241325924 --0.0159074018934459 --0.0159074019302046 --0.0159074054376997 --0.0159074027416059 --0.0159074046627010 --0.0159074021914264 --0.0159074202071348 --0.0159074044036276 --0.0159074027194574 --0.0159074053645218 --0.0159074027433495 --0.0159074058709256 --0.0116547825769474 --0.0116547802232920 --0.0116547798144250 --0.0116547802230303 --0.0116547801529757 --0.0116547957401298 --0.0116547802777131 --0.0116771308222512 --0.0116547803065979 --0.0116548367598128 --0.0116547806547676 --0.0116547808613368 --0.0116547798043589 --0.0116547803099082 --0.0116547823978591 --0.0116547802981651 --0.0116547796890483 --0.0116547798169072 --0.0116547800957173 --0.0116547798056920 --0.0116547822965567 --0.0116521990942350 --0.0116547806213203 --0.0116547851387658 --0.0116547824310301 --0.0116547803031986 --0.0113684944221893 --0.0116547796973145 --0.0116547796859512 --0.0116547800068164 --0.0116547817093964 --0.0116547796885325 --0.0116547805834121 --0.0116547817182043 --0.0116547802747920 --0.0116547803441708 --0.0116547796735724 --0.0116958009074147 --0.0116547797297029 --0.0116547796805378 --0.0116547818293317 --0.0116547885922346 --0.0114070096214499 --0.0116547907732116 --0.0116547797007047 --0.0116547797311504 --0.0116547796664616 --0.0116547799629158 --0.0116547802390700 --0.0118310815554080 --0.0116547803067769 --0.0116548692538389 --0.0116547796895266 --0.0116547797164596 --0.0116547822863924 --0.0116547803109713 --0.0116547817185528 --0.0116547799078562 --0.0116547931079200 --0.0116547815287304 --0.0116547802947431 --0.0116547822327751 --0.0116547803122488 --0.0116547826038159 --0.0159710194350005 --0.0159710162098407 --0.0159710156495797 --0.0159710162094822 --0.0159710161134879 --0.0159710374722059 --0.0159710162844127 --0.0160016427146354 --0.0159710163239929 --0.0159710936805319 --0.0159710168010818 --0.0159710170841388 --0.0159710156357864 --0.0159710163285290 --0.0159710191896000 --0.0159710163124376 --0.0159710154777789 --0.0159710156529811 --0.0159710160350281 --0.0159710156376131 --0.0159710190507876 --0.0159674793481164 --0.0159710167552497 --0.0159710229454012 --0.0159710192350534 --0.0159710163193349 --0.0155787245077985 --0.0159710154891059 --0.0159710154735351 --0.0159710159132092 --0.0159710182462154 --0.0159710154770721 --0.0159710167033051 --0.0159710182582846 --0.0159710162804100 --0.0159710163754781 --0.0159710154565727 --0.0160272258881957 --0.0159710155334870 --0.0159710154661172 --0.0159710184105599 --0.0159710276776099 --0.0156315012123601 --0.0159710306661524 --0.0159710154937514 --0.0159710155354704 --0.0159710154468289 --0.0159710158530532 --0.0159710162314610 --0.0162125974757260 --0.0159710163242382 --0.0159711382063468 --0.0159710154784344 --0.0159710155153400 --0.0159710190368596 --0.0159710163299856 --0.0159710182587622 --0.0159710157776063 --0.0159710338653495 --0.0159710179986529 --0.0159710163077486 --0.0159710189633891 --0.0159710163317362 --0.0159710194718178 --0.0159513833393005 --0.0159513801181059 --0.0159513795585337 --0.0159513801177478 --0.0159513800218715 --0.0159514013543301 --0.0159513801925861 --0.0159819689692895 --0.0159513802321177 --0.0159514574935510 --0.0159513807086200 --0.0159513809913290 --0.0159513795447574 --0.0159513802366482 --0.0159513830942016 --0.0159513802205766 --0.0159513793869441 --0.0159513795619308 --0.0159513799435082 --0.0159513795465817 --0.0159513829555600 --0.0159478476047600 --0.0159513806628443 --0.0159513868453853 --0.0159513831395992 --0.0159513802274655 --0.0155595707179986 --0.0159513793982571 --0.0159513793827055 --0.0159513798218391 --0.0159513821519769 --0.0159513793862382 --0.0159513806109635 --0.0159513821640313 --0.0159513801885883 --0.0159513802835396 --0.0159513793657639 --0.0160075206897457 --0.0159513794425837 --0.0159513793752967 --0.0159513823161194 --0.0159513915717761 --0.0156122825363091 --0.0159513945566443 --0.0159513794028969 --0.0159513794445646 --0.0159513793560321 --0.0159513797617570 --0.0159513801396995 --0.0161926643733257 --0.0159513802323626 --0.0159515019646239 --0.0159513793875987 --0.0159513794244590 --0.0159513829416491 --0.0159513802381030 --0.0159513821645083 --0.0159513796864028 --0.0159513977519081 --0.0159513819047187 --0.0159513802158933 --0.0159513828682689 --0.0159513802398515 --0.0159513833760725 --0.0159704847224134 --0.0159704814975689 --0.0159704809373627 --0.0159704814972104 --0.0159704814012255 --0.0159705027578554 --0.0159704815721336 --0.0160011050002195 --0.0159704816117099 --0.0159705589606862 --0.0159704820887522 --0.0159704823717815 --0.0159704809235708 --0.0159704816162456 --0.0159704844770368 --0.0159704816001558 --0.0159704807655787 --0.0159704809407637 --0.0159704813227734 --0.0159704809253972 --0.0159704843382381 --0.0159669449815161 --0.0159704820429246 --0.0159704882324709 --0.0159704845224858 --0.0159704816070524 --0.0155782269422633 --0.0159704807769046 --0.0159704807613353 --0.0159704812009664 --0.0159704835337445 --0.0159704807648720 --0.0159704819909850 --0.0159704835458125 --0.0159704815681312 --0.0159704816631901 --0.0159704807443745 --0.0160266856535553 --0.0159704808212813 --0.0159704807539180 --0.0159704836980729 --0.0159704929642170 --0.0156309987854569 --0.0159704959524673 --0.0159704807815496 --0.0159704808232645 --0.0159704807346317 --0.0159704811408163 --0.0159704815191870 --0.0162120386102990 --0.0159704816119552 --0.0159706034821481 --0.0159704807662341 --0.0159704808031361 --0.0159704843243114 --0.0159704816177021 --0.0159704835462900 --0.0159704810653767 --0.0159704991513516 --0.0159704832862062 --0.0159704815954672 --0.0159704842508481 --0.0159704816194525 --0.0159704847592271 --0.0159683794040889 --0.0159683761794628 --0.0159683756192945 --0.0159683761791043 --0.0159683760831260 --0.0159683974383101 --0.0159683762540224 --0.0159989976170506 --0.0159683762935961 --0.0159684536373363 --0.0159683767706061 --0.0159683770536162 --0.0159683756055035 --0.0159683762981314 --0.0159683791587290 --0.0159683762820427 --0.0159683754475221 --0.0159683756226953 --0.0159683760046791 --0.0159683756073298 --0.0159683790199397 --0.0159648399029158 --0.0159683767247815 --0.0159683829139089 --0.0159683792041750 --0.0159683762889389 --0.0155761493796992 --0.0159683754588472 --0.0159683754432790 --0.0159683758828804 --0.0159683782155005 --0.0159683754468154 --0.0159683766728455 --0.0159683782275678 --0.0159683762500204 --0.0159683763450728 --0.0159683754263194 --0.0160245765578026 --0.0159683755032210 --0.0159683754358623 --0.0159683783798179 --0.0159683876453346 --0.0156289173529928 --0.0159683906333827 --0.0159683754634920 --0.0159683755052041 --0.0159683754165772 --0.0159683758227343 --0.0159683762010795 --0.0162099174742197 --0.0159683762938413 --0.0159684981557845 --0.0159683754481775 --0.0159683754850770 --0.0159683790060140 --0.0159683762995878 --0.0159683782280453 --0.0159683757472999 --0.0159683938320504 --0.0159683779679790 --0.0159683762773544 --0.0159683789325556 --0.0159683763013382 --0.0159683794409002 --0.0159747320746873 --0.0159747288487778 --0.0159747282883865 --0.0159747288484192 --0.0159747287524026 --0.0159747501160860 --0.0159747289233671 --0.0160053624736038 --0.0159747289629565 --0.0159748063374793 --0.0159747294401563 --0.0159747297232791 --0.0159747282745901 --0.0159747289674936 --0.0159747318292297 --0.0159747289513985 --0.0159747281165458 --0.0159747282917887 --0.0159747286739245 --0.0159747282764171 --0.0159747316903852 --0.0159711911648063 --0.0159747293943135 --0.0159747355859041 --0.0159747318746938 --0.0159747289582975 --0.0155823459473525 --0.0159747281278754 --0.0159747281123010 --0.0159747285520773 --0.0159747308856258 --0.0159747281158388 --0.0159747293423568 --0.0159747308976979 --0.0159747289193634 --0.0159747290144537 --0.0159747280953346 --0.0160309515947282 --0.0159747281722668 --0.0159747281048813 --0.0159747310500086 --0.0159747403192130 --0.0156351349213265 --0.0159747433084503 --0.0159747281325220 --0.0159747281742507 --0.0159747280855886 --0.0159747284919073 --0.0159747288704031 --0.0162163662774603 --0.0159747289632018 --0.0159748508736456 --0.0159747281172014 --0.0159747281541156 --0.0159747316764539 --0.0159747289689506 --0.0159747308981756 --0.0159747284164429 --0.0159747465083910 --0.0159747306380058 --0.0159747289467084 --0.0159747316029663 --0.0159747289707016 --0.0159747321115132 --0.0159772138787650 --0.0159772106523540 --0.0159772100918757 --0.0159772106519954 --0.0159772105559639 --0.0159772319229683 --0.0159772107269549 --0.0160078490392543 --0.0159772107665505 --0.0159772881531013 --0.0159772112438245 --0.0159772115269913 --0.0159772100780770 --0.0159772107710883 --0.0159772136332693 --0.0159772107549907 --0.0159772099200082 --0.0159772100952783 --0.0159772104774736 --0.0159772100799044 --0.0159772134944031 --0.0159736724184421 --0.0159772111979746 --0.0159772173905277 --0.0159772136787404 --0.0159772107618907 --0.0155847667559462 --0.0159772099313396 --0.0159772099157627 --0.0159772103556075 --0.0159772126895187 --0.0159772099193012 --0.0159772111460098 --0.0159772127015927 --0.0159772107229506 --0.0159772108180557 --0.0159772098987938 --0.0160334421382905 --0.0159772099757379 --0.0159772099083419 --0.0159772128539270 --0.0159772221245723 --0.0156375639356383 --0.0159772251142743 --0.0159772099359869 --0.0159772099777221 --0.0159772098890462 --0.0159772102954281 --0.0159772106739827 --0.0162188856448793 --0.0159772107667959 --0.0159773326961908 --0.0159772099206639 --0.0159772099575839 --0.0159772134804697 --0.0159772107725456 --0.0159772127020704 --0.0159772102199519 --0.0159772283147125 --0.0159772124418602 --0.0159772107502999 --0.0159772134069707 --0.0159772107742968 --0.0159772139155966 --0.0159770122884786 --0.0159770090621083 --0.0159770085016370 --0.0159770090617496 --0.0159770089657193 --0.0159770303324539 --0.0159770091367082 --0.0160076470620787 --0.0159770091763033 --0.0159770865618768 --0.0159770096535713 --0.0159770099367345 --0.0159770084878386 --0.0159770091808411 --0.0159770120429859 --0.0159770091647437 --0.0159770083297717 --0.0159770085050396 --0.0159770088872301 --0.0159770084896658 --0.0159770119041215 --0.0159734708728803 --0.0159770096077220 --0.0159770158001968 --0.0159770120884564 --0.0159770091716436 --0.0155845701216030 --0.0159770083411030 --0.0159770083255263 --0.0159770087653655 --0.0159770110992473 --0.0159770083290647 --0.0159770095557578 --0.0159770111113210 --0.0159770091327040 --0.0159770092278079 --0.0159770083085575 --0.0160332398378992 --0.0159770083855007 --0.0159770083181056 --0.0159770112636535 --0.0159770205341817 --0.0156373666345815 --0.0159770235238459 --0.0159770083457502 --0.0159770083874849 --0.0159770082988101 --0.0159770087051869 --0.0159770090837367 --0.0162186810024517 --0.0159770091765487 --0.0159771311044038 --0.0159770083304274 --0.0159770083673469 --0.0159770118901883 --0.0159770091822983 --0.0159770111117988 --0.0159770086297116 --0.0159770267242437 --0.0159770108515918 --0.0159770091600529 --0.0159770118166902 --0.0159770091840496 --0.0159770123253097 --0.0159773150918565 --0.0159773118654250 --0.0159773113049431 --0.0159773118650664 --0.0159773117690343 --0.0159773331361741 --0.0159773119400264 --0.0160079504464948 --0.0159773119796222 --0.0159773893666635 --0.0159773124568992 --0.0159773127400678 --0.0159773112911444 --0.0159773119841601 --0.0159773148463592 --0.0159773119680624 --0.0159773111330746 --0.0159773113083458 --0.0159773116905435 --0.0159773112929717 --0.0159773147074922 --0.0159737736090898 --0.0159773124110491 --0.0159773186036414 --0.0159773148918306 --0.0159773119749624 --0.0155848654819738 --0.0159773111444060 --0.0159773111288291 --0.0159773115686766 --0.0159773139026026 --0.0159773111323675 --0.0159773123590839 --0.0159773139146766 --0.0159773119360221 --0.0159773120311278 --0.0159773111118600 --0.0160335437077267 --0.0159773111888046 --0.0159773111214082 --0.0159773140670120 --0.0159773233377161 --0.0156376629962530 --0.0159773263274370 --0.0159773111490533 --0.0159773111907888 --0.0159773111021123 --0.0159773115084968 --0.0159773118870538 --0.0162189883895747 --0.0159773119798676 --0.0159774339100353 --0.0159773111337303 --0.0159773111706505 --0.0159773146935587 --0.0159773119856173 --0.0159773139151544 --0.0159773114330202 --0.0159773295278955 --0.0159773136549425 --0.0159773119633715 --0.0159773146200592 --0.0159773119873686 --0.0159773151286883 --0.0159772746780693 --0.0159772714516460 --0.0159772708911655 --0.0159772714512873 --0.0159772713552555 --0.0159772927223412 --0.0159772715262472 --0.0160079099551645 --0.0159772715658429 --0.0159773489526883 --0.0159772720431187 --0.0159772723262866 --0.0159772708773668 --0.0159772715703808 --0.0159772744325726 --0.0159772715542831 --0.0159772707192974 --0.0159772708945682 --0.0159772712767649 --0.0159772708791942 --0.0159772742937059 --0.0159737332042667 --0.0159772719972687 --0.0159772781898453 --0.0159772744780439 --0.0159772715611831 --0.0155848260615067 --0.0159772707306288 --0.0159772707150519 --0.0159772711548983 --0.0159772734888185 --0.0159772707185903 --0.0159772719453037 --0.0159772735008924 --0.0159772715222429 --0.0159772716173483 --0.0159772706980829 --0.0160335031516152 --0.0159772707750273 --0.0159772707076311 --0.0159772736532274 --0.0159772829239080 --0.0156376234421550 --0.0159772859136213 --0.0159772707352761 --0.0159772707770115 --0.0159772706883352 --0.0159772710947187 --0.0159772714732747 --0.0162189473640597 --0.0159772715660883 --0.0159773934959474 --0.0159772707199531 --0.0159772707568732 --0.0159772742797725 --0.0159772715718380 --0.0159772735013702 --0.0159772710192422 --0.0159772891140717 --0.0159772732411590 --0.0159772715495922 --0.0159772742062732 --0.0159772715735893 --0.0159772747149010 --0.0159772757327529 --0.0159772725063294 --0.0159772719458489 --0.0159772725059708 --0.0159772724099389 --0.0159772937770261 --0.0159772725809306 --0.0160079110118826 --0.0159772726205264 --0.0159773500073768 --0.0159772730978022 --0.0159772733809701 --0.0159772719320502 --0.0159772726250642 --0.0159772754872563 --0.0159772726089665 --0.0159772717739808 --0.0159772719492516 --0.0159772723314483 --0.0159772719338775 --0.0159772753483895 --0.0159737342587151 --0.0159772730519521 --0.0159772792445292 --0.0159772755327275 --0.0159772726158666 --0.0155848270901352 --0.0159772717853122 --0.0159772717697353 --0.0159772722095817 --0.0159772745435020 --0.0159772717732737 --0.0159772729999871 --0.0159772745555760 --0.0159772725769263 --0.0159772726720318 --0.0159772717527663 --0.0160335042100332 --0.0159772718297107 --0.0159772717623144 --0.0159772747079109 --0.0159772839785922 --0.0156376244742880 --0.0159772869683057 --0.0159772717899595 --0.0159772718316949 --0.0159772717430186 --0.0159772721494021 --0.0159772725279582 --0.0162189484347962 --0.0159772726207717 --0.0159773945506389 --0.0159772717746365 --0.0159772718115566 --0.0159772753344561 --0.0159772726265214 --0.0159772745560537 --0.0159772720739256 --0.0159772901687563 --0.0159772742958425 --0.0159772726042756 --0.0159772752609568 --0.0159772726282727 --0.0159772757695847 -0.0000008907034567 -0.0000008907036787 -0.0000008907037172 -0.0000008907036787 -0.0000008907036853 -0.0000008907022151 -0.0000008907036736 -0.0000008885800597 -0.0000008907036708 -0.0000008906983460 -0.0000008907036380 -0.0000008907036185 -0.0000008907037182 -0.0000008907036705 -0.0000008907034736 -0.0000008907036716 -0.0000008907037291 -0.0000008907037170 -0.0000008907036907 -0.0000008907037181 -0.0000008907034831 -0.0000008909469312 -0.0000008907036411 -0.0000008907032150 -0.0000008907034704 -0.0000008907036711 -0.0000009153708297 -0.0000008907037283 -0.0000008907037294 -0.0000008907036991 -0.0000008907035385 -0.0000008907037291 -0.0000008907036447 -0.0000008907035377 -0.0000008907036738 -0.0000008907036673 -0.0000008907037305 -0.0000008867820107 -0.0000008907037252 -0.0000008907037299 -0.0000008907035272 -0.0000008907028893 -0.0000009123161218 -0.0000008907026836 -0.0000008907037280 -0.0000008907037251 -0.0000008907037312 -0.0000008907037032 -0.0000008907036772 -0.0000008730371644 -0.0000008907036708 -0.0000008906952809 -0.0000008907037290 -0.0000008907037265 -0.0000008907034841 -0.0000008907036704 -0.0000008907035376 -0.0000008907037084 -0.0000008907024634 -0.0000008907035556 -0.0000008907036719 -0.0000008907034891 -0.0000008907036703 -0.0000008907034541 --0.0159653945821168 --0.0159653913580922 --0.0159653907980284 --0.0159653913577338 --0.0159653912617733 --0.0159654126129733 --0.0159653914326379 --0.0159960070828515 --0.0159653914722042 --0.0159654688015149 --0.0159653919491252 --0.0159653922320825 --0.0159653907842400 --0.0159653914767387 --0.0159653943368026 --0.0159653914606530 --0.0159653906262881 --0.0159653908014286 --0.0159653911833411 --0.0159653907860660 --0.0159653941980392 --0.0159618557412895 --0.0159653919033092 --0.0159653980912819 --0.0159653943822401 --0.0159653914675479 --0.0155732377405979 --0.0159653906376111 --0.0159653906220458 --0.0159653910615651 --0.0159653933937501 --0.0159653906255815 --0.0159653918513829 --0.0159653934058151 --0.0159653914286366 --0.0159653915236713 --0.0159653906050893 --0.0160215812515875 --0.0159653906819765 --0.0159653906146304 --0.0159653935580368 --0.0159654028218249 --0.0156259958676089 --0.0159654058093155 --0.0159653906422549 --0.0159653906839592 --0.0159653905953489 --0.0159653910014303 --0.0159653913797048 --0.0162068875927879 --0.0159653914724494 --0.0159655133116574 --0.0159653906269433 --0.0159653906638360 --0.0159653941841161 --0.0159653914781948 --0.0159653934062925 --0.0159653909260099 --0.0159654090073865 --0.0159653931462747 --0.0159653914559656 --0.0159653941106714 --0.0159653914799448 --0.0159653946189211 --0.0154539289514870 --0.0154539258307341 --0.0154539252886102 --0.0154539258303872 --0.0154539257375005 --0.0154539464047810 --0.0154539259028920 --0.0154835608762403 --0.0154539259411909 --0.0154540007934970 --0.0154539264028352 --0.0154539266767289 --0.0154539252752635 --0.0154539259455801 --0.0154539287140307 --0.0154539259300096 --0.0154539251223710 --0.0154539252919015 --0.0154539256615806 --0.0154539252770309 --0.0154539285797121 --0.0154505034664519 --0.0154539263584868 --0.0154539323482469 --0.0154539287580128 --0.0154539259366837 --0.0150743337124401 --0.0154539251333313 --0.0154539251182646 --0.0154539255437053 --0.0154539278011860 --0.0154539251216871 --0.0154539263082237 --0.0154539278128645 --0.0154539258990188 --0.0154539259910094 --0.0154539251018513 --0.0155083158570190 --0.0154539251762757 --0.0154539251110868 --0.0154539279602102 --0.0154539369272617 --0.0151254018780288 --0.0154539398190573 --0.0154539251378264 --0.0154539251781949 --0.0154539250924229 --0.0154539254854967 --0.0154539258516544 --0.0156876865160981 --0.0154539259414282 --0.0154540438778952 --0.0154539251230053 --0.0154539251587162 --0.0154539285662350 --0.0154539259469896 --0.0154539278133266 --0.0154539254124922 --0.0154539429146880 --0.0154539275616377 --0.0154539259254724 --0.0154539284951430 --0.0154539259486835 --0.0154539289871125 --0.0159588749632761 --0.0159588717405707 --0.0159588711807360 --0.0159588717402124 --0.0159588716442912 --0.0159588929867556 --0.0159588718150859 --0.0159894749392356 --0.0159588718546360 --0.0159589491523084 --0.0159588723313618 --0.0159588726142034 --0.0159588711669532 --0.0159588718591686 --0.0159588747180624 --0.0159588718430895 --0.0159588710090659 --0.0159588711841348 --0.0159588715658911 --0.0159588711687784 --0.0159588745793557 --0.0159553375703151 --0.0159588722855646 --0.0159588784710055 --0.0159588747634812 --0.0159588718499816 --0.0155668785527200 --0.0159588710203843 --0.0159588710048254 --0.0159588714441649 --0.0159588737753957 --0.0159588710083597 --0.0159588722336595 --0.0159588737874557 --0.0159588718110862 --0.0159588719060820 --0.0159588709878759 --0.0160150386444254 --0.0159588710647316 --0.0159588709974130 --0.0159588739396151 --0.0159588831996131 --0.0156196150980793 --0.0159588861858814 --0.0159588710250263 --0.0159588710667135 --0.0159588709781394 --0.0159588713840547 --0.0159588717621745 --0.0162002691639767 --0.0159588718548810 --0.0159589936442403 --0.0159588710097209 --0.0159588710465985 --0.0159588745654383 --0.0159588718606241 --0.0159588737879329 --0.0159588713086651 --0.0159588893826440 --0.0159588735280215 --0.0159588718384040 --0.0159588744920237 --0.0159588718623734 --0.0159588750000654 --0.0157761116148746 --0.0157761084291002 --0.0157761078756810 --0.0157761084287460 --0.0157761083339240 --0.0157761294318114 --0.0157761085027615 --0.0158063609250820 --0.0157761085418583 --0.0157761849537270 --0.0157761090131211 --0.0157761092927214 --0.0157761078620562 --0.0157761085463390 --0.0157761113724709 --0.0157761085304441 --0.0157761077059782 --0.0157761078790408 --0.0157761082564224 --0.0157761078638605 --0.0157761112353537 --0.0157726147591642 --0.0157761089678486 --0.0157761150824066 --0.0157761114173692 --0.0157761085372572 --0.0153886072030565 --0.0157761077171669 --0.0157761077017862 --0.0157761081360911 --0.0157761104406068 --0.0157761077052801 --0.0157761089165384 --0.0157761104525287 --0.0157761084988076 --0.0157761085927148 --0.0157761076850310 --0.0158316316770906 --0.0157761077610060 --0.0157761076944589 --0.0157761106029444 --0.0157761197568261 --0.0154407394411587 --0.0157761227088728 --0.0157761077217556 --0.0157761077629652 --0.0157761076754061 --0.0157761080766697 --0.0157761084504564 --0.0160147394616579 --0.0157761085421006 --0.0157762289357971 --0.0157761077066257 --0.0157761077430806 --0.0157761112215958 --0.0157761085477779 --0.0157761104530004 --0.0157761080021441 --0.0157761258690016 --0.0157761101960675 --0.0157761085258124 --0.0157761111490225 --0.0157761085495071 --0.0157761116512423 --0.0159693598203275 --0.0159693565955104 --0.0159693560353089 --0.0159693565951519 --0.0159693564991679 --0.0159693778556166 --0.0159693566700745 --0.0159999798462533 --0.0159693567096505 --0.0159694340579711 --0.0159693571866887 --0.0159693574697156 --0.0159693560215171 --0.0159693567141861 --0.0159693595749531 --0.0159693566980964 --0.0159693558635264 --0.0159693560387099 --0.0159693564207164 --0.0159693560233435 --0.0159693594361555 --0.0159658201095388 --0.0159693571408614 --0.0159693633303553 --0.0159693596204017 --0.0159693567049930 --0.0155771065268215 --0.0159693558748522 --0.0159693558592830 --0.0159693562989104 --0.0159693586316687 --0.0159693558628197 --0.0159693570889223 --0.0159693586437367 --0.0159693566660721 --0.0159693567611302 --0.0159693558423224 --0.0160255603011620 --0.0159693559192285 --0.0159693558518659 --0.0159693587959958 --0.0159693680620613 --0.0156298776352145 --0.0159693710502863 --0.0159693558794972 --0.0159693559212117 --0.0159693558325796 --0.0159693562387608 --0.0159693566171284 --0.0162109121763776 --0.0159693567098957 --0.0159694785790556 --0.0159693558641818 --0.0159693559010835 --0.0159693594222290 --0.0159693567156426 --0.0159693586442142 --0.0159693561633219 --0.0159693742491434 --0.0159693583841325 --0.0159693566934079 --0.0159693593487663 --0.0159693567173930 --0.0159693598571409 --0.0159745640059234 --0.0159745607800477 --0.0159745602196624 --0.0159745607796891 --0.0159745606836736 --0.0159745820471327 --0.0159745608546362 --0.0160051940832999 --0.0159745608942253 --0.0159746382679358 --0.0159745613714201 --0.0159745616545399 --0.0159745602058660 --0.0159745608987623 --0.0159745637604684 --0.0159745608826674 --0.0159745600478234 --0.0159745602230645 --0.0159745606051963 --0.0159745602076930 --0.0159745636216253 --0.0159710231332131 --0.0159745613255778 --0.0159745675171033 --0.0159745638059320 --0.0159745608895663 --0.0155821819981187 --0.0159745600591529 --0.0159745600435787 --0.0159745604833504 --0.0159745628168744 --0.0159745600471165 --0.0159745612736216 --0.0159745628289463 --0.0159745608506326 --0.0159745609457219 --0.0159745600266125 --0.0160307829358094 --0.0159745601035439 --0.0159745600361591 --0.0159745629812554 --0.0159745722503625 --0.0156349704178273 --0.0159745752395684 --0.0159745600637994 --0.0159745601055277 --0.0159745600168665 --0.0159745604231810 --0.0159745608016728 --0.0162161956723378 --0.0159745608944706 --0.0159746828036345 --0.0159745600484790 --0.0159745600853929 --0.0159745636076942 --0.0159745609002193 --0.0159745628294240 --0.0159745603477173 --0.0159745784394756 --0.0159745625692569 --0.0159745608779773 --0.0159745635342074 --0.0159745609019703 --0.0159745640427489 --0.0159760580080058 --0.0159760547818283 --0.0159760542213905 --0.0159760547814697 --0.0159760546854451 --0.0159760760509029 --0.0159760548564238 --0.0160066909509024 --0.0159760548960165 --0.0159761322769655 --0.0159760553732560 --0.0159760556564023 --0.0159760542075929 --0.0159760549005540 --0.0159760577625278 --0.0159760548844576 --0.0159760540495355 --0.0159760542247930 --0.0159760546069606 --0.0159760542094201 --0.0159760576236717 --0.0159725168040385 --0.0159760553274094 --0.0159760615195142 --0.0159760578079956 --0.0159760548913571 --0.0155836392924608 --0.0159760540608661 --0.0159760540452904 --0.0159760544851032 --0.0159760568188456 --0.0159760540488285 --0.0159760552754484 --0.0159760568309186 --0.0159760548524198 --0.0159760549475180 --0.0159760540283226 --0.0160322821973184 --0.0159760541052612 --0.0159760540378701 --0.0159760569832419 --0.0159760662532162 --0.0156364326505207 --0.0159760692427017 --0.0159760540655130 --0.0159760541072452 --0.0159760540185757 --0.0159760544249282 --0.0159760548034554 --0.0162177122798737 --0.0159760548962619 --0.0159761768168307 --0.0159760540501912 --0.0159760540871085 --0.0159760576097393 --0.0159760549020111 --0.0159760568313963 --0.0159760543494575 --0.0159760724429083 --0.0159760565712049 --0.0159760548797671 --0.0159760575362456 --0.0159760549037623 --0.0159760580448347 -%% --0.0223352195595191 --0.0189255130441532 -0.1215125954702671 --0.0223352207405905 --0.0189255140448308 -0.1215126018954801 --0.0223352209457610 --0.0189255142186641 -0.1215126030116396 --0.0223352207407218 --0.0189255140449421 -0.1215126018961944 --0.0223352207758754 --0.0189255140747264 -0.1215126020874354 --0.0223352129541597 --0.0189255074476792 -0.1215125595360812 --0.0223352207132819 --0.0189255140216932 -0.1215126017469168 --0.0223239200832957 --0.0189159394155230 -0.1214511245398641 --0.0223352206987874 --0.0189255140094126 -0.1215126016680645 --0.0223351923698759 --0.0189254900073851 -0.1215124475543635 --0.0223352205240749 --0.0189255138613852 -0.1215126007176012 --0.0223352204204179 --0.0189255137735605 -0.1215126001536910 --0.0223352209508122 --0.0189255142229438 -0.1215126030391188 --0.0223352206971262 --0.0189255140080052 -0.1215126016590277 --0.0223352196493862 --0.0189255131202942 -0.1215125959591582 --0.0223352207030190 --0.0189255140129979 -0.1215126016910851 --0.0223352210086753 --0.0189255142719691 -0.1215126033539035 --0.0223352209445154 --0.0189255142176088 -0.1215126030048634 --0.0223352208046078 --0.0189255140990703 -0.1215126022437441 --0.0223352209501433 --0.0189255142223771 -0.1215126030354798 --0.0223352197002200 --0.0189255131633639 -0.1215125962357024 --0.0223365148349868 --0.0189266104825608 -0.1215196419708059 --0.0223352205408588 --0.0189255138756057 -0.1215126008089086 --0.0223352182739887 --0.0189255119549714 -0.1215125884767812 --0.0223352196327409 --0.0189255131061913 -0.1215125958686051 --0.0223352207004931 --0.0189255140108578 -0.1215126016773442 --0.0224660714834908 --0.0190363781275911 -0.1222244476040273 --0.0223352210045273 --0.0189255142684547 -0.1215126033313377 --0.0223352210102294 --0.0189255142732858 -0.1215126033623580 --0.0223352208492185 --0.0189255141368673 -0.1215126024864334 --0.0223352199948590 --0.0189255134130004 -0.1215125978385843 --0.0223352210089342 --0.0189255142721884 -0.1215126033553115 --0.0223352205598812 --0.0189255138917226 -0.1215126009123935 --0.0223352199904392 --0.0189255134092557 -0.1215125978145398 --0.0223352207147477 --0.0189255140229352 -0.1215126017548911 --0.0223352206799332 --0.0189255139934382 -0.1215126015654949 --0.0223352210164412 --0.0189255142785488 -0.1215126033961508 --0.0223143476047288 --0.0189078290006959 -0.1213990487246676 --0.0223352209882748 --0.0189255142546844 -0.1215126032429211 --0.0223352210129459 --0.0189255142755874 -0.1215126033771362 --0.0223352199346751 --0.0189255133620089 -0.1215125975111745 --0.0223352165410212 --0.0189255104866928 -0.1215125790491674 --0.0224499097263093 --0.0190226851018155 -0.1221365258504805 --0.0223352154465942 --0.0189255095594257 -0.1215125730953138 --0.0223352210028261 --0.0189255142670133 -0.1215126033220829 --0.0223352209875484 --0.0189255142540691 -0.1215126032389698 --0.0223352210200094 --0.0189255142815720 -0.1215126034155625 --0.0223352208712480 --0.0189255141555320 -0.1215126026062770 --0.0223352207326730 --0.0189255140381227 -0.1215126018524079 --0.0222410429919522 --0.0188457204477017 -0.1210002592384944 --0.0223352206986976 --0.0189255140093365 -0.1215126016675759 --0.0223351760634897 --0.0189254761915937 -0.1215123588450769 --0.0223352210084353 --0.0189255142717657 -0.1215126033525976 --0.0223352209949203 --0.0189255142603149 -0.1215126032790737 --0.0223352197053206 --0.0189255131676853 -0.1215125962634500 --0.0223352206965928 --0.0189255140075532 -0.1215126016561257 --0.0223352199902643 --0.0189255134091075 -0.1215125978135884 --0.0223352208988770 --0.0189255141789411 -0.1215126027565834 --0.0223352142750222 --0.0189255085667965 -0.1215125667217790 --0.0223352200855178 --0.0189255134898122 -0.1215125983317823 --0.0223352207047361 --0.0189255140144528 -0.1215126017004267 --0.0223352197322259 --0.0189255131904812 -0.1215125964098191 --0.0223352206959517 --0.0189255140070101 -0.1215126016526381 --0.0223352195460364 --0.0189255130327298 -0.1215125953969190 -%% -0.0000002860515429 -0.0000001336923965 -0.0000000086825011 -0.0000000031474389 -0.0000000035227788 -0.0001253960836368 -0.0000262543699298 -0.0001036484182358 -0.0000907387047426 -0.0001413510538386 -0.0000011456969965 -0.0000010956060781 -0.0000004156118037 -0.0000001589596450 -0.0000000420240903 -0.0000000024325447 -0.0000017463208003 --0.0000000063149758 -0.0000110024640267 -0.0000277988468344 -0.0012237898106768 -0.0000387151851673 -0.0000185810900032 -0.0000003594970814 -0.0000013889375324 -0.0000001017729949 -0.0000000532367727 -0.0000000195062862 -0.0000000018605114 -0.0000000019438707 --0.0000000011477865 -0.0000712910851704 -0.0010163792685161 -0.0000471245446582 -0.0000104643762336 -0.0000112266862765 -0.0000044064970721 -0.0000043316804395 -0.0000000771244344 -0.0000000580161255 -0.0000000992841434 -0.0000000174619020 -0.0000000059206197 --0.0000000098213873 -0.0000337237896365 -0.0033002772275274 -0.0000029991124506 -0.0000124144984307 -0.0000016792804727 -0.0000042568583938 -0.0000012227028352 -0.0000000358335915 -0.0000001322583757 --0.0000000126041656 -0.0000000067318724 -0.0000000062299183 -0.9999932153359626 -0.0000057036923494 -0.0002671154604164 -0.0000087723167142 -0.0000909511293817 -0.0000037292412118 -0.0000013034513990 -0.0000005887752391 -%% --0.1250485269999813 --0.1250485017387021 --0.1250484973504203 --0.1250485017358938 --0.1250485009840124 --0.1250486682775984 --0.1250485023227919 --0.1252883862387800 --0.1250485026328068 --0.1250491085330709 --0.1250485063696373 --0.1250485085867000 --0.1250484972423835 --0.1250485026683358 --0.1250485250778653 --0.1250485025422989 --0.1250484960047790 --0.1250484973770616 --0.1250485003694706 --0.1250484972566906 --0.1250485239906086 --0.1250207990375155 --0.1250485060106542 --0.1250485544954296 --0.1250485254338826 --0.1250485025963228 --0.1219759042419306 --0.1250484960934984 --0.1250484959715390 --0.1250484994153161 --0.1250485176887426 --0.1250484959992431 --0.1250485056037944 --0.1250485177832757 --0.1250485022914402 --0.1250485030360682 --0.1250484958386799 --0.1254887690039716 --0.1250484964411162 --0.1250484959134374 --0.1250485189759819 --0.1250485915607708 --0.1223892680712233 --0.1250486149687297 --0.1250484961298845 --0.1250484964566514 --0.1250484957623608 --0.1250484989441400 --0.1250485019080441 --0.1269407269019648 --0.1250485026347276 --0.1250494572844961 --0.1250484960099129 --0.1250484962989789 --0.1250485238815167 --0.1250485026797450 --0.1250485177870162 --0.1250484983531969 --0.1250486400266543 --0.1250485157496926 --0.1250485025055717 --0.1250485233060540 --0.1250485026934568 --0.1250485272883554 -%% --0.1786819872446880 --0.1514298249324479 -0.9721840132172598 \ No newline at end of file diff --git a/examples/machsuite/backprop/input.data b/examples/machsuite/backprop/input.data deleted file mode 100644 index e0123e5f43..0000000000 --- a/examples/machsuite/backprop/input.data +++ /dev/null @@ -1,7867 +0,0 @@ -%% -0.3483178396146527 -0.1706497803768818 -0.4316474009271629 -0.3259915659051159 --0.4250858900760253 -0.1127769850532617 --0.1756873904913663 --0.0957567506653483 --0.0110783105822432 --0.4436935459657658 --0.2996779986780636 --0.0493190014049893 --0.2534792054845217 -0.1728182306226016 -0.0009444841545747 --0.2906112299289981 --0.1166124325185209 --0.2370950369193756 -0.3638473264891788 --0.4931096431125856 --0.0729676169138384 -0.1741981263711310 --0.4736316792252979 -0.3026358879744457 --0.3201874722559137 -0.1615563839200532 -0.0388504032397917 --0.2988512410509067 -0.4782153590525915 --0.2033886694374952 -0.3309093043465101 -0.0350148999623799 -0.3577368190902865 -0.2123884593841227 -0.4543748287741737 -0.3801106496231675 -0.3490474371089849 --0.3942400237234462 --0.1305878520197631 -0.2736908773165471 --0.1647558952335791 --0.3849137937337497 -0.2552438928694989 --0.1560521868008589 --0.2182912605981933 --0.2837023460481002 --0.0147639997138909 --0.4942359501582613 -0.2268004045533238 -0.0205619338920122 -0.1343918397825450 --0.3162411164131054 --0.2895920511643746 --0.3927951866592362 --0.4604052942997366 -0.4330220583897403 --0.4599790021838766 --0.4218122443696336 --0.2023241662994112 -0.1604415374454923 -0.4521082225628823 --0.4944456743058304 --0.3133126302725496 --0.2886786467450638 -0.2358651200871347 --0.0833628955831775 --0.3638902563584553 --0.2510873682778300 -0.4090931683964897 -0.3804237290693118 --0.0395207703411175 -0.4114630717835008 -0.0769636562652027 --0.2877802814971613 -0.3616704275858206 --0.3127503952945747 -0.3767687582692533 --0.4716506428643454 --0.4720330596816746 --0.4988260230282281 -0.3816612565392817 --0.2412548769633587 --0.3133804407583247 -0.1134283988672150 -0.2633503369248252 -0.2960136720771441 --0.2849253058048737 --0.0582787256482433 --0.3660358699691801 --0.1461809634767224 -0.2161428864829403 --0.0179172575798043 --0.3634978533276221 -0.2270079301991990 -0.0001932391978972 -0.0540293780631791 -0.3470236345937937 -0.1844720529281880 --0.0529377750459163 -0.2395825773469121 -0.2140811894103265 --0.3310132127070771 --0.4872347824539688 -0.2390011771948182 --0.1123333872790593 --0.1110445339856662 -0.4958895038034786 --0.4841256184695004 --0.4073541274428264 --0.2205438687703470 -0.4676672240567189 -0.0488249778351199 --0.1263637161327006 -0.4939879360511114 --0.4511177050569862 --0.1734078231838102 --0.0923634331518932 -0.2380059200028429 --0.0396819093157483 --0.2313340153970950 --0.2126833236098514 --0.4859698132486294 --0.0634415727534071 --0.4654923693716655 -0.0850196896009423 -0.2098586658566393 -0.4590813817633715 -0.3804033136216555 -0.4980595552286854 --0.3688748177606722 -0.1068136140773602 --0.3261730297988851 -0.2043815368917442 -0.4467849911595574 --0.3025484033325654 --0.4364834494473191 -0.1575472564589070 -0.3045666146925562 -0.4454611044982865 -0.0500252055448300 -0.0747363779881197 --0.2039149871541449 --0.2805080216377352 --0.1208320642388377 -0.0763745454924379 --0.1681320594813393 -0.2153851752905834 --0.3616629728333928 -0.3911010718686341 -0.4622471231685127 -0.0206280483477259 --0.4991790764182467 --0.3498779321350975 --0.2141017413002280 --0.1187698186266340 -0.4627033012525220 --0.4536751690391235 -0.0536461903980735 --0.0745096219355385 --0.4796081504707792 --0.0026505804498236 --0.2326479307838658 --0.0718645269558240 --0.1412707761147158 --0.3857084871564056 --0.4906065234502298 --0.4195354592551352 --0.4715260005538310 --0.0626484439185320 -0.0054042027492341 --0.2417731084345569 -0.3181935096212357 -0.2683934478079263 -0.0459306504169178 --0.4233101118908806 -0.4984011518683296 -0.3463122892926332 --0.0211075065001768 --0.3892833278728403 -0.4047358057561707 -0.0840612962298976 -0.1958031753814037 -0.3557126220464411 --0.4173286655349843 --0.0161998322631577 --0.2550924807967374 --0.4378983659674207 --0.0667580447286460 --0.3689764259434322 -0.2481090411770011 --0.1223881112061108 --0.1662563789637592 --0.1469539187727416 --0.3711888520628850 --0.0850783325879982 --0.3606574890634132 --0.2935540877202770 --0.1305640981914484 -0.3343916891700796 --0.2838113722389391 --0.4067224935148778 --0.4131710459376970 --0.2268829807740080 --0.2190339086777073 --0.1643771282542945 -0.1834390896658262 --0.1732036709982290 -0.1599492802927122 --0.4564318595081348 --0.4296423714468526 -0.2228303690021292 -0.3851721422324230 --0.2892092039442250 --0.4215840983779657 -0.4615694238266003 -0.1775815611931443 -0.4326414560282523 -0.3723857873635551 -0.4394618799882867 --0.1557612571170512 --0.3235222623452370 -0.2488398469947676 --0.1267211787262273 -0.1865869483303326 --0.0999264077294221 -0.0721400649461029 --0.3879690630096511 -0.0113942038836549 --0.4488899756809432 -0.2175259320021290 -0.3575182783261570 -0.0784878853002242 --0.3650345281090092 --0.3807074035848537 -0.4723092959416103 --0.1271735488546777 -0.3067179481103881 --0.1675519720790701 --0.0342546247924635 -0.2348138089866270 -0.3214647023258758 -0.4113418227917187 -0.1642716262994925 --0.4866441267738971 --0.2075041819978040 --0.4555665620304329 -0.4396144243758447 -0.2655890089284283 -0.1692048055281263 -0.3380837128929514 --0.0445429505963802 -0.1909078386850797 --0.4845982697862139 -0.3479124776327206 -0.4462209557130911 -0.2677202200246880 -0.4279331770197743 -0.0153327254961750 -0.3926116198429296 -0.3930457828966226 -0.4844385803033128 -0.1018790515210961 -0.3235301034352464 --0.4334279597090318 --0.3828337480793631 -0.0962448507692394 -0.4738432213333370 --0.1607409095875120 --0.3297198030533876 --0.3887142750684691 -0.4700813330218533 -0.0367884989765819 --0.1568677459888738 -0.4916240181373843 --0.1478191929796749 -0.3331481345246642 -0.1456496860574097 --0.2005338521492583 --0.4921667901511427 -0.3627726556183214 --0.2219278768811533 -0.1182353827040976 -0.4308493287741327 -0.1149876265111006 --0.1608972324213513 --0.1468206346908512 -0.1387221774977941 -0.0143005186400568 --0.3612331974922356 -0.0926468898446244 --0.1806620180651851 --0.1350975174641287 --0.2061152239101472 -0.0343363005946771 --0.1239536825112321 -0.0725036130122593 --0.3457446566948479 --0.1825924281810625 -0.1639159037834084 --0.1248201730568153 --0.1435063821976743 -0.1578860801973966 --0.0121865425308288 -0.4332728824329765 --0.4654572324560072 --0.3853554479501864 -0.0848943772682992 --0.3337760289276275 --0.4306218351332900 -0.3694019864172604 --0.2808635067980068 -0.2499672365062569 --0.2238887584326801 -0.2271363734624335 --0.2559714756241751 -0.4430020624479579 --0.3559749307222960 --0.0867175577329177 -0.2614656056422392 --0.0162636381774767 -0.4809620066037130 --0.0328290728456520 -0.4348033021342805 --0.0462785360879371 -0.2552137859210596 -0.2954668379373012 -0.1065311722051752 --0.2561345002400937 -0.0503350398133949 --0.0580539237193625 -0.1275061460415338 -0.1777206266673230 --0.4888527662390532 -0.4957734162654772 --0.3753687111790384 --0.2519199156624293 --0.0768538548420890 --0.3719596029587999 -0.1484414922888584 --0.1355331136662321 --0.2662077818093960 -0.4616873414436868 -0.1779685516426726 --0.3131291250685143 -0.3782741573686651 -0.1930411666732398 -0.1177010100415349 -0.0780037143603487 --0.2060145553049437 -0.0608423882500977 -0.3761871775505162 -0.1441989655644730 --0.3189928788522666 -0.4713249811202351 -0.3720289503655566 --0.0705609833713766 --0.2467188774292551 -0.3969774741365252 -0.1100117892988954 --0.3039300368507231 -0.4301354739598914 -0.2224530353170772 -0.0191027833281141 --0.3731910049583889 --0.3568293055427258 -0.4397683680282519 --0.3291431202416266 -0.0315018323429732 -0.1242359909565518 --0.2745113812953391 -0.4782736794109049 --0.4570858857378175 -0.4891683505866096 --0.2975282314385369 --0.4803173919340203 -0.1910933955316909 --0.2231706647713617 -0.2314732999603543 --0.4231691138708310 --0.3448906126280958 -0.1270659160444320 -0.1743060895480667 --0.1852610534577455 --0.0443459811672999 -0.0336071033488232 --0.0567563166619426 --0.4879462003817732 -0.0606860679844500 -0.0307654724048916 -0.1319108687982481 -0.0153605911637142 --0.4883296930019565 -0.2528566241924224 --0.2677547591448682 -0.2033589194426896 --0.1463137667636638 --0.1790803352935189 --0.3841677304969567 --0.0589956804897118 -0.4634522939857088 --0.4888260135379952 -0.3487323055999937 --0.2136973220320399 --0.0646500689373055 --0.2316899081695245 -0.1302969530620972 --0.2020172636568747 --0.3725911434553185 --0.1278147126574397 --0.2546989284992839 --0.3366334314738296 -0.2126333281485220 -0.1533281645944697 -0.0808262573450925 --0.2156545687146595 -0.0096368273743479 -0.4051319563159713 --0.0093117130745885 -0.0983082899373767 -0.1495880834323012 -0.0757792223158209 --0.4766876678257311 --0.2307096653279399 --0.4958530189441677 -0.1096013896981760 -0.3805597089399800 --0.4098974229560589 --0.2981292885634203 --0.0365949752574233 --0.1620685423769300 -0.1204605185689965 --0.0246252744190811 -0.0112592424386806 -0.1616274253970083 --0.0062334579670482 --0.1802682345018164 --0.0304282964865724 --0.2125944188906359 -0.4097122918366112 --0.4301837140954285 --0.1798358599253799 -0.0185972464080254 -0.4905173479273656 --0.1287609220333040 --0.4943629658149382 --0.4604477401272858 --0.1078465022415436 -0.3522029796288904 --0.1653805436920495 -0.1429233013492220 -0.1360433801365077 --0.3283956865435840 -0.0201155310158935 --0.4754139221074740 --0.0637980180507835 --0.3807320176402167 --0.1190801378239638 --0.2748876837484138 -0.0670535082271564 --0.2721372960593756 --0.4470546769072676 -0.1021001931781610 -0.1790772399224166 -0.2716493715297760 --0.2131372391927652 -0.2086536443199765 -0.4392660254042972 -0.1378488996151952 -0.0753465166316099 -0.4778896639349272 -0.1541005362632644 -0.1175561601799165 --0.2182444159515629 --0.3561887609035662 -0.1612642174687781 -0.0655215638728978 -0.4423159385445181 -0.3964914023258709 -0.4174747407529212 --0.0070196813379808 -0.4779240481377166 --0.1818952015182471 --0.2013107586779426 --0.2428237714101003 --0.3083999235833962 -0.0341139182822019 -0.2468217076566656 --0.0518929157531087 -0.0936366233299584 -0.2442557099061952 -0.0410113779987784 --0.4244544962537485 --0.4251054591709491 --0.4118263364405886 --0.1604847039014783 -0.3292182561831798 -0.2470779072815197 --0.0297098431721208 --0.1838979798732799 --0.1827834587037483 -0.2374536219431782 -0.0192743623627130 --0.2194520827291850 --0.4360335708684468 -0.2130278376509701 -0.2885729748132124 -0.3459418603364357 -0.3739453984594142 -0.2522291563308318 --0.2955254017000808 -0.2673406794115867 -0.2544967854617538 -0.4791920811987473 -0.1899486205135590 --0.3876166317167910 -0.4665559358594927 -0.0471981463946101 --0.3057388327923435 --0.4566215003245068 --0.2928569666604133 -0.2831913287613563 --0.2348475389393580 --0.3274035892995367 -0.1428563324162907 -0.3671010177349522 -0.1081367216327236 -0.1393078646525761 --0.0761041531717987 --0.1689118157922286 -0.2672532189318672 -0.0352403136965146 -0.4786971502709926 -0.2661294193430825 --0.4829199747243004 -0.4244074576810648 -0.0413752736159771 --0.4712057783314763 --0.0117199906987154 -0.1707214734656840 -0.0664635732064296 --0.3251378804127907 --0.0464674331091142 --0.2726137188341013 --0.0815955674110387 --0.2006756657558489 -0.4097756987185860 --0.3231947536329276 --0.0233381317450996 --0.0174770366547908 -0.4760491135221880 --0.4777848370300005 -0.1888504370810208 --0.3760486927002152 -0.0485435178768772 --0.2012386441837110 -0.0561370316148891 --0.3620857399276918 --0.4905333596730310 --0.1559623915924550 --0.1639380271883155 --0.0626352303999349 --0.0395651660572124 -0.3535612938381643 -0.4134297132560247 --0.3284579103727986 -0.4908922097051105 --0.0250722712613756 --0.3748049587968345 --0.3800929051849321 -0.0663664606143862 -0.3089862728472129 --0.4054599516059783 --0.3558548026743467 --0.0374802506329061 --0.0707229303580408 -0.3639195447432346 -0.0211270487544926 --0.4960737200480522 --0.4988241083599644 -0.1833368379014721 -0.2007083090818177 -0.2422283452747417 -0.0281931199838487 --0.1632206856001426 -0.2671373984849126 -0.0412184398424924 -0.1021015440913253 --0.1238765157264030 -0.3912456482822858 -0.3815788022034485 -0.2899403302123719 -0.1074823902030668 -0.1772490738704474 --0.0222292494748768 --0.0291143123669266 -0.4635916031584622 --0.3236015524904109 --0.2272497698703543 --0.3536399337188967 --0.3266546170430762 --0.4834050314647113 -0.3644986842700396 -0.1068381808285457 -0.4691780174692244 --0.1775348474848827 --0.2117371890615509 -0.0148486338006011 -0.1786791865359718 -0.3463707450685359 -0.3478671149035980 --0.2842142317894001 --0.0464923055750226 --0.0824505570444379 --0.3359901315590229 --0.1220864111431413 --0.0926797878198044 --0.3043695882175977 -0.0009583692983397 --0.2328855098976569 -0.4463817489661509 --0.2021075859682978 --0.4038646077673675 --0.3208446935868647 --0.3001776556132351 --0.3398882076184980 -0.2008862334619737 --0.0563296739477587 --0.2118797950763722 --0.0645100989571497 --0.1541462938186119 --0.0136355397020084 --0.2885485552009600 --0.4544345000320064 --0.4351473860747795 -0.4061800810138900 -0.3359259337698395 -0.2274221170832363 -0.2136411968729466 -0.4082424735107425 -0.3839727629895447 --0.3602813918581743 --0.0514003390978262 -0.3710584598934502 --0.0873214681401171 -0.1569208507280179 --0.3697766863224000 -0.4408021142124381 -0.1566698732369666 -0.3543062414871980 -0.2658415354209089 -0.1782227444037920 --0.4308525614158961 -0.4034898824859597 -0.0299372100597235 --0.0504515366432433 -0.3072030763876551 --0.2777476125105593 -0.2386502398203574 --0.1862190874447932 -0.3163976724866837 -0.1478283781152648 -0.4099590634362089 --0.0834917634153718 --0.3920420684969622 --0.4639966197754294 --0.3782661397491274 --0.3781456618322441 -0.3398682867388026 -0.0108797423897457 --0.4472120079916480 -0.0180611700108055 -0.3411987867709243 -0.1056074920261487 -0.0329342173929354 -0.3779639279963387 --0.4480611534306774 -0.4471242759165983 -0.3361373832400553 --0.4175251541259085 -0.1360358915176915 -0.3674863090505956 -0.2620059555978824 -0.2868870903622686 -0.2335875744925811 --0.1912875527342539 -0.2068483685535193 -0.0009663253734257 -0.3204346828900280 --0.3713152543476050 --0.2593098432900162 -0.3405951440090710 --0.1880623838183043 -0.3737823046846828 -0.3188672952427822 -0.0714577591226613 --0.4430130072817536 --0.1836209842472274 -0.3160735672225893 -0.2294478876193773 --0.3037998451182470 -0.2828848822471060 -0.1846908215984758 -0.4947426877569866 --0.4750806146216494 -0.1268310698491563 -0.0050224922572938 -0.4471211534578475 -0.3070765288638290 --0.2756155779792343 -0.4050568111880135 -0.3573988054285285 -0.0962573669748086 --0.2063560005559369 --0.3935890247926935 -0.1987905411296418 -0.3717233586021045 -0.4507698943631454 -0.2111238873247069 --0.2722615474373775 -0.3958953958961852 --0.4016803045942222 --0.4875142658147224 --0.3841211141132619 --0.1278128421938630 --0.1056308741147430 --0.3381694228076228 -0.1522812929588194 -0.2515039566733900 -0.4323529611324425 -0.2107271696811842 --0.2494202274321973 --0.2663187148515335 -0.4463081170472853 --0.3541843526819543 -0.1972081938469031 -0.4620985323087055 --0.2782840390090770 -0.3275964656273100 --0.4841381415242085 --0.3809232636431132 -0.2992336160031288 -0.4233858731422754 --0.0083129112590409 -0.0322410813615738 --0.0796777548425894 --0.4014459681895960 --0.0045699835330214 -0.3424411570469573 --0.0927432818056100 --0.4333506969348666 -0.4436149636721938 -0.0341925877342263 --0.3884441233515794 -0.0394414482514946 --0.2866222455231500 -0.3742698174359415 --0.0073105270423860 -0.2370734913518688 --0.2711135740960690 --0.4358389938188152 -0.4233105307500995 -0.2294092153878285 -0.0522443624207825 --0.1786724013274328 -0.2804758780629942 --0.3641062440617989 -0.3577533254670533 -0.0447052195538291 -0.0175537145011389 --0.3353759948053296 -0.2458849304738195 --0.3840926554523950 --0.0299401873612057 -0.0472078151545781 -0.2256984927494721 -0.2913238484821290 --0.0053538756918966 --0.2454552432284356 -0.0928752445277561 -0.0902198217476829 --0.3564057358043053 -0.1180104514739206 --0.0469371183355498 --0.2320281843752258 -0.2303585087668238 -0.1567257066434474 -0.1771458036224584 --0.0231911518287829 -0.4821343857747540 -0.3438998411194075 --0.4671928878665996 -0.3018278899795357 --0.3814352739482734 -0.2121966511487732 -0.3226081939044526 -0.4440082058646051 -0.3158652049794541 --0.1096961750154836 -0.3828048367094834 -0.1657680925264067 -0.1291305933887741 -0.4707962023941167 --0.4131780346983889 -0.4758816432468408 --0.2261480660985081 -0.0180344881975328 -0.2144746575303565 --0.0409698653247559 --0.0988521623762341 -0.0790243849919570 -0.0007377866913673 -0.4827581127256924 --0.2711351964433964 -0.2580890772895353 --0.0381790858994019 --0.4717346992107175 --0.0574178227705913 --0.0257733450186697 -0.3664060965744277 -0.0206714623709152 -0.4349865168431754 --0.4119637476515009 -0.1358704096466863 -0.4441696695392323 --0.4991607572010814 --0.0845055448759695 --0.3888356934934705 --0.0145604074528872 -0.0246200509372015 -0.0980708329728217 --0.3645717471009275 --0.3485269217182321 -%% --0.4255090723593751 -0.1003959811473946 --0.4689488359679755 --0.0861351386554342 --0.1238052084181676 -0.0214294374618673 --0.4782738570506119 -0.0357899328102427 --0.0050516231208556 --0.3873395038266786 --0.4026067705327956 --0.1021138728280805 --0.2018688453951114 --0.3427899037321795 --0.0916429638334615 -0.4684761870036048 -0.4868219940278903 --0.2176210284877310 -0.0543595302377633 -0.2350302037352653 -0.3069034553160739 --0.2773422602343341 -0.2665658438032671 --0.2853794488024611 --0.0030700960320754 -0.2368134024381822 -0.3434804973005380 -0.1851977195850656 -0.2665036069247364 --0.2098005112047476 --0.1717583672154881 --0.2515968421265548 --0.2850573672077777 -0.3406937400471280 --0.2181781304136906 -0.2330257783888604 --0.4038128860632997 -0.1786698842197517 -0.0579491260907850 --0.2891685954243224 -0.0867774049443926 -0.4729048073557747 --0.4118239986661651 --0.3691366940780287 -0.4878358065870914 -0.3793668353727628 --0.3938673144238445 --0.1150770712095397 -0.2271613020145520 --0.3059611235794877 -0.0798325617779146 --0.3317250849777341 --0.3844940337239898 -0.2803041144613144 -0.1973883104954021 -0.2925818205728924 -0.0049354722387228 -0.1160000615567424 -0.1508972709054981 -0.1645809359455023 -0.4006534219964644 -0.1374354155824379 -0.4605391610546545 --0.2100743207241344 --0.3328350549085921 -0.0242963335351867 --0.3335224302709433 --0.3215756123366900 --0.0919231793962709 --0.2521321696389437 -0.3477853400387060 -0.1137636967201309 --0.0500344044752766 --0.3840024759811601 --0.4744575141790550 --0.0807942718726190 -0.3505854782984940 -0.1103248712962920 --0.0363568201574119 -0.1050614699403944 -0.3918284279836336 -0.1385246389661129 --0.0143315355115351 -0.2328477801951783 --0.3340141405940164 --0.3557091719747834 --0.4761176160934216 --0.2685438134460073 -0.2994671317638116 -0.1455315357936088 --0.1248567087175954 --0.4963776107417993 --0.1195772615503566 --0.4109394362242381 -0.3413148607509543 -0.1577781560016939 -0.1506283850297021 -0.0651268147351131 -0.4766834855366925 -0.0703656983239329 --0.2808737254746189 -0.0241197109565234 --0.4751077789547709 --0.4071183805961237 --0.2768354419617666 -0.0691972941463214 -0.2404604855597532 -0.3203219486093015 -0.4355345620434551 --0.2039022821760770 --0.3346210332831707 --0.0034327122782467 --0.3940603061692576 --0.2732046009932630 --0.4979955250859886 --0.3383525793938942 --0.0867861998739187 --0.2631640774758708 --0.1687075152204641 -0.3386880802324272 -0.1492165403032210 --0.0695660252079736 --0.2554891682825243 -0.3145921244355058 --0.2828338044524316 --0.2073910147747918 --0.4880958645774497 --0.0412062469733514 -0.3799274836463801 -0.4834880148784035 --0.3302152804859725 --0.2908204577749324 -0.3799610104744855 -0.3352278251817872 -0.3029777980474817 --0.4424512328703730 -0.2691105305599997 --0.1372673108494503 -0.3614010915991184 -0.1041543996670723 --0.3650954245303380 --0.4759282908062925 --0.3960840524452206 --0.0432777204858155 -0.3460187964385510 --0.0812129157112322 --0.1916997226779459 -0.0690436201072602 --0.2587999648484113 --0.1163693454646004 -0.1655076815675369 -0.2612922517768207 -0.2731655682148677 -0.0830063635525695 --0.1660752773471267 -0.2915574263840475 -0.1582442922969689 --0.0824740438513034 -0.0215653744435931 --0.2134990632112336 --0.1432694034104859 --0.0060896680130152 --0.2018937959145522 --0.2967829595289834 --0.1166097630771184 -0.3525061025761500 -0.1969715537271688 -0.2470551056895179 -0.1615875892135347 -0.3704712147963954 --0.2878357548373608 -0.1021654256915009 -0.1571424956786973 -0.1238331380559238 -0.0146580817967552 --0.2144144438696086 --0.2257425049145310 -0.1225569675320149 --0.4466161725654178 --0.2064444277035670 --0.1578883216809876 -0.4589648176738705 --0.0653791976670439 -0.4601991287755726 -0.4428593202287435 -0.0852953296215396 -0.3746535554914753 -0.1340552231766458 --0.2212961084613924 -0.1093081552867891 --0.4392370289842559 -0.3201434308862593 -0.3000948050982155 -0.4967785368852289 -0.1696032733350000 --0.2664534605892918 --0.3808935427193602 -0.1133704666150794 --0.2286281046082509 --0.0095967027659690 -0.4754531978352212 --0.3513370385466512 --0.2444981606451092 -0.3344672104592319 --0.1843187271733366 -0.4135908892417143 --0.4621244849182822 -0.2375622842785539 -0.4773316421998351 -0.0897558904109929 --0.0963590423167363 --0.3901246393316624 -0.0324200478158887 -0.4272881333662260 --0.2774323764380677 -0.1750529795155394 -0.3308367730086326 -0.3462439715445221 --0.3455430043745000 --0.2302178607330306 --0.4023126548717288 -0.2935084333473916 --0.3645718379554271 -0.3943474250522346 --0.0317582389763088 --0.2523303771979291 --0.0887886907802015 --0.1404932028167463 -0.3283636157802693 -0.3828856110778583 --0.2645514955955298 -0.1013691126210915 -0.0138595908016150 -0.4341383640410316 -0.0212459531899646 --0.0360603148501825 --0.0625379101895616 -0.3290389292699053 --0.2102470293090341 -0.4429304352276578 -0.2560560479391087 -0.3081843415934805 --0.1555526615304355 --0.2131257285910379 --0.2898289716569352 -0.1535422941066777 --0.3086815123274038 -0.1023122114508395 --0.4805296645475966 --0.2776322620696433 -0.3244829999712530 -0.1361442691922778 -0.2004725373098700 --0.1017562822378076 -0.3548257075248383 -0.0200912939619448 -0.2272569630111225 -0.2748887228869331 --0.1569737335536837 --0.3131005664319053 --0.4456336887906811 -0.3514212268643726 -0.3584713279607648 --0.1756020934436479 -0.2237250361599911 --0.0086791758256654 -0.1861199156789359 --0.4761633123522584 -0.0769331828313227 --0.3219013369578988 -0.3880877406289909 -0.3175212786729061 -0.1817980021300837 -0.4890372316210527 -0.2181124881078564 --0.1271210594133028 -0.4474077459051521 -0.1985932887801443 --0.3330685847437559 --0.1647643447455322 -0.2977844154557096 --0.1416416412221208 -0.3776813456744198 --0.0533779225184460 --0.1382243189379419 --0.4926254038853709 -0.4250877956455573 -0.1395481290571057 -0.2853559941128757 -0.0310219901165730 --0.3926986064627654 -0.2821001015015184 -0.0154524213956178 --0.2314796261575497 -0.2705336169182980 --0.3561784705322066 -0.2455632462415369 -0.0978443760279027 -0.1858314418579472 -0.4795823619109548 --0.3548017951482357 --0.1862310371935130 -0.4769921914533929 --0.1785861532401479 --0.2292558916348896 -0.3115559552087143 --0.1307622198103772 --0.2687113641987993 -0.2895927671791430 -0.3212584584657652 -0.1419221159474837 -0.4204949582089900 -0.2595767306201764 --0.4464865157999142 -0.2091781136952096 -0.4994410687255284 --0.1643832620743962 -0.1078550477689345 --0.4037469618613579 -0.2973926779009489 -0.4345988394413669 -0.0062876995415149 --0.1141510528526780 -0.3106786658315915 --0.4638492053026932 --0.4421574010157170 --0.0143372473160140 -0.0827079546553868 --0.3107948105374752 --0.4567962845188361 --0.0424280795716891 -0.0040317224858045 --0.2635312312935990 -0.4355691016054981 --0.1975604855047992 --0.2653151408385018 --0.0763020140529326 -0.0349390666455331 -0.0712537893453448 -0.4174472475955017 --0.4256140161566364 -0.4493137647333125 -0.1992511255983868 --0.0246594501923323 --0.2856556596570600 --0.3896023124545396 --0.2442272125193450 -0.2558087927388618 -0.1020575222876966 --0.1429052739677298 -0.4329008633467030 -0.3038972094324570 --0.0408735050266513 --0.1420359762027082 --0.3683579495257514 -0.2760442284305953 --0.3165881751821467 --0.1189483846788862 -0.3616452724482049 --0.3024253659595039 --0.0065784847304118 -0.3492999204369951 -0.2063222135519909 -0.1765546499587541 -0.3890629485443693 --0.3334161177753148 --0.1621599692541564 --0.3877214871089283 -0.3999166805341422 --0.2068060752399670 -0.1545776790901677 -0.2919951366782531 --0.2075639019509861 --0.4999417595786729 -0.0331525361872268 -0.3365080694915067 -0.3521209023427115 --0.2796362014414009 -0.0028403366193390 -0.1121296532474468 --0.3035780271348576 --0.2367038869086623 -0.4007642452958530 --0.4832714219986664 --0.2646854755751173 -0.2681799354590529 -0.3739339865772545 --0.1421939569139613 --0.2641819183386234 --0.2492399591800156 --0.4946733324772418 -0.0213115453088991 --0.4754975191523917 --0.1413107747433475 --0.0434510865555090 -0.1067751293117634 --0.2028599398518821 -0.4444632137746499 --0.1537081361585703 -0.4554219865588455 --0.1825168707356839 -0.0440689530350660 --0.3977526589981213 --0.3090299199749790 -0.1345702753207734 --0.3906193395232840 -0.2986179739274762 -0.2921633027842446 --0.4112449912797428 --0.3549705125080705 -0.0395607076593224 --0.3528014946390928 -0.0027804701398525 --0.4159687601710462 -0.4545712661808851 --0.4845881221550302 --0.3688353910889700 --0.0886190165729167 --0.1183160448066756 --0.1590816736531951 --0.4712659463050025 -0.3245251809130726 -0.4741228417106041 -0.1855985912090038 -0.3881115817590194 --0.2265954031955404 -0.4443051692007695 -0.2470573345824032 --0.1026702654981710 -0.2955318051569673 --0.2564844261147170 --0.4901872445752008 --0.3347897196595097 -0.1683780880410551 --0.1756857753810658 --0.3044774601743537 -0.3630564791046341 --0.1233802273353323 -0.2427364645761575 --0.4608952619628449 -0.2628397127536366 --0.2218512728370456 --0.2232245841393982 --0.3635308215092293 --0.4461076881262581 --0.2149278497248581 --0.3126301978793254 --0.4671026396166628 --0.0886682200196695 -0.1688384792981219 --0.3038065754041668 --0.0818887389728553 -0.4159060981202446 --0.3041820836807616 -0.3137254244255523 -0.4487291300060424 --0.0094358182623596 --0.1922345435757832 --0.3266450517875994 -0.2734300984283474 -0.0895471919253229 -0.1001396078131837 --0.4528659498206145 -0.3288257992036374 -0.4186568804660693 --0.4401553119465749 --0.2779956424839672 --0.4958143544299751 -0.3392061621265459 -0.4894728358865287 --0.0924631376930299 --0.4735467582287070 -0.3249215210109830 --0.0195772765064874 -0.4296441921715146 --0.4790677681657042 -0.2625185210257652 -0.4079223600125221 -0.0646893167247345 -0.4942765238896506 -0.1062559916719461 -0.0695570360172535 -0.2733470603381122 -0.2908262776651667 --0.1418665792978568 -0.4298491328745901 --0.2474131403369176 --0.2791058467669325 -0.3030837979013034 --0.0820954182111406 -0.4078980508746070 -0.1575322667894352 --0.4786842382295082 -0.3683361463991330 -0.1198872241946154 --0.4160725444254833 -0.1982054377522401 -0.0310017743192919 -0.4125352939114136 -0.0588325296668758 -0.3662395645424570 --0.4209536289509150 --0.0035698996405750 -0.2141867336772016 --0.0410545342456773 --0.0339799662515006 -0.4729557362505116 -0.2912064169318891 --0.0238312357959553 -0.3692844841966102 --0.2084005110291311 -0.0698923882269467 --0.3917293669015471 --0.3142426127051665 --0.2323991868282546 -0.0555595117353874 --0.0489851971769353 --0.4725586631660704 --0.0789775526879053 --0.3521561117230048 --0.3451023937120519 --0.0977220439666612 -0.3710345719788597 -0.3310386550646565 --0.2032790087007529 --0.3044975830132695 -0.3860973384349545 -0.3105401474647648 --0.3971346293795207 --0.1820069987656431 -0.4112527657530287 --0.4354399081706529 -0.3316115232944399 --0.2178924778453901 -0.2876503979181846 -0.3126411863275826 -0.0703146078114243 --0.3041501346775546 -0.2668035869923945 --0.1582617128966424 -0.4765830388028187 -0.0429096178775660 --0.4364945075275874 --0.4415069146321890 -0.0053664034118617 --0.0681596553754197 --0.3332022861558708 --0.1599855283378981 -0.4084464933427940 -0.4163287579962210 -0.2396569990701948 -0.1570576629613014 -0.3901329413650267 --0.0487281917358803 --0.3717877922646380 -0.4918900189591481 --0.0719589311768924 --0.0874127672341757 --0.1453269146349982 --0.1931834711052506 -0.1740117202355542 --0.1082906090437903 -0.1993058676596479 --0.1788104936280354 --0.3991279468686342 --0.1208860206903545 --0.3344798257400328 --0.1879954912767468 --0.3321392127019693 --0.3169537755306527 --0.1501139175759302 -0.0714279559387955 -0.1979183623465720 --0.2567017969791019 --0.2027772333040576 --0.1380775642344329 --0.3628665760986090 -0.2380736063012061 --0.0304950213860875 -0.4969313795461562 -0.3856335695096561 -0.0796349622748407 --0.4578363610997398 -0.2489459668531810 -0.1171453064703414 -0.2253672276173816 -0.3408735929295654 -0.0964103996236462 --0.4178836215267064 --0.2603344583684249 -0.1958031307930189 --0.4206445433509665 -0.1798926151186255 --0.1933227996703715 -0.1338000423355364 -0.0463786145232832 --0.0657569139682876 --0.4631581618467455 --0.2523986251836135 -0.4528706490181399 --0.3475273004176209 -0.1710863315232413 -0.3910536354990762 --0.2497499377997582 --0.0692880018424428 --0.0045379360361797 -0.4065538585311617 --0.2904472866923348 --0.2197508356458270 --0.0030691302915014 -0.3519531607780675 --0.0369656637503438 --0.3690827478885939 -0.2156447186913564 -0.0223657172611972 -0.4234436793840297 -0.0940340561115732 --0.3143605141401378 --0.1528007476397824 --0.1099063147164728 -0.3553387616652556 -0.1562750780860392 -0.1768882381811585 -0.1782481697309971 -0.0180580908117607 --0.4088387767859851 --0.1535808070973409 --0.3493997289454418 --0.3465887743470220 --0.0945755623438165 --0.4583367412473300 --0.0848259261218550 -0.3032127017104451 -0.4276398938602863 --0.0043891600691200 -0.1659787134123577 --0.0672978241735432 -0.4664801684939164 --0.1952760005767408 --0.1884717445545285 --0.1514026015111198 -0.1794787234586774 -0.1992259055414151 --0.2960738770707301 -0.4250438169849708 -0.0261577562343004 -0.2898209042260892 -0.3031207979755999 -0.1802180037968130 -0.1089336135656924 --0.2032868030508413 -0.2589013122320359 --0.2279651671507480 --0.1747828779662171 --0.0001281299628972 --0.2101681636934892 -0.4163578329533125 -0.2628518731394488 --0.3155665901876991 --0.3791994032732934 --0.4553672086089963 --0.0773913746799568 -0.3986315754794177 --0.0357915543816312 -0.4565339328231259 -0.1308854486034864 -0.0917358349016343 --0.3126990445083965 --0.1960698566090326 -0.1745428364676211 -0.0032089054635454 --0.1978356071046575 --0.4901563076524408 -0.1945713970307663 --0.2709381474077141 --0.2877717201389621 -0.4941160211092916 --0.0890080529653536 -0.3018469588895006 --0.2207663298626160 --0.0484267852105372 -0.1547910278041879 -0.3513496134842463 --0.2959463423760071 --0.4329816338294687 -0.3670961185862694 -0.1178567164242852 -0.3436951669448575 --0.0817047427558449 -0.2947723365945589 -0.0383931272117743 -0.2520419119893480 -0.3023733482266281 -0.2868348879649741 -0.0417656241717650 --0.2417270195502089 -0.3788865026335969 -0.3551167038829224 -0.4290448072784062 --0.1434878709664368 -0.3280212198734908 --0.3011698408460673 -0.2615164777749828 --0.3746438932487531 --0.1350344295895434 --0.1727574688655070 -0.4861748858550504 --0.3461404032456101 -0.4590151332996334 --0.3966894839883848 -0.2884061132262163 --0.1256002829487831 --0.4761827492713307 -0.1153147887679208 --0.4711942537331983 -0.1675935686067275 -0.2563025130758088 -0.3367262623602036 -0.1327250271593858 -0.1291700812098902 -0.1647564006738251 --0.4418992518859073 --0.4596831067676220 -0.0781984136712619 --0.4148908797616879 --0.2005995652097239 -0.2131062167973624 --0.2899552241133224 -0.3266676506818488 --0.1556660123292346 -0.4699554487883290 --0.4711500061937274 -0.3566660020465017 --0.1524977815857696 --0.3326291909084194 -0.2603928954830640 --0.0064592643476413 -0.0794945515381902 --0.2416351833085404 -0.0742942870031563 --0.3404028529370847 --0.4119200398832188 --0.2383781414560103 --0.3683996489324869 --0.3434857364107109 --0.2327448619236049 --0.1695287117073517 --0.0840056119804609 -0.4311919539307059 -0.0989595178839436 --0.3762692836691224 --0.2920371084116319 -0.3449149809933604 -0.2947277676573256 --0.1999435991290554 -0.2012523488967064 --0.3791867730420872 --0.1868240855829836 -0.3551890471212074 -0.4430180194210784 --0.4386510314613087 -0.3093026915237201 -0.2006205445868144 -0.2638995751704638 --0.3259468996567456 -0.4863321525652662 -0.2732481261159894 --0.0996988224727077 -0.2749930699273819 -0.0293987821876242 -0.4868025567899982 --0.4300556156011600 -0.2757411308234101 --0.1865891850786027 --0.3112558077415336 -0.2679636839503412 --0.4259983440629705 --0.2934999163254666 --0.2118046283410177 -0.0092162007580897 -0.0678458093960356 --0.1449662705534768 --0.0711133898482330 --0.2374262347503782 --0.4329482101738551 --0.1417791561311365 --0.0368809852157354 -0.4962482615397005 --0.2006642862553110 -0.2136425903233395 -0.4724694844095528 -0.4873002903568326 --0.2659854327022925 -0.2940620208707384 --0.2047929761110818 --0.3080036421645519 --0.3965851979611493 -0.1051337418560589 --0.2400306256878894 --0.2866349310994887 --0.3016376899252590 -0.4788801647903563 -0.2891247745270171 --0.0981760080638797 --0.3634531588792091 -0.4855890087001478 --0.3295584898384982 -0.3940523377283587 --0.1204699603454411 --0.1654648207473312 -0.2872552286992399 -0.4332820447600124 -0.1761356879505004 -0.0065539962732061 -0.0746224709379114 -0.4850765452102191 --0.2400350677305381 -0.0451311385903999 --0.0534916036659242 -0.1739192120991860 --0.3227769885831676 -0.3995240635621277 -0.3958712439541665 -0.0550385370458792 -0.1755852294955170 --0.1014367130474490 --0.4575259595783679 -0.4486246686280224 --0.1525024749533986 --0.1036175377548729 --0.2212708889037122 --0.4076378070846181 --0.3735689771426314 -0.4129165705540221 --0.1969566992315818 --0.2525466588351062 -0.1167934317373043 --0.4092118503962894 -0.4774138579905517 -0.0333879332631586 -0.2922540390432117 --0.4175981324710875 -0.4754042035037350 --0.2558064403470208 --0.2062701936358803 -0.0602324445708283 --0.4506386597290676 --0.2968915499603670 --0.2868558682319098 --0.1604154542965113 -0.2118006990276875 -0.3651871658783690 --0.3073754221949826 --0.3090047136432903 --0.4434037650679785 --0.2204127260357860 --0.3916304343008095 -0.3312696340084913 --0.1766346427670981 -0.2787417059599778 -0.1883633369417523 --0.4550632839256317 -0.3142820788077080 --0.0307626402584527 --0.0291404262546423 --0.3591339564064505 -0.4574256940403741 --0.0921369003354278 -0.3577722569424684 -0.4620032624635270 --0.4609570612410916 --0.2633388870436346 -0.1485406197671680 -0.0014567508919666 --0.2713884820332363 --0.4018211885983058 --0.2494879158628080 --0.3193676458453973 --0.0320520343586925 --0.0099391189745789 --0.0196039583333424 --0.2742195203318637 -0.1427271305126666 -0.1635944289309471 --0.3701132146975377 -0.0115215380743492 --0.2706188613620836 --0.0339404399190864 --0.3054742953392650 -0.0893662854201182 -0.0737600072544007 --0.2787484284056631 -0.4456753829298495 --0.4109906550214793 --0.2085959931270034 -0.4642799094591201 --0.4148229468146037 -0.0725258426375218 -0.2512162357048413 --0.2192358091372803 -0.4114283912185644 -0.4622855547195419 --0.3915060805428096 -0.1132306130320873 --0.4659202779685317 --0.3528735145220741 -0.1686522970980507 -0.0576803869075215 --0.3093846009860949 -0.0224653336349999 --0.1725220507610166 --0.0646782297985295 --0.2483114114963449 --0.2878396780560339 --0.4227036712124743 -0.0072724887865836 -0.3935280009426281 --0.1335390047617512 -0.1201968041430754 --0.1378976811600937 -0.1029673627910744 --0.4431524209355144 --0.2736936345223980 -0.1277682176611352 --0.4578817121970431 --0.3195284554103407 --0.4864307258443977 -0.0440077939177549 --0.1483692981689299 -0.1382937479031150 --0.1924152894166841 --0.3136984697408589 -0.0301877412643056 --0.0260438792126801 --0.1389004383534706 -0.4198099739242492 --0.4067168462490519 --0.0537741718521305 -0.0333126231650014 --0.1219698398954562 -0.3783698621094786 --0.3583132630566097 --0.0418807451674287 --0.1793478376858096 -0.1692522865725606 -0.3805001012584773 --0.1143467090717057 -0.4963772804791737 -0.1141582130483899 --0.0382143396616139 -0.2281831720947005 -0.1395592546966653 --0.3051155385030830 --0.2700563787504387 --0.0056357723875318 -0.0523120968280731 --0.4215953667816130 --0.4609652487116805 --0.0654577740622312 -0.4754607130246790 --0.2599845483645021 -0.1098647799232504 -0.3126312836129430 --0.4988080248809535 --0.4957929013324795 --0.2257841183976223 -0.2770597741058617 --0.4870380495489126 --0.3698738073903939 -0.2112811891677699 -0.4201150257154005 -0.3748053417175690 --0.4849892111102490 -0.2771672829000217 -0.3096920536489608 -0.3636747421080946 --0.0307735954427291 --0.2991795928850844 -0.1698343981997922 --0.3329068137156169 --0.0374625707280042 -0.4930516449781763 -0.4620387146985410 --0.2704518643344654 -0.3815344945317943 --0.0380373817569530 --0.1960024536927036 --0.2283626413922086 --0.3367437355326450 --0.0225565555968907 -0.1693371407177068 --0.3445435502470268 --0.4744700312331829 -0.0801407455126777 -0.3262515235259924 -0.4251803686711203 -0.3290796078644540 -0.0870197311906299 -0.0251654865487730 --0.0573920588111271 --0.3230737973792854 -0.3193189482072215 --0.0853470143593533 -0.4469464587102370 -0.1257710753225278 -0.1456911458242299 -0.0385762819453994 -0.1790549569637353 --0.1532578989046000 --0.0450302813228192 --0.3196429461587652 -0.2432000533939859 --0.4937144509909998 --0.0012526034437227 --0.3368554470960478 --0.4784793408173584 --0.0047603688451114 --0.0760087363694773 --0.3292763432423976 --0.1201331224525718 -0.4432265054633366 -0.0902707500336405 -0.2188326227851898 --0.0382773156191029 --0.1561428872347789 -0.3270521721189605 -0.2995944476081212 --0.0201499580702042 --0.3667460019131806 --0.1468915711019119 --0.4309572751530362 --0.0872095111923956 -0.4524527209180689 --0.1020187688188058 --0.1311197595046087 --0.4366251949950471 --0.0419598540529593 -0.4628699220321748 -0.2170697644292721 --0.2191235379899427 --0.3213082666703314 -0.2951747844806449 --0.1768347471444371 -0.1440324052030922 --0.4367301792138978 -0.3268915145821329 --0.2658250856620586 -0.1776694233399565 --0.0868949616981855 -0.2476721154021942 --0.2048370134600700 -0.2913956135491885 --0.2426672312325016 --0.0561962388436086 -0.0130724364261614 --0.3105937905933783 --0.3410372830511527 -0.1742821959559429 --0.3180725590413640 --0.4248037680846656 --0.1394161797285672 --0.0828253273367456 -0.0440325678864545 -0.3028094818238460 -0.4090988849041570 -0.0741540631774584 -0.4379179733105221 --0.2880413815183988 --0.4858935652692800 -0.2002240855906146 -0.3508626122118714 -0.0915092902196697 -0.3167047819570149 --0.0911149071975534 --0.2376079878866779 --0.1108533505160195 --0.0504819876889767 --0.0549386314200302 -0.1073459575540703 -0.3605063273274033 -0.3055352308781114 -0.2619769015116673 --0.4172518243194930 --0.0890208511881834 -0.1495691246737028 -0.1995209428283368 -0.4557837386834148 -0.2927465224293798 --0.0260084762624220 -0.3783821906590518 --0.0771247934734971 -0.2324899106003891 --0.1135378933398929 -0.4787996433785298 -0.0216681823333275 --0.2756066288496325 -0.0101372326813385 --0.1603132927543430 -0.4282979463152260 -0.4706742302917581 --0.3065598379490672 --0.0773302440039379 --0.0592100047057939 --0.0946143421328034 -0.2970175752643954 --0.0700151093005041 --0.2522905671073907 --0.4804461949057355 --0.0299092972922549 --0.0117553941600592 --0.3819766645025224 --0.4949664056387490 -0.3422914801798748 -0.1184150514021836 --0.3468236556284318 -0.2436742538352471 -0.4784896365217246 -0.4760423311005739 -0.1142847292421334 --0.0190209748074465 -0.2350009968521926 -0.3281110640624487 --0.3440154644492788 --0.0706631189214096 -0.1408397957395198 -0.2447513040531746 -0.3871901348808436 --0.1341592917245787 -0.4853156529299215 -0.4347167863565927 --0.2956708290041965 -0.0756712042417134 -0.1791988294404089 -0.3907119866888689 --0.3262541587805049 -0.0040296297570688 -0.0556855949910641 --0.4568651692197556 --0.3337760166086617 -0.4924178790289504 -0.4252958993331035 --0.3617992748634123 -0.3815207942410712 -0.1552489912530833 -0.4207020404321706 --0.1971815875549870 -0.4462893018422216 -0.1008649706098884 --0.0084102138738131 --0.2612268538583085 --0.4467545741118660 -0.1260593296138161 -0.0767564764496971 --0.0589337944344277 --0.0004776749221558 --0.1401945370680155 -0.0741762963226479 --0.3726832340930339 --0.2027776882976704 -0.0659734413179224 --0.2630593135661488 --0.2422888605422999 --0.3294668161170133 -0.2920323294835268 --0.2455409973179684 --0.2915631759804381 -0.0933356553889287 --0.1285193214057547 -0.2557815104974221 --0.3394308268195025 -0.2308638669478563 -0.3915152147589399 --0.2836623042489431 -0.1678945841165947 --0.2413308768573562 -0.4620524271442882 -0.2553707339814911 -0.0115421986130528 -0.2346471788703769 -0.1740783028295261 -0.1851996707269928 -0.0062493706921459 -0.4561268831958318 -0.3663526052435616 --0.3223713731896781 -0.2023252651270384 --0.2909361203312733 -0.2311501233259725 -0.4208621583771288 --0.3120123608654393 -0.3812732646074325 -0.3349081475459735 -0.4508210687765537 --0.0760065688620091 -0.0758670702821425 -0.4729107465553655 -0.4854571787699822 -0.0253140884030542 -0.0933509225601570 -0.2153643647990499 -0.1604902179373257 -0.3097557908319570 -0.0584042648968202 --0.0718800737030441 --0.3270420270610405 --0.4663917511817657 -0.1564298508926651 -0.1422743193895412 -0.0830955438100045 -0.3664740396054412 --0.3488497872365681 -0.3499016976167587 -0.3334491162950335 -0.3662031678458075 -0.3390160418908958 -0.3633948653851446 -0.1805358424067183 -0.1966065053518696 -0.3917235509170629 --0.0558094087758562 --0.4420185662000893 --0.0413002734207329 -0.1969147789487629 -0.1832300586376354 -0.4731396352692780 --0.0547479493140659 -0.4648309337183751 -0.4743019876856285 --0.0519868509346841 --0.3027330153590254 -0.1360570365851460 --0.1000546536306328 --0.0084365350499516 -0.3716341794734965 -0.0743495417164315 -0.4392526345490593 --0.4493146865386340 --0.0921829804963915 -0.4193717203491890 --0.0022419829424323 -0.2636754938798417 -0.2313521221776285 -0.0903386060266718 --0.0291998301118389 -0.3494671255286941 -0.4015858890087439 --0.4260410093815734 -0.0776283281676070 --0.3100391172583402 -0.0261645780094363 --0.2461228054809785 --0.3126638082620505 -0.0549114767506421 --0.1816317059549148 --0.3487736965989881 --0.1973628527965532 --0.0295491517056307 -0.2027122454964163 --0.3860402189351145 -0.3741308605412854 --0.4918695876612668 -0.2477014851329072 --0.1785847122641053 --0.1121411766825073 -0.0058998597255967 --0.3769334323125212 --0.4975944936425068 -0.4611162062905568 -0.2229172036806094 -0.1429508714803907 -0.0087455328763326 -0.1805755179400397 -0.4655936820644072 -0.3076469660038721 -0.3051010575907215 -0.2863769563783374 --0.0356534991077747 -0.3299917104581902 --0.4525600929883776 -0.0172410717492845 -0.2421226355354282 --0.4971142418300936 --0.1370940491496752 --0.1716275163580891 -0.3925092177115014 -0.0974215880908222 --0.1811746224601154 --0.1362480343851982 -0.2615894499929026 --0.4374151134299634 -0.2860659345794263 --0.2443193166475958 --0.0725846655940459 --0.3685011749174585 -0.2506546481352957 -0.1778174568471043 -0.0117001905727838 --0.0407282438851466 --0.1857659747232822 --0.3904173256192295 -0.3396564812580460 -0.1278432281397783 -0.0533553856894283 -0.0778926120439918 --0.4878725573462271 --0.4653938466768332 -0.0099600179554283 -0.4414436233758671 -0.0515822970467751 -0.3471078173912678 --0.0582102860744377 -0.4634648427650838 --0.1900983837852611 -0.3538593907713599 --0.0079375970660326 -0.0063024252317282 -0.0445581611344861 --0.2318089137106757 --0.0783558165789583 --0.4203183095263281 -0.3777206587586367 --0.2546523764979448 --0.3504835286626477 --0.0337763432071690 --0.3168265485038352 --0.3041624405770896 -0.1802851933301981 -0.3709268322544527 -0.2650830052557893 -0.3136249764817466 -0.4975923957784105 -0.3474832589931299 -0.4918251862171550 -0.4035519050886631 --0.0778144861412657 --0.4774808287305085 --0.4506808919561686 -0.2239348250432245 --0.4092072738359679 -0.1867304281273064 --0.0243904143334698 --0.4907132028854639 -0.4296772780500112 -0.1020711038665827 --0.1446595777740715 -0.4179843861724638 -0.4298325596427710 --0.4589814557753420 -0.0203209861606916 --0.3177647363154442 -0.4814207600255722 -0.4248575843794211 --0.2602689980020420 -0.0211236717730604 -0.2668891880528556 --0.0489272499249959 -0.3258388168740718 --0.0482541042203550 --0.1249251513521674 --0.4065632127699033 -0.0810905371543164 -0.2508691477534293 -0.3283499836237471 -0.0284026626017644 -0.1595210877066515 -0.3393702879550945 -0.2348804125761836 --0.2561932079647536 -0.4582625853614675 -0.3723163609094619 --0.2043894258262982 -0.4840383455310787 --0.4550713369664986 -0.3348651951871527 --0.4118321136808951 --0.0518591594345329 -0.0128654175628093 --0.1097811065271048 -0.2286789583500690 --0.3983340231967688 -0.2746266141732618 -0.4351170132324814 --0.0089972740891835 -0.1397757941767460 -0.4582726479591426 --0.1704093182931758 --0.4544220413797422 -0.0093636227100334 --0.2488320063642603 -0.1457594030228846 -0.0950106288387715 --0.3136984455561740 --0.0906185697128507 -0.0200665306897020 -0.2920920765654557 -0.2870726376723480 --0.0192342454153215 -0.4127192797753966 --0.4355995778711420 -0.0470721740315405 --0.1395550181078941 -0.3926302690050050 --0.4850427051884241 -0.1363389096463550 --0.0427794327525683 -0.4601333950642523 -0.1500070579303660 --0.1293806158247377 -0.0149312986602372 -0.4588389973018461 -0.2259681538845659 --0.2722779591168171 --0.2192971207683066 -0.2180470078127240 -0.0678912487231295 -0.3065194462333201 --0.1972653913552573 -0.4110964726918016 -0.1027504146555527 -0.2426402847535993 -0.2888812709724224 -0.4851873494269756 --0.2904173266909751 -0.0045404384800642 -0.3710406122099337 -0.1033470114508762 -0.1144933973046902 -0.0053048950620602 -0.1731327025888862 --0.3178293756547292 --0.0339100740305970 -0.0095071520576512 -0.2593567503491224 --0.0121671874766029 --0.2368538436356002 -0.4004596327773445 -0.0907286543078356 -0.4618410414328150 --0.1691494458475810 --0.1931319568043460 -0.0902161819117852 -0.0046274913296918 -0.2655084118527854 --0.0827970310445270 --0.0212200571159724 -0.2670397251756738 --0.0739224860924054 -0.4332966518291168 -0.3520342917015215 -0.1485564972476571 -0.3609163564587169 -0.0811943828247736 -0.1285247522380816 --0.3511271554357021 -0.3873855914095965 --0.1677925787019057 -0.3773130229728554 -0.0400555704376303 -0.3474816953396310 -0.2031863415243131 -0.1632538077450801 -0.2669549772950260 --0.2508354933608134 -0.3886009739428576 -0.2028640101614491 --0.4453354058192597 --0.0964800420612517 --0.3081991112429104 -0.4960145295541215 --0.1705537251040386 -0.4511958635802541 --0.4576498326789545 --0.0065582066045147 --0.1397130726255796 -0.4612731335633516 -0.0260462169293489 --0.0460286356268922 --0.2089705350273450 --0.2164851826197906 --0.1979715437506523 --0.1700408686096661 -0.2709643464233488 -0.4469219869534339 -0.2074300137165597 -0.0569633761950359 --0.0832551429853636 -0.2783086704975904 -0.0473605115913461 --0.1242060283715367 -0.1787282889941261 -0.1320330796016872 --0.1888030780952452 --0.3424951996889841 --0.2940449601168061 -0.3603209340999428 -0.4670512607244869 --0.3895505288849240 --0.3613277345743873 --0.1684197193118873 --0.0075366466453431 -0.4830823457733846 -0.3819242532885108 -0.1138286519048827 --0.0944719465369956 --0.3531453593227883 -0.1593833689876296 -0.0303673577178163 -0.2084295652762030 --0.2857945641717490 --0.2990175012258933 --0.1843722471935431 --0.0973442118196181 --0.3831865238947681 -0.3570163548169257 -0.3641601000909435 -0.2412595616728223 -0.2412505756449894 -0.3451211357601036 -0.3929930420712373 -0.1078952659525060 --0.4629019525843306 --0.3082530468821215 --0.4166767434438314 --0.1979864534642113 --0.0408472434677022 -0.2302113291255181 --0.3394701744929408 --0.3392830216144848 -0.1159411041058860 --0.1295173024666015 --0.0014669184687050 --0.0436980136393824 -0.0368497894993722 --0.0395521449794152 -0.4390437945276464 --0.2169974513392033 -0.2732347078126135 --0.1277909936183627 --0.4264532308676795 -0.2950662064217235 -0.0964050836719743 --0.1651639796865274 --0.3524230780326537 --0.4105313255404825 -0.3936978238715337 --0.1868559755585005 -0.2244259915012240 -0.1844497001816023 --0.4272700546982442 --0.2679479766769896 -0.3719649899180534 --0.4369307870628188 -0.0787769379783843 --0.0144361716476124 --0.2620381151236575 --0.0034776762798654 --0.1652667654187325 -0.4982592694182569 --0.0159435105989573 -0.4336370556795063 -0.1254147522265978 --0.0234655344598736 -0.4692483998140925 -0.1204062808188641 --0.2336675704238158 -0.1409336170248937 -0.3840743805053830 --0.3576267623953776 -0.4454549465199087 -0.2218417997981040 --0.0739925983373006 --0.4748051130968577 -0.4392846118081410 --0.0090970547082826 -0.0612562105372151 -0.0315158170434265 -0.2183808978110240 -0.1792714176240864 --0.3189319200369253 --0.2214082951514270 -0.3836901232350469 -0.4892130481716161 --0.0693302397748872 --0.4281291271115049 -0.2479959824325308 --0.3894788576516310 -0.1017788602363955 --0.2523536914010258 -0.0838778581038879 --0.4122296169639324 -0.0444577643784778 --0.1072824375859879 -0.2257594794702550 -0.0194937068661596 --0.2589233139223043 --0.2870179271029538 --0.4306010189111720 -0.0116859464372664 --0.2187540310097443 -0.4701954086706548 --0.3273127766201634 -0.4233588265617964 --0.1764514218270419 --0.1797042988567902 -0.4284452397436733 -0.2791746019144454 --0.3376036918981146 -0.4209934033719811 --0.1891988632901320 -0.4055937012421273 --0.2413640790925139 -0.0325132251968094 -0.3384687836703300 --0.1671367739599596 --0.1949959194167430 -0.1879271306239299 --0.1381618650398887 -0.1402844764267249 -0.3529214888669500 --0.1204896405861191 --0.4805515304225400 --0.4895544642120636 --0.3445956500531121 -0.3645202597223570 -0.2219812672161211 -0.4665086486985087 --0.1987721051560153 -0.3585639967066960 -0.1242162002445819 -0.0896684881948212 --0.3212413921038877 --0.0806160452692989 --0.0387510898562915 -0.3493300328385999 --0.1132240772333016 --0.2852086778208445 -0.4396384644903751 --0.2821654465036949 --0.1494630459620355 -0.4592739581968029 --0.4580137863993413 -0.3079379395659060 -0.1557909085470451 --0.1514415758575728 --0.0443692034085568 -0.2876367022679963 --0.1285591899416346 -0.1571206096210505 --0.4707740864663340 --0.2257995966189498 --0.1780508710700668 -0.2844973503336494 -0.0613785988789820 -0.4215009178567896 --0.1467559706829554 --0.1326071115597091 -0.0413331599498716 --0.2305514835570054 -0.3243836253257907 -0.3477599036677013 -0.1604627578446109 --0.4802266173334269 -0.0634758937599540 -0.4508153113715531 --0.2628762097191263 --0.3261944962277298 --0.0408137589201065 --0.0712904092567792 -0.4690754325088510 --0.4599266886111848 --0.2860940360977872 --0.1512296079343814 --0.2675946984108707 --0.4740425356337087 -0.0623895344973615 --0.0631407051832624 -0.3850335964550572 --0.3312470964920075 -0.2415716132615051 --0.4740957276869945 --0.1094013835815875 --0.4280413127757188 --0.0526438030042961 -0.1430274491897451 --0.2525440943465354 --0.4885958311010957 --0.2549388888408129 --0.4224188605541958 -0.0634591813883659 -0.4223172893733803 --0.1324660348534268 -0.1718885396626793 --0.2530512226701890 -0.0199939983391061 --0.4444981400084239 --0.4173361454581449 -0.3996384466974866 -0.2146037669691063 -0.3429674019404689 -0.3175022559802654 -0.3171247585099440 --0.0410235886454540 --0.0206758707376040 -0.4610839736700799 -0.3590187260507717 --0.2296440886576563 -0.2181106557075176 -0.3896222515317803 --0.0034462890922229 -0.0026845150159609 --0.3331445131985527 --0.4618529304232026 -0.2120082978814256 --0.2282574537601963 --0.3638908200343151 --0.0961446169167847 --0.0972631228573287 -0.2970668453594278 -0.0097822805293074 --0.2669014203986524 -0.3967054930297859 --0.1417326990727067 --0.4322896829455632 -0.0517150582761918 -0.1034582654963560 -0.1598581014187268 -0.1550736247566969 --0.2781115381000635 --0.3707263102857027 -0.1396709043830325 -0.1930984835338998 --0.2519605473021898 -0.4452985705440307 -0.2595500832590132 --0.3587317484011167 --0.1072264313671772 -0.4203816951581538 -0.0754941526394404 -0.1083561055364055 --0.1876592905326931 -0.0628747621692389 --0.4784315640083314 -0.2602851804696842 --0.0703307320350081 --0.1839089880043034 -0.1831645084459348 --0.1344664613512680 -0.4170702241972314 -0.1296483223578682 --0.3121332581885407 --0.3065398549371099 -0.4102305328613657 -0.3179122459218160 --0.1591586513311862 --0.4509661355907972 -0.2026429254335277 --0.4528470511174271 --0.3241116797755597 --0.1195045593656276 -0.2841527065942911 -0.2166828189201992 -0.3871619722542370 --0.3554830694775037 --0.0594355860782816 --0.1170902644229228 -0.3621191632112634 -0.1315580068239689 -0.1800467610385879 --0.2664550170247301 -0.4553649143590983 -0.3040712545961126 -0.3912267606498364 -0.3776686154844410 -0.1900608695698048 --0.4770604110206815 --0.2429990708590731 --0.1026533503234278 --0.3044890528870334 -0.3436000809166979 --0.4728738999975883 -0.2958470057543354 -0.1517197906162637 --0.2219477124012824 -0.4305352719464305 -0.2468560547340364 --0.4787700756449051 --0.1489761480996349 -0.1395854929880482 -0.1175971436108465 --0.1684686643307631 --0.1059665135507237 -0.4255905733332066 -0.1877464519208845 --0.4100265266915680 -0.3984910975528118 --0.3959242520733623 --0.2315042056987456 --0.3605663743379239 -0.4433321864632048 -0.1090159635682290 --0.0098745384760696 --0.2401222306829229 -0.3473004971556561 -0.4611367026643435 --0.2069452609005971 --0.2234274680143626 --0.4859862421886992 -0.1778858688433568 -0.0308095920948962 --0.1858769747113911 -0.0733962430222072 --0.4796452100550001 -0.0561864159889069 --0.4904182152505963 --0.4249961616824973 --0.4389362092015235 -0.3003035313042662 -0.0526652945738433 -0.1195414012134963 -0.2147416224628306 -0.4910842494238157 --0.0343783183238923 -0.2091449492244239 --0.0453053378702248 -0.4731754448739771 --0.0969645116079498 -0.1847267734240555 --0.1131814313127187 -0.3590727910065618 -0.3009164149131514 --0.2656272627615924 -0.1594529835275775 -0.2034661540715051 -0.2518138273803485 --0.3935743133887898 -0.3836259797670921 -0.4382879863100901 --0.1342805299486466 -0.4592566943512906 -0.4775612212299545 --0.2005680257703404 -0.4229481884182147 --0.0690619438392172 --0.2752972738569338 --0.2234237364536392 -0.3225957546037668 --0.4499434051330815 -0.4660192468670252 --0.2173597902810998 --0.0816793735089736 -0.1799558557909341 --0.3319185427481687 --0.4655650329066818 --0.0362607453758184 --0.0055152505720849 --0.1690545221344200 -0.1577952977569871 --0.2552671282577391 --0.1044971387081303 -0.3376171715612460 --0.2558985423551537 --0.2952287416655664 --0.2584182116485574 -0.3277759639768222 -0.3540628125496926 -0.0144552987413169 -0.4682754154320869 --0.2515835465034463 -0.2787056157160520 -0.1897256734773605 --0.1011837036656635 -0.1580908583538513 --0.2590253336556503 -0.3879918301005744 --0.1728949314135593 --0.2327885834990452 -0.2183544960822831 -0.1347878489451315 --0.0258987928955379 -0.0274753092267366 --0.3036989165560330 -0.2218235212939345 --0.1195162851609002 -0.3095640610314773 -0.4255769055986287 --0.1093710401372386 -0.2682160439406055 --0.4554209690879023 -0.2754160115251729 -0.3092999013602296 --0.2745017982053621 --0.0197610545666616 --0.3407596295667393 -0.2521930350435397 --0.4582665126086272 --0.2452574686387798 --0.4873696658531423 -0.4291760722080621 -0.1507229436840348 --0.1916209991648402 --0.2682920945507234 -0.0671369577507618 --0.0414055363987332 -0.3056249972073503 -0.0301768198669289 -0.4259937055166781 --0.1080250133058122 --0.4891458656349194 --0.2359605378098157 -0.4995096890250954 -0.3826151599381713 --0.4531532232816617 -0.2448260047904357 --0.3984063547524235 -0.1968131092901025 -0.1244921261511849 --0.0121836626892970 -0.0610149259685449 -0.0309621289984101 --0.3102583193860977 --0.0372659578806905 --0.4293964367853187 -0.1983257143316665 -0.3954138902763091 -0.4720186799758442 -0.3520072965491357 -0.3324308318947888 -0.4566347385595937 -0.3699490023657372 --0.0212379925915514 --0.4042237981103363 --0.3827945063421118 -0.0776281924552997 -0.0351143889040114 --0.1884298205310298 --0.3847777333669258 -0.4971950340969689 --0.2077537818551769 -0.0130857110175624 --0.1799166273225930 -0.0234793169055783 --0.3818645473132604 --0.3992121612547627 --0.2595424551249114 -0.3804488531243910 -0.0415909901854883 -0.4347985059363554 --0.1788610940087778 --0.1853475160304074 --0.1489536703732937 -0.3300606525813007 -0.2746324488118888 --0.1072645538376242 -0.4986030947566680 -0.4820830106767154 --0.4581404841057425 -0.4149605321903987 --0.4860212838824652 -0.3126715781600673 --0.1124092404103457 -0.2018064616960138 -0.2530389086716179 --0.3873608078380025 -0.0941317089184823 --0.4138613746162850 --0.3404374572353506 -0.3658002209892777 --0.0805867333871684 --0.1754049020909580 -0.1563692272464169 --0.1061400730378977 -0.2790335494772769 --0.0651160173082299 -0.3956786136783697 --0.2875789717913764 -0.4515107168427686 --0.2701544170289120 -0.4677560237200764 -0.1055511425403319 -0.1229528862708318 -0.4222468653910245 -0.1895320519652769 -0.2820123292480046 --0.4526985182345418 --0.0156452143716201 --0.0151207598093613 -0.1897116034068658 --0.4139743885499950 --0.0967808233527452 --0.3768435611213266 --0.4678284216556274 --0.4350826219002245 -0.1000587665795133 -0.1530233085976481 --0.0717012965926609 --0.2570014552160749 -0.3745485049376570 --0.1635212790614199 --0.4232098165779810 -0.1459399067910920 --0.4106439510327995 --0.1796235310069877 --0.3649133523799168 -0.1990693047823500 -0.4693953608763296 --0.0658676854286479 --0.2201095898187939 -0.1563422059892272 -0.2703273223936905 --0.2826612028644623 -0.2764131659013896 -0.4637952866773769 --0.3457681596460316 -0.1607275980470636 --0.3179777482638881 --0.4203530756559409 --0.0782900143642210 --0.0520715588305089 -0.4831573290620735 -0.0415876254192639 -0.1717182621594086 -0.1557567534066947 -0.3180800199550459 -0.3340148838324034 --0.2278466835960880 --0.3077723418382570 -0.0170262633435022 --0.0923572275534677 -0.3112589660218131 --0.1466993174185708 --0.2112844239157851 -0.0981341136279571 -0.4924844103214874 --0.2446620085628220 --0.1675811788258528 --0.3080532984688945 -0.2009501970004657 -0.4294979370271899 --0.3889209406634851 -0.0744078435073761 -0.1875013197897945 --0.2201712884775230 -0.3114741873564465 -0.3338315974978148 --0.3038467308820358 --0.0103888453975555 -0.4749041757349296 --0.2796481404594490 -0.0029472684330377 --0.2049650097831062 -0.4938476870707592 -0.0329113050349750 --0.4214269108859823 --0.3442220426157114 -0.1873582052961151 --0.1841558417737084 --0.0450263584284616 --0.1564682699879510 -0.4584584294520418 --0.4498739705364747 --0.4505306898998637 -0.0708653611593014 -0.3499211733766552 -0.3115657322046125 -0.3075483551213346 --0.3871383198403190 --0.4815528451927251 -0.4481083901226166 -0.1205550966495932 -0.4731976148322251 --0.2633990578768425 --0.2137254899781094 --0.2969050778812585 -0.2679103932822915 -0.0981159311129930 --0.2015284878712170 -0.4522309466890955 --0.0036067116147065 --0.4833271515872905 -0.4894080736664661 --0.1263993358505572 --0.4505444434972684 -0.1548186088671466 --0.1297637376524516 --0.3846602375919929 -0.0174465377145300 --0.4838573225859013 -0.2664428139096473 --0.0203467587940128 -0.3421790808778825 -0.3827293521920049 --0.1386937038999072 -0.3042240778717331 --0.4695940130417383 -0.2621198835650267 -0.3163494961351256 -0.2561972650978945 --0.4933503807200439 --0.2204849142181053 --0.0646060310494821 -0.0361401046257658 -0.1164955456506980 -0.0598196025166333 --0.1322327123569922 -0.3729179719433231 -0.1058981686330663 --0.3045595747280236 -0.3482330837866502 --0.2985899047515319 -0.3508228913740034 --0.3895319703030992 --0.4579392356254698 -0.1312021971134438 --0.1983021489764713 -0.3984380320481528 --0.2938429706088562 --0.4559702430454192 --0.0105286812773983 -0.2524714184058229 -0.3947067781885739 --0.4332237703382099 --0.0025600167217459 -0.0837452107390664 --0.2439415767349182 --0.1373896165481311 --0.1454759496867410 --0.3167765720790888 --0.4502354949295551 -0.4312597340937907 --0.1350617543714367 --0.1769900240287285 -0.0781017928703784 -0.0139531123073339 --0.2406014951198120 -0.2239110847414717 --0.2426945145033071 --0.3218818884465034 -0.3411345508500866 --0.4468263793041861 --0.3326498146788874 --0.2888527588980962 --0.2301370631708656 -0.3554210263875838 --0.4885318842946137 --0.2884976028477592 -0.0425356489234545 --0.4193749594595760 -0.4124050823057182 --0.0274830285996873 --0.1756561689992673 --0.1497408739052138 --0.4555608587644544 --0.0727782598684804 --0.2145195078895559 --0.3713813660777310 -0.4713481381612467 -0.4632715087890527 --0.3506971741861689 --0.4275602310117601 -0.4376220915546207 -0.1206533508540893 -0.0160480009443225 -0.0033159949065573 -0.2575753428651201 -0.0440038790650273 --0.0607565920618249 -0.3533566586590772 -0.3641895135928856 --0.0934365481774994 -0.1048116800155845 -0.2359402951365357 -0.3517577489309491 -0.3935902947640075 --0.4318945179429630 -0.1271628117198540 --0.1492683916737624 -0.1937750821248603 -0.4048422929448370 --0.0621771968211369 --0.2545543865469884 --0.1849309247759351 --0.3311446010304392 -0.0351090949263548 --0.4074114086020411 --0.4449211004991809 -0.1156297430830749 --0.0971556772725785 -0.0117834588197085 -0.2500785123281940 -0.0927523492918186 --0.3164251853105556 -0.4284291380830760 -0.1631130400133519 --0.0704016795543740 --0.1069400922482917 -0.2005624337148904 -0.0789793152605277 --0.4316907155953695 -0.0181536051716817 -0.0042668834271299 --0.4222847426589549 -0.2823365651784885 --0.1798021520888318 -0.2913493504668692 --0.0728987233955076 -0.2143029247109636 -0.1186072368458863 --0.0018928021569089 -0.4718373694239282 -0.0904419032047712 --0.0879382295524547 --0.3903095935830276 --0.3656649469072160 --0.2798473243498468 --0.4018319671014896 --0.3416648725109651 --0.3550329352410775 -0.3978992567846610 -0.2202036281776740 --0.0465329035897054 -0.3657837591220954 --0.1614612193956636 -0.0739259319905322 -0.3593305478788553 -0.4684378632421182 -0.1829161334968287 --0.3213211565913712 -0.4477761586191684 --0.1314335162818021 -0.2326863964439103 --0.0378789724879977 --0.1282579134575670 -0.4113413159246286 -0.1865041726173859 -0.1321175130127841 --0.2742079442941028 -0.2914041217826194 --0.2846878634326179 -0.3760256234789781 -0.2081949833336886 --0.3724352748782152 --0.1180729641773872 -0.4080878193335128 --0.3517175511715985 --0.0330682073970739 -0.3397461173564810 -0.2914136221941976 -0.0095795900424288 --0.0067995442497815 -0.4533439251481428 --0.1892858118423166 --0.4968806565557777 --0.2348751085147845 --0.3164809579789876 --0.4684125996872162 --0.2873340349799924 --0.3961973124220778 -0.2026535406262844 --0.3338786026890186 --0.4073663658162600 -0.3433570087297781 -0.3983485289172923 -0.1137293818564650 --0.1415495861089882 -0.1062688300359890 -0.0226308085286762 --0.1540909483464298 --0.1526103956381348 -0.3681016381393473 --0.1672319844981608 --0.2814182848713142 --0.2220602093977568 --0.4745896376442882 -0.3690825544212326 --0.1669414177141581 --0.0620795477669385 -0.1333724579092227 -0.1588062234418051 --0.3171832739352278 --0.4154024285129868 -0.4364749563297090 --0.4573142809830220 -0.0351399185442015 --0.0573161489580016 --0.0477343845760353 -0.1385115281333987 -0.0488383900509531 --0.4531838596331297 --0.0494596335666561 --0.1820354926139353 -0.3441586420094294 --0.2479086992852735 -0.0946679726769909 --0.3689633495384014 -0.1048383618269364 -0.3406932627872690 --0.3744469277712154 -0.2062852925711428 --0.2945785309391921 -0.3117694859180328 -0.3873205341178325 --0.2455295319084962 -0.0293648890946622 -0.0028047000489703 -0.1161451029523104 -0.4758845426614957 -0.1257937922945630 --0.1223751394864797 -0.1973808131344044 --0.3439858001611533 --0.0499659281101203 --0.0634701930635383 --0.0762411838098020 -0.3740165912993504 --0.0014049251291687 -0.1249453573075638 --0.2963536847229872 --0.1415396630179158 -0.0796498805904450 -0.0812052635912771 --0.1930542679694088 -0.2064391204933703 -0.4711626382480357 --0.2409029834367889 -0.3500902205586187 -0.4616261270243925 -0.1838247528203829 -0.2371200538040362 -0.4338919869706606 -0.3760180277757790 -0.3668772608741793 --0.2522085689460006 -0.3369330502737017 --0.0403575040532638 -0.1829785045106866 --0.3002046280951375 --0.1185928963439358 --0.3974937251757280 --0.1925925743287406 --0.2871342739208778 --0.2029869637752418 -0.4537716668849801 --0.1537242525181400 --0.1749843423906750 -0.2216251441224336 --0.2573041031882513 --0.0735278261916414 -0.1371153835140172 --0.3048217820551720 -0.4842940491864728 -0.1786001800269478 -0.0338854397695886 -0.2493399851200931 -0.2107330495915096 --0.3800825538827054 -0.0615951156497201 --0.1604139561966977 --0.0025074410600683 --0.2547843816487918 --0.3751391295307390 --0.0502655826288299 --0.4346521794383315 --0.3918297455253141 --0.0004627799267180 -0.4651306539304539 -0.4166056415751752 --0.0998601755913763 -0.0604306335633519 --0.4609350983264237 -0.3638570115317078 -0.0415676047643138 --0.4309581809002342 -0.4656460908526844 -0.2590143505888518 -0.3483282485572319 --0.3511143327613414 --0.1373592592784033 --0.2713080891447260 -0.0341096433434886 -0.4232449990816181 -0.1951170005033274 --0.0194791780472351 --0.2958146127887227 -0.2179963295659471 --0.3435837201843419 --0.3513107378296499 --0.1640831902866943 --0.0796721702794263 --0.3101140996237767 -0.0190996974631388 -0.4563465319530173 --0.2903120985455314 --0.4722386827470190 -0.3925270420925629 -0.4982600663501350 --0.3016431145261369 --0.0842775917004224 --0.4983874641823509 -0.1182273126311373 -0.4881801548783509 --0.2090798374531330 --0.3680118396012176 -0.1982531188203482 -0.4360905385012720 --0.2072806830683222 -0.3310210136280922 -0.3448323082519557 --0.0639244033113391 --0.3215884024413116 --0.4205595015863035 --0.3437422798966939 --0.2751886730745102 -0.0267206742332438 --0.2974805852508653 --0.1276214927678188 --0.4636675973555714 -0.1016901688760332 --0.1076160618835225 --0.1605114995520215 -0.2766632656102206 --0.1318254648874798 -0.4173689276496617 --0.0183342378229612 -0.1504967858451154 -0.1502388817243625 -0.1068946954502972 --0.1255751909069481 -0.4659888371945107 --0.3002553937158871 -0.0690692313924823 --0.4361275252659055 --0.3008780661909759 -0.3944272924420821 -0.2108295824508500 -0.0776952722405957 -0.1970606269690431 --0.1759231817951001 -0.4649042244467533 --0.1036312810050493 -0.0618734107635087 --0.3486917947107156 -0.2311277757280892 --0.4001078385784809 --0.1472218482717204 --0.1212395733008031 -0.3191464096957458 --0.1856318782023451 -0.1858132156912087 --0.1961428340627643 --0.1426594296194985 --0.0840162529656192 --0.1146660233967503 -0.1917031638508321 -0.3102174856585140 --0.1688894698278248 --0.0096375470525828 -0.0117238036549624 --0.2576206715082874 --0.0741001066704420 --0.0565220209407337 --0.4117910342337957 --0.2199507964129045 -0.1716496731626198 -0.0821730245457386 -0.2008114320946870 -0.2804142279797868 -0.1821833198039549 -0.2166911594708220 --0.0032730254217621 --0.2333931707180003 -0.0003053041133251 --0.1286616279028472 -0.1379709856420225 --0.4319770993714961 -0.1731442287387129 --0.0737044830824748 --0.0137848651460723 -0.4892175858714144 --0.1583776132618211 --0.0664719084206389 --0.2412239773569415 --0.4176439893730439 -0.2627344444442377 -0.2670735542380446 -0.1728133703785900 -0.3202882149578634 -0.4606667244229609 -0.4114414573051591 --0.3762903411102803 -0.4439149093249251 -0.3392952352398773 -0.3020672803295404 -0.3563222755941469 --0.3489872341383594 -0.2762249703620516 -0.1819584785461428 -0.0425143845399832 --0.4822543027390059 --0.2282423660300380 --0.4322718397877725 --0.2482847092519872 --0.3315130379777745 --0.0226843822478253 -0.3801085341366714 -0.2514482723755929 -0.0266360815497825 --0.3465297403661930 --0.1759365776109955 -0.4169168939908613 --0.2416566506548328 -0.3638469106160196 -0.0552886782383709 -0.0787792644706513 --0.4971271679966670 --0.1692141639918081 --0.2438546285069219 -0.2824021365813203 --0.3243695788277793 --0.1937894096349483 -0.2927598776722965 -0.3717805652851589 -0.2407312200833395 -0.4486876133946452 -0.1577896151185617 -0.2237043838747773 --0.4784694642632875 --0.3614312577810642 --0.3416143084607844 --0.3192490888602239 --0.2695120242757400 -0.4539850727360514 -0.4861086250863013 --0.4127017052060745 -0.4022317622920208 --0.2810007139184149 -0.4395066438928235 -0.3225351417970397 -0.2858749917959041 -0.2739365262781076 -0.2872547942492210 --0.2425310671749453 --0.3703850034185129 --0.1245550954791428 --0.2987587814744521 --0.0223543827516288 -0.0976058508472814 --0.3369475453060993 -0.2983280453108142 --0.2851192019872330 --0.1668940647399420 -0.2625596369762973 -0.3688069511171967 --0.4177762762622788 --0.1373282195679689 --0.1926723284845047 -0.2630185250512496 -0.4871380016781808 -0.4448369216702093 -0.3250967554042705 -0.3927858127970022 --0.4000338606131574 -0.0196630832232656 --0.3623430526956173 -0.2400979199890309 --0.4542416338285171 --0.2575375981747525 -0.0522329465479632 --0.1628316197026658 --0.2681697180669880 --0.1159291151671349 --0.4709367430337416 --0.2753230945478456 --0.2425883576179200 --0.4321293581581389 --0.0940305742447638 --0.3876197643674484 --0.3841598591381289 -0.1998075135450743 --0.1011517720060907 -0.1949245762243059 -0.2509809561979029 --0.3724524420611583 --0.4891368009517427 -0.0919798260770579 --0.1386055230096506 -0.4667346689505580 --0.2384529838968993 -0.2274768031650555 --0.0200762125703722 --0.2643543528039806 --0.1396272700172896 --0.2239558766855778 --0.1577003235248132 --0.0646972621314122 -0.0481917944401783 -0.0896858784646944 --0.2961398675676081 -0.1660646890608888 -0.3094027057821973 --0.1463099797877268 --0.3172787848350541 -0.0836296582623269 --0.3634750723011637 -0.3487296204131421 -0.3757159076768996 --0.4733785736054175 -0.1316576915510255 --0.3116519077178607 --0.3191727836610300 --0.3067666966709073 --0.0361336290170957 -0.1090000382146201 --0.1723477986563194 -0.4125268695002923 --0.1501566891987505 --0.0156193000342971 -0.3699340189586838 --0.1615922672835236 -0.0501614310987493 --0.4271233620112566 --0.2824327275299224 --0.0067651254644212 --0.4171704570822804 --0.0704582390160879 -0.3537933194761173 --0.1334477730857881 -0.0429338068337091 -0.4496307630822044 --0.1240811867487076 -0.3070069141532575 --0.2470113008871851 --0.3589329382725289 -0.3700258729923230 -0.0049755016580028 --0.0321512746481366 --0.1004729314227670 --0.0569632841816360 --0.2423242329665688 --0.3385155682322863 --0.4668992343494671 --0.0397933097454057 -0.0419223146351337 -0.0659671443397306 -0.4828015631932735 --0.3267102002804075 --0.2525856624742715 -0.2084429063772016 --0.2201839958342063 -0.4015098432616030 --0.0460954680448646 -0.3990608206583623 -0.1713641663858049 --0.0336153037800066 -0.1191971169652316 --0.2046255821329570 -0.1324322066047796 -0.0808326926108186 -0.4385249342522616 -0.1620077369430641 -0.4809966755016950 --0.3595431179424030 --0.3998920958123238 --0.0981832447199092 --0.3584669143861107 --0.2817957898958143 --0.3295511160633223 -0.3419265962087658 --0.1118514094034570 -0.2753723189514359 --0.2064500058751176 --0.2400876724162516 --0.3879994188083142 --0.0914378656638214 -0.0914879323108095 --0.0047689837243712 -0.3765235178597197 -0.4218017740657179 --0.2728037605214317 --0.1785791288565680 -0.1161754863290158 --0.2029637446915075 --0.0235823442803223 -0.3093369938562239 -0.2056085159691604 --0.2763576418307229 --0.3503354562715444 --0.3037819155794770 -0.2058634873540515 -0.0222790193985309 -0.4355089490367021 --0.2102016357342963 --0.2214398649027420 --0.1764801124205392 --0.3996471580161135 --0.3498357683433808 --0.2738574406121193 -0.2329791004933724 --0.0032968848510493 -0.0269268209963717 --0.4433335461431470 -0.3884726443338818 -0.4159277316054119 -0.0331019024080771 --0.1077046139190976 -0.3556821087233278 --0.0516497014761326 -0.4966697522329172 -0.4124681416233108 -0.3763591276416762 -0.1718031407877725 --0.1228131189431350 --0.0183365571943497 -0.3959516080163772 -0.2061227517611068 --0.4165504864038574 --0.3126316470067845 -0.1613885168380074 --0.1830595130756056 --0.1142293145904458 --0.4089390447549842 --0.3246821794723317 --0.2050179702187085 --0.2789861698586028 --0.4754346027547920 --0.3371789623398469 --0.0858858071239426 --0.3883010350441738 -0.3185350103409462 -0.4739080371852294 --0.0363532651793125 --0.0360551650802911 -0.1289251174784207 --0.2643188073949746 -0.1869857659841480 --0.2849624588983679 -0.0964122412216316 -0.1615601386496218 --0.0381161023897445 --0.4013436895577949 -0.2359986342556086 --0.0687637312378236 -0.3051806030752703 -0.3769004361142536 --0.3293939076545381 --0.0612910794822332 -0.4482913628610325 --0.4361574213797844 --0.0190612458498812 --0.0324719824935532 -0.3579969297238123 --0.2467376599349140 -0.4968685829068644 --0.2959647873312169 --0.4052142456767938 --0.3499621982801413 -0.4287967257651502 --0.0304930289744405 --0.4414313357860502 --0.3548687315954288 -0.1695867268859137 --0.0380834383809096 --0.3063791826315745 -0.1932778818573035 --0.4740919167192021 -0.3284612419454459 --0.3036950407778339 --0.0692323499133536 -0.4536030970765107 -0.0817029665391599 --0.0813461893255588 --0.2654661580543227 --0.0453993330996847 -0.4132989263023193 --0.4218313514157851 --0.1696976286084597 -0.1534944031709503 --0.3681890419714606 -0.1433527421047117 -0.1104587340542236 --0.0278773391291608 --0.1226913954096978 --0.0277905268799588 --0.1651167479485530 -0.3946639929385878 -0.3941672268783825 -0.2557253174510878 -0.1961655370302464 -0.4654927884521087 --0.3716962870530864 --0.1402592685221015 --0.3125584152385503 -0.4799811185141807 -0.4984746006755881 -0.2607680901727522 --0.1260707917116369 -0.1508613178756906 --0.3188441861703393 --0.2563366435955052 -0.0433947482439856 -0.3925608164716374 -0.2636143526014230 -0.0919963182484672 --0.1691347628894099 -0.2111540657638707 -0.2854766307881149 --0.3259919105670652 --0.3622841031471549 --0.4644097564494216 -0.2361785266879094 -0.1079107078295621 --0.0515375987475202 -0.2214647631957276 -0.2525682199880136 --0.2044637315796557 -0.3778834033319801 --0.0437038655476890 -0.0739656453912447 --0.3978585317474109 --0.2296217257984325 -0.2065259216680965 -0.0496408367525180 -0.1222726095579222 --0.1226746016325889 -0.2988079862222858 -0.2145347405949672 -0.4618378826488166 -0.1278240088893512 -0.1333816246201256 --0.4318048058208639 -0.4331191849755162 --0.2509654721948248 --0.1897338852691615 --0.3889856052792319 --0.1124492850031220 --0.4927195319065489 --0.0501383757532834 --0.2464352081377029 -0.3894861406466421 --0.0599812548201860 --0.2756514689725840 --0.4123438172461188 --0.2292377571580740 --0.3741169126185883 --0.0213030853201447 --0.3842737917387242 -0.4846251447247807 --0.1119180699724967 -0.0729761491506550 -0.0335171278208106 -0.3513888062996343 -0.1158991593179487 -0.4132168187018416 --0.3267172263513575 --0.2227437414270068 --0.3318753951678163 --0.2992030508890131 --0.3659974838891821 -0.2721790667651092 -0.2031521299567874 -0.2797739521900092 --0.4028415256916675 -0.0401140573140070 --0.4699949513168687 -0.2634158161949297 --0.1350732084907793 -0.1366050729945988 --0.4869223733572439 --0.4229636708708563 --0.0750998275567979 --0.0278331853043547 -0.1019313321533512 --0.0313567623358822 -0.2186360933609287 -0.1968911564583339 -0.1488337051878523 --0.0774861528473942 -0.4424361971463059 --0.2008353298610545 -0.0312026324414025 -0.2099622684953939 -0.1947402907600092 --0.3109518315530672 -0.4114088601168154 -0.0430008637584348 -0.2372945608638083 -0.4171931156991225 -0.1105102322452791 -0.0872694907499869 --0.4857127742895959 -0.2584472802012305 -0.1527208539322490 --0.0773910217299774 -0.4248092645715644 -0.4294961108168333 --0.1386313028094592 --0.0456679113292368 --0.4417713849514669 --0.4176589491071612 -0.3920581585924597 --0.3241285129202985 -0.2528897655058325 -0.4153472698235159 --0.1208095647610597 -0.3393921070525052 --0.1452417183558620 --0.0775767749818176 --0.2010144857086268 --0.3222373802324127 -0.0325665763508927 --0.4580113111754600 -0.3478105322016664 -0.3262135835404802 --0.3083649403568951 -0.0052004520770992 --0.2669608936622497 --0.2362726092708365 --0.0044586693508615 -0.4440946973564522 --0.0260736446030827 -0.4229891394437990 --0.2303682876833956 -0.4894965857068228 --0.1451344820101125 --0.3870161741635697 -0.4972689878532153 --0.2438489925442214 -0.2315628879784852 -0.2875380908210652 -0.2555054055941167 -0.1319777168903906 -0.0290409772018628 -0.1617064324814188 -0.2216369183637000 --0.2133346219239666 --0.1645276677620996 -0.3660328782465921 --0.0937759570749577 -0.2916314662378321 -0.4600177423123862 -0.0969386861976854 -0.2951070021790079 -0.3843213689630884 -0.2300534830218630 -0.1730165711165048 --0.0820934687831719 --0.1934841880856805 --0.1451916794207243 -0.1557112141528549 --0.0182851367631838 --0.3108114356661039 --0.2797119587741339 -0.4306619264648888 -0.3208896366972340 --0.3122530096529544 --0.2430519426653737 --0.4665664540102792 --0.3072006594051900 -0.2582239608908194 --0.1483110143230615 -0.2483979351883965 -0.0271483990200734 -0.2911550121426927 --0.1833236936614320 -0.4501843543802572 --0.1631659847125564 --0.2277064541314576 -0.3300913006788359 -0.1007415948786937 --0.0216702452764587 --0.1098450923481315 -0.1447091328486032 -0.4763755612054245 -0.4143849738132728 --0.4630060299750508 --0.2170600192543606 -0.0323729445506774 --0.4826890740831877 -0.2856730916404367 -0.3010846556102031 --0.1502719156314073 -0.1006423400404350 -0.1387814536537902 --0.4793668223257929 -0.1792836778919811 -0.4587941158748166 -0.1541452667514743 -0.3786368989358860 --0.3430851525528436 --0.4783159455804744 --0.0509629419018366 --0.3418586646799774 -0.1120169481812407 -0.3511382079742316 --0.0708066469031438 -0.4901287840301416 -0.3849982720438981 --0.3522877077061871 -0.2790553412783163 -0.4421060197508584 --0.4668361531124308 --0.0711733898978202 --0.3784359543164704 --0.2291288607921692 -0.1412051548983529 --0.0610416485925342 --0.3057260505730226 --0.1119476976986058 -0.1193798821139512 -0.1566710831631445 --0.0412227692653748 -0.3731898664352326 --0.1742586962322357 --0.1215589902270303 -0.2588046323386585 -0.1739046995742594 --0.3962406472332981 -0.1660579854044060 -0.3321320812847075 -0.4515528307448153 -0.0608472276986062 -0.0581520126879149 -0.0760265944119405 -0.1616279084364836 -0.1073082243118895 -0.0336893468386074 --0.2006650941428089 --0.0118249846312944 -0.2678174345784632 --0.4408724593298392 -0.1197024503169893 -0.0035240527300738 --0.4168897596078310 --0.1707485341885855 --0.3326892591157818 -0.4460662446965842 --0.2503787003084629 --0.4175743922322104 -0.4957936244241495 --0.4602155069341408 -0.4023690064795112 --0.2858241226921484 --0.1582208549742152 --0.4027469828919600 --0.2867459587850438 -0.2155563522537424 --0.2251882249835503 --0.4476240640025108 --0.4419292077935507 -0.1571597137015464 --0.4697996507721821 -0.1706978383926298 -0.4353036575742548 -0.1892940129140753 --0.4295084985848316 --0.3473989545880677 -0.4435622151044095 -0.0941624590142602 --0.3849578685420871 -0.2389024276979497 -0.2943208010593020 --0.0362274809434541 -0.4243679720473754 --0.3762359264311218 -0.3180606145619777 -0.2713166019315632 -0.2693368208868272 -0.0086402753997981 -0.4269028270471269 --0.3733190290947260 --0.4283938230962953 --0.2589789628838844 --0.3625481389797206 -0.0329062562106652 --0.2200035981235383 --0.0604602511155288 --0.1249554104499918 --0.1146313072064898 --0.3747061947846126 -0.0036346266256724 --0.1363195582438110 --0.4084030337026803 --0.0083124963996906 -0.2281448369661329 -0.0734618587685328 -0.1514800805777704 --0.3966075986473552 -0.3775381572115346 --0.4952433549280794 --0.0683859089864315 -0.1829888108652479 --0.1368110628152865 -0.4759443974204535 -0.2151688867875271 --0.1366323799288338 -0.0940818450263510 -0.2362900598063589 -0.4109860592102107 -0.0509065377926534 --0.0743723457294480 -0.4917593780234876 --0.0292292647156981 -0.1278834045356503 -0.0160759693229782 --0.3446206593955159 --0.1047391945810695 -0.1025802475252517 --0.2743771003190849 -0.2556594391164060 -0.1427779480317762 -0.2723281635324477 --0.3866985346315779 --0.2975800258738863 --0.1381610582231360 -0.1365184884751295 -0.0333639380432589 --0.3598776604777396 --0.1560661370148217 -0.4204158061945104 -0.4462037966591541 -0.3409760855592519 --0.0265579958755900 --0.0969011024134634 -0.2077669265743015 --0.4202836143360921 -0.1514308911963711 --0.2720466660767268 -0.4147729697958245 -0.3685041370249280 -0.1562831521905720 -0.4924199481463124 -0.2750481858557561 --0.2077563528472477 -0.0801169513594883 --0.4667818237685556 --0.3442161854339085 --0.3663308421537118 --0.4056120215395324 --0.2197738586663258 --0.4340958990906375 --0.1976202540505025 --0.3734141694677519 --0.1712126989967889 --0.3872108223855507 -0.2921060249068855 -0.0016331756516540 -0.4225916883513958 -0.0829314173719836 -0.2850993153812060 --0.3407524341001152 -0.3474991423452118 -0.0518405515941514 --0.3932904551543951 --0.0528627103829610 -0.3458985887255326 --0.2005735712984086 -0.1846225021968605 -0.2679838996087345 -0.4036181463180440 --0.3058238112435574 -0.2224748697753093 -0.0024237737982008 --0.1657539657459794 -0.0423905138817627 --0.3826754918623411 --0.0766441636743460 -0.1984498386545128 -0.3216863253210320 -0.0433877135872228 --0.0394888413799331 --0.3014974690970604 --0.2157242508606816 -0.1371900354379039 -0.0201139486845655 -0.2097815171508399 -0.0906529106561965 -0.1208031849535145 -0.0322266724125800 -0.2263305328814040 -0.4796232969732901 -0.4182174066146056 --0.1210700348771113 -0.0467990157951281 -0.4515777656724279 -0.3799271016679129 -0.1301423159062844 --0.0666456972515111 -0.0085161643884144 -0.4580083734844091 --0.1037290880063436 -0.3639409539357322 --0.2551715633187774 -0.1617163541433831 --0.2830115390145049 --0.3831534859787588 -0.4671660744477497 -0.1817131992600645 -0.2771691654767080 --0.2566546646269845 --0.3044250942663178 --0.0355357187702476 --0.0233012002049663 -0.3020966184045929 -0.1471249988487286 -0.3663983141380835 -0.0224521055057686 --0.3262177543536375 --0.2025811086680487 -0.0194094901570069 --0.3295235855627400 --0.4830697372231995 -0.3225604160846552 --0.3563438104812592 --0.3535387946156782 -0.1106929247383819 --0.4621819366063335 --0.2381327751477958 --0.1394128400089257 --0.2811350452538460 -0.3374171988407302 -0.4947507742070121 --0.4641927132141134 --0.3689748566839546 -0.4286134144445969 -0.4455554493610040 --0.2135052795995507 --0.4303840920305815 --0.4141018016257020 --0.2859723033331789 -0.1275053335535775 -0.0554124526262427 --0.4457125131069371 --0.2362932511110156 -0.1115599284274751 --0.4088844702714243 --0.3595125073535387 --0.3338719060312667 -0.0781485380672087 -0.0011615243934917 --0.0482485326709674 --0.3899007964720745 --0.1994624301598982 --0.3587412724750556 -0.2830976284121697 --0.4004248391025228 --0.4085047738631087 --0.2372939147236015 --0.4384441388468897 -0.1342966168815523 --0.0187572589928789 -0.1768336652904491 -0.3246954036196973 -0.4748301440095153 -0.1162488256119552 --0.2707675314887505 -0.0363941137243149 --0.0991128650149371 -0.3335741639950196 -0.0974652718577376 --0.2751592461142888 --0.1177307523155047 --0.3216021489936504 --0.4242855760561516 --0.0105613450758945 --0.1822100541387832 -0.1691797748538200 --0.0470452169709437 -0.4530654309254941 -0.1201183259245497 -0.2215054773692434 --0.0312490104361182 --0.2815690247688076 -0.2270959939771672 --0.4464443454140060 -0.2013305336049380 -0.2355760360172161 --0.2522296588774658 -0.2125801045464030 -0.0262581730027912 --0.3870773049939188 --0.3223534074780701 -0.1408617863326520 -0.3700935582670346 --0.4911928083730346 -0.3389953518944439 --0.3247301955746712 --0.2803213224101195 --0.1373941493197870 -0.1202520310464685 -0.4016036414746993 -0.0516537147578645 -0.1571182115476382 -0.1087754021366627 --0.1420605012287051 -0.3936780350076884 --0.1018204620885700 -0.2827779522304362 -0.2076655520278619 --0.3241347278048842 -0.3332922762430486 --0.0027710837816300 --0.2859033599495868 -0.1059529357580395 --0.3959615229369786 -0.2130301811159451 -0.4174875249780529 -0.3596385375734888 --0.4545327421338034 -0.1391932981098963 --0.0548607839074013 -0.0887081588545566 -0.3236264176964948 -0.3936721566251852 --0.1011969301797096 -0.2183373966652044 -0.3395602189883247 --0.1771937469909062 -0.2481806329108371 --0.1292088202978652 -0.3574185863863462 -0.2364208881589807 --0.2139877429029657 --0.0683780530449812 --0.4694735586870622 --0.1427305621993463 -0.4338321511764129 --0.1861824499442675 -0.3036336251119043 -0.1244081383965628 --0.2462794542327109 -0.3759615692583863 -0.2467760023225934 -0.4365154468413415 --0.3421919529442710 -0.2433043281225773 --0.1616315819336877 --0.0943163723501597 --0.1775509489251817 -0.1443499358660489 -0.4849482703201532 --0.2793960661255655 -0.2312367091178014 -0.1508569030236597 -0.2368807769143340 -0.3555644826246532 --0.0136193811648678 -0.1325750545992908 --0.2601624331799502 -0.4868097318323660 -0.4591328031569991 --0.0364812330561533 --0.2783704924079011 -0.0657400050310177 --0.4008635082624054 --0.3842344499675913 -0.3714047585491038 --0.3836140154826781 --0.1586695908059816 --0.2616150386513377 -0.2807428201494574 -0.0405867679807470 --0.1978785471749618 --0.4315974006762459 -0.4356803899649662 --0.2150146632468576 --0.1522338086036579 --0.4370740001105605 -0.3636399601628809 --0.3074340064107270 --0.3572783917605894 --0.2346957125608959 --0.2165577343439199 -0.4314489567745914 -0.1917184074705158 --0.0052795350138906 --0.1671798559933533 --0.1879463790169059 -0.2396908833404031 --0.2150302416914255 --0.2689249792375412 --0.2891304846897935 -0.0471572842826460 -0.0511080661030812 --0.2992138237320177 -0.3429663839534144 -0.0644453013140681 -0.4777554581731687 -0.1950295201953028 --0.0751509747435608 -0.4540885663630770 --0.2521104988800208 -0.1519522809975965 --0.3159046441247709 --0.0049032759080591 --0.1941569503852993 --0.2348569609268105 -0.1353552250362883 -0.3741147374505847 --0.0616898460133917 -0.4103227120311351 --0.2661887722010378 --0.4611225258769961 --0.4788016118464881 -0.3868674067062638 --0.4287538753040726 --0.2658510379249059 --0.2886008647518910 -0.2113791822048114 -0.2949031811022533 -0.4333814718543431 --0.1194599802537953 --0.4473567075136158 -0.2186323016644206 -0.0704057448364516 -0.4065632633526954 --0.0066222831544424 --0.1623445101879138 -0.2963478160414786 --0.0289538877672985 -0.1208651035944479 --0.2086710985553251 -0.2434253395852687 --0.1496866455309616 --0.3309084102393562 --0.3090370970575732 --0.3236507543349179 --0.3431266161650089 -0.0373669639085051 -0.0487271279048312 --0.2347814430511391 -0.0003409308398880 --0.0948575133132504 --0.1868817998096974 -0.2334378461610146 --0.1132194903030753 -0.1795598344672715 -0.4781644910262695 --0.2132802249596376 -0.4840747966364163 --0.1995226540484819 --0.2728684010263941 --0.0683660560871115 --0.3056700654715547 --0.3928713112804722 -0.2312787032966112 -0.4065616633026685 --0.4577984164715846 --0.2074663924441895 -0.0117771636821119 --0.1803779905532236 -0.0750782535910294 -0.0977879637143374 --0.4969217263121035 -0.4090507465255502 -0.3027050213017932 -0.2621094165019628 --0.4512012036017278 -0.0752129355599445 -0.2309757066843222 -0.0151936338318472 -0.1983215724339001 -0.3569968051534240 --0.2675462186599891 --0.4939956606335023 --0.3960304144828217 -0.4177033757494512 --0.2161810931406475 --0.3242936891258599 -0.2169576664367757 --0.3079105349464426 -0.4507119858036748 -0.1157831106300466 -0.1497863167843734 --0.0120465341627563 -0.0492045539913952 -0.3515889159049316 -0.2367940167798390 -0.4158253212817329 --0.2567478659939294 --0.3887837861522414 -0.1368982022979823 -0.2503890052810741 --0.1889466113661377 --0.2643251913588168 --0.1112490853832396 --0.1474317361447890 --0.4185081188107830 -0.2949357521091615 -0.0911303526141637 --0.2800793942203103 -0.4118206940962326 --0.2694118579405658 -0.0462907006195745 --0.1346753533825695 --0.4429389765732479 --0.0746281580236391 --0.1712780071041897 -0.4698785749347818 --0.1162074183856586 --0.2547114125628080 --0.2543902604230590 -0.3673643140724830 --0.1159281585019165 --0.4321981467693463 --0.4783168645961738 --0.1158340809032593 --0.4676553151642508 -0.0342526995960374 --0.2863946783944503 -0.2632283545440813 --0.2484313647639370 --0.0429399839706212 --0.0452324947532393 -0.3187620498115149 -0.2560601768748735 --0.2320339711518779 --0.3848862010521598 -0.3468344627314129 --0.0540092598832213 -0.3688504092517723 -0.0219318646141409 -0.2514234218646944 -0.3850646288602388 --0.4206413982660715 --0.1386737455853392 -0.2649439307266134 --0.1975611786747351 --0.1778768946284623 --0.1349062715380707 -0.0534746993708656 --0.3040230224036560 --0.0908712730237720 --0.3108819293608925 --0.2048997028597171 -0.1989587519988958 -0.1767580998888071 --0.1218870820609192 -0.0315781944165791 --0.2879014033797035 -0.2552514208858222 -0.4112108675884004 -0.1325913019945780 --0.1192696123960677 --0.1128538106763275 --0.0862928304869174 --0.2823504557534515 --0.3106856156601071 -0.3701401944692417 -0.4804922842088835 --0.1317740693908821 --0.3875229837775134 --0.0289117122338689 --0.0504767270198700 --0.3917830542619591 --0.4621242786390752 -0.0642354607384407 --0.3899251993228969 --0.1928799919972490 --0.4139267328402906 --0.3864168190215051 -0.3919560013964665 --0.4204819930794194 --0.3577599406465073 --0.1954982008499052 --0.3869741623973425 --0.3623552823786942 -0.1620428427348600 -0.0964690557344714 -0.2738180212483589 --0.1926665489763223 -0.2836370348227916 --0.0686220763562526 -0.2587208043621751 -0.3054369474129578 -0.3263215448898816 --0.0294117095923658 --0.0409073633070362 --0.3492312253550861 --0.3385674618303157 --0.0007258165968307 --0.0387175159709815 -0.3463728936385136 --0.2273332414838325 --0.4526259484271105 -0.1152661946112064 --0.3282176680825865 -0.0319054128048194 --0.3925703175177694 --0.2747572247464545 -0.0302022314656027 -0.3547473335356496 --0.4336718095436818 --0.1048117626913340 -0.3206052904185863 -0.0464726243951982 --0.0712013189292148 -0.2965737207573602 -0.4316986343613594 --0.1831579827621662 --0.4660269541301890 -0.0202801818738064 -0.2721639704206783 -0.0682557715571042 -0.2419171665956227 -0.3774815375558623 --0.3559210743535234 -0.3052271462196303 -0.2843537697962057 --0.3054724122310946 -0.3810282730610096 --0.2406721892066236 --0.2751501480276526 -0.1551292650217213 --0.1450604482873880 --0.1471357400419280 --0.3316088013487590 -0.3855659442826312 -0.0739601400580372 --0.3554201508848819 -0.3016055346951138 -0.1189029157849091 -0.1099384329779106 -0.4889907441601455 --0.1294563354905829 --0.2440159832634806 --0.4487209799474252 -0.0384930923201144 -0.4887132170712494 -0.1833376951851492 --0.0588598328518872 --0.4303303346487646 -0.0166026298104477 --0.0551570871819967 -0.2951406300369281 --0.1380804812322015 -0.3765851009557281 --0.3886467579749300 --0.2242282154961425 --0.1302006170981579 -0.4707343379153335 --0.3432201614063657 -0.1046666810083280 --0.0143995841154274 --0.4294696723533258 --0.3871230573985818 -0.1462683629778959 --0.0899528083064828 -0.1632335331080468 --0.1721876321986491 --0.2466370874643446 --0.0749077857875635 -0.1520964389011924 -0.0740273989848887 -0.0177930063468691 --0.1820428389393938 --0.3821849010817293 --0.0770347789606405 -0.2961101489724633 -0.2574623391410822 --0.1646251020195443 -0.0151610804490614 --0.1163036819868593 --0.1260165489006794 --0.2751302176979241 -0.1263529613883547 --0.0374911823411238 --0.4201272333541782 -0.1824024621899156 -0.2609281543135803 --0.0499627193978517 -0.0462209965445174 --0.2226639606888842 -0.1772834811991795 --0.4951869680419059 -0.1005647333963041 --0.4455717684427073 --0.2429360088861878 -0.0266361569783869 --0.4328098218086536 -0.0514970159081751 -0.2010966386414133 -0.3174246124868261 -0.0576750142468556 --0.3808841930798244 --0.3626210249389882 -0.0113842574218206 --0.0708073688113485 --0.2334846259948825 -0.0644731100830583 --0.4962754586790022 --0.3014879862640236 -0.0404675276027460 -0.1927687735794372 --0.4312594809053712 --0.0221795960687550 --0.4080304931612909 -0.3091134056683726 -0.2085513024009341 -0.3551032424473254 -0.0673222894587168 --0.3081898268514418 --0.4827552715548252 --0.4421017414589613 --0.2305200671592371 -0.3224736662414506 -0.2652483664245864 -0.1339196902098865 -0.4913718067353091 -0.0285597730759886 -0.2960542799143854 -0.0237926112567608 --0.0741622218588289 -0.1067592486433189 -0.0478856868260973 --0.2990253645426337 --0.1206627870515029 --0.3770920224735826 -0.1545023965888795 --0.2261804489262936 --0.0853595054199847 -0.2736301405510647 --0.4100168921931841 --0.1353702995445527 --0.3345069637189724 --0.3070521131208309 -0.3830895043926623 -0.1389453593425197 -0.4215794277907529 --0.4525391923770191 -0.2455061199050282 -0.0210058420620016 --0.4688232160143532 --0.2324185142139046 -0.4401526371359209 -0.1715867465043378 -0.3456367133200753 -0.2276366647480302 --0.0857545648552666 -0.4733471450877078 --0.0161954842171216 --0.0016127607867356 --0.1814528307030844 -0.4795425713308116 -0.0053445870942752 --0.0682648823090537 --0.0155799922053039 -0.3590440628148251 --0.3010705915132975 --0.0265685403911404 --0.4801639898520393 --0.2289315449945785 -0.2185908131632434 --0.4381078046512047 --0.0202698792005505 -0.4589351639402076 --0.0215946951451810 --0.4484607392450827 -0.3252434521546315 -0.0710601888403317 -0.0505283898619004 -0.0170961713529671 -0.1841624088685818 --0.0660755478983623 -0.1988317011636084 --0.4943588791248809 -0.3521421897637346 --0.1936186102162476 --0.1152194124344932 -0.1819402715359614 --0.2805732983061807 --0.1494850969229413 --0.4157160403608867 --0.0874651222729859 -0.0333086267694065 -0.0735243338777470 --0.3866990981710499 -0.4332310901554849 -0.3061500981860513 --0.2890419329190420 --0.0442478914143224 -0.4280769351248651 --0.0856330554557438 -0.1687123751575741 -0.3171475244049123 --0.1817694898597245 --0.4690988751739362 --0.0024038728340956 -0.0908830058211804 -0.0019821861036969 --0.0033436927159523 -0.4573041051037562 --0.4001353843485093 -0.0193393604564319 -0.3676924601836843 -0.3121058203288879 --0.1509538378362947 -0.1744443527716226 --0.1663926008176522 --0.2680071683219820 -0.0053176385845938 -0.3635313509861434 --0.1364040977288854 -0.4791890548707380 -0.1459105675950397 -0.3912425192676844 -0.4884931551177264 -0.3013408494620968 -0.3536138674096286 -0.3889397105245140 --0.3574513387776364 --0.3765728361914334 --0.0168925344595141 -0.0830906262606326 --0.4823934875669550 -0.3172092060278197 --0.4782924439431943 -0.0907902108743418 -0.2262824450769664 --0.3288139352453789 --0.3158415742996868 -0.3399519785253313 --0.3077426901150742 -0.3235526438421128 --0.4916840745322115 -0.4624080780819501 --0.4093785088024213 --0.3470269412649954 -0.1196217377588924 -0.1034092686039084 -0.4281557018093158 --0.4613200827698101 --0.3125895221879508 -0.0331682941563185 -0.2728147629612755 -0.2013829239251173 --0.3568824475121682 -0.4427655219765450 -0.1075805199118314 --0.0887261971772026 --0.1976801334254903 -0.4249215412365197 -0.0543501751816330 --0.2543107759740960 -0.2054845944352374 -0.4166348024173846 -0.1491040354029248 --0.0252239791271985 --0.0527472478459782 -0.4270209830962918 --0.4209453718496108 -0.4260177581212643 -0.4945862779919972 --0.2664995190658262 -0.2024832766041549 -0.4270794780794804 -0.0043815013282165 --0.0420103480722319 --0.2333304221805867 --0.3863158240823028 -0.0821317568109406 -0.2871453397436495 --0.0976559797126318 --0.0571732102747963 --0.3656118209470124 --0.0059559417449464 -0.2057471414686156 --0.3236860257886535 -0.4198845205211597 --0.2441480344244123 --0.0644753339036661 --0.1063159466850181 --0.1084052321106442 --0.4959690791827641 -0.1203803527627844 -0.0448165062970943 --0.2467679669866670 -0.0669367909899098 -0.3811378513299315 --0.0669798232882459 -0.1987403457043178 -0.3147036442375436 -0.0209460001940921 --0.2706189632967875 --0.0893974361682933 -0.1489986250100064 --0.1523647386562447 -0.0168873650912207 -0.3564286048224697 -0.0537887083181703 -0.3379673700601790 --0.2202398383023608 --0.0067764121664250 --0.1363448232854130 --0.3732019048707316 --0.4532042163510592 -0.3152869288360616 -0.4130874770529670 -0.3686486839863338 --0.3087810187325165 --0.4689491097910194 -0.4886810948139901 --0.1436301166356249 --0.2993774259533292 -0.4903495800666862 --0.3224661572536315 --0.1222204785471483 --0.3520811928619835 --0.3557551677075167 --0.3827971297784715 -0.2159120163062261 --0.3757989831186341 -0.1187324641381081 --0.4774447491819109 --0.2532476173635345 -0.0662809660732754 -0.2833987603870364 -0.3841867719282607 --0.2446725881592685 -0.2312814900058969 --0.1668304810686829 --0.1468120325602759 --0.1739471012685497 -0.0966015458058689 -0.1368506101417425 -0.3829711590945659 --0.0847059343136057 --0.0486555775398850 -0.4783904337742555 -0.4694889832741199 --0.2667074430564769 -0.0927488133727438 -0.3282129395436600 --0.1603950722626222 --0.1888886456719570 -0.1608279907803493 -0.4464043478454933 --0.4634781529592545 -0.1823421375829853 -0.3265872160788240 -0.1999953378434149 -0.4231239195956772 -0.4941508220421779 -0.0064960709934986 -0.2565047011678470 --0.0071474557178479 --0.4557508341799158 --0.0702457413793418 --0.1868995593664259 -0.1297086926082467 -0.0088797193230705 --0.0328371936750843 -0.3409949230379481 --0.0560407582752276 -0.0215291401622927 -0.1563127939154818 -0.3823927816616770 --0.2450619678916387 --0.4699395516259589 --0.0626642456856548 -0.2797094915289946 --0.3946874602831404 --0.1342870030665137 --0.3107167419147843 -0.4503706660576682 -0.3327291367651705 --0.4063712614867171 --0.4828194558138840 -0.2159985676327357 -0.3458747167591856 --0.0529652701466476 --0.1384946122682338 --0.0525882763352304 -0.3847306874768228 --0.2926296431222244 --0.4162058544415663 -0.3291133748880026 --0.0960758045904644 -0.2432185189274925 -0.2771752795863403 -0.0218212522234045 -0.2500550862503530 -0.2899087966956031 --0.0921005164883466 -0.1346962728221569 -0.0120729922348450 --0.4843740229983498 -0.4194100343389090 -0.0853981144987728 -0.3996544058361938 --0.3211144692344047 -0.1428103386684728 -0.1126774948031649 -0.0903832248078932 -0.3002779813035363 -0.4570889133549190 -0.2037896313012244 --0.1023594263097453 -0.3589500509450789 --0.3158557932545621 -0.1837025169031509 --0.3463596172185131 -0.1524092842833663 -0.0811038261335163 -0.4410789309881914 -0.3124670166318528 -0.2013940507051653 -0.2959604402893791 -0.3436763287788025 --0.3136364139962965 --0.0422268330974836 -0.3230339146314990 --0.1128813272652142 --0.3067284974279785 --0.2912831967215727 --0.3410966845961976 -0.0204756790057550 --0.0846121656333283 --0.2551576901347578 -0.1653147788198980 -0.4407139644152347 --0.0781310817919282 -0.3925266866600758 -0.4082212586799744 -0.0877846240752774 --0.2671359748932426 -0.2924289067657115 -0.3719032215409300 --0.2431288268789565 --0.4065713748848975 --0.0935991526426760 -0.1066404880243841 -0.4705823744403960 --0.1821934575530327 -0.4333125683385073 -0.2607008219582292 -0.1712158729877038 --0.2250234921963281 -0.1732464282052617 --0.2900567323674962 --0.2564189074285982 -0.4518052411502533 -0.4875142339286425 --0.0390097332278979 --0.2167081837947541 -0.2837124396582826 -0.4684492166337187 -0.2674223862020693 -0.3387905318540074 -0.0888467219924421 -0.4194311755271211 -0.3126388688622690 --0.4342140339796026 --0.0506300225634757 --0.3603888956783676 --0.0766855635746546 --0.1971818741324591 -0.4437320247524976 -0.2375552110648771 --0.4420067276655968 --0.3436928676039010 -0.4380430619146506 --0.2613207043655760 --0.2873541942011500 -0.2921877217664572 -0.1817661149813998 --0.2652108971920739 --0.2060485893026989 -0.2793071332804931 -0.0365928973307806 --0.4566574903891764 -0.2175931043331778 -0.1461816064514923 --0.4270636152426459 -0.2087168408145493 --0.2509618006543571 --0.2875539891372548 -0.3031535205004233 -0.1834367747901853 --0.2290778836678564 --0.2183558448387539 --0.2455451712764919 --0.4206708578105904 -0.3026203239782833 -0.3992176612790532 --0.0354942126684751 -0.4392763092663072 -0.4669160818624946 -0.0935205488093617 --0.1336231807530487 --0.4817217555402956 -0.0090179159053722 -0.4527630269629872 -0.1342528026015917 -0.2855845936565192 --0.0832946442698100 -0.3457755732829202 --0.4868739726986103 -%% --0.3650586543330441 --0.3664034276058044 --0.1271288268182236 --0.4434263887263493 -0.2989221107485351 --0.1321378338692395 -0.0596867981485875 --0.1608663684151057 --0.0723150053030882 --0.1838841864219721 -0.3167200945874217 -0.1950153805643957 --0.3134044087631319 -0.2708527769210990 -0.2123625803619320 -0.4465444467715145 --0.3548431126025964 --0.3359298821722262 -0.0288132468691444 --0.1771603019322202 -0.3219452765005371 --0.3490556756018220 --0.4901954771475220 --0.1363943955031026 -0.0973491303248710 --0.2433640836346648 --0.1085284408867746 -0.2818900887180683 -0.0298681767425926 --0.3622460785701020 -0.4610707955758955 --0.1865009625632182 -0.4454116237527719 --0.1356516653830057 --0.2443233733490621 --0.3312968022834062 --0.0301937509264607 --0.4356828210114319 --0.3486448572525362 --0.1013849904852857 --0.4979658329259206 -0.0941725085253207 -0.0966337362181545 --0.1163705502225409 --0.3883622501104271 --0.0689836888320066 --0.2796908676600912 -0.0247427016501139 --0.2934052366698738 -0.3590294415175803 --0.2384165134578513 --0.1580076584608232 -0.0209871378571608 -0.4348498544076438 --0.1066667508167890 -0.2132359809966036 --0.1433933368106075 --0.0387853986691839 -0.0263137966551262 --0.1984528781498981 --0.0655292860339033 -0.3336964842995791 --0.3198984730257013 --0.0348884391556283 --0.2225207486315399 --0.4545239745789881 --0.3903698179150650 --0.0740510154223525 -0.4718693382273154 --0.4651552074141979 --0.3412538277682801 --0.0405460836505530 -0.3833284512513764 --0.4586643005105567 --0.4417389853256207 -0.3443737279198956 -0.1595105119647875 -0.4795255015059384 -0.2565594789920754 --0.4830018895850911 -0.3790070548675091 --0.0363520754427318 -0.3782231039893145 --0.1197162568961840 -0.2505001429700476 --0.4059657462891421 --0.3356351441852829 -0.4639061331548464 -0.0669749743309493 --0.0749402546461475 -0.2942929511686594 --0.0633342871903941 --0.0753140864609409 --0.1506445250572720 -0.0741268824764744 --0.3534739304508657 --0.2866837106881783 -0.2559996990333637 --0.2321088569165660 --0.2118576037308617 -0.4663886564524881 --0.2690198858483315 --0.2604437511992906 -0.1253820411138985 --0.4775436578374944 -0.2063739692951070 -0.2998560918519819 -0.1907846497843610 -0.3728563048159124 --0.1257405452175639 --0.3544563648467552 -0.0209748956267971 -0.4341216806281327 --0.1532627832685441 -0.1348891468293104 -0.4909977643861146 --0.2012397112300117 --0.1747709887435976 -0.1055281390803471 -0.0766850627114333 -0.2982353372346244 --0.3903493567734755 --0.1981440331908960 -0.4489051570040348 --0.1047670977509940 --0.0620972638976901 -0.3229215645715848 --0.0287817434060051 --0.4736849631115087 --0.3223248787509880 -0.3867268786789304 -0.3746632720559925 -0.0276407836792805 -0.2776122145396586 -0.1745477304047895 -0.1407529042328762 -0.0321276724555907 --0.2140203007124491 -0.4952957506752927 -0.3397568231652707 -0.1744534476112900 -0.4304769045913656 -0.3971287821261218 -0.3619972040947571 --0.1296339871071451 --0.1036484022424820 -0.3371610078340121 --0.1586499348644620 -0.4427879336018888 -0.4504104889706287 -0.3987708678194404 --0.3874286306199949 -0.1569529557604826 -0.0891623618704200 -0.4838170509330592 --0.0571940200227610 -0.2222354864571913 -0.4540138088113749 --0.4608121789687296 --0.3940314658125069 -0.4851941046941377 -0.3069672260726064 -0.4643057110532074 -0.4821093211259458 --0.4022668362193804 -0.1952749356319133 --0.2001559608049782 -0.3228700129758153 --0.2271341415553032 -0.0079498373702066 -0.0063604703084774 -0.3774925207788475 --0.2178900999809292 --0.2910962287395601 --0.3886664739604453 -0.0731522994264293 --0.2945401904544105 --0.4002918389447455 -0.2257623628462186 -0.3679363667684028 --0.1373369352240156 --0.4946453243883288 -0.2004999264396903 -0.1056923348629711 -0.1400599336706774 -0.4520627800773355 -0.2822415818591221 -0.0165893167899723 -0.1490671972015787 -0.3767661013059145 --0.1558383631059452 -0.0249828995804126 -%% -0.4424363035310214 --0.3605759487709181 --0.1800804113238152 -0.4475482605076305 -0.2529110407603758 -0.3259778697714617 -0.1041960938460277 --0.3466372089684309 --0.4374503127993276 --0.2281378578606078 -0.3910031103464617 --0.2609256571893643 --0.3656339831086683 --0.0760290607040628 --0.4588373423614888 -0.1558368046570618 --0.4260280767489409 --0.3310268633360521 -0.1745415400933488 -0.4498751132286368 -0.4881621738418157 -0.0313833738408521 --0.4142881870143837 --0.4180541016388725 --0.4090825437945552 --0.1823128861843338 -0.3540602042025437 -0.2407499552981331 --0.1762710858978620 --0.3181977088755831 -0.4777618767773157 --0.1697810446803184 --0.1277685203163738 -0.2106161585006977 --0.0305131733315050 -0.1941567759021646 -0.3048778866473214 -0.3283480626632970 -0.1271064708267968 --0.2605382691901943 --0.2469335535560673 -0.3442516418428533 --0.2040267231318595 --0.2349864396056356 --0.2486839337156490 --0.4886791911472256 --0.0954413719884893 --0.1880860549218849 --0.3163815120248741 --0.1337204990829230 -0.0448823001034440 -0.3426420791249377 --0.4847168752144872 -0.2111538644205979 -0.0186839142357113 -0.4633349231714418 --0.1635130463889623 --0.4267011441212951 -0.3890460572072034 --0.4895743890109852 -0.3582108485013409 --0.3946298923342171 -0.2541208441520265 -0.4900634686483679 -%% --0.2722149411801414 --0.2699376595163692 --0.0372122866449914 --0.2177302149422325 -0.0758078305226627 --0.3003439709999060 --0.0336690138983059 -0.4943792719896820 --0.0377358665829968 --0.0567221705202945 -0.3850230123909625 --0.1633989954455181 -0.4392228653340066 --0.0955531329799825 -0.2520228015470677 -0.1898141941820103 --0.3549664995255828 -0.1651371873253121 --0.1033679785704608 --0.1685862876823516 --0.0293505404485405 -0.3706532146734764 --0.3613170078817656 -0.4824061432643633 -0.1896187478927254 --0.2126776293049475 --0.0126461838884445 -0.4762124378489822 -0.2875500687587406 -0.0590929455073977 --0.4168680512126123 --0.1379107292489044 -0.3501585460851093 -0.1764219799533058 --0.3415926674238837 --0.3543808637615671 -0.0024131357778179 --0.4831774217728143 --0.3226722772300620 -0.4459783015865997 --0.3708246347329506 -0.0387690605084077 -0.4859995805692675 -0.0392077948673361 --0.4220665459792927 --0.1786287752939952 --0.2017590557592976 --0.1009765225174292 --0.0620079468218391 -0.4786199296286078 -0.4082284253198464 --0.2924035215148357 -0.3675676014797002 --0.4693943384086119 -0.1829641993410900 --0.0970780986023042 --0.0616482142287308 -0.3033711009282011 -0.0942964367596129 --0.4828301141714391 -0.0490046368042139 --0.2022200533180573 -0.4035212962460917 --0.2903405773022628 -%% -0.2550651691246478 -0.0181829230044624 --0.3539280210774066 -%% -13.2399997711181641 -2.5899999141693115 -2.8699998855590820 -21.0000000000000000 -118.0000000000000000 -2.7999999523162842 -2.6900000572204590 -0.3899999856948853 -1.8200000524520874 -4.3200001716613770 -1.0399999618530273 -2.9300000667572021 -735.0000000000000000 -13.4799995422363281 -1.8099999427795410 -2.4100000858306885 -20.5000000000000000 -100.0000000000000000 -2.7000000476837158 -2.9800000190734863 -0.2599999904632568 -1.8600000143051147 -5.0999999046325684 -1.0399999618530273 -3.4700000286102295 -920.0000000000000000 -12.3299999237060547 -0.9900000095367432 -1.9500000476837158 -14.8000001907348633 -136.0000000000000000 -1.8999999761581421 -1.8500000238418579 -0.3499999940395355 -2.7599999904632568 -3.4000000953674316 -1.0599999427795410 -2.3099999427795410 -750.0000000000000000 -12.1999998092651367 -3.0299999713897705 -2.3199999332427979 -19.0000000000000000 -96.0000000000000000 -1.2500000000000000 -0.4900000095367432 -0.4000000059604645 -0.7300000190734863 -5.5000000000000000 -0.6600000262260437 -1.8300000429153442 -510.0000000000000000 -13.6800003051757812 -1.8300000429153442 -2.3599998950958252 -17.2000007629394531 -104.0000000000000000 -2.4200000762939453 -2.6900000572204590 -0.4199999868869781 -1.9700000286102295 -3.8399999141693115 -1.2300000190734863 -2.8699998855590820 -990.0000000000000000 -13.4499998092651367 -3.7000000476837158 -2.5999999046325684 -23.0000000000000000 -111.0000000000000000 -1.7000000476837158 -0.9200000166893005 -0.4300000071525574 -1.4600000381469727 -10.6800003051757812 -0.8500000238418579 -1.5599999427795410 -695.0000000000000000 -13.4099998474121094 -3.8399999141693115 -2.1199998855590820 -18.7999992370605469 -90.0000000000000000 -2.4500000476837158 -2.6800000667572021 -0.2700000107288361 -1.4800000190734863 -4.2800002098083496 -0.9100000262260437 -3.0000000000000000 -1035.0000000000000000 -12.8500003814697266 -1.6000000238418579 -2.5199999809265137 -17.7999992370605469 -95.0000000000000000 -2.4800000190734863 -2.3699998855590820 -0.2599999904632568 -1.4600000381469727 -3.9300000667572021 -1.0900000333786011 -3.6300001144409180 -1015.0000000000000000 -13.7299995422363281 -4.3600001335144043 -2.2599999904632568 -22.5000000000000000 -88.0000000000000000 -1.2799999713897705 -0.4699999988079071 -0.5199999809265137 -1.1499999761581421 -6.6199998855590820 -0.7799999713897705 -1.7500000000000000 -520.0000000000000000 -11.9600000381469727 -1.0900000333786011 -2.2999999523162842 -21.0000000000000000 -101.0000000000000000 -3.3800001144409180 -2.1400001049041748 -0.1299999952316284 -1.6499999761581421 -3.2100000381469727 -0.9900000095367432 -3.1300001144409180 -886.0000000000000000 -11.8699998855590820 -4.3099999427795410 -2.3900001049041748 -21.0000000000000000 -82.0000000000000000 -2.8599998950958252 -3.0299999713897705 -0.2099999934434891 -2.9100000858306885 -2.7999999523162842 -0.7500000000000000 -3.6400001049041748 -380.0000000000000000 -12.0699996948242188 -2.1600000858306885 -2.1700000762939453 -21.0000000000000000 -85.0000000000000000 -2.5999999046325684 -2.6500000953674316 -0.3700000047683716 -1.3500000238418579 -2.7599999904632568 -0.8600000143051147 -3.2799999713897705 -378.0000000000000000 -14.3900003433227539 -1.8700000047683716 -2.4500000476837158 -14.6000003814697266 -96.0000000000000000 -2.5000000000000000 -2.5199999809265137 -0.3000000119209290 -1.9800000190734863 -5.2500000000000000 -1.0199999809265137 -3.5799999237060547 -1290.0000000000000000 -13.6300001144409180 -1.8099999427795410 -2.7000000476837158 -17.2000007629394531 -112.0000000000000000 -2.8499999046325684 -2.9100000858306885 -0.3000000119209290 -1.4600000381469727 -7.3000001907348633 -1.2799999713897705 -2.8800001144409180 -1310.0000000000000000 -13.1700000762939453 -5.1900000572204590 -2.3199999332427979 -22.0000000000000000 -93.0000000000000000 -1.7400000095367432 -0.6299999952316284 -0.6100000143051147 -1.5499999523162842 -7.9000000953674316 -0.6000000238418579 -1.4800000190734863 -725.0000000000000000 -12.0799999237060547 -1.8300000429153442 -2.3199999332427979 -18.5000000000000000 -81.0000000000000000 -1.6000000238418579 -1.5000000000000000 -0.5199999809265137 -1.6399999856948853 -2.4000000953674316 -1.0800000429153442 -2.2699999809265137 -480.0000000000000000 -12.8100004196166992 -2.3099999427795410 -2.4000000953674316 -24.0000000000000000 -98.0000000000000000 -1.1499999761581421 -1.0900000333786011 -0.2700000107288361 -0.8299999833106995 -5.6999998092651367 -0.6600000262260437 -1.3600000143051147 -560.0000000000000000 -13.5600004196166992 -1.7100000381469727 -2.3099999427795410 -16.2000007629394531 -117.0000000000000000 -3.1500000953674316 -3.2899999618530273 -0.3400000035762787 -2.3399999141693115 -6.1300001144409180 -0.9499999880790710 -3.3800001144409180 -795.0000000000000000 -12.5299997329711914 -5.5100002288818359 -2.6400001049041748 -25.0000000000000000 -96.0000000000000000 -1.7899999618530273 -0.6000000238418579 -0.6299999952316284 -1.1000000238418579 -5.0000000000000000 -0.8199999928474426 -1.6900000572204590 -515.0000000000000000 -14.0200004577636719 -1.6799999475479126 -2.2100000381469727 -16.0000000000000000 -96.0000000000000000 -2.6500000953674316 -2.3299999237060547 -0.2599999904632568 -1.9800000190734863 -4.6999998092651367 -1.0399999618530273 -3.5899999141693115 -1035.0000000000000000 -11.8400001525878906 -2.8900001049041748 -2.2300000190734863 -18.0000000000000000 -112.0000000000000000 -1.7200000286102295 -1.3200000524520874 -0.4300000071525574 -0.9499999880790710 -2.6500000953674316 -0.9599999785423279 -2.5199999809265137 -500.0000000000000000 -14.2200002670288086 -3.9900000095367432 -2.5099999904632568 -13.1999998092651367 -128.0000000000000000 -3.0000000000000000 -3.0399999618530273 -0.2000000029802322 -2.0799999237060547 -5.0999999046325684 -0.8899999856948853 -3.5299999713897705 -760.0000000000000000 -13.8299999237060547 -1.5700000524520874 -2.6199998855590820 -20.0000000000000000 -115.0000000000000000 -2.9500000476837158 -3.4000000953674316 -0.4000000059604645 -1.7200000286102295 -6.5999999046325684 -1.1299999952316284 -2.5699999332427979 -1130.0000000000000000 -12.2500000000000000 -1.7300000190734863 -2.1199998855590820 -19.0000000000000000 -80.0000000000000000 -1.6499999761581421 -2.0299999713897705 -0.3700000047683716 -1.6299999952316284 -3.4000000953674316 -1.0000000000000000 -3.1700000762939453 -510.0000000000000000 -12.2500000000000000 -4.7199997901916504 -2.5399999618530273 -21.0000000000000000 -89.0000000000000000 -1.3799999952316284 -0.4699999988079071 -0.5299999713897705 -0.8000000119209290 -3.8499999046325684 -0.7500000000000000 -1.2699999809265137 -720.0000000000000000 -12.3699998855590820 -1.2100000381469727 -2.5599999427795410 -18.1000003814697266 -98.0000000000000000 -2.4200000762939453 -2.6500000953674316 -0.3700000047683716 -2.0799999237060547 -4.5999999046325684 -1.1900000572204590 -2.2999999523162842 -678.0000000000000000 -12.6700000762939453 -0.9800000190734863 -2.2400000095367432 -18.0000000000000000 -99.0000000000000000 -2.2000000476837158 -1.9400000572204590 -0.3000000119209290 -1.4600000381469727 -2.6199998855590820 -1.2300000190734863 -3.1600000858306885 -450.0000000000000000 -13.5000000000000000 -1.8099999427795410 -2.6099998950958252 -20.0000000000000000 -96.0000000000000000 -2.5299999713897705 -2.6099998950958252 -0.2800000011920929 -1.6599999666213989 -3.5199999809265137 -1.1200000047683716 -3.8199999332427979 -845.0000000000000000 -11.6499996185302734 -1.6699999570846558 -2.6199998855590820 -26.0000000000000000 -88.0000000000000000 -1.9199999570846558 -1.6100000143051147 -0.4000000059604645 -1.3400000333786011 -2.5999999046325684 -1.3600000143051147 -3.2100000381469727 -562.0000000000000000 -13.0699996948242188 -1.5000000000000000 -2.0999999046325684 -15.5000000000000000 -98.0000000000000000 -2.4000000953674316 -2.6400001049041748 -0.2800000011920929 -1.3700000047683716 -3.7000000476837158 -1.1799999475479126 -2.6900000572204590 -1020.0000000000000000 -14.7500000000000000 -1.7300000190734863 -2.3900001049041748 -11.3999996185302734 -91.0000000000000000 -3.0999999046325684 -3.6900000572204590 -0.4300000071525574 -2.8099999427795410 -5.4000000953674316 -1.2500000000000000 -2.7300000190734863 -1150.0000000000000000 -11.4600000381469727 -3.7400000095367432 -1.8200000524520874 -19.5000000000000000 -107.0000000000000000 -3.1800000667572021 -2.5799999237060547 -0.2399999946355820 -3.5799999237060547 -2.9000000953674316 -0.7500000000000000 -2.8099999427795410 -562.0000000000000000 -13.2700004577636719 -4.2800002098083496 -2.2599999904632568 -20.0000000000000000 -120.0000000000000000 -1.5900000333786011 -0.6899999976158142 -0.4300000071525574 -1.3500000238418579 -10.1999998092651367 -0.5899999737739563 -1.5599999427795410 -835.0000000000000000 -12.2899999618530273 -3.1700000762939453 -2.2100000381469727 -18.0000000000000000 -88.0000000000000000 -2.8499999046325684 -2.9900000095367432 -0.4499999880790710 -2.8099999427795410 -2.2999999523162842 -1.4199999570846558 -2.8299999237060547 -406.0000000000000000 -13.8999996185302734 -1.6799999475479126 -2.1199998855590820 -16.0000000000000000 -101.0000000000000000 -3.0999999046325684 -3.3900001049041748 -0.2099999934434891 -2.1400001049041748 -6.0999999046325684 -0.9100000262260437 -3.3299999237060547 -985.0000000000000000 -12.4200000762939453 -2.5499999523162842 -2.2699999809265137 -22.0000000000000000 -90.0000000000000000 -1.6799999475479126 -1.8400000333786011 -0.6600000262260437 -1.4199999570846558 -2.7000000476837158 -0.8600000143051147 -3.2999999523162842 -315.0000000000000000 -13.4899997711181641 -3.5899999141693115 -2.1900000572204590 -19.5000000000000000 -88.0000000000000000 -1.6200000047683716 -0.4799999892711639 -0.5799999833106995 -0.8799999952316284 -5.6999998092651367 -0.8100000023841858 -1.8200000524520874 -580.0000000000000000 -14.3800001144409180 -1.8700000047683716 -2.3800001144409180 -12.0000000000000000 -102.0000000000000000 -3.2999999523162842 -3.6400001049041748 -0.2899999916553497 -2.9600000381469727 -7.5000000000000000 -1.2000000476837158 -3.0000000000000000 -1547.0000000000000000 -14.8299999237060547 -1.6399999856948853 -2.1700000762939453 -14.0000000000000000 -97.0000000000000000 -2.7999999523162842 -2.9800000190734863 -0.2899999916553497 -1.9800000190734863 -5.1999998092651367 -1.0800000429153442 -2.8499999046325684 -1045.0000000000000000 -12.3699998855590820 -0.9399999976158142 -1.3600000143051147 -10.6000003814697266 -88.0000000000000000 -1.9800000190734863 -0.5699999928474426 -0.2800000011920929 -0.4199999868869781 -1.9500000476837158 -1.0499999523162842 -1.8200000524520874 -520.0000000000000000 -13.3400001525878906 -0.9399999976158142 -2.3599998950958252 -17.0000000000000000 -110.0000000000000000 -2.5299999713897705 -1.2999999523162842 -0.5500000119209290 -0.4199999868869781 -3.1700000762939453 -1.0199999809265137 -1.9299999475479126 -750.0000000000000000 -12.6000003814697266 -1.3400000333786011 -1.8999999761581421 -18.5000000000000000 -88.0000000000000000 -1.4500000476837158 -1.3600000143051147 -0.2899999916553497 -1.3500000238418579 -2.4500000476837158 -1.0399999618530273 -2.7699999809265137 -562.0000000000000000 -14.0600004196166992 -2.1500000953674316 -2.6099998950958252 -17.6000003814697266 -121.0000000000000000 -2.5999999046325684 -2.5099999904632568 -0.3100000023841858 -1.2500000000000000 -5.0500001907348633 -1.0599999427795410 -3.5799999237060547 -1295.0000000000000000 -14.1599998474121094 -2.5099999904632568 -2.4800000190734863 -20.0000000000000000 -91.0000000000000000 -1.6799999475479126 -0.6999999880790710 -0.4399999976158142 -1.2400000095367432 -9.6999998092651367 -0.6200000047683716 -1.7100000381469727 -660.0000000000000000 -12.3699998855590820 -1.1699999570846558 -1.9199999570846558 -19.6000003814697266 -78.0000000000000000 -2.1099998950958252 -2.0000000000000000 -0.2700000107288361 -1.0399999618530273 -4.6799998283386230 -1.1200000047683716 -3.4800000190734863 -510.0000000000000000 -13.8699998855590820 -1.8999999761581421 -2.7999999523162842 -19.3999996185302734 -107.0000000000000000 -2.9500000476837158 -2.9700000286102295 -0.3700000047683716 -1.7599999904632568 -4.5000000000000000 -1.2500000000000000 -3.4000000953674316 -915.0000000000000000 -14.3000001907348633 -1.9199999570846558 -2.7200000286102295 -20.0000000000000000 -120.0000000000000000 -2.7999999523162842 -3.1400001049041748 -0.3300000131130219 -1.9700000286102295 -6.1999998092651367 -1.0700000524520874 -2.6500000953674316 -1280.0000000000000000 -12.5100002288818359 -1.2400000095367432 -2.2500000000000000 -17.5000000000000000 -85.0000000000000000 -2.0000000000000000 -0.5799999833106995 -0.6000000238418579 -1.2500000000000000 -5.4499998092651367 -0.7500000000000000 -1.5099999904632568 -650.0000000000000000 -13.0500001907348633 -1.7699999809265137 -2.0999999046325684 -17.0000000000000000 -107.0000000000000000 -3.0000000000000000 -3.0000000000000000 -0.2800000011920929 -2.0299999713897705 -5.0399999618530273 -0.8799999952316284 -3.3499999046325684 -885.0000000000000000 -13.1599998474121094 -3.5699999332427979 -2.1500000953674316 -21.0000000000000000 -102.0000000000000000 -1.5000000000000000 -0.5500000119209290 -0.4300000071525574 -1.2999999523162842 -4.0000000000000000 -0.6000000238418579 -1.6799999475479126 -830.0000000000000000 -13.7500000000000000 -1.7300000190734863 -2.4100000858306885 -16.0000000000000000 -89.0000000000000000 -2.5999999046325684 -2.7599999904632568 -0.2899999916553497 -1.8099999427795410 -5.5999999046325684 -1.1499999761581421 -2.9000000953674316 -1320.0000000000000000 -12.7899999618530273 -2.6700000762939453 -2.4800000190734863 -22.0000000000000000 -112.0000000000000000 -1.4800000190734863 -1.3600000143051147 -0.2399999946355820 -1.2599999904632568 -10.8000001907348633 -0.4799999892711639 -1.4700000286102295 -480.0000000000000000 -12.5100002288818359 -1.7300000190734863 -1.9800000190734863 -20.5000000000000000 -85.0000000000000000 -2.2000000476837158 -1.9199999570846558 -0.3199999928474426 -1.4800000190734863 -2.9400000572204590 -1.0399999618530273 -3.5699999332427979 -672.0000000000000000 -13.6899995803833008 -3.2599999904632568 -2.5399999618530273 -20.0000000000000000 -107.0000000000000000 -1.8300000429153442 -0.5600000023841858 -0.5000000000000000 -0.8000000119209290 -5.8800001144409180 -0.9599999785423279 -1.8200000524520874 -680.0000000000000000 -13.7100000381469727 -1.8600000143051147 -2.3599998950958252 -16.6000003814697266 -101.0000000000000000 -2.6099998950958252 -2.8800001144409180 -0.2700000107288361 -1.6900000572204590 -3.7999999523162842 -1.1100000143051147 -4.0000000000000000 -1035.0000000000000000 -14.1300001144409180 -4.0999999046325684 -2.7400000095367432 -24.5000000000000000 -96.0000000000000000 -2.0499999523162842 -0.7599999904632568 -0.5600000023841858 -1.3500000238418579 -9.1999998092651367 -0.6100000143051147 -1.6000000238418579 -560.0000000000000000 -12.0799999237060547 -2.0799999237060547 -1.7000000476837158 -17.5000000000000000 -97.0000000000000000 -2.2300000190734863 -2.1700000762939453 -0.2599999904632568 -1.3999999761581421 -3.2999999523162842 -1.2699999809265137 -2.9600000381469727 -710.0000000000000000 -12.0799999237060547 -1.1299999952316284 -2.5099999904632568 -24.0000000000000000 -78.0000000000000000 -2.0000000000000000 -1.5800000429153442 -0.4000000059604645 -1.3999999761581421 -2.2000000476837158 -1.3099999427795410 -2.7200000286102295 -630.0000000000000000 -12.9300003051757812 -3.7999999523162842 -2.6500000953674316 -18.6000003814697266 -102.0000000000000000 -2.4100000858306885 -2.4100000858306885 -0.2500000000000000 -1.9800000190734863 -4.5000000000000000 -1.0299999713897705 -3.5199999809265137 -770.0000000000000000 -12.9600000381469727 -3.4500000476837158 -2.3499999046325684 -18.5000000000000000 -106.0000000000000000 -1.3899999856948853 -0.6999999880790710 -0.4000000059604645 -0.9399999976158142 -5.2800002098083496 -0.6800000071525574 -1.7500000000000000 -675.0000000000000000 -12.5200004577636719 -2.4300000667572021 -2.1700000762939453 -21.0000000000000000 -88.0000000000000000 -2.5499999523162842 -2.2699999809265137 -0.2599999904632568 -1.2200000286102295 -2.0000000000000000 -0.8999999761581421 -2.7799999713897705 -325.0000000000000000 -11.8199996948242188 -1.4700000286102295 -1.9900000095367432 -20.7999992370605469 -86.0000000000000000 -1.9800000190734863 -1.6000000238418579 -0.3000000119209290 -1.5299999713897705 -1.9500000476837158 -0.9499999880790710 -3.3299999237060547 -495.0000000000000000 -13.7399997711181641 -1.6699999570846558 -2.2500000000000000 -16.3999996185302734 -118.0000000000000000 -2.5999999046325684 -2.9000000953674316 -0.2099999934434891 -1.6200000047683716 -5.8499999046325684 -0.9200000166893005 -3.2000000476837158 -1060.0000000000000000 -13.3000001907348633 -1.7200000286102295 -2.1400001049041748 -17.0000000000000000 -94.0000000000000000 -2.4000000953674316 -2.1900000572204590 -0.2700000107288361 -1.3500000238418579 -3.9500000476837158 -1.0199999809265137 -2.7699999809265137 -1285.0000000000000000 -13.5000000000000000 -3.1199998855590820 -2.6199998855590820 -24.0000000000000000 -123.0000000000000000 -1.3999999761581421 -1.5700000524520874 -0.2199999988079071 -1.2500000000000000 -8.6000003814697266 -0.5899999737739563 -1.2999999523162842 -500.0000000000000000 -12.9899997711181641 -1.6699999570846558 -2.5999999046325684 -30.0000000000000000 -139.0000000000000000 -3.2999999523162842 -2.8900001049041748 -0.2099999934434891 -1.9600000381469727 -3.3499999046325684 -1.3099999427795410 -3.5000000000000000 -985.0000000000000000 -13.8800001144409180 -5.0399999618530273 -2.2300000190734863 -20.0000000000000000 -80.0000000000000000 -0.9800000190734863 -0.3400000035762787 -0.4000000059604645 -0.6800000071525574 -4.9000000953674316 -0.5799999833106995 -1.3300000429153442 -415.0000000000000000 -12.6000003814697266 -2.4600000381469727 -2.2000000476837158 -18.5000000000000000 -94.0000000000000000 -1.6200000047683716 -0.6600000262260437 -0.6299999952316284 -0.9399999976158142 -7.0999999046325684 -0.7300000190734863 -1.5800000429153442 -695.0000000000000000 -14.3699998855590820 -1.9500000476837158 -2.5000000000000000 -16.7999992370605469 -113.0000000000000000 -3.8499999046325684 -3.4900000095367432 -0.2399999946355820 -2.1800000667572021 -7.8000001907348633 -0.8600000143051147 -3.4500000476837158 -1480.0000000000000000 -13.0799999237060547 -3.9000000953674316 -2.3599998950958252 -21.5000000000000000 -113.0000000000000000 -1.4099999666213989 -1.3899999856948853 -0.3400000035762787 -1.1399999856948853 -9.3999996185302734 -0.5699999928474426 -1.3300000429153442 -550.0000000000000000 -13.6700000762939453 -1.2500000000000000 -1.9199999570846558 -18.0000000000000000 -94.0000000000000000 -2.0999999046325684 -1.7899999618530273 -0.3199999928474426 -0.7300000190734863 -3.7999999523162842 -1.2300000190734863 -2.4600000381469727 -630.0000000000000000 -12.2100000381469727 -1.1900000572204590 -1.7500000000000000 -16.7999992370605469 -151.0000000000000000 -1.8500000238418579 -1.2799999713897705 -0.1400000005960464 -2.5000000000000000 -2.8499999046325684 -1.2799999713897705 -3.0699999332427979 -718.0000000000000000 -12.3400001525878906 -2.4500000476837158 -2.4600000381469727 -21.0000000000000000 -98.0000000000000000 -2.5599999427795410 -2.1099998950958252 -0.3400000035762787 -1.3099999427795410 -2.7999999523162842 -0.8000000119209290 -3.3800001144409180 -438.0000000000000000 -12.3599996566772461 -3.8299999237060547 -2.3800001144409180 -21.0000000000000000 -88.0000000000000000 -2.2999999523162842 -0.9200000166893005 -0.5000000000000000 -1.0399999618530273 -7.6500000953674316 -0.5600000023841858 -1.5800000429153442 -520.0000000000000000 -12.9300003051757812 -2.8099999427795410 -2.7000000476837158 -21.0000000000000000 -96.0000000000000000 -1.5399999618530273 -0.5000000000000000 -0.5299999713897705 -0.7500000000000000 -4.5999999046325684 -0.7699999809265137 -2.3099999427795410 -600.0000000000000000 -13.3199996948242188 -3.2400000095367432 -2.3800001144409180 -21.5000000000000000 -92.0000000000000000 -1.9299999475479126 -0.7599999904632568 -0.4499999880790710 -1.2500000000000000 -8.4200000762939453 -0.5500000119209290 -1.6200000047683716 -650.0000000000000000 -13.5600004196166992 -1.7300000190734863 -2.4600000381469727 -20.5000000000000000 -116.0000000000000000 -2.9600000381469727 -2.7799999713897705 -0.2000000029802322 -2.4500000476837158 -6.2500000000000000 -0.9800000190734863 -3.0299999713897705 -1120.0000000000000000 -12.7700004577636719 -3.4300000667572021 -1.9800000190734863 -16.0000000000000000 -80.0000000000000000 -1.6299999952316284 -1.2500000000000000 -0.4300000071525574 -0.8299999833106995 -3.4000000953674316 -0.6999999880790710 -2.1199998855590820 -372.0000000000000000 -12.8800001144409180 -2.9900000095367432 -2.4000000953674316 -20.0000000000000000 -104.0000000000000000 -1.2999999523162842 -1.2200000286102295 -0.2399999946355820 -0.8299999833106995 -5.4000000953674316 -0.7400000095367432 -1.4199999570846558 -530.0000000000000000 -14.1999998092651367 -1.7599999904632568 -2.4500000476837158 -15.1999998092651367 -112.0000000000000000 -3.2699999809265137 -3.3900001049041748 -0.3400000035762787 -1.9700000286102295 -6.7500000000000000 -1.0499999523162842 -2.8499999046325684 -1450.0000000000000000 -14.1199998855590820 -1.4800000190734863 -2.3199999332427979 -16.7999992370605469 -95.0000000000000000 -2.2000000476837158 -2.4300000667572021 -0.2599999904632568 -1.5700000524520874 -5.0000000000000000 -1.1699999570846558 -2.8199999332427979 -1280.0000000000000000 -13.8800001144409180 -1.8899999856948853 -2.5899999141693115 -15.0000000000000000 -101.0000000000000000 -3.2500000000000000 -3.5599999427795410 -0.1700000017881393 -1.7000000476837158 -5.4299998283386230 -0.8799999952316284 -3.5599999427795410 -1095.0000000000000000 -13.0500001907348633 -1.7300000190734863 -2.0399999618530273 -12.3999996185302734 -92.0000000000000000 -2.7200000286102295 -3.2699999809265137 -0.1700000017881393 -2.9100000858306885 -7.1999998092651367 -1.1200000047683716 -2.9100000858306885 -1150.0000000000000000 -12.8500003814697266 -3.2699999809265137 -2.5799999237060547 -22.0000000000000000 -106.0000000000000000 -1.6499999761581421 -0.6000000238418579 -0.6000000238418579 -0.9599999785423279 -5.5799999237060547 -0.8700000047683716 -2.1099998950958252 -570.0000000000000000 -12.0799999237060547 -1.3300000429153442 -2.2999999523162842 -23.6000003814697266 -70.0000000000000000 -2.2000000476837158 -1.5900000333786011 -0.4199999868869781 -1.3799999952316284 -1.7400000095367432 -1.0700000524520874 -3.2100000381469727 -625.0000000000000000 -12.4499998092651367 -3.0299999713897705 -2.6400001049041748 -27.0000000000000000 -97.0000000000000000 -1.8999999761581421 -0.5799999833106995 -0.6299999952316284 -1.1399999856948853 -7.5000000000000000 -0.6700000166893005 -1.7300000190734863 -880.0000000000000000 -13.9399995803833008 -1.7300000190734863 -2.2699999809265137 -17.3999996185302734 -108.0000000000000000 -2.8800001144409180 -3.5399999618530273 -0.3199999928474426 -2.0799999237060547 -8.8999996185302734 -1.1200000047683716 -3.0999999046325684 -1260.0000000000000000 -13.2299995422363281 -3.2999999523162842 -2.2799999713897705 -18.5000000000000000 -98.0000000000000000 -1.7999999523162842 -0.8299999833106995 -0.6100000143051147 -1.8700000047683716 -10.5200004577636719 -0.5600000023841858 -1.5099999904632568 -675.0000000000000000 -13.0500001907348633 -5.8000001907348633 -2.1300001144409180 -21.5000000000000000 -86.0000000000000000 -2.6199998855590820 -2.6500000953674316 -0.3000000119209290 -2.0099999904632568 -2.5999999046325684 -0.7300000190734863 -3.0999999046325684 -380.0000000000000000 -11.6599998474121094 -1.8799999952316284 -1.9199999570846558 -16.0000000000000000 -97.0000000000000000 -1.6100000143051147 -1.5700000524520874 -0.3400000035762787 -1.1499999761581421 -3.7999999523162842 -1.2300000190734863 -2.1400001049041748 -428.0000000000000000 -13.3900003433227539 -1.7699999809265137 -2.6199998855590820 -16.1000003814697266 -93.0000000000000000 -2.8499999046325684 -2.9400000572204590 -0.3400000035762787 -1.4500000476837158 -4.8000001907348633 -0.9200000166893005 -3.2200000286102295 -1195.0000000000000000 -12.0399999618530273 -4.3000001907348633 -2.3800001144409180 -22.0000000000000000 -80.0000000000000000 -2.0999999046325684 -1.7500000000000000 -0.4199999868869781 -1.3500000238418579 -2.5999999046325684 -0.7900000214576721 -2.5699999332427979 -580.0000000000000000 -13.1599998474121094 -2.3599998950958252 -2.6700000762939453 -18.6000003814697266 -101.0000000000000000 -2.7999999523162842 -3.2400000095367432 -0.3000000119209290 -2.8099999427795410 -5.6799998283386230 -1.0299999713897705 -3.1700000762939453 -1185.0000000000000000 -13.4799995422363281 -1.6699999570846558 -2.6400001049041748 -22.5000000000000000 -89.0000000000000000 -2.5999999046325684 -1.1000000238418579 -0.5199999809265137 -2.2899999618530273 -11.7500000000000000 -0.5699999928474426 -1.7799999713897705 -620.0000000000000000 -13.6400003433227539 -3.0999999046325684 -2.5599999427795410 -15.1999998092651367 -116.0000000000000000 -2.7000000476837158 -3.0299999713897705 -0.1700000017881393 -1.6599999666213989 -5.0999999046325684 -0.9599999785423279 -3.3599998950958252 -845.0000000000000000 -12.4700002670288086 -1.5199999809265137 -2.2000000476837158 -19.0000000000000000 -162.0000000000000000 -2.5000000000000000 -2.2699999809265137 -0.3199999928474426 -3.2799999713897705 -2.5999999046325684 -1.1599999666213989 -2.6300001144409180 -937.0000000000000000 -13.1999998092651367 -1.7799999713897705 -2.1400001049041748 -11.1999998092651367 -100.0000000000000000 -2.6500000953674316 -2.7599999904632568 -0.2599999904632568 -1.2799999713897705 -4.3800001144409180 -1.0499999523162842 -3.4000000953674316 -1050.0000000000000000 -12.8699998855590820 -4.6100001335144043 -2.4800000190734863 -21.5000000000000000 -86.0000000000000000 -1.7000000476837158 -0.6499999761581421 -0.4699999988079071 -0.8600000143051147 -7.6500000953674316 -0.5400000214576721 -1.8600000143051147 -625.0000000000000000 -13.0500001907348633 -1.6499999761581421 -2.5499999523162842 -18.0000000000000000 -98.0000000000000000 -2.4500000476837158 -2.4300000667572021 -0.2899999916553497 -1.4400000572204590 -4.2500000000000000 -1.1200000047683716 -2.5099999904632568 -1105.0000000000000000 -12.2899999618530273 -1.6100000143051147 -2.2100000381469727 -20.3999996185302734 -103.0000000000000000 -1.1000000238418579 -1.0199999809265137 -0.3700000047683716 -1.4600000381469727 -3.0499999523162842 -0.9060000181198120 -1.8200000524520874 -870.0000000000000000 -13.7200002670288086 -1.4299999475479126 -2.5000000000000000 -16.7000007629394531 -108.0000000000000000 -3.4000000953674316 -3.6700000762939453 -0.1899999976158142 -2.0399999618530273 -6.8000001907348633 -0.8899999856948853 -2.8699998855590820 -1285.0000000000000000 -12.3699998855590820 -1.1299999952316284 -2.1600000858306885 -19.0000000000000000 -87.0000000000000000 -3.5000000000000000 -3.0999999046325684 -0.1899999976158142 -1.8700000047683716 -4.4499998092651367 -1.2200000286102295 -2.8699998855590820 -420.0000000000000000 -13.0500001907348633 -2.0499999523162842 -3.2200000286102295 -25.0000000000000000 -124.0000000000000000 -2.6300001144409180 -2.6800000667572021 -0.4699999988079071 -1.9199999570846558 -3.5799999237060547 -1.1299999952316284 -3.2000000476837158 -830.0000000000000000 -12.8400001525878906 -2.9600000381469727 -2.6099998950958252 -24.0000000000000000 -101.0000000000000000 -2.3199999332427979 -0.6000000238418579 -0.5299999713897705 -0.8100000023841858 -4.9200000762939453 -0.8899999856948853 -2.1500000953674316 -590.0000000000000000 -13.3599996566772461 -2.5599999427795410 -2.3499999046325684 -20.0000000000000000 -89.0000000000000000 -1.3999999761581421 -0.5000000000000000 -0.3700000047683716 -0.6399999856948853 -5.5999999046325684 -0.6999999880790710 -2.4700000286102295 -780.0000000000000000 -11.8100004196166992 -2.1199998855590820 -2.7400000095367432 -21.5000000000000000 -134.0000000000000000 -1.6000000238418579 -0.9900000095367432 -0.1400000005960464 -1.5599999427795410 -2.5000000000000000 -0.9499999880790710 -2.2599999904632568 -625.0000000000000000 -11.0299997329711914 -1.5099999904632568 -2.2000000476837158 -21.5000000000000000 -85.0000000000000000 -2.4600000381469727 -2.1700000762939453 -0.5199999809265137 -2.0099999904632568 -1.8999999761581421 -1.7100000381469727 -2.8699998855590820 -407.0000000000000000 -11.4099998474121094 -0.7400000095367432 -2.5000000000000000 -21.0000000000000000 -88.0000000000000000 -2.4800000190734863 -2.0099999904632568 -0.4199999868869781 -1.4400000572204590 -3.0799999237060547 -1.1000000238418579 -2.3099999427795410 -434.0000000000000000 -12.6999998092651367 -3.8699998855590820 -2.4000000953674316 -23.0000000000000000 -101.0000000000000000 -2.8299999237060547 -2.5499999523162842 -0.4300000071525574 -1.9500000476837158 -2.5699999332427979 -1.1900000572204590 -3.1300001144409180 -463.0000000000000000 -14.3400001525878906 -1.6799999475479126 -2.7000000476837158 -25.0000000000000000 -98.0000000000000000 -2.7999999523162842 -1.3099999427795410 -0.5299999713897705 -2.7000000476837158 -13.0000000000000000 -0.5699999928474426 -1.9600000381469727 -660.0000000000000000 -13.5799999237060547 -1.6599999666213989 -2.3599998950958252 -19.1000003814697266 -106.0000000000000000 -2.8599998950958252 -3.1900000572204590 -0.2199999988079071 -1.9500000476837158 -6.9000000953674316 -1.0900000333786011 -2.8800001144409180 -1515.0000000000000000 -12.3299999237060547 -1.1000000238418579 -2.2799999713897705 -16.0000000000000000 -101.0000000000000000 -2.0499999523162842 -1.0900000333786011 -0.6299999952316284 -0.4099999964237213 -3.2699999809265137 -1.2500000000000000 -1.6699999570846558 -680.0000000000000000 -11.5600004196166992 -2.0499999523162842 -3.2300000190734863 -28.5000000000000000 -119.0000000000000000 -3.1800000667572021 -5.0799999237060547 -0.4699999988079071 -1.8700000047683716 -6.0000000000000000 -0.9300000071525574 -3.6900000572204590 -465.0000000000000000 -12.3699998855590820 -1.0700000524520874 -2.0999999046325684 -18.5000000000000000 -88.0000000000000000 -3.5199999809265137 -3.7500000000000000 -0.2399999946355820 -1.9500000476837158 -4.5000000000000000 -1.0399999618530273 -2.7699999809265137 -660.0000000000000000 -11.6400003433227539 -2.0599999427795410 -2.4600000381469727 -21.6000003814697266 -84.0000000000000000 -1.9500000476837158 -1.6900000572204590 -0.4799999892711639 -1.3500000238418579 -2.7999999523162842 -1.0000000000000000 -2.7500000000000000 -680.0000000000000000 -12.1599998474121094 -1.6100000143051147 -2.3099999427795410 -22.7999992370605469 -90.0000000000000000 -1.7799999713897705 -1.6900000572204590 -0.4300000071525574 -1.5599999427795410 -2.4500000476837158 -1.3300000429153442 -2.2599999904632568 -495.0000000000000000 -13.6199998855590820 -4.9499998092651367 -2.3499999046325684 -20.0000000000000000 -92.0000000000000000 -2.0000000000000000 -0.8000000119209290 -0.4699999988079071 -1.0199999809265137 -4.4000000953674316 -0.9100000262260437 -2.0499999523162842 -550.0000000000000000 -11.4499998092651367 -2.4000000953674316 -2.4200000762939453 -20.0000000000000000 -96.0000000000000000 -2.9000000953674316 -2.7899999618530273 -0.3199999928474426 -1.8300000429153442 -3.2500000000000000 -0.8000000119209290 -3.3900001049041748 -625.0000000000000000 -13.2799997329711914 -1.6399999856948853 -2.8399999141693115 -15.5000000000000000 -110.0000000000000000 -2.5999999046325684 -2.6800000667572021 -0.3400000035762787 -1.3600000143051147 -4.5999999046325684 -1.0900000333786011 -2.7799999713897705 -880.0000000000000000 -12.8599996566772461 -1.3500000238418579 -2.3199999332427979 -18.0000000000000000 -122.0000000000000000 -1.5099999904632568 -1.2500000000000000 -0.2099999934434891 -0.9399999976158142 -4.0999999046325684 -0.7599999904632568 -1.2899999618530273 -630.0000000000000000 -12.6400003433227539 -1.3600000143051147 -2.0199999809265137 -16.7999992370605469 -100.0000000000000000 -2.0199999809265137 -1.4099999666213989 -0.5299999713897705 -0.6200000047683716 -5.7500000000000000 -0.9800000190734863 -1.5900000333786011 -450.0000000000000000 -12.5799999237060547 -1.2899999618530273 -2.0999999046325684 -20.0000000000000000 -103.0000000000000000 -1.4800000190734863 -0.5799999833106995 -0.5299999713897705 -1.3999999761581421 -7.5999999046325684 -0.5799999833106995 -1.5499999523162842 -640.0000000000000000 -13.0299997329711914 -0.8999999761581421 -1.7100000381469727 -16.0000000000000000 -86.0000000000000000 -1.9500000476837158 -2.0299999713897705 -0.2399999946355820 -1.4600000381469727 -4.5999999046325684 -1.1900000572204590 -2.4800000190734863 -392.0000000000000000 -13.2399997711181641 -3.9800000190734863 -2.2899999618530273 -17.5000000000000000 -103.0000000000000000 -2.6400001049041748 -2.6300001144409180 -0.3199999928474426 -1.6599999666213989 -4.3600001335144043 -0.8199999928474426 -3.0000000000000000 -680.0000000000000000 -12.4200000762939453 -1.6100000143051147 -2.1900000572204590 -22.5000000000000000 -108.0000000000000000 -2.0000000000000000 -2.0899999141693115 -0.3400000035762787 -1.6100000143051147 -2.0599999427795410 -1.0599999427795410 -2.9600000381469727 -345.0000000000000000 -13.3999996185302734 -4.5999999046325684 -2.8599998950958252 -25.0000000000000000 -112.0000000000000000 -1.9800000190734863 -0.9599999785423279 -0.2700000107288361 -1.1100000143051147 -8.5000000000000000 -0.6700000166893005 -1.9199999570846558 -630.0000000000000000 -14.2299995422363281 -1.7100000381469727 -2.4300000667572021 -15.6000003814697266 -127.0000000000000000 -2.7999999523162842 -3.0599999427795410 -0.2800000011920929 -2.2899999618530273 -5.6399998664855957 -1.0399999618530273 -3.9200000762939453 -1065.0000000000000000 -13.7600002288818359 -1.5299999713897705 -2.7000000476837158 -19.5000000000000000 -132.0000000000000000 -2.9500000476837158 -2.7400000095367432 -0.5000000000000000 -1.3500000238418579 -5.4000000953674316 -1.2500000000000000 -3.0000000000000000 -1235.0000000000000000 -11.6099996566772461 -1.3500000238418579 -2.7000000476837158 -20.0000000000000000 -94.0000000000000000 -2.7400000095367432 -2.9200000762939453 -0.2899999916553497 -2.4900000095367432 -2.6500000953674316 -0.9599999785423279 -3.2599999904632568 -680.0000000000000000 -13.7700004577636719 -1.8999999761581421 -2.6800000667572021 -17.1000003814697266 -115.0000000000000000 -3.0000000000000000 -2.7899999618530273 -0.3899999856948853 -1.6799999475479126 -6.3000001907348633 -1.1299999952316284 -2.9300000667572021 -1375.0000000000000000 -11.7899999618530273 -2.1300001144409180 -2.7799999713897705 -28.5000000000000000 -92.0000000000000000 -2.1300001144409180 -2.2400000095367432 -0.5799999833106995 -1.7599999904632568 -3.0000000000000000 -0.9700000286102295 -2.4400000572204590 -466.0000000000000000 -12.2899999618530273 -2.8299999237060547 -2.2200000286102295 -18.0000000000000000 -88.0000000000000000 -2.4500000476837158 -2.2500000000000000 -0.2500000000000000 -1.9900000095367432 -2.1500000953674316 -1.1499999761581421 -3.2999999523162842 -290.0000000000000000 -12.4300003051757812 -1.5299999713897705 -2.2899999618530273 -21.5000000000000000 -86.0000000000000000 -2.7400000095367432 -3.1500000953674316 -0.3899999856948853 -1.7699999809265137 -3.9400000572204590 -0.6899999976158142 -2.8399999141693115 -352.0000000000000000 -12.7700004577636719 -2.3900001049041748 -2.2799999713897705 -19.5000000000000000 -86.0000000000000000 -1.3899999856948853 -0.5099999904632568 -0.4799999892711639 -0.6399999856948853 -9.8999986648559570 -0.5699999928474426 -1.6299999952316284 -470.0000000000000000 -11.7600002288818359 -2.6800000667572021 -2.9200000762939453 -20.0000000000000000 -103.0000000000000000 -1.7500000000000000 -2.0299999713897705 -0.6000000238418579 -1.0499999523162842 -3.7999999523162842 -1.2300000190734863 -2.5000000000000000 -607.0000000000000000 -13.1099996566772461 -1.0099999904632568 -1.7000000476837158 -15.0000000000000000 -78.0000000000000000 -2.9800000190734863 -3.1800000667572021 -0.2599999904632568 -2.2799999713897705 -5.3000001907348633 -1.1200000047683716 -3.1800000667572021 -502.0000000000000000 -12.6899995803833008 -1.5299999713897705 -2.2599999904632568 -20.7000007629394531 -80.0000000000000000 -1.3799999952316284 -1.4600000381469727 -0.5799999833106995 -1.6200000047683716 -3.0499999523162842 -0.9599999785423279 -2.0599999427795410 -495.0000000000000000 -12.2899999618530273 -1.4099999666213989 -1.9800000190734863 -16.0000000000000000 -85.0000000000000000 -2.5499999523162842 -2.5000000000000000 -0.2899999916553497 -1.7699999809265137 -2.9000000953674316 -1.2300000190734863 -2.7400000095367432 -428.0000000000000000 -13.7100000381469727 -5.6500000953674316 -2.4500000476837158 -20.5000000000000000 -95.0000000000000000 -1.6799999475479126 -0.6100000143051147 -0.5199999809265137 -1.0599999427795410 -7.6999998092651367 -0.6399999856948853 -1.7400000095367432 -740.0000000000000000 -12.8199996948242188 -3.3699998855590820 -2.2999999523162842 -19.5000000000000000 -88.0000000000000000 -1.4800000190734863 -0.6600000262260437 -0.4000000059604645 -0.9700000286102295 -10.2600002288818359 -0.7200000286102295 -1.7500000000000000 -685.0000000000000000 -12.3699998855590820 -1.6299999952316284 -2.2999999523162842 -24.5000000000000000 -88.0000000000000000 -2.2200000286102295 -2.4500000476837158 -0.4000000059604645 -1.8999999761581421 -2.1199998855590820 -0.8899999856948853 -2.7799999713897705 -342.0000000000000000 -14.0600004196166992 -1.6299999952316284 -2.2799999713897705 -16.0000000000000000 -126.0000000000000000 -3.0000000000000000 -3.1700000762939453 -0.2399999946355820 -2.0999999046325684 -5.6500000953674316 -1.0900000333786011 -3.7100000381469727 -780.0000000000000000 -13.5200004577636719 -3.1700000762939453 -2.7200000286102295 -23.5000000000000000 -97.0000000000000000 -1.5499999523162842 -0.5199999809265137 -0.5000000000000000 -0.5500000119209290 -4.3499999046325684 -0.8899999856948853 -2.0599999427795410 -520.0000000000000000 -14.2200002670288086 -1.7000000476837158 -2.2999999523162842 -16.2999992370605469 -118.0000000000000000 -3.2000000476837158 -3.0000000000000000 -0.2599999904632568 -2.0299999713897705 -6.3800001144409180 -0.9399999976158142 -3.3099999427795410 -970.0000000000000000 -12.6999998092651367 -3.5499999523162842 -2.3599998950958252 -21.5000000000000000 -106.0000000000000000 -1.7000000476837158 -1.2000000476837158 -0.1700000017881393 -0.8399999737739563 -5.0000000000000000 -0.7799999713897705 -1.2899999618530273 -600.0000000000000000 -12.1700000762939453 -1.4500000476837158 -2.5299999713897705 -19.0000000000000000 -104.0000000000000000 -1.8899999856948853 -1.7500000000000000 -0.4499999880790710 -1.0299999713897705 -2.9500000476837158 -1.4500000476837158 -2.2300000190734863 -355.0000000000000000 -13.8299999237060547 -1.6499999761581421 -2.5999999046325684 -17.2000007629394531 -94.0000000000000000 -2.4500000476837158 -2.9900000095367432 -0.2199999988079071 -2.2899999618530273 -5.5999999046325684 -1.2400000095367432 -3.3699998855590820 -1265.0000000000000000 -13.1700000762939453 -2.5899999141693115 -2.3699998855590820 -20.0000000000000000 -120.0000000000000000 -1.6499999761581421 -0.6800000071525574 -0.5299999713897705 -1.4600000381469727 -9.3000001907348633 -0.6000000238418579 -1.6200000047683716 -840.0000000000000000 -13.4899997711181641 -1.6599999666213989 -2.2400000095367432 -24.0000000000000000 -87.0000000000000000 -1.8799999952316284 -1.8400000333786011 -0.2700000107288361 -1.0299999713897705 -3.7400000095367432 -0.9800000190734863 -2.7799999713897705 -472.0000000000000000 -13.0500001907348633 -3.8599998950958252 -2.3199999332427979 -22.5000000000000000 -85.0000000000000000 -1.6499999761581421 -1.5900000333786011 -0.6100000143051147 -1.6200000047683716 -4.8000001907348633 -0.8399999737739563 -2.0099999904632568 -515.0000000000000000 -13.5799999237060547 -2.5799999237060547 -2.6900000572204590 -24.5000000000000000 -105.0000000000000000 -1.5499999523162842 -0.8399999737739563 -0.3899999856948853 -1.5399999618530273 -8.6599998474121094 -0.7400000095367432 -1.7999999523162842 -750.0000000000000000 -11.8400001525878906 -0.8899999856948853 -2.5799999237060547 -18.0000000000000000 -94.0000000000000000 -2.2000000476837158 -2.2100000381469727 -0.2199999988079071 -2.3499999046325684 -3.0499999523162842 -0.7900000214576721 -3.0799999237060547 -520.0000000000000000 -12.4200000762939453 -4.4299998283386230 -2.7300000190734863 -26.5000000000000000 -102.0000000000000000 -2.2000000476837158 -2.1300001144409180 -0.4300000071525574 -1.7100000381469727 -2.0799999237060547 -0.9200000166893005 -3.1199998855590820 -365.0000000000000000 -12.0000000000000000 -1.5099999904632568 -2.4200000762939453 -22.0000000000000000 -86.0000000000000000 -1.4500000476837158 -1.2500000000000000 -0.5000000000000000 -1.6299999952316284 -3.5999999046325684 -1.0499999523162842 -2.6500000953674316 -450.0000000000000000 -12.7200002670288086 -1.8099999427795410 -2.2000000476837158 -18.7999992370605469 -86.0000000000000000 -2.2000000476837158 -2.5299999713897705 -0.2599999904632568 -1.7699999809265137 -3.9000000953674316 -1.1599999666213989 -3.1400001049041748 -714.0000000000000000 -13.1099996566772461 -1.8999999761581421 -2.7500000000000000 -25.5000000000000000 -116.0000000000000000 -2.2000000476837158 -1.2799999713897705 -0.2599999904632568 -1.5599999427795410 -7.0999999046325684 -0.6100000143051147 -1.3300000429153442 -425.0000000000000000 -12.0000000000000000 -0.9200000166893005 -2.0000000000000000 -19.0000000000000000 -86.0000000000000000 -2.4200000762939453 -2.2599999904632568 -0.3000000119209290 -1.4299999475479126 -2.5000000000000000 -1.3799999952316284 -3.1199998855590820 -278.0000000000000000 -13.3999996185302734 -3.9100000858306885 -2.4800000190734863 -23.0000000000000000 -102.0000000000000000 -1.7999999523162842 -0.7500000000000000 -0.4300000071525574 -1.4099999666213989 -7.3000001907348633 -0.6999999880790710 -1.5599999427795410 -750.0000000000000000 -13.8400001525878906 -4.1199998855590820 -2.3800001144409180 -19.5000000000000000 -89.0000000000000000 -1.7999999523162842 -0.8299999833106995 -0.4799999892711639 -1.5599999427795410 -9.0100002288818359 -0.5699999928474426 -1.6399999856948853 -480.0000000000000000 -14.3800001144409180 -3.5899999141693115 -2.2799999713897705 -16.0000000000000000 -102.0000000000000000 -3.2500000000000000 -3.1700000762939453 -0.2700000107288361 -2.1900000572204590 -4.9000000953674316 -1.0399999618530273 -3.4400000572204590 -1065.0000000000000000 -13.7299995422363281 -1.5000000000000000 -2.7000000476837158 -22.5000000000000000 -101.0000000000000000 -3.0000000000000000 -3.2500000000000000 -0.2899999916553497 -2.3800001144409180 -5.6999998092651367 -1.1900000572204590 -2.7100000381469727 -1285.0000000000000000 -13.2899999618530273 -1.9700000286102295 -2.6800000667572021 -16.7999992370605469 -102.0000000000000000 -3.0000000000000000 -3.2300000190734863 -0.3100000023841858 -1.6599999666213989 -6.0000000000000000 -1.0700000524520874 -2.8399999141693115 -1270.0000000000000000 -13.8199996948242188 -1.7500000000000000 -2.4200000762939453 -14.0000000000000000 -111.0000000000000000 -3.8800001144409180 -3.7400000095367432 -0.3199999928474426 -1.8700000047683716 -7.0500001907348633 -1.0099999904632568 -3.2599999904632568 -1190.0000000000000000 -%% -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.0000000000000000 \ No newline at end of file diff --git a/examples/machsuite/backprop/run_test.py b/examples/machsuite/backprop/run_test.py index a8897d4676..ca15ce70d1 100644 --- a/examples/machsuite/backprop/run_test.py +++ b/examples/machsuite/backprop/run_test.py @@ -5,47 +5,24 @@ _dir = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, _dir) -from backprop import backprop - -def parse_data(file_name): - data_arrays = [] - current_array = [] - - with open(file_name, 'r') as f: - for line in f: - if line.strip() == '%%': - if current_array: - data_arrays.append(current_array) - current_array = [] - else: - num = float(line.strip()) - current_array.append(num) - - data_arrays.append(current_array) - - return data_arrays +from backprop import backprop, INPUT_DIMENSION, POSSIBLE_OUTPUTS, TRAINING_SETS, NODES_PER_LAYER if __name__ == "__main__": - input_data = parse_data(os.path.join(_dir, "input.data")) - check_data = parse_data(os.path.join(_dir, "check.data")) - - np_input = [np.asarray(lst) for lst in input_data] - np_check = [np.asarray(lst) for lst in check_data] - - [weights1, weights2, weights3, biases1, biases2, biases3, training_data, training_targets] = np_input - [weights1_check, weights2_check, weights3_check, biases1_check, biases2_check, biases3_check] = np_check + np.random.seed(42) + + # Generate random weights, biases, and training data + weights1 = np.random.randn(INPUT_DIMENSION * NODES_PER_LAYER).astype(np.float32) + weights2 = np.random.randn(NODES_PER_LAYER * NODES_PER_LAYER).astype(np.float32) + weights3 = np.random.randn(NODES_PER_LAYER * POSSIBLE_OUTPUTS).astype(np.float32) + biases1 = np.random.randn(NODES_PER_LAYER).astype(np.float32) + biases2 = np.random.randn(NODES_PER_LAYER).astype(np.float32) + biases3 = np.random.randn(POSSIBLE_OUTPUTS).astype(np.float32) + training_data = np.random.randn(TRAINING_SETS * INPUT_DIMENSION).astype(np.float32) + training_targets = np.random.randn(TRAINING_SETS * POSSIBLE_OUTPUTS).astype(np.float32) s = allo.customize(backprop) mod = s.build(target="llvm") + # Run-only test: MachSuite's check.data is known to not match mod(weights1, weights2, weights3, biases1, biases2, biases3, training_data, training_targets) - - # TODO: Machsuite's benchmark for backprop does not match check.data either - # Allo's backprop matches output for Machsuite's backprop - - # np.testing.assert_allclose(weights1, weights1_check, rtol=1e-3, atol=1e-3) - # np.testing.assert_allclose(weights2, weights2_check, rtol=1e-3, atol=1e-3) - # np.testing.assert_allclose(weights3, weights3_check, rtol=1e-3, atol=1e-3) - # np.testing.assert_allclose(biases1, biases1_check, rtol=1e-3, atol=1e-3) - # np.testing.assert_allclose(biases2, biases2_check, rtol=1e-3, atol=1e-3) - # np.testing.assert_allclose(biases3, biases3_check, rtol=1e-3, atol=1e-3) \ No newline at end of file + print("PASS!") diff --git a/examples/machsuite/bfs/bfs_bulk_allo.py b/examples/machsuite/bfs/bfs_bulk_allo.py index 696f1e0b81..b71218b781 100644 --- a/examples/machsuite/bfs/bfs_bulk_allo.py +++ b/examples/machsuite/bfs/bfs_bulk_allo.py @@ -6,7 +6,6 @@ _dir = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, _dir) -from support import read_data_from_file, write_data_to_file, write_data_to_file_2 from generate import generate_random_graph from bfs_bulk_python import bfs_bulk_test @@ -43,29 +42,30 @@ def bfs_bulk(nodes: int32[N_NODES_2], edges: int32[N_EDGES], starting_node: int3 return level, level_counts +import random +random.seed(42) s = allo.customize(bfs_bulk) mod = s.build(target="llvm") -#Prepare Input Data -# generated_data = generate_random_graph() -# write_data_to_file(generated_data) -input_data = read_data_from_file(os.path.join(_dir, "input.data")) +# Generate graph programmatically +generated_data = generate_random_graph() -np_A = np.array(input_data['nodes'],np.int32) -np_B = np.array(input_data['edges'],np.int32) -np_C = input_data['starting_node'][0] +# Convert to numpy arrays matching the data file format +nodes_list = [] +for node in generated_data['nodes']: + nodes_list.append(node.edge_begin) + nodes_list.append(node.edge_end) +edges_list = [edge.dst for edge in generated_data['edges']] -(D, F)= mod(np_A, np_B, np_C) +np_A = np.array(nodes_list, np.int32) +np_B = np.array(edges_list, np.int32) +np_C = generated_data['starting_node'] -write_data_to_file_2(F, os.path.join(_dir, "check.data")) +(D, F) = mod(np_A, np_B, np_C) (golden_D, golden_F) = bfs_bulk_test(np_A, np_B, np_C) - -print(F) -print(golden_F) - np.testing.assert_allclose(D, golden_D, rtol=1e-5, atol=1e-5) np.testing.assert_allclose(F, golden_F, rtol=1e-5, atol=1e-5) - +print("PASS!") diff --git a/examples/machsuite/bfs/bfs_queue_allo.py b/examples/machsuite/bfs/bfs_queue_allo.py index 7478a09924..709787c80d 100644 --- a/examples/machsuite/bfs/bfs_queue_allo.py +++ b/examples/machsuite/bfs/bfs_queue_allo.py @@ -6,7 +6,6 @@ _dir = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, _dir) -from support import read_data_from_file, write_data_to_file, write_data_to_file_2 from generate import generate_random_graph from bfs_queue_python import bfs_queue_test @@ -17,7 +16,6 @@ MAX_LEVEL:int32 = 999999 - def bfs_queue(nodes: int32[N_NODES_2], edges: int32[N_EDGES], starting_node: int32) -> (int32[N_NODES], int32[N_LEVELS]): level: int32[N_NODES] = MAX_LEVEL level_counts: int32[N_LEVELS] = 0 @@ -49,28 +47,29 @@ def bfs_queue(nodes: int32[N_NODES_2], edges: int32[N_EDGES], starting_node: int return level, level_counts +import random +random.seed(42) + s = allo.customize(bfs_queue) mod = s.build(target="llvm") -#Prepare Input Data -# generated_data = generate_random_graph() -# write_data_to_file(generated_data) -input_data = read_data_from_file(os.path.join(_dir, "input.data")) +# Generate graph programmatically (same seed as bulk) +generated_data = generate_random_graph() -np_A = np.array(input_data['nodes'],np.int32) -np_B = np.array(input_data['edges'],np.int32) -np_C = input_data['starting_node'][0] +nodes_list = [] +for node in generated_data['nodes']: + nodes_list.append(node.edge_begin) + nodes_list.append(node.edge_end) +edges_list = [edge.dst for edge in generated_data['edges']] -(D, F)= mod(np_A, np_B, np_C) +np_A = np.array(nodes_list, np.int32) +np_B = np.array(edges_list, np.int32) +np_C = generated_data['starting_node'] -#Write output to a file -write_data_to_file_2(F, os.path.join(_dir, "check2.data")) +(D, F) = mod(np_A, np_B, np_C) (golden_D, golden_F) = bfs_queue_test(np_A, np_B, np_C) - -print(F) -print(golden_F) - np.testing.assert_allclose(D, golden_D, rtol=1e-5, atol=1e-5) np.testing.assert_allclose(F, golden_F, rtol=1e-5, atol=1e-5) +print("PASS!") diff --git a/examples/machsuite/bfs/check.data b/examples/machsuite/bfs/check.data deleted file mode 100644 index b8f932203e..0000000000 --- a/examples/machsuite/bfs/check.data +++ /dev/null @@ -1,11 +0,0 @@ -%% -1 -2 -39 -177 -12 -0 -0 -0 -0 -0 diff --git a/examples/machsuite/bfs/check2.data b/examples/machsuite/bfs/check2.data deleted file mode 100644 index b8f932203e..0000000000 --- a/examples/machsuite/bfs/check2.data +++ /dev/null @@ -1,11 +0,0 @@ -%% -1 -2 -39 -177 -12 -0 -0 -0 -0 -0 diff --git a/examples/machsuite/bfs/input.data b/examples/machsuite/bfs/input.data deleted file mode 100644 index 97890ba214..0000000000 --- a/examples/machsuite/bfs/input.data +++ /dev/null @@ -1,4612 +0,0 @@ -%% -87 -%% -0 -14 -14 -63 -63 -117 -117 -164 -164 -164 -164 -166 -166 -169 -169 -169 -169 -176 -176 -176 -176 -201 -201 -220 -220 -228 -228 -278 -278 -334 -334 -341 -341 -345 -345 -388 -388 -414 -414 -460 -460 -464 -464 -516 -516 -517 -517 -521 -521 -536 -536 -563 -563 -567 -567 -573 -573 -580 -580 -580 -580 -598 -598 -598 -598 -605 -605 -704 -704 -709 -709 -736 -736 -779 -779 -781 -781 -789 -789 -798 -798 -820 -820 -823 -823 -845 -845 -852 -852 -858 -858 -871 -871 -873 -873 -876 -876 -895 -895 -1044 -1044 -1052 -1052 -1055 -1055 -1068 -1068 -1069 -1069 -1072 -1072 -1123 -1123 -1124 -1124 -1130 -1130 -1151 -1151 -1154 -1154 -1159 -1159 -1159 -1159 -1163 -1163 -1213 -1213 -1229 -1229 -1238 -1238 -1244 -1244 -1245 -1245 -1248 -1248 -1289 -1289 -1289 -1289 -1317 -1317 -1320 -1320 -1335 -1335 -1336 -1336 -1359 -1359 -1383 -1383 -1383 -1383 -1433 -1433 -1440 -1440 -1447 -1447 -1453 -1453 -1480 -1480 -1483 -1483 -1578 -1578 -1586 -1586 -1611 -1611 -1613 -1613 -1711 -1711 -1762 -1762 -1782 -1782 -1782 -1782 -1802 -1802 -1805 -1805 -1829 -1829 -1835 -1835 -1848 -1848 -1854 -1854 -1864 -1864 -1873 -1873 -1873 -1873 -1879 -1879 -1887 -1887 -1889 -1889 -1893 -1893 -1900 -1900 -1900 -1900 -1943 -1943 -1953 -1953 -1953 -1953 -1960 -1960 -1971 -1971 -1978 -1978 -1989 -1989 -2007 -2007 -2015 -2015 -2062 -2062 -2078 -2078 -2097 -2097 -2143 -2143 -2164 -2164 -2194 -2194 -2279 -2279 -2280 -2280 -2281 -2281 -2283 -2283 -2288 -2288 -2294 -2294 -2297 -2297 -2298 -2298 -2301 -2301 -2304 -2304 -2305 -2305 -2351 -2351 -2352 -2352 -2373 -2373 -2376 -2376 -2378 -2378 -2468 -2468 -2484 -2484 -2490 -2490 -2592 -2592 -2608 -2608 -2618 -2618 -2657 -2657 -2749 -2749 -2756 -2756 -2778 -2778 -2787 -2787 -2790 -2790 -2790 -2790 -2812 -2812 -2818 -2818 -2825 -2825 -2825 -2825 -2836 -2836 -2838 -2838 -2846 -2846 -2852 -2852 -2853 -2853 -2875 -2875 -2878 -2878 -2880 -2880 -2882 -2882 -2883 -2883 -2883 -2883 -2884 -2884 -2884 -2884 -2894 -2894 -2898 -2898 -2899 -2899 -2905 -2905 -2911 -2911 -2919 -2919 -2941 -2941 -2950 -2950 -2968 -2968 -2968 -2968 -3067 -3067 -3088 -3088 -3109 -3109 -3109 -3109 -3157 -3157 -3181 -3181 -3182 -3182 -3183 -3183 -3201 -3201 -3222 -3222 -3240 -3240 -3248 -3248 -3252 -3252 -3270 -3270 -3278 -3278 -3296 -3296 -3339 -3339 -3339 -3339 -3339 -3339 -3339 -3339 -3340 -3340 -3345 -3345 -3369 -3369 -3372 -3372 -3376 -3376 -3377 -3377 -3378 -3378 -3382 -3382 -3384 -3384 -3401 -3401 -3426 -3426 -3429 -3429 -3448 -3448 -3457 -3457 -3458 -3458 -3464 -3464 -3475 -3475 -3491 -3491 -3515 -3515 -3524 -3524 -3575 -3575 -3627 -3627 -3672 -3672 -3676 -3676 -3694 -3694 -3701 -3701 -3744 -3744 -3753 -3753 -3772 -3772 -3781 -3781 -3789 -3789 -3791 -3791 -3845 -3845 -3863 -3863 -3871 -3871 -3871 -3871 -3872 -3872 -3872 -3872 -3882 -3882 -3921 -3921 -3923 -3923 -3925 -3925 -3926 -3926 -3926 -3926 -3933 -3933 -3946 -3946 -3959 -3959 -3960 -3960 -3993 -3993 -3996 -3996 -3996 -3996 -4003 -4003 -4013 -4013 -4017 -4017 -4065 -4065 -4071 -4071 -4077 -4077 -4096 -%% -14 -19 -49 -75 -84 -88 -101 -122 -133 -138 -178 -187 -230 -255 -2 -3 -11 -13 -17 -18 -19 -21 -27 -33 -35 -36 -40 -45 -49 -55 -58 -69 -73 -78 -84 -88 -92 -99 -107 -112 -117 -119 -121 -122 -135 -138 -139 -141 -145 -169 -173 -174 -178 -187 -189 -193 -194 -210 -211 -218 -219 -230 -231 -1 -18 -33 -36 -45 -48 -49 -55 -63 -69 -73 -75 -76 -78 -82 -86 -88 -89 -94 -107 -115 -116 -117 -119 -120 -122 -126 -131 -133 -138 -141 -142 -144 -145 -178 -182 -187 -191 -192 -194 -200 -213 -216 -218 -220 -224 -226 -230 -231 -236 -237 -242 -244 -252 -1 -14 -17 -21 -33 -35 -36 -38 -49 -55 -65 -66 -69 -71 -78 -79 -84 -88 -89 -96 -103 -114 -119 -120 -121 -122 -126 -128 -130 -133 -138 -141 -144 -145 -148 -178 -186 -219 -220 -224 -227 -230 -231 -237 -250 -252 -254 -182 -216 -49 -145 -178 -36 -55 -88 -141 -219 -222 -226 -13 -14 -17 -19 -24 -33 -35 -40 -49 -58 -63 -78 -84 -88 -107 -116 -118 -119 -122 -133 -138 -145 -160 -178 -219 -1 -18 -21 -33 -49 -84 -86 -88 -94 -114 -116 -117 -119 -120 -122 -151 -160 -193 -214 -24 -33 -69 -76 -84 -118 -141 -218 -1 -10 -14 -17 -19 -21 -24 -33 -35 -36 -42 -48 -49 -52 -55 -63 -71 -78 -82 -84 -88 -89 -94 -104 -107 -111 -114 -116 -122 -133 -138 -142 -144 -145 -151 -178 -180 -182 -183 -187 -193 -203 -214 -219 -222 -224 -236 -243 -246 -252 -0 -3 -10 -13 -17 -21 -24 -33 -35 -36 -40 -48 -49 -50 -55 -58 -63 -64 -69 -73 -75 -78 -84 -88 -107 -108 -114 -115 -117 -118 -122 -133 -138 -141 -142 -144 -145 -147 -149 -175 -178 -187 -188 -191 -194 -207 -208 -214 -215 -218 -220 -226 -227 -231 -246 -255 -21 -49 -96 -122 -141 -230 -246 -189 -224 -230 -246 -1 -3 -10 -13 -14 -25 -27 -30 -33 -36 -39 -49 -55 -63 -75 -78 -83 -84 -86 -88 -89 -96 -107 -117 -122 -135 -138 -141 -144 -145 -174 -178 -189 -193 -194 -200 -218 -219 -221 -228 -230 -252 -254 -1 -2 -11 -21 -24 -25 -33 -49 -69 -82 -84 -88 -89 -98 -116 -117 -119 -122 -133 -138 -141 -144 -158 -220 -230 -244 -0 -1 -10 -13 -21 -33 -34 -36 -40 -48 -49 -55 -69 -76 -78 -80 -84 -86 -88 -95 -108 -112 -118 -121 -122 -133 -138 -141 -144 -145 -147 -158 -172 -178 -180 -182 -193 -194 -200 -218 -220 -224 -228 -236 -237 -252 -49 -84 -94 -218 -1 -3 -11 -13 -14 -15 -18 -19 -26 -30 -33 -34 -43 -49 -52 -55 -58 -64 -69 -78 -84 -89 -97 -107 -110 -116 -119 -121 -122 -135 -139 -141 -142 -144 -145 -148 -152 -178 -180 -182 -186 -190 -218 -219 -220 -224 -230 -237 -246 -249 -252 -253 -145 -49 -78 -113 -219 -10 -12 -13 -14 -18 -49 -88 -107 -113 -145 -162 -178 -179 -188 -255 -17 -18 -27 -33 -41 -49 -69 -75 -83 -84 -88 -99 -102 -122 -133 -138 -141 -161 -173 -174 -178 -182 -183 -218 -224 -246 -252 -21 -49 -88 -219 -1 -17 -25 -49 -84 -216 -78 -88 -89 -107 -145 -182 -230 -17 -21 -33 -36 -49 -55 -63 -84 -90 -94 -113 -120 -122 -141 -155 -158 -224 -230 -49 -63 -98 -133 -141 -188 -220 -1 -2 -3 -10 -11 -12 -13 -14 -17 -18 -19 -21 -25 -30 -35 -36 -42 -45 -49 -52 -54 -55 -60 -63 -64 -68 -69 -71 -75 -76 -78 -79 -82 -84 -86 -88 -89 -92 -93 -94 -96 -98 -99 -102 -107 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -133 -135 -138 -139 -140 -141 -142 -144 -145 -147 -152 -153 -160 -174 -178 -179 -180 -182 -183 -187 -188 -194 -200 -207 -210 -214 -216 -217 -218 -219 -220 -223 -224 -227 -230 -231 -237 -242 -244 -246 -252 -254 -19 -21 -63 -88 -207 -1 -3 -10 -13 -14 -33 -42 -49 -75 -76 -78 -80 -84 -89 -112 -122 -138 -144 -145 -158 -178 -191 -199 -200 -213 -218 -224 -1 -2 -3 -8 -13 -14 -17 -19 -30 -33 -48 -49 -55 -63 -75 -76 -84 -85 -86 -88 -89 -110 -116 -118 -119 -122 -133 -138 -141 -145 -146 -171 -175 -178 -182 -194 -206 -208 -218 -224 -230 -246 -252 -49 -138 -3 -49 -120 -138 -141 -178 -210 -218 -17 -49 -76 -82 -84 -141 -145 -178 -224 -1 -10 -14 -19 -42 -49 -63 -71 -84 -88 -116 -119 -122 -127 -141 -155 -178 -183 -188 -219 -224 -246 -25 -84 -141 -13 -33 -35 -40 -49 -69 -75 -84 -90 -107 -115 -120 -122 -141 -145 -146 -147 -178 -224 -237 -251 -252 -21 -49 -89 -122 -178 -183 -217 -71 -84 -122 -138 -144 -188 -1 -2 -33 -49 -92 -122 -138 -144 -145 -178 -194 -200 -230 -49 -178 -49 -69 -224 -2 -13 -14 -19 -36 -49 -78 -81 -88 -89 -122 -127 -138 -145 -180 -219 -230 -246 -252 -0 -1 -2 -3 -6 -10 -11 -13 -14 -15 -17 -18 -19 -20 -21 -23 -24 -25 -26 -27 -30 -32 -33 -35 -36 -37 -38 -39 -40 -42 -43 -45 -46 -47 -48 -52 -55 -56 -57 -58 -63 -64 -65 -69 -71 -73 -78 -79 -80 -82 -84 -85 -86 -88 -89 -90 -92 -93 -94 -95 -101 -105 -107 -108 -111 -113 -114 -116 -117 -118 -119 -120 -121 -122 -128 -130 -133 -135 -136 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -151 -153 -155 -157 -160 -168 -172 -173 -174 -175 -178 -179 -180 -182 -183 -186 -187 -188 -190 -191 -193 -194 -199 -200 -201 -207 -208 -209 -210 -211 -215 -216 -218 -219 -220 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -237 -243 -244 -246 -247 -249 -250 -251 -252 -253 -254 -255 -14 -63 -88 -107 -113 -133 -145 -182 -73 -135 -138 -13 -21 -33 -49 -89 -110 -117 -141 -145 -160 -188 -220 -224 -144 -33 -88 -220 -1 -2 -3 -8 -13 -14 -17 -19 -21 -30 -33 -36 -49 -63 -71 -84 -88 -89 -98 -114 -116 -117 -119 -122 -133 -138 -139 -141 -142 -143 -151 -176 -178 -179 -182 -186 -187 -188 -194 -207 -208 -214 -218 -219 -220 -230 -236 -247 -250 -252 -255 -49 -49 -88 -111 -135 -141 -178 -1 -10 -14 -21 -49 -71 -78 -84 -89 -97 -116 -117 -119 -141 -178 -179 -182 -191 -194 -208 -246 -119 -160 -182 -33 -64 -171 -174 -182 -190 -237 -242 -246 -2 -10 -13 -14 -17 -30 -32 -33 -34 -36 -40 -49 -50 -55 -69 -71 -75 -76 -78 -84 -88 -89 -94 -101 -114 -118 -121 -122 -141 -144 -145 -171 -172 -178 -179 -182 -186 -187 -194 -200 -205 -208 -216 -218 -220 -230 -243 -246 -252 -255 -14 -21 -33 -49 -60 -75 -78 -138 -145 -178 -179 -218 -219 -224 -249 -252 -3 -49 -71 -73 -144 -145 -178 -220 -236 -3 -120 -186 -194 -222 -246 -94 -33 -88 -252 -1 -2 -3 -12 -14 -18 -19 -21 -25 -33 -42 -47 -49 -63 -78 -84 -86 -88 -99 -107 -119 -120 -122 -135 -138 -139 -144 -145 -155 -174 -178 -182 -191 -193 -200 -208 -224 -226 -231 -246 -252 -3 -13 -33 -40 -44 -49 -55 -58 -63 -65 -73 -89 -90 -116 -122 -138 -141 -145 -151 -182 -194 -202 -207 -208 -219 -230 -231 -249 -145 -207 -219 -1 -2 -14 -49 -51 -65 -71 -78 -138 -145 -151 -178 -194 -217 -220 -147 -0 -2 -14 -17 -25 -33 -35 -36 -42 -63 -64 -76 -84 -94 -119 -141 -168 -180 -216 -218 -226 -231 -237 -2 -12 -19 -33 -35 -36 -39 -63 -75 -84 -86 -88 -96 -138 -139 -141 -148 -156 -178 -194 -211 -218 -251 -255 -1 -2 -3 -10 -13 -14 -17 -19 -21 -23 -28 -33 -35 -48 -49 -58 -63 -64 -69 -73 -82 -84 -85 -88 -89 -92 -94 -98 -107 -116 -119 -122 -133 -138 -139 -141 -144 -145 -169 -176 -178 -180 -187 -194 -200 -208 -224 -230 -251 -252 -3 -33 -49 -88 -143 -145 -236 -19 -35 -49 -84 -121 -182 -186 -48 -116 -118 -138 -145 -160 -2 -13 -18 -33 -39 -49 -78 -84 -88 -92 -113 -116 -118 -122 -133 -138 -141 -142 -145 -178 -187 -194 -219 -226 -227 -237 -252 -17 -25 -194 -0 -1 -3 -10 -11 -12 -13 -14 -17 -18 -19 -20 -21 -25 -27 -30 -33 -35 -36 -39 -40 -41 -42 -44 -49 -55 -58 -63 -69 -75 -76 -78 -80 -82 -86 -88 -89 -92 -94 -96 -97 -99 -103 -107 -114 -116 -117 -119 -120 -121 -122 -133 -138 -141 -142 -144 -145 -148 -160 -171 -173 -174 -176 -178 -179 -180 -182 -183 -186 -187 -188 -189 -191 -194 -199 -200 -207 -208 -210 -216 -218 -219 -220 -222 -223 -224 -225 -226 -230 -232 -237 -243 -244 -249 -252 -36 -49 -78 -107 -118 -138 -174 -218 -2 -11 -17 -19 -33 -36 -49 -69 -76 -84 -88 -98 -112 -116 -122 -136 -144 -145 -178 -194 -209 -218 -219 -236 -237 -92 -121 -0 -1 -2 -3 -8 -10 -11 -13 -14 -17 -18 -19 -24 -25 -26 -28 -33 -34 -36 -40 -48 -49 -50 -54 -55 -57 -63 -68 -69 -76 -78 -79 -82 -84 -86 -89 -90 -92 -94 -99 -104 -107 -108 -112 -115 -116 -119 -120 -121 -122 -126 -135 -138 -139 -140 -141 -143 -144 -145 -147 -151 -160 -171 -174 -175 -176 -178 -179 -182 -183 -186 -187 -190 -191 -192 -193 -194 -200 -207 -208 -210 -214 -215 -216 -217 -218 -219 -220 -223 -224 -225 -226 -230 -231 -232 -237 -246 -252 -2 -3 -13 -17 -18 -21 -28 -33 -35 -36 -43 -48 -49 -52 -55 -58 -63 -71 -78 -84 -88 -90 -92 -107 -121 -122 -133 -135 -138 -140 -141 -142 -144 -145 -146 -157 -182 -183 -191 -194 -200 -205 -208 -214 -215 -218 -220 -222 -230 -237 -252 -30 -42 -49 -71 -88 -89 -96 -107 -108 -121 -138 -141 -147 -178 -182 -191 -219 -225 -230 -239 -1 -33 -45 -49 -78 -82 -84 -87 -88 -89 -94 -98 -122 -128 -138 -141 -144 -218 -224 -226 -33 -49 -155 -2 -11 -13 -20 -30 -33 -49 -63 -67 -75 -78 -84 -88 -92 -102 -105 -107 -138 -141 -145 -191 -211 -220 -237 -19 -49 -127 -194 -215 -218 -3 -15 -17 -33 -76 -84 -90 -119 -133 -141 -145 -174 -178 -21 -58 -84 -175 -176 -237 -18 -32 -33 -55 -78 -86 -92 -145 -151 -182 -1 -25 -33 -69 -84 -88 -138 -141 -208 -0 -49 -63 -138 -141 -244 -25 -33 -94 -107 -121 -141 -219 -230 -3 -84 -13 -88 -144 -216 -49 -94 -133 -178 -183 -224 -230 -1 -2 -10 -13 -14 -17 -21 -24 -28 -33 -42 -49 -50 -69 -78 -84 -85 -88 -89 -90 -94 -102 -114 -116 -119 -120 -122 -133 -138 -141 -143 -145 -160 -170 -175 -176 -178 -179 -216 -218 -220 -230 -253 -14 -19 -49 -88 -90 -145 -166 -183 -200 -219 -21 -36 -52 -138 -141 -178 -192 -13 -33 -49 -57 -119 -122 -141 -178 -183 -194 -220 -1 -19 -33 -35 -86 -88 -141 -23 -24 -30 -33 -49 -50 -82 -138 -145 -178 -219 -3 -11 -13 -14 -33 -49 -55 -63 -84 -107 -122 -133 -138 -141 -145 -168 -237 -239 -2 -14 -33 -42 -88 -141 -219 -220 -2 -10 -11 -13 -18 -21 -33 -36 -40 -49 -55 -58 -71 -78 -81 -82 -84 -86 -88 -107 -122 -133 -135 -138 -141 -144 -145 -152 -153 -155 -157 -178 -182 -183 -184 -186 -189 -194 -200 -201 -210 -216 -219 -221 -224 -238 -252 -1 -2 -11 -14 -17 -18 -33 -49 -52 -55 -58 -84 -122 -138 -178 -179 -10 -12 -14 -19 -33 -36 -49 -63 -81 -82 -85 -119 -138 -178 -188 -219 -220 -222 -255 -1 -2 -3 -10 -11 -18 -21 -33 -36 -40 -49 -55 -58 -59 -69 -75 -78 -84 -88 -96 -107 -111 -118 -120 -121 -122 -133 -136 -138 -141 -163 -178 -179 -182 -183 -193 -194 -207 -217 -218 -220 -230 -231 -237 -243 -246 -2 -3 -11 -30 -33 -38 -42 -49 -66 -69 -84 -88 -107 -119 -121 -176 -178 -182 -237 -252 -253 -1 -3 -19 -21 -33 -49 -63 -80 -84 -87 -88 -89 -90 -102 -119 -120 -133 -138 -141 -145 -147 -178 -188 -220 -222 -226 -230 -240 -252 -255 -0 -1 -2 -3 -10 -11 -13 -14 -15 -17 -18 -19 -21 -25 -30 -33 -35 -36 -40 -42 -43 -44 -45 -48 -49 -55 -63 -69 -71 -78 -82 -84 -86 -88 -89 -92 -107 -111 -114 -116 -117 -119 -127 -133 -137 -138 -141 -142 -144 -145 -146 -147 -151 -152 -157 -160 -163 -168 -169 -176 -178 -179 -180 -182 -185 -186 -192 -193 -204 -206 -208 -212 -218 -219 -220 -222 -223 -224 -225 -227 -228 -230 -237 -252 -255 -138 -237 -147 -182 -2 -3 -88 -141 -220 -40 -48 -95 -122 -141 -178 -3 -49 -92 -250 -3 -49 -141 -2 -178 -219 -220 -0 -2 -3 -10 -13 -14 -18 -19 -25 -32 -33 -36 -49 -50 -55 -78 -82 -84 -89 -96 -105 -107 -114 -116 -119 -121 -122 -138 -141 -142 -144 -145 -160 -162 -168 -178 -182 -188 -208 -214 -218 -219 -224 -230 -243 -250 -244 -1 -17 -21 -33 -49 -51 -57 -69 -88 -89 -116 -141 -145 -155 -160 -178 -186 -194 -237 -252 -255 -49 -86 -119 -122 -246 -0 -1 -2 -3 -10 -13 -14 -17 -18 -19 -25 -33 -35 -36 -37 -38 -44 -45 -48 -49 -51 -55 -64 -69 -71 -73 -76 -78 -81 -82 -84 -85 -88 -89 -90 -92 -94 -99 -101 -107 -110 -113 -114 -116 -117 -118 -119 -121 -122 -123 -133 -141 -142 -144 -145 -147 -151 -157 -160 -173 -174 -176 -178 -179 -180 -182 -183 -187 -191 -192 -193 -194 -199 -205 -207 -208 -210 -216 -217 -218 -219 -220 -224 -226 -230 -236 -237 -246 -252 -255 -1 -21 -33 -49 -55 -69 -76 -78 -88 -141 -145 -146 -186 -188 -210 -226 -33 -49 -88 -89 -145 -194 -1 -2 -3 -8 -12 -14 -15 -17 -18 -19 -21 -25 -30 -32 -33 -36 -38 -39 -40 -41 -42 -49 -52 -55 -57 -58 -63 -71 -75 -76 -78 -82 -84 -88 -89 -90 -92 -94 -96 -99 -101 -102 -107 -110 -111 -112 -114 -115 -116 -119 -121 -122 -126 -127 -130 -133 -135 -138 -139 -142 -143 -144 -145 -147 -148 -152 -155 -168 -169 -174 -176 -178 -179 -180 -182 -183 -186 -188 -191 -194 -199 -200 -207 -210 -214 -215 -216 -218 -219 -220 -222 -224 -225 -228 -229 -230 -237 -244 -245 -246 -252 -255 -2 -13 -14 -21 -33 -49 -55 -82 -84 -89 -122 -133 -138 -141 -213 -219 -49 -55 -79 -88 -107 -141 -145 -178 -219 -252 -2 -3 -13 -14 -17 -18 -19 -21 -33 -35 -44 -45 -49 -53 -63 -65 -69 -78 -84 -86 -88 -89 -92 -104 -116 -122 -133 -138 -141 -145 -160 -174 -178 -193 -200 -218 -230 -236 -237 -1 -2 -3 -6 -10 -13 -14 -17 -19 -21 -22 -24 -28 -33 -35 -36 -39 -42 -45 -48 -49 -50 -52 -63 -64 -65 -69 -71 -72 -73 -78 -79 -81 -82 -84 -86 -88 -89 -94 -96 -98 -107 -108 -113 -114 -116 -121 -122 -133 -135 -138 -139 -140 -141 -143 -144 -146 -147 -151 -153 -155 -158 -168 -172 -174 -178 -182 -187 -189 -191 -192 -193 -194 -200 -210 -211 -215 -216 -218 -219 -220 -224 -228 -230 -232 -237 -243 -244 -246 -250 -252 -255 -36 -42 -49 -89 -122 -139 -145 -14 -19 -33 -42 -49 -74 -88 -90 -121 -122 -125 -138 -141 -145 -155 -176 -178 -210 -220 -226 -227 -252 -3 -21 -49 -76 -84 -141 -151 -211 -232 -14 -49 -226 -11 -13 -49 -55 -71 -73 -88 -98 -122 -138 -145 -148 -164 -174 -180 -186 -218 -219 -220 -224 -230 -252 -21 -33 -116 -122 -141 -180 -33 -49 -116 -145 -183 -218 -242 -30 -40 -49 -69 -93 -116 -135 -141 -145 -147 -230 -76 -175 -49 -89 -116 -122 -138 -176 -178 -187 -18 -19 -30 -35 -145 -178 -178 -10 -11 -33 -49 -52 -59 -81 -84 -88 -107 -122 -133 -135 -138 -144 -178 -187 -194 -208 -216 -218 -230 -25 -218 -244 -24 -133 -119 -122 -151 -108 -49 -75 -114 -122 -133 -141 -145 -182 -215 -216 -1 -78 -122 -141 -107 -36 -60 -63 -84 -88 -216 -19 -49 -63 -145 -213 -250 -1 -25 -49 -84 -138 -178 -208 -231 -1 -17 -25 -33 -49 -60 -69 -84 -85 -88 -96 -138 -141 -144 -145 -151 -178 -188 -211 -223 -225 -237 -14 -36 -49 -88 -97 -107 -156 -219 -237 -55 -78 -84 -88 -97 -107 -120 -122 -138 -141 -147 -157 -178 -200 -219 -224 -237 -246 -0 -1 -2 -3 -6 -10 -13 -14 -17 -19 -21 -24 -25 -33 -35 -36 -38 -39 -40 -42 -43 -45 -46 -49 -55 -57 -58 -63 -64 -65 -69 -73 -76 -78 -82 -84 -86 -88 -90 -96 -105 -107 -110 -111 -113 -116 -117 -118 -119 -120 -121 -122 -127 -131 -133 -135 -138 -141 -143 -144 -145 -147 -157 -158 -159 -160 -173 -174 -176 -179 -182 -183 -191 -193 -194 -198 -200 -205 -207 -208 -209 -213 -214 -216 -217 -218 -219 -220 -222 -224 -226 -227 -230 -237 -243 -244 -249 -250 -252 -24 -33 -49 -55 -58 -63 -64 -84 -88 -107 -117 -119 -122 -138 -141 -178 -210 -215 -231 -242 -246 -13 -19 -21 -33 -48 -49 -75 -78 -84 -122 -138 -141 -151 -152 -183 -207 -208 -215 -230 -237 -252 -2 -5 -13 -19 -21 -25 -28 -33 -36 -49 -50 -55 -58 -59 -60 -63 -69 -71 -80 -84 -88 -89 -90 -98 -116 -119 -120 -122 -125 -133 -138 -141 -145 -168 -178 -194 -210 -215 -220 -224 -226 -230 -232 -237 -243 -252 -253 -255 -13 -25 -33 -40 -43 -49 -84 -88 -89 -105 -108 -111 -116 -119 -138 -141 -153 -178 -180 -208 -215 -220 -232 -252 -116 -122 -3 -21 -49 -55 -63 -66 -80 -84 -88 -116 -122 -135 -139 -141 -151 -218 -226 -255 -0 -1 -2 -13 -14 -33 -49 -55 -63 -78 -82 -84 -88 -138 -145 -157 -160 -219 -220 -222 -224 -14 -24 -32 -33 -40 -44 -49 -52 -55 -84 -118 -121 -133 -139 -141 -174 -194 -202 -1 -16 -17 -84 -116 -145 -222 -230 -21 -49 -62 -88 -2 -14 -35 -49 -58 -69 -84 -88 -89 -90 -94 -138 -141 -145 -178 -200 -219 -244 -2 -88 -110 -122 -138 -145 -211 -219 -1 -11 -13 -17 -19 -49 -69 -88 -119 -122 -138 -144 -145 -178 -219 -224 -231 -250 -1 -2 -14 -17 -19 -33 -36 -45 -49 -55 -58 -63 -66 -71 -73 -76 -78 -82 -83 -84 -86 -88 -89 -95 -111 -116 -119 -135 -138 -140 -141 -145 -160 -178 -182 -188 -200 -215 -224 -230 -231 -246 -247 -178 -35 -49 -84 -138 -141 -2 -17 -19 -33 -35 -45 -49 -63 -69 -78 -84 -88 -89 -108 -116 -141 -144 -145 -176 -178 -191 -194 -216 -218 -49 -116 -255 -71 -188 -218 -219 -13 -122 -63 -89 -138 -178 -36 -122 -14 -33 -34 -49 -55 -71 -72 -84 -88 -119 -138 -141 -178 -180 -210 -225 -252 -14 -36 -49 -55 -58 -63 -69 -71 -78 -84 -88 -89 -99 -122 -133 -138 -160 -173 -178 -180 -183 -210 -220 -228 -246 -49 -86 -178 -1 -33 -38 -49 -84 -88 -116 -138 -139 -141 -145 -147 -179 -182 -207 -208 -223 -230 -252 -1 -49 -76 -94 -145 -148 -174 -192 -243 -122 -2 -35 -142 -172 -178 -237 -11 -13 -14 -33 -55 -88 -89 -133 -141 -178 -230 -14 -49 -88 -89 -95 -141 -145 -168 -179 -180 -182 -183 -194 -230 -244 -252 -2 -5 -27 -33 -49 -63 -75 -84 -88 -104 -107 -116 -138 -141 -145 -160 -168 -171 -178 -200 -220 -224 -246 -254 -33 -43 -73 -88 -119 -138 -178 -218 -252 -1 -2 -12 -14 -17 -19 -20 -21 -25 -33 -35 -36 -38 -49 -55 -63 -64 -75 -76 -84 -85 -86 -88 -89 -92 -95 -107 -119 -122 -133 -138 -141 -144 -145 -151 -153 -160 -161 -178 -186 -200 -202 -217 -219 -224 -234 -237 -242 -243 -249 -252 -1 -3 -8 -10 -13 -17 -21 -23 -26 -33 -40 -48 -49 -55 -64 -71 -72 -82 -84 -86 -88 -90 -102 -108 -113 -115 -116 -118 -122 -131 -133 -138 -141 -142 -143 -145 -151 -175 -176 -178 -187 -191 -192 -193 -202 -218 -220 -224 -230 -237 -246 -252 -2 -3 -14 -18 -19 -21 -32 -33 -49 -52 -54 -55 -63 -65 -73 -84 -88 -89 -94 -107 -111 -115 -118 -119 -121 -122 -126 -132 -138 -141 -145 -147 -151 -178 -182 -183 -187 -208 -216 -219 -222 -230 -231 -246 -255 -17 -116 -230 -252 -8 -13 -49 -66 -84 -89 -118 -121 -122 -141 -178 -187 -189 -220 -232 -238 -243 -250 -33 -49 -84 -88 -122 -174 -210 -2 -3 -13 -16 -19 -21 -25 -30 -33 -35 -36 -39 -40 -42 -47 -49 -52 -64 -69 -78 -84 -88 -92 -105 -116 -122 -133 -138 -141 -145 -151 -176 -178 -182 -187 -193 -194 -216 -218 -219 -230 -237 -255 -49 -84 -88 -90 -122 -141 -174 -207 -243 -2 -8 -14 -49 -69 -75 -82 -84 -88 -92 -121 -138 -139 -147 -149 -178 -182 -186 -242 -3 -14 -33 -49 -82 -122 -147 -178 -237 -17 -19 -49 -122 -141 -145 -208 -230 -49 -141 -0 -1 -2 -3 -15 -16 -17 -18 -21 -28 -30 -33 -36 -45 -48 -49 -55 -63 -71 -78 -84 -88 -89 -90 -102 -105 -107 -119 -121 -122 -133 -138 -141 -144 -145 -151 -155 -160 -178 -180 -182 -189 -194 -210 -214 -215 -219 -220 -221 -224 -228 -231 -246 -252 -1 -2 -3 -14 -33 -49 -69 -71 -75 -88 -119 -173 -179 -193 -194 -220 -230 -252 -49 -84 -88 -145 -148 -182 -183 -222 -218 -2 -13 -19 -55 -65 -79 -86 -138 -144 -254 -2 -3 -19 -21 -33 -42 -49 -62 -75 -82 -84 -86 -88 -89 -94 -97 -114 -119 -120 -122 -124 -135 -138 -141 -144 -145 -174 -175 -176 -178 -180 -182 -213 -218 -219 -224 -227 -246 -252 -116 -222 -90 -114 -121 -2 -33 -62 -153 -179 -218 -226 -13 -49 -63 -84 -119 -133 -145 -178 -182 -211 -218 -222 -225 -2 -18 -33 -49 -84 -101 -134 -141 -145 -161 -178 -191 -215 -141 -13 -14 -15 -16 -21 -25 -33 -36 -40 -48 -49 -58 -62 -63 -66 -69 -88 -119 -137 -138 -141 -145 -176 -179 -194 -208 -216 -219 -220 -230 -237 -252 -253 -49 -55 -194 -21 -49 -64 -71 -84 -178 -218 -3 -49 -55 -129 -133 -145 -172 -178 -193 -222 -42 -49 -76 -78 -2 -3 -13 -17 -19 -21 -25 -33 -36 -42 -48 -49 -55 -63 -64 -68 -69 -78 -82 -84 -88 -89 -116 -120 -121 -122 -135 -138 -141 -143 -145 -147 -151 -178 -180 -182 -183 -207 -210 -215 -217 -218 -219 -221 -230 -231 -237 -246 -21 -49 -107 -120 -182 -246 -3 -17 -33 -49 -216 -236 -0 -14 -24 -49 -55 -63 -76 -118 -121 -122 -135 -138 -141 -145 -182 -186 -201 -220 -224 diff --git a/examples/machsuite/fft/strided/check_strided.data b/examples/machsuite/fft/strided/check_strided.data deleted file mode 100644 index 62fefd789a..0000000000 --- a/examples/machsuite/fft/strided/check_strided.data +++ /dev/null @@ -1,2050 +0,0 @@ -%% -499.6815828018352477 --3.5965481374096271 --8.6091733537799833 -2.0596425161174237 --2.6860348462437180 -18.3618185668513654 --17.4940266628799534 -19.6766609993246249 --0.3267842152172840 -6.6167017745735244 -3.7154986060204038 --3.1633285176205961 -7.9196631052383220 --13.2702817218792006 -8.3850247810499248 -21.7441677218203147 -13.7154911239726047 -2.5549465578157919 --0.4893785097528318 -7.3473220933959560 -14.1079822142617246 -11.5001153586105147 --1.7873841170319331 --3.5310602688490063 --3.7397517201992967 -2.0295638448133211 -7.7513922709537191 -0.4987486091518538 -9.1653121515586626 --1.9172781406374746 --1.5062605698068181 --1.4745832653717967 -5.5923213879946072 -7.4814817381057459 --6.9288677272366792 -9.7647998933324480 --11.2018221786393575 -0.2248954017189471 --5.9059469792883172 -12.2942260015566198 --17.8998097226953199 -1.8672568987443050 --3.1286613869244899 -9.3851031264659994 -9.7999782984125510 -9.4534296860522993 --10.3692620838118579 -10.8012659215335667 -2.9372059549506266 -0.4042729210070926 -7.9295238490130986 -6.3552424619673102 --9.1192802916008198 --1.6440965202725577 --11.2580652771583729 -10.0835009133181899 -14.3928571040740465 --0.9463071782463643 --3.6272927119441212 --2.4687295235906141 -3.7667783426427532 --1.2713719952639964 -4.7352691016227473 -1.6080230234052093 -14.6608699632429875 -5.0425261032654163 --8.1078383775986591 -12.2694669952056490 --5.3447561750360073 --8.6775571687577475 -17.3551671128764227 --10.0085668359087983 --8.1949326495607355 --6.8714315834345019 --2.2670624052816439 --16.8481926428680850 -21.3359931305202224 -16.6692598326072954 -1.0484366364485034 -5.0033779458475802 -1.8455482808793580 --17.1299436766020463 -8.0793516362854163 --1.2632947313631648 --11.1335517105674278 --10.1510027301746177 -11.0380161949925935 -5.9371398972511100 --14.6275883160768672 -5.2260098304055411 --15.7669630936730396 -3.8685177117507035 -10.6192770565881709 --12.5132686257084522 --0.4307709774361430 -5.2227319536262726 -5.3400735490690607 --3.6318625905697144 -22.0133492043055909 --7.6139154825554645 -18.8033894770888885 --4.6247792813002526 -2.3676451286687197 -3.9364513626749718 -23.7926837294793643 --0.6810408560820012 --6.0955904362312578 -4.4471636955315441 -15.4991375841504428 -5.3112521265310484 -3.6529779009522247 --6.3663607209918922 --3.0314448060097137 --2.6034210752852083 -0.5483579356658133 --1.0694236056584552 --4.6420890041187484 -21.8035164062587121 -0.0437598030564410 --4.2812536029278725 -15.3356084681333105 -6.6511615304321392 --4.8383608504312390 --2.4329720555247150 -6.1548042489158430 --6.0278230019681285 --7.5317817322014804 --1.7067998171618233 -4.6603181107989542 -10.3964107742856466 --5.8815794057954882 -6.0068631166585984 -14.9185147174948334 --2.3249463599017375 -11.5219011652679288 -9.9064781787410627 --3.3160381025739705 --3.8936160158345361 -9.9356895579989448 --13.8541995522526555 --15.3954208729566293 -12.0750591667925828 -8.7670065222319629 --2.0170574068938629 --8.5423235897480332 -18.6653825592386902 -6.7850006885556953 --16.7766436365048364 --2.6846418474966391 -6.2036809221112783 --13.2944663604972408 --6.4255866364562610 --8.0198265000105238 -8.1867111251998992 --4.6332072434797915 -9.1431223905949235 -5.1806331702432793 --10.9465225142992324 -0.6371248524423032 --4.4278729335773281 --0.9959523524723330 -7.7260365997319873 -13.8783711701864476 --0.0549042452099924 --4.0775835361903239 -9.2194026945605891 -2.0058650397648892 -15.0263791982142472 -15.5774664399838159 --2.5356019524979514 -9.7830370264034272 -6.5215957666850954 --4.3364798585062427 -8.1029798511886799 --5.4446154371148889 -20.7562553273625312 -6.6084760865289640 --9.0151188624933383 -16.8169699063819387 -2.2462234715144405 -8.7187895194567027 -5.2359553793883213 --6.3949932019458107 --5.4065048823380106 -0.9459619118405946 --5.8680729350673477 -10.3262012079088006 -8.9925339752796791 -6.6127188603107321 --1.2182716681634416 -5.9416782291888559 -12.7737205084300527 --9.5575658456062715 --12.2743202847618615 --0.4703051110191795 -0.2676437400260172 --8.1620813442002369 --10.1295570487141280 --3.9161777356910732 --3.9693530924911093 -25.2829529734855996 -0.6561847803898875 -7.6144345755790255 -7.4189198091877735 -2.8932833886494400 --24.4599473355233670 -15.8355068429527126 -0.4878587255004678 --7.5193339544879194 -9.3691158650649449 --0.6455625029206953 --11.5994675740207303 -16.6254585596720368 --1.6167232626850447 -1.2938622693602189 --4.9882464037077821 --3.6487642620103600 --8.1753673153976703 -11.0347167835034199 --0.2138367913715111 -15.7671569973381480 --0.5332694577262558 --12.3607514892000037 --0.9202695784353185 --0.1938544715407602 -1.0267245597104830 --3.3324229247602712 -13.5229215264544234 --13.0698466226096688 -2.1750021701459357 --5.4159626838472033 -0.2956643639490983 --13.0671491105392494 -6.7257359043570855 -3.1580019040780973 -3.4629838397898238 -12.8485848329235939 -13.6439895968306129 -7.8776855355855755 --17.7372135152678325 -7.5147220545510569 -12.2793554552792585 --2.3686601318464957 --11.1423234427946554 --15.4299277070759473 -0.6239861866319325 --9.2255080788920587 --9.5684339256697193 -11.4525711108549721 --0.7158179047329867 -11.6269178551383394 --0.5765873367396228 -3.9431195199651623 --3.0649088164581433 -18.3191405162708634 -4.9451372132728579 --8.1898535392718710 -10.2467565993362317 --6.7799684079464901 -11.7531282338894698 --3.0739048326698653 --5.3594911909522329 -8.8299694638789603 -5.1370782311875223 --4.0711491872413523 --13.9014229594921090 --1.2868041488011617 -20.6772922481535701 -2.2881617144113475 --12.2583705107904493 -0.6037616571241866 -3.0415995706908681 --3.2222794589857489 -4.0685367850084777 --1.5583699501152646 -11.5045361172903071 --14.9091624323900636 -6.9209435086483371 --5.7772364316360836 --1.9898534234014815 -4.1971072780761958 --0.2404311924943312 -1.9396310332806896 -15.9881414759067937 -3.1711513621823229 --10.2168840355642399 --9.5922126071070810 --2.5675592945577370 -13.7860796280553775 --5.6310386948729114 -18.5677405082493472 -4.4102800381136085 -5.7009855259138762 -1.7310457505455623 --6.8530985754364036 -4.8268101018432752 -5.0660048717934174 -8.6394234773658187 -5.4927177140309205 -14.0853645746294980 -8.9176082793246518 -3.4619009245431740 --1.0610049802469090 -7.1310874892518781 -5.2698772592827989 -4.3955178888810185 --9.4383709775289493 -13.0658789831991360 -1.6630952624330644 --4.7159267414646138 -11.4724824383638300 -12.8559572447452624 --0.9566890796764351 --9.9703785723925282 --6.6248594767665114 -8.8788399136990019 -18.4822551394064121 --7.7033714181267765 --10.9425419164617956 --17.4744144511672168 --12.8021956492376816 --22.2305329454613698 -1.0805046805538490 --0.2841140965979549 --8.2149259054194630 --4.9986544084140334 -6.9044650220722801 -9.7815317920423190 --13.5574716011577205 --3.3781476618665973 --6.4823296496743072 --2.7014291231586629 --12.4229610314693240 --2.8507945453289443 --5.7401524151982795 --3.5626003621113616 -7.4171632680127351 -0.0001323617795421 -3.0880282068257214 -6.3299127559933348 -3.0393666063102494 --9.8441294353611504 -1.4820288092437535 --8.1577236252529630 --8.1104121518223380 -11.7074507502663856 -4.4863496106814456 -0.0163395157960351 -17.4534824536090412 -14.0472713144210779 --10.5520409460421973 --6.7639836649713523 --1.0054775756356440 --13.2095681433803733 --0.2610932599217488 --9.2135564977933484 --2.4955897340692372 --0.6878565241090697 --3.2330797988811781 -0.8626944057415387 --2.8911225664442783 --8.7784061080520068 -2.4943612182913348 -2.9559035983644879 -7.8267385360351680 -0.1993076871138557 --16.1603637102725841 -11.1463967200483562 -8.8284599893462001 -4.9211927873182297 -4.4308934175744588 --9.0632511931262734 --9.3015460944874491 --3.8043691780946700 -4.1296260256885020 -20.4950898659289891 --2.0271764273643491 --10.2260154730118842 --7.6023640053008466 --1.0169257885710001 -6.0743887552227855 -10.7787246249407218 --7.6133506661572925 -9.6678144560853809 --5.4409074169220908 -12.7833535268658096 --7.1840316364005439 -7.1265569438991960 --10.3576284337027058 --4.1069741794163583 -2.6786711738435356 -1.7972770863380232 -20.9542098269569692 -7.1529604453721038 --1.5930249299444155 -6.4432797866790130 -15.7562901314255992 -8.4458650100657113 --13.5751139930782116 -15.8626252946529078 --2.2748030796579943 --21.4590298522777800 -6.7291621825759069 --13.6370846444190494 --4.7428670092394940 --2.0790641202386650 -9.9399981044320072 --2.2151205751804586 --0.7855180774520325 -2.0119334852585653 --3.6222259053929449 --1.1834509697794628 --3.7801625142190165 -0.4292442373939558 -5.0194533647852433 --11.1584640943231008 --3.6089375286729686 -6.6301168293498245 --18.1652367222728373 --13.1236366664579407 -10.2789696069274825 --25.8211869624063226 --3.5708150347427994 --12.5763670629021647 --14.4570400059158644 -9.1072537512879492 -11.0477317834839361 --4.1085221584928222 --21.7121542102498672 --0.9387542101401607 --13.7627263025602140 --4.7487365538562747 --8.1145683043782242 --0.3648969144529888 --4.1570710878251642 --1.6962382539923153 -4.9849627238602592 --2.2976132126174438 -5.7622968534395058 -9.6340436048268732 --6.2476250861411380 --17.5720028408384472 -3.8759021771182316 -3.6135851688070075 -3.3295037545388508 --6.7427946835834325 -1.0070528503237899 --16.9286687999753767 --4.0824450111309076 --5.9057160617505389 -0.8261415130776246 -1.1251746360001587 -6.3155318051509042 -8.3383429011570307 --23.2702428142640763 -2.4713411476263758 --10.1187743528522951 -4.9724407753038564 -7.1397012239502864 -0.3532507589480214 -23.3620533313098022 -10.8420997322771111 -4.9467319409616080 -6.4083782384278019 --9.8851770602604034 --14.9542553213673415 -6.7692312241974877 --3.4168263846258595 --4.3425391691472717 --0.8630148239227704 --3.3722781236096306 -6.9975091839139640 -1.9751292906487170 -0.2422652660267040 -4.2342620149515477 -6.2914427101701405 -0.1610369468926542 -10.5575511590376792 --26.5045519288861051 -8.6816559473880481 --20.2554729896783492 -1.5787540535398996 --3.4384860970074564 -6.4577575259534958 --3.8978962656034506 -6.1963894732138263 --5.8210536928039200 --12.7241415883490863 -16.8871312292416960 -6.7699499252214892 -2.5371741722920236 --6.5121552144552366 --0.4946506603590208 -3.1421292758999684 -11.1852203167073156 -14.0678044979882095 -2.1587210919684683 --7.7726722698481971 --17.4599021007772954 -3.6620459295200112 -19.1338007596331288 --9.3216381466651548 --6.1479851424503904 --5.6100963880082348 -12.9577993762765296 -0.1585528884087992 -11.2173492519944489 --7.1295409559102332 -9.1372748054128774 -5.9934591943967135 -6.1406441515322410 -8.5770434577813823 --4.2590942019659508 --2.0367473747654561 -8.9367149442751206 -8.2413285359376651 -10.8670226115231401 --1.7035336979620990 -5.4634720215949208 -4.5403553621144166 -10.2036845149121991 -0.0875880406603002 -5.8331997166210128 --14.4991466556419475 -19.1957528113826399 --3.1948677609472789 --0.0070932026365339 -1.2926829954782710 --11.7266544172142311 -16.6238282575182268 --17.2755939443606366 --6.8384589211947011 -3.7498267059318913 -4.3988874617383757 --13.0637692288105445 -5.8942208094270772 -2.8270502345570732 --2.1543268139909539 --12.1314587504938771 --0.5990616940282019 -7.7450148051264076 --18.2585736619789785 -10.9657333712173433 --8.8325987855642865 --0.8019118037644581 --10.2002685398219217 -9.1524002806953284 -23.5299847290090192 --1.2931801795128735 --0.8320921735381805 -16.9306637300521921 -0.0812098738650739 --6.9207306195325957 --9.5842410738273536 --2.6283680901585686 --7.5508250644709189 -6.4130079470147567 --4.1324479284614792 -5.2957258709096262 --6.4386842846010879 --5.4376413694246200 --5.5834365549301150 -2.8632418308759422 --1.3599264960383235 -7.8984481879394899 --9.3812449649695502 --4.5600364173210926 --7.8828236315881641 -7.3168441216696189 --0.2199833561809941 -17.0090719300577931 -6.1937856648846887 -3.4836310773952879 --10.5727877396828696 -5.8775148362456706 --1.6405598080377661 -17.9570848201736837 --17.7682617993456873 -2.5929736483557821 --3.1335816460122929 --7.9516490143447278 --4.7205535818996474 --5.7674506274526021 --11.9316961258303582 -2.7886044111211903 -4.3352115669935376 -2.1768620947390778 -9.8270733315270533 -8.3952715912352573 --3.5811484258998432 -5.0691134491696914 -1.9668840457964261 -3.6374855288933201 --27.6247585727328939 -9.5920972395105508 -6.3300707181950315 -0.1992609004678334 -7.0022759562615304 --7.3299794426330873 -1.3534296414420517 --5.1445324637163461 --9.7969166003199355 -1.9929344381006922 --2.5655924358959443 --2.1992759525407868 --5.0117492043680967 --1.3482865692675410 --4.1155776677270133 -4.6482668279675252 -24.6716241865667740 --6.9755379983381900 -8.9010171424790698 -16.1069182230158567 -7.7204333509476593 -3.8072029739535744 -11.1070686586798733 --9.9834803461662123 -8.3681359405896441 --1.1335829296854492 -15.1744826053315336 --4.8269722252462524 -6.6006992911747906 -6.7377842139830841 -0.0662985634822659 -5.6748859014131945 -5.9702479140741325 -4.7843564233245663 -2.3616941026196026 -3.4416531946715931 -0.8494283857542000 -7.9308022803972458 --4.6749846252542246 -6.2470255600435891 --11.5691226892695340 --0.1394317930575180 -4.1493850813858195 -9.5684693104237333 -2.2343634695334629 --8.2356198816886046 -11.3177394505238151 --15.4799249423262637 -15.3759390131685834 --7.4206052761453973 --4.7772483269282420 -11.3383018521168992 -4.9254439428655070 --2.2624701279061563 -3.5638454368858081 -0.9527909059776176 -1.7097600179168042 --11.0628849386227905 --17.9282191210254602 --10.4094990570033037 -3.5862787894796351 -1.5474801391245394 -2.5020328835897407 --1.3066877422131165 -1.9643990347242366 -0.6419405020159576 -10.5650397489502748 -8.9799248397728650 -3.9701358114759309 -9.0024280779550185 --6.0507377772526958 -15.4665922253664796 --4.4151289293897236 -5.2466041151176226 --2.2055575732700117 -7.3689570992294620 -2.3364140530194852 -7.0962176476071352 --15.2203389264000020 --5.9092619378653826 --5.9599718408378077 -10.4943181108915251 -7.3365091309559798 --10.0104615730382580 -7.8104907093238589 --14.5385304704638649 -7.6060869599275920 -11.9579995491107525 --14.3267461188118865 --12.7298610902622986 -8.4942121072728316 -15.4055379421196967 -5.7740135541335276 -16.5901117572974783 --0.2580583274057329 -2.9145953692884632 --10.4319696802810675 --17.8142436825248147 --17.6596549715583144 --1.8721716198742282 -7.1002695346950375 --9.4555247343243831 --15.1613045408764311 --16.8817685165568534 -0.3648454743007381 --8.0706165125763718 -7.4297963290601370 --2.8236974184657813 --12.1610647651385335 -22.8845167694437421 -3.8771659675807673 --1.4627740239314950 --3.8045752858250252 -10.8958631403264832 --2.7653237554911536 --16.0993367135496044 -12.0385932889819944 --13.7920608492889887 -7.4631833183500671 -4.6448697645166499 --13.6476392574700647 --0.2004320823239354 --16.7368408406938549 --2.1962232437142206 -0.2374383263178497 --5.3550219949738107 -12.1516605520316219 --10.1397416329570724 -1.1428970978069124 -6.7239227838974873 -9.3605399124623165 --6.3203202114260302 -10.9574241818925451 -11.7234530338272549 -6.6814939290682105 --10.2031480756173529 -2.6794364176049426 --8.0471717999082522 --11.3880346018653498 -0.5134175967727419 -10.9080756203700027 --17.9385088554622385 --15.5928608022694561 -9.0825811737046784 --16.3160389919420759 -5.8025791703609260 --4.2605065307130650 -5.1894553109548491 -5.7824155656848832 -1.6759330561374082 --7.7457904803312587 -0.9169218673320216 --28.6854287578779683 -16.9155536590423559 -20.7675434357734652 -8.4573348531086943 --1.3090977548793914 --5.7813229605828171 --0.6663583353499751 -1.7378765752536438 --2.1757846948683071 -6.1433423747632290 -14.3831842035350022 --2.7565559023484187 -8.9792030909607412 -10.5560863911582494 -13.6482828178448621 -6.4234629507071812 --16.2902979411082498 --9.7414951881106759 -5.1253275180054718 --15.3473965641601815 -1.5402155284481083 -14.7803618971838890 -17.3699422088607953 -7.8499945296466302 -5.4379479418484680 --6.6591786436031253 --26.9147586023641594 --2.2743384805422444 -13.5791698580203981 -25.7051195906365919 --15.1361058637111512 -11.1997386720764087 -2.7044357915472208 --13.2487055569884618 -6.4869054408316664 -10.8099473563841197 -3.8298695009674915 -3.5190996702116415 -0.2980069761416335 -0.8745975638965735 --8.4976633073548395 --2.2975704501136516 --0.3186783440563925 --12.0802976061054821 --10.6181665716557703 -8.1862288312029321 -4.8284303691105057 -1.2253476097622515 --11.6124150598310010 --2.1881254748736803 --14.2339451925993359 -6.1712985487966971 -2.5287716124231370 --2.9214196852192429 -3.9926851947538098 -4.1897284346592532 --14.3946922888329549 --17.5423608090120950 -13.4560428487981465 --11.1747459755545488 --5.8420199220963855 --4.9733319827090403 --11.1843372737421234 --2.7266781396405233 --10.5763838729175159 --1.7221296775359738 -10.2008198838216479 -7.2631754828749182 -3.4464975427254716 -11.2690400948215945 -6.1829729673271379 --10.0515690614552859 --1.3383105718194210 --2.4353351059132056 -2.4977502280955690 --17.3324732860211874 --18.5342376632378141 --11.6756649216517392 -18.5819296108340026 -16.7763608899043675 --11.7550720850186661 --5.1664668369370563 --3.9267501627309094 -9.0260497136628182 --11.3013482840684745 --0.7526838893564087 --3.6108208939624515 --8.1295679919507204 --7.6265290344270191 -11.4398823780502727 --0.5436314732322352 -1.8974129030873570 -4.0335916051987653 --0.5169641361195412 --3.8656966006826154 -0.2707387533518517 --12.5569633571821289 --4.4387150775993218 --7.7956642871991280 --5.1999068074983636 -1.5372027867934195 --8.1161239983570717 -17.0930021276602133 --6.6514162203133544 --4.2826959320699576 -12.9483321134470692 --6.8071213371086197 --3.2764269312567773 -12.8980023921631837 -10.4719409123034612 --11.5437921756238051 -5.3346734748447266 --2.4176257992438499 -1.0866961036944360 --5.6497825829972328 --2.6515651916096710 --5.9911081823148917 -4.8811756777744222 --6.2677263939136356 --4.8359913231089990 -15.3107335957283439 --18.1184471512029432 --0.9332647728601788 --7.4591661932122815 -11.2753006048426254 --11.9563256694213393 -8.5180232938542062 --19.4329050359259696 -0.7697326201175034 --13.7800115143015169 -8.8552213223051623 -0.4517694049725192 -5.4135065562981728 -11.9860939926570111 --6.5358474866501224 -8.0089878690253578 -20.2193776110777925 -6.0766138523451909 --8.5534631885967016 -15.8234801847316682 --4.9825948344112554 --3.9997310516197420 -10.0899294833612085 -6.7811191513193378 --4.2795846156127837 --8.6487548527333651 --18.0496419825926502 --4.4015535814599129 -11.6647187471709994 -13.8571930115533775 -21.9919081268032031 --16.5606955859210387 --15.8469600979042866 --7.0445152234296184 --1.5986909779570504 -8.5737311145512773 --11.2563221359219003 -2.1246277586268443 -4.8876674069164796 --5.5954622751070460 -5.6356711777776312 --6.1788436545738312 --4.5153369757587436 -8.5642834789141435 -11.8384280804072173 --7.7895512561012126 -21.8032266744273073 -3.8281825294899723 -4.1471525837937318 --0.6312415000184710 --2.8141478731359566 -18.9971433120930548 --6.6011685550637615 -4.3272057442526721 -3.4646151490004944 --2.2120623628086857 -19.3608928344886948 --1.1999772462264708 --9.8048442797984610 --2.4249124682744929 --0.0745360560988972 -3.8363519700484749 --1.9409759668786712 --12.1705206829627848 --10.6902606830150262 -6.5009439334759040 --4.8644499314437848 -12.4469826209516743 --11.2334538775593220 --1.8599988851340834 -6.8984007799384530 --14.8957518980226098 --3.6032704617316469 --9.5763645200035796 -3.6955828544301941 -11.5587370729329404 -9.7732268499520618 -3.1949060990274809 --6.2577941987982673 -8.4158963284543997 --6.3391702944626278 --13.2995123418193995 --14.9116034671478364 -6.2282785464570685 --3.8226578106215117 -6.7719494793928616 --12.2628945427405931 --11.5823449816504898 --15.6078475891691504 --12.0403779920255598 -12.8948765946093555 --11.0144000475442496 -3.6092314178386582 --4.9084241779031306 -8.3149947205506187 --13.7866049093040601 -0.5147077789258887 -0.2427165586053164 --13.1103514243831896 --6.4670185545911689 --0.3358480556109029 -0.0342616371854118 --1.7649796149940573 --2.7233118354004326 --3.3818105327333954 -8.1220590751180914 -5.4796621489107089 --0.0702616693056153 --5.6776776876589210 -10.8510075686747740 --2.3506433956191666 --2.6277879146878114 --8.4381558394318432 --2.7812573856151603 --10.4846825969828821 -0.1658046930753057 --4.1010881682340798 -14.0738182177162940 --6.4428719312500169 --6.6328710538571016 --1.1445153709605509 --7.6719623825446579 -6.0234658834644978 --11.0210582573619931 -11.3256830420907519 --12.7249330256583271 -13.3449782203469631 -17.7925856629203629 -4.4579363574975268 --7.4844542366127520 -6.0562648289782697 --1.8743604846402167 --4.5851520740373406 -5.8980355715772497 --4.5254555186843977 --4.8302135799192349 -6.9883523772335590 --7.1190665409134333 -9.7952737385887616 -4.8971989763278403 -10.4447848736600193 -8.9624907837488887 --5.1492099971134841 --4.1433440368690908 -6.6821403709619167 -11.8956704209165647 -19.0194101586387383 --4.5234807106811328 --7.2884490970378835 -0.2036927498181782 --2.6823090234396529 -2.7256244136251322 -7.9181674111214235 -3.5699109733761745 -1.4739355809851400 -3.9447802767997002 --3.1812445597692234 --6.2957699694126728 --9.0643520225084337 -%% -509.4771675150243482 --1.0691225265986475 --11.3634668751500918 --3.6789775171668611 -17.0636835199097092 --18.7509283378856964 -6.7388623228171811 -7.0781711015274391 --2.5422806978521826 -6.7059234168084316 -11.8263762158053911 --14.2198451240484882 -2.1911127534884196 --9.3293778591769616 --2.7972591881344275 -3.8420300885011294 --8.7997280535391731 --8.7573610607115313 --4.8212991503841067 -8.8803675170459595 --5.5716798851954454 --15.2956694846945727 --14.8866511470937031 -11.0940483909365053 --13.4191555664679125 --2.7659936287430380 -2.8539526614813862 --1.4416709622857167 --6.4766534191766159 --4.0248743754053056 -2.5658220680680452 -0.1482989677481079 -10.0928812108262047 -0.1013606600962103 -11.1958417952159870 --0.2922602760294701 --10.1985410562259720 --11.3628816243901891 -3.0318103362543836 --6.8583258952089041 -8.0262223360448566 -2.9394321406324155 --18.9895584275153162 --17.7712798647424641 -1.0180176168459791 --3.2690354731511473 --0.3210824224393942 -17.3300319024931397 -6.1106973497115931 -5.7594023160431291 --4.1614537309297237 --13.8453242759752388 --1.9441261078987675 --4.4347660681341399 --0.6620395514264165 --1.5029425874423410 -22.3930426935769162 --8.0693399693491461 -1.7488733651852812 -4.3915402678647375 -1.5798456088986379 -11.1857993248495049 --3.7310621974946150 -0.6411475618575402 -4.2544837081615823 --3.4601503984961433 --5.3118338694598997 -0.3746928565680476 --6.9780513959593797 -6.1677483452598132 -3.6514642086999944 -9.6125000329085566 -14.7302193339243441 --1.8714663761929575 --1.7783501589564819 -9.1749607529304438 -3.3645428069722243 --7.1498608438045004 --10.1384146010999743 -0.8688814099243922 --1.1221539244810534 --4.8024883785444290 --2.4835369565425740 --13.0282102074963166 --9.1268402590866309 -19.5051905967708272 --1.2010531672041698 --0.9211815404621315 --7.7851249978809918 --12.2017454294857330 --4.1513617466189796 -14.8188083568208366 -5.7471408063266658 -6.0851704403543607 --2.8411614257438629 -0.3143952713614544 --8.6297536720629608 -1.3300942963555049 -18.3981457331160669 --1.3733252774255860 --8.6201764791243161 --9.3834971947254129 --13.9137481089358594 -2.6562027185159183 --4.3352455983379148 --12.8944352463270757 -2.2628194117432652 -6.6825784069272434 --1.3083179354105408 -12.0454584827153734 --3.7468608888625741 --0.9555598299614503 -10.6739301980337817 -10.1410417816037128 --13.3501368221749033 --7.6905357948560997 --7.4001059571756382 --5.4365205878205884 --1.7030053680790180 --10.4188377759008297 -16.0156819551168574 --2.2860761715999374 -8.1364406067414965 --2.5877839748977389 -14.1196145151357744 --7.2436319082656428 --6.4035887716626405 -1.6586479263787317 -2.3483314499941166 --5.2095358516512551 -12.5436015259344149 -7.3499063122824477 -7.7535076006317682 --4.3684593668897156 -16.1752749968461167 --1.7621479870413728 -2.5671383045057574 --7.7313359511570656 -5.2707831492498096 --12.1015303805099741 -16.1345450774474877 -3.0746661232453212 -13.6262399020934097 -6.6354725390866589 --17.7856649327247673 --1.3681692225209012 --1.2648702003139873 -4.5531844185092503 -11.9169980150154657 -10.2829452720621148 -19.1623546254488986 -14.2363097495115571 --5.9118724736752410 --11.4442215303375612 --10.7533962688808540 --5.8165425920009302 -9.8374368600768065 -4.1324993737134443 --4.2081155168057629 -6.6581417589014924 -7.4795450110598498 --1.4506884413457453 --5.2855619002203529 --6.6028292583288195 -1.1580353012498206 --1.0577110519715163 -3.3187115115984915 --7.4629545678824183 --6.1807835517475738 --1.1986052890972960 -17.0517488385248157 --1.7227940484143209 -7.7894729316916900 --1.4156432667798002 -0.9506429380860895 -6.9851981560935883 --4.7463093510144354 -0.0535899196913605 -4.1755541684588842 --7.1599042939044324 -22.4542442729043117 -5.2253548765448041 -18.5118572750815886 --2.1850077051829988 -9.3403210141522877 --5.7677934680605061 --3.9786570969601911 --25.1133020868369385 --6.8724745546086030 --6.5620110885394691 -11.7963442311315969 --6.9457696370629822 -13.4232434598899566 --6.0502081404623773 --17.3306563723519140 --16.9817264519591795 --2.7345033427778382 -11.6820662560497102 --3.9465711850423708 -9.8423256267765051 -17.4457387587225732 -9.7408839882869103 -14.1572414984139705 -13.5476092033881983 -6.1407598190128976 --1.0311791181555510 --8.5430433948226217 --0.4818144627232668 -20.5624399059404439 -9.7598502627550872 --4.5525173619368786 -4.3016628470978606 -0.2472520922414312 -3.9632277310609965 -1.3220187299371124 --12.8561878421817433 -10.2085617957268191 --2.8584533753950048 --6.5606591011014324 --4.8743745518918971 -8.3426584051497077 --11.1336787804023825 --2.1938852431307199 -2.1821113428448653 -6.4042060110350674 --3.2633003388584969 --11.1840539255335720 -3.3087005865383885 -0.3610661912534709 --15.4362465187227365 --18.8612381110388299 --11.3123737042298025 -9.9929082498193154 -10.7964268220570503 --2.4732821747456795 --10.3708913632761828 --12.9831799966106942 -3.6564083552979012 -6.5391167874333664 -25.7402882743062804 -12.7127881222585177 --18.6329649048722175 --15.9581386485720245 --1.5645082160435182 -2.2182475205550789 -12.5851460652380531 --5.9077398784521673 -1.8559758161089053 -14.4832818928857971 -13.5137851727556733 --0.3285142942301205 --14.4631082565510880 -4.1028325030146675 -3.4662603782168318 --0.1089977759973166 -2.7822013488195827 --5.3846756885247125 --1.6126909487049161 --6.9298103284356420 --7.0021288930746737 -12.2389579717314803 -3.3677929694750839 --8.6504455170572037 --7.9295073739328901 -15.2498867890426837 -13.4201620419092542 -3.7710829656027380 --8.4857273423860953 --8.9964315651655919 --9.5138801860125088 --6.9188108454401060 --4.0934906785118610 --1.8606241856150865 -10.7446602402078639 --6.0764475494166845 --8.2826642548493012 --4.5712770305809904 -7.8503307423744424 --9.2340219563677675 --0.4498456743743642 --12.5294491594631108 -8.9301767051937606 -8.5339356517939340 --4.8644737781991143 -5.1209513552616395 --3.2544989584165416 -5.8752589574209395 --4.3895209142044234 --0.3472910621288499 -19.7301661282085483 --6.0622880597696884 --7.0740884975155627 --18.0693921993985640 --12.0430819456038094 --3.7298508819985701 -6.4111013912061123 --2.9611872612594539 --6.9617648256237086 --6.0448116888534145 -1.1541892510429896 -5.0966847305254834 --1.0601478654966168 -2.7012479828800910 --1.4460619339275751 --1.1860268129948786 --13.1600554454112508 -2.1586888292295345 -6.3890050226192265 --4.1065017782073419 -4.4544450450995026 -3.0959333328024030 --9.5106126591418931 -2.8271406996342079 --2.2292932414834294 -8.9654622529184795 -1.4551274373046801 -1.0058753274951591 -7.2222789085632986 -2.6252312035666328 --3.5370366713692722 --1.9872485429674098 -5.9593709525429812 -11.9245370516917770 --6.2558857522387878 --8.2169749017536695 -9.6660831181695457 --17.7224722467668201 -4.2662315151350416 -4.0362590639067033 --5.4957542616934436 --12.1834255563933986 -6.3456730995168300 -8.1522162695041871 -4.7640406178469705 -0.1622119544062954 --23.5230687288005562 -6.7407264180116719 -8.2089341051787024 --2.2876055716194115 --9.3583304947415691 --13.0761753294997689 -3.4844378560336589 -9.8053559749602108 -2.3521071609199193 -3.0213839744496811 --10.5809697128241602 --20.5916171434338970 -19.9961187807572038 --5.6578348758392796 -4.7823976779135311 -6.2455928096053892 --6.9554298698634263 -3.5537944670096806 --5.3554197646490174 --17.9688055081900409 --10.2874356820655990 -9.2789553587600828 -2.5261580639168346 -8.3425615663248838 --2.5607869600170932 -8.0622363831248176 -18.6501950139748232 -5.2883843632964425 --19.6464291834517084 -6.9158647203750032 -11.2295251369818292 -2.1781654016346512 --1.8223199890328190 --5.6573249796250096 --0.3800245110555971 -3.1094117819113265 -19.0022410881677004 -0.4040530787965562 -6.2233457070012452 -6.2360974787504384 -21.1933153868538966 -0.1007736265180630 --0.7471272213770361 --6.8975061513383444 -4.2843307340097194 --1.2755448385290089 --2.9058663904896376 -9.1368218492617856 -11.8316161411440532 -0.3306969429405626 -14.5926321065440838 --6.0804059934370187 --7.0793244640592405 --6.4382000795648402 -20.9240986898050529 -10.2755071239025675 -1.2755292202931470 --13.4092532318034490 -2.7234311107211635 -4.9694925335937565 --3.1146658843459796 --1.6571439574345472 -7.0093213444142464 --6.5297733190729499 -10.7489945265772793 -11.6991134344005765 -2.7742378400838987 -5.4038815670923785 --1.9164325164809584 --11.8792434157374505 --9.6672193739614389 -4.8776389983341257 -10.7752178463106585 --2.6671460721261422 -5.2056634422608266 -0.6386170373082333 -1.7759576172400928 -4.2618607582373720 -0.8175205968451045 -8.3009038312281440 -9.3549301291563047 -0.3467208343820389 --0.4003067259586452 -4.2490122632864527 --21.7048209571422426 --27.2444092568215055 -2.1878828302292330 -2.3018798237476403 -25.2891206334118586 --0.6073212197461109 --8.2852719417593867 --6.0630291681448227 --2.3974185864668982 -7.8524145149202589 -2.8749796098034146 --11.8799865324303600 --10.3771881797819230 --5.2226636353773728 --6.9836354216765635 -5.2708328867956702 --4.4541946355781903 -1.6134265054867942 --9.5962707007439345 --11.4898273773143185 -10.1838370479910783 --0.1727296291112257 -20.3640384784467159 --1.0162443948216744 -6.6103434322971859 -4.9291347858288317 --2.0433669355016901 -6.9113546503490140 -6.0078034249413408 -6.6402096273131868 --4.2078143715970988 --0.9118169634474933 --8.8183114640586773 -3.7578610769979597 --4.3545088404925441 --3.4393961562000634 --7.8453128793158147 -0.3177149497117517 -2.6169959408685024 --5.0625004389532631 -2.7589352810803884 -7.8794196258193185 --9.1958657812288234 -6.8357133812348643 --15.9013562806333724 -2.3309898082344822 -3.2148028068139598 -18.0782796973334960 -1.9142464693548646 -16.5294602080613267 -10.6092310690253520 -2.2515078594369387 -1.8137253555528821 --6.3680756392584037 --8.4483908339879612 -7.6717554291679892 -5.4930767215326330 --10.6265297157860026 -1.8818981263750034 -21.3149150234563578 -3.8593471710994880 --3.5831066561031801 --3.8454186359516789 -2.5814635800957140 --15.3233262872611604 --9.2783997525511239 --1.8184703019583361 --6.5872082135873669 -7.5453032928501482 -14.1301106838305390 -26.2209280542465422 --3.5272558833221033 --2.6999311738171614 -6.6776217256282839 --5.1592051703564694 -7.6212220255768033 -9.9359203044114270 --9.2205792541791318 -16.2212211451444155 -0.6513079650619749 --2.1367218678175033 -7.0246136696178318 --17.4308799044995943 --21.3329948798568125 -27.6784239261190805 --11.1978918168987605 -1.1661325979922772 -5.2830824627803619 --9.2632826806818951 --12.2890371914381085 -13.7414733985052244 --1.1129477952326159 -8.6269894095243309 --7.4528933204714338 -19.7159884607275870 --7.5566791296049693 -8.8760520732270258 -2.5187149837510772 --17.4202150463984715 --2.3169591071778606 -5.5900015969946750 --3.5787339868122858 --5.8632314797174336 -0.5690990442439361 --6.3458762011675258 --10.4403969758066673 --15.4620367050211875 -1.2137827258088199 --0.1204939600232470 --7.3108684626860274 -11.7822552566782015 -0.6147094877144608 -7.5283810710247110 -4.3412266489360336 -10.8822234920032663 -9.1766789528784756 --0.9409781694630146 -5.2039643103181294 -4.9010983041280163 --10.4196985823493957 -0.4960208234466705 -4.3254952546092014 --19.6595703572169995 -5.8621074556264574 --0.3967614525893759 --10.4354489491222093 -5.3521075041296005 --7.7149537718020724 -8.5205151723471353 -0.2020332197920542 -0.2045187161882158 -13.6577496941137895 --11.0828350390502379 -2.1179025488957111 -3.6743436001724881 --14.1201261177543707 --6.4497958032414546 -2.3908811313469416 --6.7945596278928280 --21.6142746677860771 -0.0367472311021668 --10.6817185893259392 --16.3873524299427373 --8.4056149252247430 --6.5382039185743199 --8.6238146390925969 -3.3956348532358378 --2.9680469594706671 --2.5226968153139713 -5.7769929125454844 -5.6956580870093134 --6.8934727134167577 -8.9547109509959153 --1.6462407800289740 -6.2632465223801148 --5.4032700086591063 --0.2892218698350137 --7.2300905604303596 -16.0460264146495000 -13.6862279500495632 -6.1118898131814987 --14.0265985405482532 -1.2616777434351398 --4.2385750321063398 -6.1396221158300399 --2.7398755919125337 -13.0298762157260235 -13.5894637685750475 -8.7751050298463689 -6.9124187840268565 -5.6991029192884444 --6.6717567260029309 --13.8039013269567032 -10.9575692673650522 --6.0318501152700179 --4.7087385907739030 -19.8646550213303570 --8.3448230203874161 -0.8642640522358542 -21.0971995396229275 -9.5034918438059037 --0.7083543090468183 --8.7506773533144653 -7.0661158347372286 --2.0284181776123629 --25.9080762997937484 --3.3549293384305408 --3.7605046162476126 --2.5120912581487072 -3.3433137277063492 -0.6168733546058367 -6.4016016152127380 --6.3406133014327830 -9.3416007169517137 -6.2170264127619257 --3.2438763301187334 --12.6837910520096884 -4.6138106005109094 -2.7074399057531799 -8.8428102606074113 --6.4164470840622370 --4.7816435400129293 --4.0524409628769309 -13.7050718276674708 -3.0115298623501827 -21.7905022518484195 --17.5426573556294194 --5.4653471681262147 -5.0799584363143904 -1.0001216450617951 --15.1138971376091042 --5.4616490098788457 -1.8233716310636656 -5.5433101282851549 -10.4257820700679638 --4.4267190979415378 --0.6437548161246869 --16.2685602521426311 --2.1683717127720286 --3.2858365687863840 --2.7471350707870554 -3.8104031979047259 --6.6221653938041101 --10.2052218611058532 -9.6748224729673762 --5.1266155273860141 --3.8472920675959896 --4.2312791144003787 --0.9742162918103769 -16.5020684682492700 --9.4047713106687993 --13.9872584884323086 --25.2218767268031243 -16.1040137687211704 -14.0122856267984606 --14.4738748850399030 --7.8371549997165193 -1.9017210190585794 -7.6444805980305031 -15.0539612855198115 -7.2252916840651444 -10.4737994540279757 --14.0346488127384745 -6.1394176769931601 -0.3296710964376692 -1.5006289077526445 -14.4666830975924796 -15.5965274068421138 -14.5087056860196597 --0.1967826108769106 --4.5282453792428718 --5.3922855477053560 --5.8366415470159048 -5.9393635582100490 -1.3179416414240923 -6.0556846053604279 -6.4345965426395857 -5.5414552428595822 -6.6264146215961581 --2.0785069265199976 --11.9084659771926198 --5.4323998447931459 -3.2927202415336736 --1.7265941237216262 -0.9847009675928504 --15.7178903362299032 -5.8509896537988011 --12.1694940034138490 -1.9963444601807598 --1.9950947375230221 -11.7485719478380037 -12.8829090562355937 -2.6464413370067783 --14.0156890745566791 -2.7300954288029580 -4.3114961741828690 --11.2788700271375379 --1.6348403941178224 -8.7364589407178102 -6.1878473599969084 -10.5041290421133660 --1.6879936624921790 --14.3034662167278253 --6.4217034054841866 -1.3983521513265318 --11.0234036031760692 --8.7955404099508403 --7.0408859769287027 -0.8161171583020885 --16.5803277501859299 --2.3462282641452381 -9.0659597596535306 --9.3459643488172048 -10.6279974793896486 --12.3088164383448166 -6.5465870410625602 -4.6452926697138928 --14.0758940163192996 -0.0910023567400717 --2.9764617129600657 --4.3826507843458264 -14.8602398081994309 --3.8150070767021296 --8.6962564502391793 -15.5943953955318193 --13.6995159533940871 -0.6522644521113028 -6.5680133322143712 --15.8622425507430123 -7.0130764914807644 -3.8416847677490855 --13.4646625707587440 -9.3786098521393342 -16.0396313063695075 -1.7050367370406647 --16.9918560079411591 -17.6408618815236977 --5.0084734495298893 -11.2850437624875486 --5.3666703813428143 -3.0753644001620466 --4.5141249968996577 -10.9851525243824639 --15.5451753735674139 -3.5801666169834521 -12.5018119518393789 -10.7023396633520420 --6.4359527720948719 -19.7657595893629363 --2.9890803858030690 -4.9324479647832327 -7.8761479748795535 --12.5817153113803215 -0.6665113254425505 --7.8133850875187569 -6.1148500606014746 --13.2817326160424916 --7.7472175111625470 -13.2488205813645550 -2.5576684227576494 -0.2773072231094722 -14.1568491177038016 -0.7705658279071788 -18.0327845931980129 --6.3872202262209292 --3.1208080557597500 -0.4962345719463288 --8.2559184504023850 --2.4491593141169417 --9.2235721738236123 --2.4329692756437309 -0.3557483126741561 -6.0510006884238789 --10.4657297062495900 -0.1062160983640608 --3.4150834753971817 --10.2321420824385356 -2.0078844061184000 --10.5402727721117451 --2.4934199729762145 -14.6447775052751563 --1.1848589419236752 --1.9849445331939428 --5.1566823206800230 -5.1412758427412903 -9.8791300744399528 --18.2127203809232903 -3.2606793742616009 --12.1653454273564030 -6.5197897616185623 -12.5527576706433912 --19.4073351788971884 --21.5672060655233189 --9.6297842467006909 --10.8765625149764240 --7.4320314102095892 -3.7591317407471774 --28.4413872394029390 -1.1973946509181808 -23.3294295864010195 --5.6521001217833291 --19.1730981216763254 -11.6251992089266309 -14.0834623678193598 --7.8423131977093039 -0.4891324588121075 -4.9406108675027767 -12.4502408064477521 --3.5596005462160250 -1.6809730026194067 --7.0208854109715464 -12.5670834507713440 -18.6860259778440962 --12.8123568789836639 -4.4725328878969846 -1.3309153185426061 --5.8171878616332968 --11.0425214335134143 --3.6798863009088398 --5.7279851242150999 -3.6411522069007747 -10.1972771813481344 -10.1470659062439772 --11.5834968007994821 --5.7241993842909498 --14.7908271549887491 --3.3348023377863196 --2.9058196692974936 -1.6130254111344677 -8.8112899638053346 --12.2100804626353412 --11.3512500429534473 --18.2858193771618360 --1.3161548952339337 -5.4845799899224446 -0.3959223781496539 --7.9725364396941956 --9.5366774158735481 --1.0718579339731269 --29.5368945700499950 -4.6311368608368042 --8.4537354796477651 -4.8293866845415474 --6.9900881837930555 -13.6710001445441023 -10.7616416112059987 --3.6716238079154349 --5.0047832388797415 --8.9807209852098353 -11.9638348977301483 --0.5032826639698529 -11.4659448332837037 --3.0025989206635408 -14.1071418311894021 -9.1960960133877734 -7.0568792717423063 -5.1693823980143181 --0.6340601795188729 --5.9001368668518985 -1.7021884302436683 -5.7153794934610218 --1.9495841151674795 --5.3862879932648902 -2.9195957417867593 -9.8941867077563987 --4.0122049696785647 -10.7323970554248369 --7.4234549503426805 --1.1957366136003231 --15.1401573905432372 -7.5932518324509681 -3.3206078438855346 --5.7455640964609174 --3.3337740151409405 -9.4568789189403741 --15.0236719288649230 --3.5331675589746343 --0.4174042766387167 -18.4519263330854315 --13.7994216292489327 --5.1364680829845319 -1.0104457416339505 -3.0413120887531528 -7.2144317765245054 -5.3390662941586848 -10.3706735312077498 --6.0657466603357868 --1.4558389371730485 -3.7714029521664374 -1.6099696059176951 -8.7744980653957434 -17.7165902240645750 -8.8418849059618125 -9.5733216231342091 -11.1093189569403599 -4.3100700095608619 --20.6712109720362704 -1.1438386017551760 --3.4562588619134047 -10.0903575132651699 -10.9417892877076195 --12.1678456948027556 -3.9742245950007931 -15.6457352681923432 --4.2027538951441485 -9.4016308665159531 -3.3663561196011411 -6.4282157829695254 -5.8610023436655947 -1.9535716592956343 -2.0354669525509115 --8.5168440567162307 -10.8652403597146261 --9.7786588320578378 --4.2149049415666600 --1.6954633715218130 -3.0356416357905451 --3.2405757976408940 --0.7889723913904363 --9.4224532713531470 -7.3712425253753961 -17.5609549712799655 --11.3884826363604308 --1.5062755930138194 -8.5543273040935635 -4.1880146479471314 --8.4671702764378658 -16.6320453805184805 -1.2202653063960520 -19.1776960663346330 -19.7211405836863847 -19.6147916876586983 -5.5121582544286154 --10.4718429695257953 -6.8674750894910828 -1.4797661017251516 -4.4260794129565904 -3.0356372070541835 --1.8150065757829821 -5.7072946598642940 -5.8468605816273520 --8.0708405674265631 --3.6391979073531449 --0.8735999862443524 -1.4379228575183696 -4.2048465158538004 -2.6401634644961973 --20.2066028012160892 --13.9682141908105972 --6.8229750575385442 --7.4993418621411845 -4.1490431793053864 -4.6004404245646286 -6.5649201690707129 --3.4656220139720970 --2.3951932849991229 -2.4670216769521618 --6.1938182077822255 -0.1808401848304779 --10.6463952112669666 --10.2707355422798621 -7.3490688681969205 -8.5002812829049468 --2.0916565942543772 -9.4495885573451446 -4.3588016331743011 --4.7342130513787177 -0.7939574160286655 --3.9608210931515719 --2.1954706568152984 --12.0433394679589298 --5.4856536445981865 --5.8243652116099964 --3.4593659391972578 --1.8737020585699646 --6.0942547871437149 -10.4582196178734748 -11.5016373230561015 --6.8694267995163045 -3.4151144511188365 --9.7582334131300001 -4.7477518587666889 --26.5296930825118125 --1.0723579821214768 -9.9205742329777244 --9.2712699621504200 -2.7295180649220390 --22.2174101025761104 -10.6862301489037037 --0.6686556886390225 --8.6492030066658838 -0.1533673325151987 -12.6976712647841445 -3.0929303728303985 -1.5078876375072010 --7.5858100262868069 --4.0315740139543754 --7.5396759825634883 -10.1960128509418482 -12.8345104352118700 -12.4329179636536136 --7.8527552257166757 --7.0061057739156123 --7.7417835006118532 -2.1425216679390866 -5.5711417177191400 --3.4432382008601294 -10.1290912933752200 -16.0525072081791045 -1.6531054973363100 --6.9875178207558433 --4.4690676724606941 -14.2318326865154940 -4.6795085273592960 -9.1593374900810378 -3.3631009566892263 -7.3869696993764880 -10.4232642725430846 -0.9874474611711577 -6.6741824466910771 -6.9540033769317322 -6.5678038275788930 -2.8909228355561067 -0.5891315976107392 --3.9498122374363480 \ No newline at end of file diff --git a/examples/machsuite/fft/strided/input_strided.data b/examples/machsuite/fft/strided/input_strided.data deleted file mode 100644 index 7ec997bda7..0000000000 --- a/examples/machsuite/fft/strided/input_strided.data +++ /dev/null @@ -1,3076 +0,0 @@ -%% -0.8483178396146527 -0.9316474009271629 -0.0749141099239747 -0.3243126095086337 -0.4889216894177568 -0.2003220013219365 -0.2465207945154783 -0.5009444841545747 -0.3833875674814791 -0.8638473264891788 -0.4270323830861616 -0.0263683207747022 -0.1798125277440863 -0.5388504032397917 -0.9782153590525915 -0.8309093043465101 -0.8577368190902865 -0.9543748287741737 -0.8490474371089849 -0.3694121479802369 -0.3352441047664209 -0.7552438928694989 -0.2817087394018067 -0.4852360002861091 -0.7268004045533238 -0.6343918397825450 -0.2104079488356254 -0.0395947057002634 -0.0400209978161234 -0.2976758337005888 -0.9521082225628823 -0.1866873697274503 -0.7358651200871347 -0.1361097436415447 -0.9090931683964897 -0.4604792296588825 -0.5769636562652027 -0.8616704275858206 -0.8767687582692533 -0.0279669403183254 -0.8816612565392817 -0.1866195592416753 -0.7633503369248252 -0.2150746941951263 -0.1339641300308199 -0.7161428864829403 -0.1365021466723779 -0.5001932391978972 -0.8470236345937937 -0.4470622249540837 -0.7140811894103265 -0.0127652175460312 -0.3876666127209407 -0.9958895038034786 -0.0926458725571736 -0.9676672240567189 -0.3736362838672994 -0.0488822949430138 -0.4076365668481068 -0.4603180906842517 -0.2873166763901486 -0.4365584272465929 -0.5850196896009423 -0.9590813817633715 -0.9980595552286854 -0.6068136140773602 -0.7043815368917442 -0.1974515966674346 -0.6575472564589070 -0.9454611044982865 -0.5747363779881197 -0.2194919783622648 -0.5763745454924379 -0.7153851752905834 -0.8911010718686341 -0.5206280483477259 -0.1501220678649025 -0.3812301813733660 -0.0463248309608765 -0.4254903780644615 -0.4973494195501764 -0.4281354730441760 -0.1142915128435944 -0.0804645407448647 -0.4373515560814680 -0.2582268915654431 -0.7683934478079263 -0.0766898881091194 -0.8463122892926332 -0.1107166721271598 -0.5840612962298976 -0.8557126220464411 -0.4838001677368423 -0.0621016340325793 -0.1310235740565679 -0.3776118887938892 -0.3530460812272584 -0.4149216674120018 -0.2064459122797230 -0.8343916891700796 -0.0932775064851222 -0.2731170192259920 -0.3356228717457055 -0.3267963290017710 -0.0435681404918652 -0.7228303690021292 -0.2107907960557750 -0.9615694238266003 -0.9326414560282523 -0.9394618799882867 -0.1764777376547630 -0.3732788212737727 -0.4000735922705779 -0.1120309369903489 -0.0511100243190568 -0.8575182783261570 -0.1349654718909908 -0.9723092959416103 -0.8067179481103881 -0.4657453752075365 -0.8214647023258758 -0.6642716262994925 -0.2924958180021960 -0.9396144243758447 -0.6692048055281263 -0.4554570494036198 -0.0154017302137861 -0.9462209557130911 -0.9279331770197743 -0.8926116198429296 -0.9844385803033128 -0.8235301034352464 -0.1171662519206369 -0.9738432213333370 -0.1702801969466125 -0.9700813330218533 -0.3431322540111262 -0.3521808070203251 -0.6456496860574097 -0.0078332098488572 -0.2780721231188467 -0.9308493287741327 -0.3391027675786487 -0.6387221774977941 -0.1387668025077644 -0.3193379819348149 -0.2938847760898528 -0.3760463174887679 -0.1542553433051521 -0.6639159037834084 -0.3564936178023257 -0.4878134574691712 -0.0345427675439928 -0.5848943772682992 -0.0693781648667100 -0.2191364932019932 -0.2761112415673199 -0.2440285243758249 -0.1440250692777039 -0.7614656056422392 -0.9809620066037130 -0.9348033021342805 -0.7552137859210596 -0.6065311722051752 -0.5503350398133949 -0.6275061460415338 -0.0111472337609468 -0.1246312888209616 -0.4231461451579110 -0.6484414922888584 -0.2337922181906040 -0.6779685516426726 -0.8782741573686651 -0.6177010100415349 -0.2939854446950563 -0.8761871775505162 -0.1810071211477334 -0.8720289503655566 -0.2532811225707449 -0.6100117892988954 -0.9301354739598914 -0.5191027833281141 -0.1431706944572742 -0.1708568797583734 -0.6242359909565518 -0.9782736794109049 -0.9891683505866096 -0.0196826080659797 -0.2768293352286383 -0.0768308861291690 -0.6270659160444320 -0.3147389465422545 -0.5336071033488232 -0.0120537996182269 -0.5307654724048916 -0.5153605911637142 -0.7528566241924224 -0.7033589194426896 -0.3209196647064811 -0.4410043195102882 -0.0111739864620048 -0.2863026779679601 -0.2683100918304755 -0.2979827363431253 -0.3721852873425603 -0.1633665685261703 -0.6533281645944697 -0.2843454312853405 -0.9051319563159713 -0.5983082899373767 -0.5757792223158209 -0.2692903346720601 -0.6096013896981760 -0.0901025770439411 -0.4634050247425767 -0.6204605185689965 -0.5112592424386806 -0.4937665420329518 -0.4695717035134276 -0.9097122918366112 -0.3201641400746201 -0.9905173479273656 -0.0056370341850618 -0.3921534977584564 -0.3346194563079505 -0.6360433801365077 -0.5201155310158935 -0.4362019819492165 -0.3809198621760362 -0.5670535082271564 -0.0529453230927324 -0.6790772399224166 -0.2868627608072348 -0.9392660254042972 -0.5753465166316099 -0.6541005362632644 -0.2817555840484371 -0.6612642174687781 -0.9423159385445181 -0.9174747407529212 -0.9779240481377166 -0.2986892413220574 -0.1916000764166038 -0.7468217076566656 -0.5936366233299584 -0.5410113779987784 -0.0748945408290509 -0.3395152960985217 -0.7470779072815197 -0.3161020201267201 -0.7374536219431782 -0.2805479172708150 -0.7130278376509701 -0.8459418603364357 -0.7522291563308318 -0.7673406794115867 -0.9791920811987473 -0.1123833682832090 -0.5471981463946101 -0.0433784996754932 -0.7831913287613563 -0.1725964107004632 -0.8671010177349522 -0.6393078646525761 -0.3310881842077714 -0.5352403136965146 -0.7661294193430825 -0.9244074576810648 -0.0287942216685237 -0.6707214734656840 -0.1748621195872093 -0.2273862811658987 -0.2993243342441511 -0.1768052463670724 -0.4825229633452092 -0.0222151629699995 -0.1239513072997847 -0.2987613558162890 -0.1379142600723082 -0.3440376084075450 -0.4373647696000651 -0.8535612938381643 -0.1715420896272014 -0.4749277287386244 -0.1199070948150680 -0.8089862728472129 -0.1441451973256533 -0.4292770696419592 -0.5211270487544926 -0.0011758916400356 -0.7007083090818177 -0.5281931199838487 -0.7671373984849126 -0.6021015440913253 -0.8912456482822858 -0.7899403302123719 -0.6772490738704474 -0.4708856876330734 -0.1763984475095891 -0.1463600662811033 -0.0165949685352888 -0.6068381808285457 -0.3224651525151173 -0.5148486338006011 -0.8463707450685359 -0.2157857682105999 -0.4175494429555621 -0.3779135888568587 -0.1956304117824023 -0.2671144901023431 -0.2978924140317022 -0.1791553064131353 -0.1601117923815020 -0.4436703260522413 -0.4354899010428503 -0.4863644602979916 -0.0455654999679936 -0.9061800810138900 -0.7274221170832363 -0.9082424735107425 -0.1397186081418257 -0.8710584598934502 -0.6569208507280179 -0.9408021142124381 -0.8543062414871980 -0.6782227444037920 -0.9034898824859597 -0.4495484633567567 -0.2222523874894407 -0.3137809125552068 -0.6478283781152648 -0.4165082365846282 -0.0360033802245706 -0.1218543381677559 -0.5108797423897457 -0.5180611700108055 -0.6056074920261487 -0.8779639279963387 -0.9471242759165983 -0.0824748458740915 -0.8674863090505956 -0.7868870903622686 -0.3087124472657461 -0.5009663253734257 -0.1286847456523950 -0.8405951440090710 -0.8737823046846828 -0.5714577591226613 -0.3163790157527726 -0.7294478876193773 -0.7828848822471060 -0.9947426877569866 -0.6268310698491563 -0.9471211534578475 -0.2243844220207657 -0.8573988054285285 -0.2936439994440631 -0.6987905411296418 -0.9507698943631454 -0.2277384525626225 -0.0983196954057779 -0.1158788858867381 -0.3943691258852570 -0.6522812929588194 -0.9323529611324425 -0.2505797725678027 -0.9463081170472853 -0.6972081938469031 -0.2217159609909230 -0.0158618584757915 -0.7992336160031288 -0.4916870887409591 -0.4203222451574106 -0.4954300164669786 -0.4072567181943900 -0.9436149636721938 -0.1115558766484206 -0.2133777544768501 -0.4926894729576140 -0.2288864259039310 -0.9233105307500995 -0.5522443624207825 -0.7804758780629942 -0.8577533254670533 -0.5175537145011389 -0.7458849304738195 -0.4700598126387943 -0.7256984927494721 -0.4946461243081034 -0.5928752445277561 -0.1435942641956947 -0.4530628816644502 -0.7303585087668238 -0.6771458036224584 -0.9821343857747540 -0.0328071121334004 -0.1185647260517267 -0.8226081939044526 -0.8158652049794541 -0.8828048367094834 -0.6291305933887741 -0.0868219653016111 -0.2738519339014919 -0.7144746575303565 -0.4011478376237659 -0.5007377866913673 -0.2288648035566036 -0.4618209141005981 -0.4425821772294087 -0.8664060965744277 -0.9349865168431754 -0.6358704096466863 -0.0008392427989186 -0.1111643065065295 -0.5246200509372015 -0.1354282528990725 -0.9424363035310214 -0.0744909276406249 -0.0310511640320245 -0.3761947915818324 -0.0217261429493881 -0.4949483768791444 -0.0973932294672044 -0.2981311546048886 -0.4083570361665385 -0.9868219940278903 -0.5543595302377633 -0.8069034553160739 -0.7665658438032671 -0.4969299039679246 -0.8434804973005380 -0.7665036069247364 -0.3282416327845119 -0.2149426327922223 -0.2818218695863094 -0.0961871139367003 -0.5579491260907850 -0.5867774049443926 -0.0881760013338349 -0.9878358065870914 -0.1061326855761554 -0.7271613020145520 -0.5798325617779146 -0.1155059662760101 -0.6973883104954021 -0.5049354722387228 -0.6508972709054981 -0.9006534219964644 -0.9605391610546545 -0.1394240512290819 -0.1671649450914079 -0.1664775697290567 -0.4080768206037291 -0.8477853400387060 -0.4499655955247234 -0.0255424858209450 -0.8505854782984940 -0.4636431798425881 -0.8918284279836336 -0.4856684644884649 -0.1659858594059837 -0.0238823839065784 -0.7994671317638116 -0.3751432912824046 -0.3804227384496434 -0.8413148607509543 -0.6506283850297021 -0.9766834855366925 -0.2191262745253812 -0.0248922210452291 -0.2231645580382334 -0.7404604855597532 -0.9355345620434551 -0.1653789667168293 -0.1059396938307424 -0.0020044749140114 -0.4132138001260813 -0.3312924847795359 -0.6492165403032210 -0.2445108317174756 -0.2171661955475684 -0.0119041354225503 -0.3199195886761848 -0.8799274836463801 -0.1697847195140275 -0.8799610104744855 -0.8029777980474817 -0.7691105305599997 -0.8614010915991184 -0.1349045754696620 -0.1039159475547794 -0.8460187964385510 -0.3083002773220541 -0.2412000351515887 -0.6655076815675369 -0.7731655682148677 -0.3339247226528733 -0.6582442922969689 -0.5215653744435931 -0.3567305965895141 -0.2981062040854478 -0.3833902369228816 -0.6969715537271688 -0.6615875892135347 -0.2121642451626392 -0.6571424956786973 -0.5146580817967552 -0.2742574950854690 -0.0533838274345822 -0.3421116783190124 -0.4346208023329561 -0.9428593202287435 -0.8746535554914753 -0.2787038915386076 -0.0607629710157441 -0.9475482605076305 -0.8000948050982155 -0.6696032733350000 -0.1191064572806398 -0.2713718953917491 -0.9754531978352212 -0.2555018393548908 -0.3156812728266634 -0.0378755150817178 -0.9773316421998351 -0.4036409576832637 -0.5324200478158887 -0.2225676235619323 -0.8308367730086326 -0.1544569956255000 -0.0976873451282712 -0.1354281620445729 -0.4682417610236912 -0.4112113092197985 -0.8283636157802693 -0.2354485044044702 -0.5138595908016150 -0.5212459531899646 -0.4374620898104384 -0.2897529706909659 -0.7560560479391087 -0.3444473384695645 -0.2101710283430648 -0.1913184876725962 -0.0194703354524034 -0.8244829999712530 -0.7004725373098700 -0.8548257075248383 -0.7529110407603758 -0.7272569630111225 -0.3430262664463163 -0.0543663112093189 -0.8584713279607648 -0.7237250361599911 -0.6861199156789359 -0.5769331828313227 -0.8880877406289909 -0.6817980021300837 -0.7181124881078564 -0.9474077459051521 -0.1669314152562441 -0.7977844154557096 -0.8776813456744198 -0.3617756810620581 -0.9250877956455573 -0.7853559941128757 -0.1073013935372346 -0.5154524213956178 -0.7705336169182980 -0.7455632462415369 -0.6858314418579472 -0.1451982048517642 -0.9769921914533929 -0.2707441083651104 -0.3692377801896228 -0.7895927671791430 -0.6419221159474837 -0.7595767306201764 -0.7091781136952096 -0.3356167379256038 -0.0962530381386420 -0.8259778697714617 -0.9345988394413669 -0.3858489471473220 -0.0361507946973068 -0.4856627526839860 -0.1892051894625248 -0.4575719204283109 -0.2364687687064010 -0.3024395144952008 -0.4236979859470674 -0.5712537893453448 -0.0743859838433636 -0.6992511255983868 -0.2143443403429400 -0.2557727874806550 -0.6020575222876966 -0.9329008633467030 -0.4591264949733487 -0.1316420504742486 -0.1834118248178533 -0.8616452724482049 -0.4934215152695882 -0.7063222135519909 -0.8890629485443693 -0.3378400307458436 -0.8999166805341422 -0.6545776790901677 -0.2924360980490139 -0.5331525361872268 -0.8521209023427115 -0.5028403366193390 -0.1964219728651424 -0.9007642452958530 -0.6041960938460277 -0.2353145244248827 -0.8739339865772545 -0.2358180816613767 -0.0053266675227582 -0.0245024808476083 -0.4565489134444910 -0.2971400601481179 -0.3462918638414297 -0.3174831292643161 -0.1022473410018786 -0.6345702753207734 -0.7986179739274762 -0.0887550087202571 -0.5395607076593224 -0.5027804701398525 -0.9545712661808851 -0.1311646089110300 -0.3816839551933244 -0.0287340536949976 -0.9741228417106041 -0.8881115817590194 -0.9443051692007695 -0.3973297345018290 -0.2435155738852830 -0.1652102803404903 -0.3243142246189342 -0.8630564791046341 -0.7427364645761575 -0.7628397127536366 -0.2767754158606018 -0.0538923118737419 -0.1873698021206745 -0.1533627910315691 -0.4113317799803305 -0.1961934245958332 -0.9159060981202446 -0.8137254244255523 -0.4905641817376404 -0.1733549482124006 -0.5895471919253229 -0.0471340501793856 -0.9186568804660693 -0.2220043575160327 -0.8392061621265459 -0.4075368623069701 -0.8249215210109830 -0.9296441921715146 -0.7625185210257652 -0.5646893167247345 -0.6062559916719461 -0.7733470603381122 -0.3581334207021432 -0.2525868596630824 -0.8030837979013034 -0.9078980508746070 -0.0213157617704918 -0.6198872241946154 -0.6982054377522401 -0.9125352939114136 -0.8662395645424570 -0.4964301003594250 -0.4589454657543227 -0.9729557362505116 -0.4761687642040447 -0.2915994889708689 -0.0625496872006724 -0.1082706330984529 -0.2676008131717454 -0.4510148028230647 -0.4210224473120947 -0.1548976062879481 -0.8710345719788597 -0.2967209912992471 -0.8860973384349545 -0.1028653706204793 -0.9112527657530287 -0.8316115232944399 -0.7876503979181846 -0.5703146078114243 -0.7668035869923945 -0.9765830388028187 -0.0635054924724125 -0.5053664034118617 -0.1667977138441292 -0.9084464933427940 -0.7396569990701948 -0.8901329413650267 -0.1282122077353620 -0.4280410688231076 -0.3546730853650018 -0.6740117202355542 -0.6993058676596479 -0.1008720531313658 -0.1655201742599672 -0.1678607872980307 -0.3498860824240698 -0.6979183623465720 -0.2972227666959424 -0.2718621421393922 -0.1371334239013910 -0.4695049786139125 -0.8856335695096561 -0.0421636389002602 -0.6171453064703414 -0.8408735929295654 -0.0821163784732936 -0.6958031307930189 -0.6798926151186255 -0.6338000423355364 -0.4342430860317124 -0.2476013748163865 -0.1524726995823791 -0.8910536354990762 -0.4307119981575572 -0.9065538585311617 -0.2802491643541730 -0.8519531607780675 -0.1309172521114062 -0.5223657172611972 -0.5940340561115732 -0.3471992523602176 -0.8553387616652556 -0.6768882381811585 -0.5180580908117607 -0.3464191929026591 -0.1534112256529780 -0.0416632587526700 -0.8032127017104451 -0.4956108399308800 -0.4327021758264568 -0.3047239994232592 -0.8910031103464617 -0.3485973984888802 -0.6992259055414151 -0.9250438169849708 -0.7898209042260892 -0.6802180037968130 -0.2967131969491587 -0.2720348328492520 -0.4998718700371028 -0.9163578329533125 -0.1844334098123010 -0.0446327913910037 -0.8986315754794177 -0.9565339328231259 -0.5917358349016343 -0.3039301433909674 -0.5032089054635454 -0.0098436923475592 -0.2290618525922859 -0.9941160211092916 -0.8018469588895006 -0.4515732147894628 -0.8513496134842463 -0.0670183661705313 -0.6178567164242852 -0.4182952572441551 -0.5383931272117743 -0.8023733482266281 -0.5417656241717650 -0.8788865026335969 -0.9290448072784062 -0.8280212198734908 -0.7615164777749828 -0.2390743428106357 -0.3649655704104566 -0.9861748858550504 -0.9590151332996334 -0.7884061132262163 -0.0238172507286693 -0.0288057462668017 -0.7563025130758088 -0.6327250271593858 -0.6647564006738251 -0.0403168932323779 -0.0851091202383121 -0.7131062167973624 -0.8266676506818488 -0.9699554487883290 -0.8566660020465017 -0.1673708090915806 -0.4935407356523587 -0.2583648166914596 -0.1595971470629153 -0.2616218585439897 -0.1565142635892891 -0.3304712882926483 -0.9311919539307059 -0.1237307163308776 -0.8449149809933604 -0.3000564008709446 -0.1208132269579128 -0.8551890471212074 -0.0613489685386913 -0.7006205445868144 -0.1740531003432544 -0.7732481261159894 -0.1343660168913316 -0.7749930699273819 -0.9868025567899982 -0.7757411308234101 -0.1887441922584664 -0.0740016559370295 -0.2881953716589823 -0.5678458093960356 -0.4288866101517670 -0.0670517898261449 -0.4631190147842646 -0.2993357137446890 -0.9724694844095528 -0.2340145672977075 -0.2952070238889182 -0.1034148020388507 -0.2599693743121106 -0.1983623100747410 -0.7891247745270171 -0.1365468411207909 -0.1704415101615018 -0.3795300396545589 -0.7872552286992399 -0.6761356879505004 -0.5746224709379114 -0.2599649322694619 -0.4465083963340758 -0.1772230114168324 -0.8958712439541665 -0.6755852294955170 -0.0424740404216321 -0.3474975250466014 -0.2787291110962878 -0.4239709392959372 -0.1264310228573687 -0.3030433007684182 -0.6167934317373043 -0.9774138579905517 -0.7922540390432117 -0.9754042035037350 -0.2937298063641197 -0.0493613402709324 -0.2131441317680902 -0.7118006990276875 -0.1926245778050174 -0.0565962349320215 -0.1083695656991906 -0.3233653572329019 -0.6883633369417523 -0.8142820788077080 -0.4708595737453577 -0.9574256940403741 -0.8577722569424684 -0.0390429387589084 -0.6485406197671680 -0.2286115179667637 -0.2505120841371920 -0.4679479656413075 -0.4803960416666576 -0.6427271305126666 -0.1298867853024623 -0.2293811386379165 -0.1945257046607350 -0.5737600072544007 -0.9456753829298495 -0.2914040068729966 -0.0411626576385112 -0.0851770531853963 -0.7512162357048413 -0.9114283912185644 -0.1084939194571904 -0.0340797220314683 -0.6686522970980507 -0.1906153990139051 -0.3274779492389834 -0.2516885885036551 -0.0772963287875257 -0.8935280009426281 -0.6201968041430754 -0.6029673627910744 -0.2263063654776020 -0.0421182878029569 -0.0135692741556023 -0.3516307018310701 -0.3075847105833159 -0.5301877412643056 -0.3610995616465294 -0.0932831537509481 -0.5333126231650014 -0.8783698621094786 -0.4581192548325713 -0.6692522865725606 -0.3856532909282943 -0.6141582130483899 -0.7281831720947005 -0.1948844614969170 -0.4943642276124682 -0.0784046332183870 -0.4345422259377688 -0.6558368046570618 -0.2400154516354979 -0.8126312836129430 -0.0042070986675205 -0.7770597741058617 -0.1301261926096061 -0.9201150257154005 -0.0150107888897510 -0.8096920536489608 -0.4692264045572709 -0.6698343981997922 -0.4625374292719958 -0.9620387146985410 -0.8815344945317943 -0.3039975463072964 -0.1632562644673550 -0.6693371407177068 -0.0255299687668171 -0.8262515235259924 -0.8290796078644540 -0.5251654865487730 -0.1769262026207146 -0.4146529856406467 -0.6257710753225278 -0.5385762819453994 -0.3467421010954000 -0.1803570538412348 -0.0062855490090003 -0.1631445529039522 -0.4952396311548886 -0.1707236567576024 -0.9432265054633366 -0.7188326227851898 -0.0739719232510591 -0.3438571127652211 -0.7995944476081212 -0.1332539980868194 -0.0690427248469638 -0.9524527209180689 -0.3688802404953913 -0.4580401459470407 -0.7170697644292721 -0.1786917333296686 -0.3231652528555629 -0.0632698207861022 -0.2341749143379414 -0.4131050383018145 -0.2951629865399300 -0.2573327687674984 -0.5130724364261614 -0.1589627169488473 -0.1819274409586360 -0.3605838202714328 -0.5440325678864545 -0.9090988849041570 -0.9379179733105221 -0.0141064347307200 -0.8508626122118714 -0.8167047819570149 -0.2623920121133221 -0.4495180123110233 -0.6073459575540703 -0.8055352308781114 -0.0827481756805070 -0.6495691246737028 -0.9557837386834148 -0.1689731366639478 -0.4739915237375780 -0.4228752065265029 -0.3864621066601071 -0.5216681823333275 -0.5101372326813385 -0.9282979463152260 -0.1934401620509328 -0.4407899952942061 -0.7970175752643954 -0.2477094328926093 -0.4700907027077451 -0.1180233354974776 -0.8422914801798748 -0.1531763443715683 -0.9784896365217246 -0.6142847292421334 -0.7350009968521926 -0.1559845355507213 -0.6408397957395198 -0.8871901348808436 -0.9853156529299215 -0.2043291709958035 -0.6791988294404089 -0.1737458412194951 -0.5556855949910641 -0.1662239833913383 -0.9252958993331035 -0.8815207942410712 -0.9207020404321706 -0.9462893018422216 -0.4915897861261869 -0.0532454258881340 -0.6745415400933488 -0.5767564764496971 -0.4995223250778442 -0.5741762963226479 -0.2972223117023296 -0.2369406864338512 -0.1705331838829866 -0.2544590026820316 -0.5933356553889287 -0.7557815104974221 -0.7308638669478563 -0.2163376957510569 -0.2586691231426438 -0.7553707339814911 -%% -0.6706497803768818 -0.8259915659051159 -0.6127769850532617 -0.4042432493346517 -0.0563064540342341 -0.4506809985950107 -0.6728182306226016 -0.2093887700710019 -0.2629049630806244 -0.0068903568874143 -0.6741981263711310 -0.8026358879744457 -0.6615563839200532 -0.2011487589490933 -0.2966113305625048 -0.5350148999623799 -0.7123884593841227 -0.8801106496231675 -0.1057599762765537 -0.7736908773165471 -0.1150862062662503 -0.3439478131991411 -0.2162976539518998 -0.0057640498417387 -0.5205619338920122 -0.1837588835868946 -0.1072048133407638 -0.9330220583897403 -0.0781877556303664 -0.6604415374454923 -0.0055543256941696 -0.2113213532549362 -0.4166371044168225 -0.2489126317221700 -0.8804237290693118 -0.9114630717835008 -0.2122197185028387 -0.1872496047054253 -0.0283493571356546 -0.0011739769717719 -0.2587451230366413 -0.6134283988672150 -0.7960136720771441 -0.4417212743517567 -0.3538190365232776 -0.4820827424201957 -0.7270079301991990 -0.5540293780631791 -0.6844720529281880 -0.7395825773469121 -0.1689867872929229 -0.7390011771948182 -0.3889554660143338 -0.0158743815304996 -0.2794561312296530 -0.5488249778351199 -0.9939879360511114 -0.3265921768161898 -0.7380059200028429 -0.2686659846029050 -0.0140301867513706 -0.0345076306283345 -0.7098586658566393 -0.8804033136216555 -0.1311251822393278 -0.1738269702011150 -0.9467849911595574 -0.0635165505526809 -0.8045666146925562 -0.5500252055448300 -0.2960850128458551 -0.3791679357611623 -0.3318679405186607 -0.1383370271666072 -0.9622471231685127 -0.0008209235817533 -0.2858982586997720 -0.9627033012525220 -0.5536461903980735 -0.0203918495292208 -0.2673520692161342 -0.3587292238852842 -0.0093934765497702 -0.0284739994461690 -0.5054042027492341 -0.8181935096212357 -0.5459306504169178 -0.9984011518683296 -0.4788924934998232 -0.9047358057561707 -0.6958031753814037 -0.0826713344650157 -0.2449075192032626 -0.4332419552713540 -0.7481090411770011 -0.3337436210362408 -0.1288111479371150 -0.1393425109365868 -0.3694359018085516 -0.2161886277610609 -0.0868289540623030 -0.2809660913222927 -0.6834390896658262 -0.6599492802927122 -0.0703576285531474 -0.8851721422324230 -0.0784159016220343 -0.6775815611931443 -0.8723857873635551 -0.3442387428829488 -0.7488398469947676 -0.6865869483303326 -0.5721400649461029 -0.5113942038836549 -0.7175259320021290 -0.5784878853002242 -0.1192925964151463 -0.3728264511453223 -0.3324480279209299 -0.7348138089866270 -0.9113418227917187 -0.0133558732261029 -0.0444334379695671 -0.7655890089284283 -0.8380837128929514 -0.6909078386850797 -0.8479124776327206 -0.7677202200246880 -0.5153327254961750 -0.8930457828966226 -0.6018790515210961 -0.0665720402909682 -0.5962448507692394 -0.3392590904124880 -0.1112857249315309 -0.5367884989765819 -0.9916240181373843 -0.8331481345246642 -0.2994661478507417 -0.8627726556183214 -0.6182353827040976 -0.6149876265111006 -0.3531793653091488 -0.5143005186400568 -0.5926468898446244 -0.3649024825358713 -0.5343363005946771 -0.5725036130122593 -0.3174075718189375 -0.3751798269431847 -0.6578860801973966 -0.9332728824329765 -0.1146445520498136 -0.1662239710723725 -0.8694019864172604 -0.7499672365062569 -0.7271363734624335 -0.9430020624479579 -0.4132824422670823 -0.4837363618225233 -0.4671709271543480 -0.4537214639120629 -0.7954668379373012 -0.2438654997599063 -0.4419460762806375 -0.6777206266673230 -0.9957734162654772 -0.2480800843375707 -0.1280403970412000 -0.3644668863337679 -0.9616873414436868 -0.1868708749314857 -0.6930411666732398 -0.5780037143603487 -0.5608423882500977 -0.6441989655644730 -0.9713249811202351 -0.4294390166286234 -0.8969774741365252 -0.1960699631492769 -0.7224530353170772 -0.1268089950416111 -0.9397683680282519 -0.5315018323429732 -0.2254886187046609 -0.0429141142621825 -0.2024717685614631 -0.6910933955316909 -0.7314732999603543 -0.1551093873719042 -0.6743060895480667 -0.4556540188327001 -0.4432436833380574 -0.5606860679844500 -0.6319108687982481 -0.0116703069980435 -0.2322452408551318 -0.3536862332363362 -0.1158322695030433 -0.9634522939857088 -0.8487323055999937 -0.4353499310626945 -0.6302969530620972 -0.1274088565446815 -0.2453010715007161 -0.7126333281485220 -0.5808262573450925 -0.5096368273743479 -0.4906882869254115 -0.6495880834323012 -0.0233123321742689 -0.0041469810558323 -0.8805597089399800 -0.2018707114365797 -0.3379314576230700 -0.4753747255809189 -0.6616274253970083 -0.3197317654981836 -0.2874055811093641 -0.0698162859045715 -0.5185972464080254 -0.3712390779666960 -0.0395522598727142 -0.8522029796288904 -0.6429233013492220 -0.1716043134564161 -0.0245860778925260 -0.1192679823597833 -0.2251123162515863 -0.2278627039406244 -0.6021001931781610 -0.7716493715297760 -0.7086536443199765 -0.6378488996151952 -0.9778896639349272 -0.6175561601799165 -0.1438112390964338 -0.5655215638728978 -0.8964914023258709 -0.4929803186620192 -0.3181047984817529 -0.2571762285898997 -0.5341139182822019 -0.4481070842468913 -0.7442557099061952 -0.0755455037462515 -0.0881736635594114 -0.8292182561831798 -0.4702901568278792 -0.3172165412962517 -0.5192743623627130 -0.0639664291315532 -0.7885729748132124 -0.8739453984594142 -0.2044745982999192 -0.7544967854617538 -0.6899486205135590 -0.9665559358594927 -0.1942611672076565 -0.2071430333395867 -0.2651524610606420 -0.6428563324162907 -0.6081367216327236 -0.4238958468282013 -0.7672532189318672 -0.9786971502709926 -0.0170800252756996 -0.5413752736159771 -0.4882800093012846 -0.5664635732064296 -0.4535325668908858 -0.4184044325889613 -0.9097756987185860 -0.4766618682549004 -0.9760491135221880 -0.6888504370810208 -0.5485435178768772 -0.5561370316148891 -0.0094666403269690 -0.3360619728116845 -0.4604348339427876 -0.9134297132560247 -0.9908922097051105 -0.1251950412031655 -0.5663664606143862 -0.0945400483940218 -0.4625197493670939 -0.8639195447432346 -0.0039262799519478 -0.6833368379014721 -0.7422283452747417 -0.3367793143998574 -0.5412184398424924 -0.3761234842735970 -0.8815788022034485 -0.6074823902030668 -0.4777707505251232 -0.9635916031584622 -0.2727502301296457 -0.1733453829569238 -0.8644986842700396 -0.9691780174692244 -0.2882628109384491 -0.6786791865359718 -0.8478671149035980 -0.4535076944249774 -0.1640098684409771 -0.4073202121801956 -0.5009583692983397 -0.9463817489661509 -0.0961353922326324 -0.1998223443867649 -0.7008862334619737 -0.2881202049236278 -0.3458537061813881 -0.2114514447990400 -0.0648526139252205 -0.8359259337698395 -0.7136411968729466 -0.8839727629895447 -0.4485996609021738 -0.4126785318598829 -0.1302233136776000 -0.6566698732369666 -0.7658415354209089 -0.0691474385841039 -0.5299372100597235 -0.8072030763876551 -0.7386502398203574 -0.8163976724866837 -0.9099590634362089 -0.1079579315030378 -0.1217338602508726 -0.8398682867388026 -0.0527879920083521 -0.8411987867709243 -0.5329342173929354 -0.0519388465693226 -0.8361373832400553 -0.6360358915176915 -0.7620059555978824 -0.7335875744925811 -0.7068483685535193 -0.8204346828900280 -0.2406901567099838 -0.3119376161816957 -0.8188672952427822 -0.0569869927182464 -0.8160735672225893 -0.1962001548817530 -0.6846908215984758 -0.0249193853783506 -0.5050224922572938 -0.8070765288638290 -0.9050568111880135 -0.5962573669748086 -0.1064109752073065 -0.8717233586021045 -0.7111238873247069 -0.8958953958961852 -0.0124857341852776 -0.3721871578061370 -0.1618305771923772 -0.7515039566733900 -0.7107271696811842 -0.2336812851484666 -0.1458156473180457 -0.9620985323087055 -0.8275964656273100 -0.1190767363568868 -0.9233858731422754 -0.5322410813615738 -0.0985540318104040 -0.8424411570469573 -0.0666493030651335 -0.5341925877342263 -0.5394414482514946 -0.8742698174359415 -0.7370734913518688 -0.0641610061811848 -0.7294092153878285 -0.3213275986725672 -0.1358937559382011 -0.5447052195538291 -0.1646240051946704 -0.1159073445476051 -0.5472078151545781 -0.7913238484821290 -0.2545447567715644 -0.5902198217476829 -0.6180104514739206 -0.2679718156247742 -0.6567257066434474 -0.4768088481712171 -0.8438998411194075 -0.8018278899795357 -0.7121966511487732 -0.9440082058646051 -0.3903038249845164 -0.6657680925264067 -0.9707962023941167 -0.9758816432468408 -0.5180344881975328 -0.4590301346752441 -0.5790243849919570 -0.9827581127256924 -0.7580890772895353 -0.0282653007892825 -0.4742266549813303 -0.5206714623709152 -0.0880362523484991 -0.9441696695392323 -0.4154944551240305 -0.4854395925471128 -0.5980708329728217 -0.1514730782817679 -0.2277850588198586 -0.6003959811473946 -0.4138648613445658 -0.5214294374618673 -0.5357899328102427 -0.1126604961733214 -0.3978861271719195 -0.1572100962678205 -0.9684761870036048 -0.2823789715122690 -0.7350302037352653 -0.2226577397656659 -0.2146205511975388 -0.7368134024381822 -0.6851977195850656 -0.2901994887952524 -0.2484031578734452 -0.8406937400471280 -0.7330257783888604 -0.6786698842197517 -0.2108314045756776 -0.9729048073557747 -0.1308633059219713 -0.8793668353727628 -0.3849229287904603 -0.1940388764205123 -0.1682749150222659 -0.7803041144613144 -0.7925818205728924 -0.6160000615567424 -0.6645809359455023 -0.6374354155824379 -0.2899256792758656 -0.2300623404836308 -0.5242963335351867 -0.1784243876633100 -0.2478678303610563 -0.6137636967201309 -0.1159975240188399 -0.4192057281273810 -0.6103248712962920 -0.6050614699403944 -0.6385246389661129 -0.7328477801951783 -0.1442908280252166 -0.2314561865539927 -0.6455315357936088 -0.0036223892582007 -0.0890605637757619 -0.6577781560016939 -0.5651268147351131 -0.5703656983239329 -0.5241197109565234 -0.0928816194038764 -0.5691972941463214 -0.8203219486093015 -0.2960977178239230 -0.4965672877217533 -0.2267953990067369 -0.1616474206061058 -0.2368359225241292 -0.8386880802324272 -0.4304339747920264 -0.8145921244355058 -0.2926089852252082 -0.4587937530266486 -0.4627877133550086 -0.9834880148784035 -0.2091795422250676 -0.8352278251817872 -0.0575487671296270 -0.3627326891505497 -0.6041543996670723 -0.0240717091937075 -0.4567222795141845 -0.4187870842887678 -0.5690436201072602 -0.3836306545353996 -0.7612922517768207 -0.5830063635525695 -0.7915574263840475 -0.4175259561486966 -0.2865009367887664 -0.4939103319869848 -0.2032170404710166 -0.8525061025761500 -0.7470551056895179 -0.8704712147963954 -0.6021654256915009 -0.6238331380559238 -0.2855855561303914 -0.6225569675320149 -0.2935555722964330 -0.9589648176738705 -0.9601991287755726 -0.5852953296215396 -0.6340552231766458 -0.6093081552867891 -0.8201434308862593 -0.2822697850577675 -0.9967785368852289 -0.2335465394107082 -0.6133704666150794 -0.4904032972340310 -0.1486629614533488 -0.8344672104592319 -0.9135908892417143 -0.7375622842785539 -0.5897558904109929 -0.1098753606683376 -0.9272881333662260 -0.6750529795155394 -0.8462439715445221 -0.2697821392669694 -0.7935084333473916 -0.8943474250522346 -0.2476696228020709 -0.3595067971832537 -0.8828856110778583 -0.6013691126210915 -0.9341383640410316 -0.4639396851498175 -0.8290389292699053 -0.9429304352276578 -0.8081843415934805 -0.2868742714089621 -0.6535422941066777 -0.6023122114508395 -0.2223677379303567 -0.6361442691922778 -0.3982437177621924 -0.5200912939619448 -0.5758078305226627 -0.7748887228869331 -0.1868994335680947 -0.8514212268643726 -0.3243979065563521 -0.4913208241743346 -0.0238366876477415 -0.1780986630421012 -0.8175212786729061 -0.9890372316210527 -0.3728789405866972 -0.6985932887801443 -0.3352356552544678 -0.3583583587778792 -0.4466220774815540 -0.0073745961146291 -0.6395481290571057 -0.5310219901165730 -0.7821001015015184 -0.2685203738424503 -0.1438215294677934 -0.5978443760279027 -0.9795823619109548 -0.3137689628064870 -0.3214138467598521 -0.8115559552087143 -0.2312886358012007 -0.8212584584657652 -0.9204949582089900 -0.0535134842000858 -0.9994410687255284 -0.6078550477689345 -0.7973926779009489 -0.1996560290000941 -0.5062876995415149 -0.8106786658315915 -0.0578425989842830 -0.5827079546553868 -0.0432037154811639 -0.5040317224858045 -0.9355691016054981 -0.2346848591614981 -0.5349390666455331 -0.9174472475955017 -0.9493137647333125 -0.4753405498076677 -0.1103976875454604 -0.7558087927388618 -0.3570947260322702 -0.8038972094324570 -0.3579640237972918 -0.7760442284305953 -0.3810516153211138 -0.1975746340404962 -0.8492999204369951 -0.6765546499587541 -0.1665838822246852 -0.1122785128910717 -0.2931939247600330 -0.7919951366782531 -0.0000582404213271 -0.8365080694915067 -0.2203637985585991 -0.6121296532474468 -0.2632961130913377 -0.0167285780013336 -0.4663309861016941 -0.7681799354590529 -0.3578060430860387 -0.2507600408199844 -0.5213115453088991 -0.3586892252566525 -0.6067751293117634 -0.9444632137746499 -0.9554219865588455 -0.5440689530350660 -0.1909700800250211 -0.1093806604767160 -0.7921633027842446 -0.1450294874919295 -0.1471985053609071 -0.0840312398289538 -0.0154118778449698 -0.4113809834270833 -0.3409183263468049 -0.8245251809130726 -0.6855985912090038 -0.2734045968044596 -0.7470573345824032 -0.7955318051569673 -0.0098127554247992 -0.6683780880410551 -0.1955225398256463 -0.3766197726646677 -0.0391047380371551 -0.2781487271629544 -0.1364691784907707 -0.2850721502751419 -0.0328973603833372 -0.9943792719896820 -0.6688384792981219 -0.4181112610271447 -0.1958179163192384 -0.9487291300060424 -0.3077654564242168 -0.7734300984283474 -0.6001396078131837 -0.8288257992036374 -0.0598446880534251 -0.0041856455700249 -0.9894728358865287 -0.0264532417712930 -0.4804227234935126 -0.0209322318342958 -0.9079223600125221 -0.9942765238896506 -0.5695570360172535 -0.7908262776651667 -0.9298491328745901 -0.2208941532330675 -0.4179045817888594 -0.6575322667894352 -0.8683361463991330 -0.0839274555745167 -0.5310017743192919 -0.5588325296668758 -0.0790463710490849 -0.7141867336772016 -0.4660200337484994 -0.7912064169318891 -0.8692844841966102 -0.5698923882269467 -0.4622641334170032 -0.1857573872948335 -0.5555595117353874 -0.0274413368339296 -0.1478438882769952 -0.4022779560333388 -0.8310386550646565 -0.1955024169867306 -0.8105401474647648 -0.3179930012343569 -0.0645600918293471 -0.2821075221546099 -0.8126411863275826 -0.1958498653224454 -0.3417382871033576 -0.5429096178775660 -0.0584930853678110 -0.4318403446245803 -0.3400144716621019 -0.9163287579962210 -0.6570576629613014 -0.4512718082641197 -0.9918900189591481 -0.4125872327658243 -0.3068165288947494 -0.3917093909562097 -0.3211895063719646 -0.3791139793096455 -0.3120045087232532 -0.1830462244693473 -0.5714279559387955 -0.2432982030208981 -0.3619224357655671 -0.4432778294797055 -0.7380736063012061 -0.9969313795461562 -0.5796349622748407 -0.7489459668531810 -0.7253672276173816 -0.5964103996236462 -0.2396655416315751 -0.0793554566490335 -0.3066772003296285 -0.5463786145232832 -0.0368418381532545 -0.9528706490181399 -0.6710863315232413 -0.2502500622002418 -0.4954620639638203 -0.2095527133076652 -0.4969308697084986 -0.4630343362496562 -0.7156447186913564 -0.9234436793840297 -0.1856394858598623 -0.3900936852835272 -0.6562750780860392 -0.6782481697309971 -0.0911612232140149 -0.1506002710545582 -0.4054244376561835 -0.4151740738781450 -0.9276398938602863 -0.6659787134123577 -0.9664801684939164 -0.3115282554454715 -0.8850230123909625 -0.6794787234586774 -0.2039261229292699 -0.5261577562343004 -0.8031207979755999 -0.6089336135656924 -0.7589013122320359 -0.3252171220337829 -0.2898318363065108 -0.7628518731394488 -0.1208005967267066 -0.4226086253200432 -0.4642084456183688 -0.6308854486034864 -0.1873009554916036 -0.6745428364676211 -0.3021643928953425 -0.6945713970307663 -0.2122282798610379 -0.4109919470346464 -0.2792336701373840 -0.6547910278041879 -0.2040536576239929 -0.8670961185862694 -0.8436951669448575 -0.7947723365945589 -0.7520419119893480 -0.7868348879649741 -0.2582729804497911 -0.8551167038829224 -0.3565121290335632 -0.1988301591539327 -0.1253561067512468 -0.3366010045544819 -0.3272425311344930 -0.1538595967543899 -0.1033105160116152 -0.3743997170512169 -0.6153147887679208 -0.6675935686067275 -0.8367262623602036 -0.6291700812098902 -0.0581007481140927 -0.5781984136712619 -0.2994004347902761 -0.2100447758866776 -0.3443339876707654 -0.0288499938062725 -0.3475022184142304 -0.7603928954830640 -0.5794945515381902 -0.5742942870031563 -0.0880799601167812 -0.1316003510675131 -0.2672551380763951 -0.4159943880195391 -0.5989595178839436 -0.2079628915883681 -0.7947277676573256 -0.7012523488967064 -0.3131759144170164 -0.9430180194210784 -0.8093026915237201 -0.7638995751704638 -0.9863321525652662 -0.4003011775272923 -0.9392228653340066 -0.5293987821876242 -0.0699443843988401 -0.3134108149213973 -0.7679636839503412 -0.2065000836745334 -0.5092162007580897 -0.3550337294465232 -0.2625737652496218 -0.3582208438688635 -0.9962482615397005 -0.7136425903233395 -0.9873002903568326 -0.7940620208707384 -0.1919963578354481 -0.6051337418560589 -0.2133650689005113 -0.9788801647903563 -0.4018239919361203 -0.9855890087001478 -0.8940523377283587 -0.3345351792526688 -0.9332820447600124 -0.5065539962732061 -0.9850765452102191 -0.5451311385903999 -0.6739192120991860 -0.8995240635621277 -0.5550385370458792 -0.3985632869525510 -0.9486246686280224 -0.3963824622451271 -0.0923621929153820 -0.4044468670200175 -0.9129165705540221 -0.2474533411648938 -0.0907881496037106 -0.5333879332631586 -0.0824018675289126 -0.2441935596529791 -0.5602324445708283 -0.2031084500396330 -0.3395845457034887 -0.8651871658783690 -0.1909952863567097 -0.2795872739642140 -0.8312696340084913 -0.7787417059599778 -0.0449367160743683 -0.4692373597415473 -0.1408660435935495 -0.4078630996645722 -0.9620032624635270 -0.2366611129563654 -0.5014567508919666 -0.0981788114016942 -0.1806323541546026 -0.4900608810254211 -0.2257804796681363 -0.6635944289309471 -0.5115215380743492 -0.4660595600809136 -0.5893662854201182 -0.2212515715943369 -0.0890093449785207 -0.9642799094591201 -0.7520228015470677 -0.5725258426375218 -0.2807641908627197 -0.9622855547195419 -0.6132306130320873 -0.1471264854779259 -0.5576803869075215 -0.5224653336349999 -0.4353217702014705 -0.2121603219439661 -0.5072724887865836 -0.3664609952382488 -0.3621023188399063 -0.0568475790644856 -0.6277682176611352 -0.1804715445896593 -0.5440077939177549 -0.6382937479031150 -0.1863015302591411 -0.4739561207873199 -0.9198099739242492 -0.4462258281478695 -0.3780301601045438 -0.1416867369433903 -0.3206521623141904 -0.8805001012584773 -0.9963772804791737 -0.4617856603383861 -0.6395592546966653 -0.2299436212495613 -0.5523120968280731 -0.0390347512883195 -0.9754607130246790 -0.6898141941820103 -0.6098647799232504 -0.0011919751190465 -0.2742158816023777 -0.0129619504510874 -0.7112811891677699 -0.8748053417175690 -0.7771672829000217 -0.8636747421080946 -0.2008204071149156 -0.1670931862843831 -0.9930516449781763 -0.2295481356655345 -0.4619626182430470 -0.2716373586077914 -0.4774434444031093 -0.1554564497529733 -0.5801407455126777 -0.9251803686711203 -0.5870197311906299 -0.4426079411888729 -0.8193189482072215 -0.9469464587102370 -0.6456911458242299 -0.6790549569637353 -0.4549697186771808 -0.7432000533939859 -0.4987473965562773 -0.0215206591826416 -0.4239912636305227 -0.3798668775474282 -0.5902707500336405 -0.4617226843808971 -0.1450335004744172 -0.8270521721189605 -0.4798500419297958 -0.3531084288980881 -0.4127904888076044 -0.3979812311811942 -0.0633748050049529 -0.9628699220321748 -0.2808764620100573 -0.7951747844806449 -0.6440324052030922 -0.8268915145821329 -0.6776694233399565 -0.7476721154021942 -0.7913956135491885 -0.4438037611563914 -0.1894062094066217 -0.6742821959559429 -0.0751962319153344 -0.4171746726632544 -0.8028094818238460 -0.5741540631774584 -0.2119586184816012 -0.7002240855906146 -0.5915092902196697 -0.4088850928024466 -0.3891466494839805 -0.4450613685799698 -0.8605063273274033 -0.7619769015116673 -0.4109791488118166 -0.6995209428283368 -0.7927465224293798 -0.6651371873253121 -0.8783821906590518 -0.7324899106003891 -0.9787996433785298 -0.2243933711503675 -0.3396867072456570 -0.9706742302917581 -0.4226697559960621 -0.4053856578671966 -0.4299848906994959 -0.0195538050942645 -0.4882446058399408 -0.0050335943612510 -0.6184150514021836 -0.7436742538352471 -0.9760423311005739 -0.4809790251925535 -0.8281110640624487 -0.4293368810785904 -0.7447513040531746 -0.3658407082754213 -0.9347167863565927 -0.5756712042417134 -0.8907119866888689 -0.5040296297570688 -0.0431348307802444 -0.9924178790289504 -0.1382007251365877 -0.6552489912530833 -0.3028184124450130 -0.6008649706098884 -0.2387731461416915 -0.6260593296138161 -0.3966320214295392 -0.4410662055655723 -0.3598054629319845 -0.1273167659069661 -0.5659734413179224 -0.2577111394577001 -0.7920323294835268 -0.2084368240195619 -0.3714806785942453 -0.1605691731804975 -0.8915152147589399 -0.6678945841165947 -0.9620524271442882 -0.5115421986130528 -%% -1.0000000000000000 -0.9999811752826011 -0.9999247018391445 -0.9998305817958234 -0.9996988186962042 -0.9995294175010931 -0.9993223845883495 -0.9990777277526454 -0.9987954562051724 -0.9984755805732948 -0.9981181129001492 -0.9977230666441916 -0.9972904566786902 -0.9968202992911657 -0.9963126121827780 -0.9957674144676598 -0.9951847266721969 -0.9945645707342554 -0.9939069700023561 -0.9932119492347945 -0.9924795345987100 -0.9917097536690995 -0.9909026354277800 -0.9900582102622971 -0.9891765099647810 -0.9882575677307495 -0.9873014181578583 -0.9863080972445987 -0.9852776423889412 -0.9842100923869290 -0.9831054874312163 -0.9819638691095552 -0.9807852804032304 -0.9795697656854405 -0.9783173707196277 -0.9770281426577543 -0.9757021300385285 -0.9743393827855759 -0.9729399522055601 -0.9715038909862518 -0.9700312531945440 -0.9685220942744173 -0.9669764710448521 -0.9653944416976893 -0.9637760657954398 -0.9621214042690416 -0.9604305194155658 -0.9587034748958715 -0.9569403357322088 -0.9551411683057707 -0.9533060403541938 -0.9514350209690083 -0.9495281805930366 -0.9475855910177411 -0.9456073253805213 -0.9435934581619603 -0.9415440651830207 -0.9394592236021898 -0.9373390119125748 -0.9351835099389475 -0.9329927988347388 -0.9307669610789837 -0.9285060804732155 -0.9262102421383113 -0.9238795325112867 -0.9215140393420419 -0.9191138516900577 -0.9166790599210426 -0.9142097557035306 -0.9117060320054298 -0.9091679830905223 -0.9065957045149153 -0.9039892931234432 -0.9013488470460219 -0.8986744656939537 -0.8959662497561850 -0.8932243011955152 -0.8904487232447578 -0.8876396204028538 -0.8847970984309377 -0.8819212643483549 -0.8790122264286333 -0.8760700941954065 -0.8730949784182900 -0.8700869911087113 -0.8670462455156925 -0.8639728561215866 -0.8608669386377672 -0.8577286100002719 -0.8545579883654004 -0.8513551931052650 -0.8481203448032971 -0.8448535652497069 -0.8415549774368982 -0.8382247055548379 -0.8348628749863799 -0.8314696123025450 -0.8280450452577556 -0.8245893027850251 -0.8211025149911044 -0.8175848131515835 -0.8140363297059482 -0.8104571982525947 -0.8068475535437991 -0.8032075314806447 -0.7995372691079048 -0.7958369046088833 -0.7921065773002122 -0.7883464276266060 -0.7845565971555750 -0.7807372285720943 -0.7768884656732322 -0.7730104533627368 -0.7691033376455794 -0.7651672656224586 -0.7612023854842616 -0.7572088465064843 -0.7531867990436122 -0.7491363945234590 -0.7450577854414657 -0.7409511253549588 -0.7368165688773697 -0.7326542716724125 -0.7284643904482249 -0.7242470829514667 -0.7200025079613814 -0.7157308252838184 -0.7114321957452161 -0.7071067811865472 -0.7027547444572251 -0.6983762494089727 -0.6939714608896537 -0.6895405447370666 -0.6850836677727001 -0.6806009977954528 -0.6760927035753156 -0.6715589548470181 -0.6669999223036372 -0.6624157775901715 -0.6578066932970784 -0.6531728429537764 -0.6485144010221121 -0.6438315428897912 -0.6391244448637755 -0.6343932841636452 -0.6296382389149267 -0.6248594881423860 -0.6200572117632889 -0.6152315905806265 -0.6103828062763090 -0.6055110414043251 -0.6006164793838685 -0.5956993044924330 -0.5907597018588739 -0.5857978574564384 -0.5808139580957642 -0.5758081914178449 -0.5707807458869669 -0.5657318107836128 -0.5606615761973356 -0.5555702330196018 -0.5504579729366045 -0.5453249884220460 -0.5401714727298924 -0.5349976198870968 -0.5298036246862943 -0.5245896826784685 -0.5193559901655892 -0.5141027441932213 -0.5088301425431067 -0.5035383837257170 -0.4982276669727814 -0.4928981922297835 -0.4875501601484355 -0.4821837720791223 -0.4767992300633216 -0.4713967368259972 -0.4659764957679657 -0.4605387109582396 -0.4550835871263432 -0.4496113296546060 -0.4441221445704286 -0.4386162385385271 -0.4330938188531515 -0.4275550934302816 -0.4220002707997992 -0.4164295600976367 -0.4108431710579035 -0.4052413140049892 -0.3996241998456462 -0.3939920400610475 -0.3883450466988257 -0.3826834323650892 -0.3770074102164177 -0.3713171939518370 -0.3656129978047734 -0.3598950365349877 -0.3541635254204897 -0.3484186802494339 -0.3426607173119937 -0.3368898533922194 -0.3311063057598758 -0.3253102921622623 -0.3195020308160151 -0.3136817403988909 -0.3078496400415344 -0.3020059493192273 -0.2961508882436231 -0.2902846772544617 -0.2844075372112712 -0.2785196893850524 -0.2726213554499484 -0.2667127574748978 -0.2607941179152749 -0.2548656596045140 -0.2489276057457194 -0.2429801799032631 -0.2370236059943665 -0.2310581082806704 -0.2250839113597921 -0.2191012401568691 -0.2131103199160907 -0.2071113761922179 -0.2011046348420913 -0.1950903220161277 -0.1890686641498054 -0.1830398879551402 -0.1770042204121480 -0.1709618887603005 -0.1649131204899692 -0.1588581433338607 -0.1527971852584427 -0.1467304744553611 -0.1406582393328486 -0.1345807085071253 -0.1284981107937923 -0.1224106751992154 -0.1163186309119040 -0.1102222072938823 -0.1041216338720538 -0.0980171403295599 -0.0919089564971320 -0.0857973123444392 -0.0796824379714292 -0.0735645635996666 -0.0674439195636632 -0.0613207363022078 -0.0551952443496892 -0.0490676743274172 -0.0429382569349401 -0.0368072229413581 -0.0306748031766359 -0.0245412285229114 -0.0184067299058039 -0.0122715382857191 -0.0061358846491536 --0.0000000000000008 --0.0061358846491553 --0.0122715382857207 --0.0184067299058056 --0.0245412285229130 --0.0306748031766376 --0.0368072229413598 --0.0429382569349417 --0.0490676743274189 --0.0551952443496908 --0.0613207363022094 --0.0674439195636649 --0.0735645635996682 --0.0796824379714309 --0.0857973123444409 --0.0919089564971337 --0.0980171403295615 --0.1041216338720555 --0.1102222072938839 --0.1163186309119056 --0.1224106751992170 --0.1284981107937940 --0.1345807085071270 --0.1406582393328502 --0.1467304744553627 --0.1527971852584444 --0.1588581433338624 --0.1649131204899708 --0.1709618887603021 --0.1770042204121496 --0.1830398879551418 --0.1890686641498071 --0.1950903220161293 --0.2011046348420929 --0.2071113761922195 --0.2131103199160923 --0.2191012401568707 --0.2250839113597937 --0.2310581082806720 --0.2370236059943681 --0.2429801799032647 --0.2489276057457210 --0.2548656596045156 --0.2607941179152765 --0.2667127574748994 --0.2726213554499499 --0.2785196893850541 --0.2844075372112728 --0.2902846772544633 --0.2961508882436247 --0.3020059493192289 --0.3078496400415359 --0.3136817403988925 --0.3195020308160167 --0.3253102921622639 --0.3311063057598774 --0.3368898533922210 --0.3426607173119953 --0.3484186802494355 --0.3541635254204912 --0.3598950365349892 --0.3656129978047749 --0.3713171939518385 --0.3770074102164193 --0.3826834323650907 --0.3883450466988272 --0.3939920400610490 --0.3996241998456477 --0.4052413140049907 --0.4108431710579050 --0.4164295600976382 --0.4220002707998005 --0.4275550934302831 --0.4330938188531527 --0.4386162385385286 --0.4441221445704304 --0.4496113296546075 --0.4550835871263449 --0.4605387109582409 --0.4659764957679672 --0.4713967368259985 --0.4767992300633231 --0.4821837720791235 --0.4875501601484369 --0.4928981922297851 --0.4982276669727827 --0.5035383837257186 --0.5088301425431079 --0.5141027441932227 --0.5193559901655903 --0.5245896826784698 --0.5298036246862954 --0.5349976198870982 --0.5401714727298940 --0.5453249884220472 --0.5504579729366058 --0.5555702330196031 --0.5606615761973370 --0.5657318107836140 --0.5707807458869683 --0.5758081914178460 --0.5808139580957654 --0.5857978574564399 --0.5907597018588751 --0.5956993044924344 --0.6006164793838698 --0.6055110414043264 --0.6103828062763103 --0.6152315905806278 --0.6200572117632899 --0.6248594881423872 --0.6296382389149281 --0.6343932841636464 --0.6391244448637767 --0.6438315428897923 --0.6485144010221134 --0.6531728429537775 --0.6578066932970795 --0.6624157775901724 --0.6669999223036384 --0.6715589548470194 --0.6760927035753168 --0.6806009977954540 --0.6850836677727011 --0.6895405447370678 --0.6939714608896548 --0.6983762494089737 --0.7027547444572260 --0.7071067811865483 --0.7114321957452174 --0.7157308252838195 --0.7200025079613827 --0.7242470829514678 --0.7284643904482262 --0.7326542716724136 --0.7368165688773707 --0.7409511253549599 --0.7450577854414668 --0.7491363945234604 --0.7531867990436133 --0.7572088465064855 --0.7612023854842626 --0.7651672656224598 --0.7691033376455804 --0.7730104533627378 --0.7768884656732331 --0.7807372285720953 --0.7845565971555761 --0.7883464276266070 --0.7921065773002133 --0.7958369046088842 --0.7995372691079059 --0.8032075314806456 --0.8068475535438001 --0.8104571982525954 --0.8140363297059492 --0.8175848131515846 --0.8211025149911054 --0.8245893027850261 --0.8280450452577565 --0.8314696123025460 --0.8348628749863808 --0.8382247055548389 --0.8415549774368991 --0.8448535652497078 --0.8481203448032981 --0.8513551931052659 --0.8545579883654013 --0.8577286100002728 --0.8608669386377681 --0.8639728561215874 --0.8670462455156933 --0.8700869911087120 --0.8730949784182909 --0.8760700941954074 --0.8790122264286342 --0.8819212643483558 --0.8847970984309383 --0.8876396204028547 --0.8904487232447584 --0.8932243011955160 --0.8959662497561857 --0.8986744656939545 --0.9013488470460227 --0.9039892931234439 --0.9065957045149160 --0.9091679830905229 --0.9117060320054304 --0.9142097557035311 --0.9166790599210433 --0.9191138516900582 --0.9215140393420426 --0.9238795325112872 --0.9262102421383118 --0.9285060804732161 --0.9307669610789843 --0.9329927988347395 --0.9351835099389481 --0.9373390119125755 --0.9394592236021904 --0.9415440651830213 --0.9435934581619608 --0.9456073253805218 --0.9475855910177416 --0.9495281805930371 --0.9514350209690089 --0.9533060403541942 --0.9551411683057712 --0.9569403357322093 --0.9587034748958720 --0.9604305194155662 --0.9621214042690420 --0.9637760657954403 --0.9653944416976897 --0.9669764710448525 --0.9685220942744177 --0.9700312531945444 --0.9715038909862521 --0.9729399522055605 --0.9743393827855762 --0.9757021300385289 --0.9770281426577547 --0.9783173707196280 --0.9795697656854409 --0.9807852804032308 --0.9819638691095556 --0.9831054874312166 --0.9842100923869294 --0.9852776423889414 --0.9863080972445989 --0.9873014181578587 --0.9882575677307497 --0.9891765099647812 --0.9900582102622973 --0.9909026354277802 --0.9917097536690997 --0.9924795345987102 --0.9932119492347947 --0.9939069700023562 --0.9945645707342556 --0.9951847266721970 --0.9957674144676599 --0.9963126121827781 --0.9968202992911659 --0.9972904566786903 --0.9977230666441917 --0.9981181129001493 --0.9984755805732949 --0.9987954562051725 --0.9990777277526455 --0.9993223845883495 --0.9995294175010933 --0.9996988186962042 --0.9998305817958234 --0.9999247018391446 --0.9999811752826011 -%% --0.0000000000000000 --0.0061358846491545 --0.0122715382857199 --0.0184067299058048 --0.0245412285229123 --0.0306748031766366 --0.0368072229413589 --0.0429382569349408 --0.0490676743274180 --0.0551952443496900 --0.0613207363022086 --0.0674439195636641 --0.0735645635996675 --0.0796824379714302 --0.0857973123444399 --0.0919089564971328 --0.0980171403295607 --0.1041216338720546 --0.1102222072938831 --0.1163186309119048 --0.1224106751992163 --0.1284981107937932 --0.1345807085071263 --0.1406582393328493 --0.1467304744553618 --0.1527971852584435 --0.1588581433338615 --0.1649131204899700 --0.1709618887603013 --0.1770042204121488 --0.1830398879551410 --0.1890686641498063 --0.1950903220161284 --0.2011046348420920 --0.2071113761922187 --0.2131103199160915 --0.2191012401568699 --0.2250839113597929 --0.2310581082806712 --0.2370236059943673 --0.2429801799032640 --0.2489276057457203 --0.2548656596045147 --0.2607941179152757 --0.2667127574748985 --0.2726213554499491 --0.2785196893850532 --0.2844075372112720 --0.2902846772544625 --0.2961508882436240 --0.3020059493192283 --0.3078496400415350 --0.3136817403988916 --0.3195020308160158 --0.3253102921622631 --0.3311063057598765 --0.3368898533922202 --0.3426607173119945 --0.3484186802494347 --0.3541635254204906 --0.3598950365349883 --0.3656129978047741 --0.3713171939518377 --0.3770074102164185 --0.3826834323650899 --0.3883450466988265 --0.3939920400610483 --0.3996241998456470 --0.4052413140049901 --0.4108431710579041 --0.4164295600976374 --0.4220002707997999 --0.4275550934302823 --0.4330938188531522 --0.4386162385385278 --0.4441221445704295 --0.4496113296546068 --0.4550835871263441 --0.4605387109582402 --0.4659764957679664 --0.4713967368259979 --0.4767992300633224 --0.4821837720791230 --0.4875501601484362 --0.4928981922297843 --0.4982276669727821 --0.5035383837257178 --0.5088301425431073 --0.5141027441932220 --0.5193559901655898 --0.5245896826784692 --0.5298036246862949 --0.5349976198870975 --0.5401714727298931 --0.5453249884220467 --0.5504579729366050 --0.5555702330196025 --0.5606615761973363 --0.5657318107836135 --0.5707807458869676 --0.5758081914178456 --0.5808139580957647 --0.5857978574564391 --0.5907597018588745 --0.5956993044924337 --0.6006164793838692 --0.6055110414043258 --0.6103828062763097 --0.6152315905806272 --0.6200572117632894 --0.6248594881423867 --0.6296382389149273 --0.6343932841636457 --0.6391244448637761 --0.6438315428897917 --0.6485144010221128 --0.6531728429537770 --0.6578066932970790 --0.6624157775901721 --0.6669999223036378 --0.6715589548470187 --0.6760927035753163 --0.6806009977954534 --0.6850836677727007 --0.6895405447370672 --0.6939714608896542 --0.6983762494089731 --0.7027547444572256 --0.7071067811865478 --0.7114321957452168 --0.7157308252838188 --0.7200025079613819 --0.7242470829514671 --0.7284643904482255 --0.7326542716724131 --0.7368165688773702 --0.7409511253549594 --0.7450577854414662 --0.7491363945234596 --0.7531867990436127 --0.7572088465064848 --0.7612023854842621 --0.7651672656224592 --0.7691033376455799 --0.7730104533627372 --0.7768884656732327 --0.7807372285720947 --0.7845565971555755 --0.7883464276266066 --0.7921065773002127 --0.7958369046088838 --0.7995372691079052 --0.8032075314806452 --0.8068475535437996 --0.8104571982525951 --0.8140363297059486 --0.8175848131515839 --0.8211025149911049 --0.8245893027850255 --0.8280450452577560 --0.8314696123025456 --0.8348628749863802 --0.8382247055548383 --0.8415549774368987 --0.8448535652497073 --0.8481203448032975 --0.8513551931052654 --0.8545579883654008 --0.8577286100002723 --0.8608669386377674 --0.8639728561215870 --0.8670462455156930 --0.8700869911087117 --0.8730949784182903 --0.8760700941954068 --0.8790122264286337 --0.8819212643483553 --0.8847970984309380 --0.8876396204028542 --0.8904487232447582 --0.8932243011955157 --0.8959662497561854 --0.8986744656939541 --0.9013488470460223 --0.9039892931234436 --0.9065957045149156 --0.9091679830905226 --0.9117060320054301 --0.9142097557035309 --0.9166790599210429 --0.9191138516900580 --0.9215140393420422 --0.9238795325112870 --0.9262102421383116 --0.9285060804732158 --0.9307669610789839 --0.9329927988347391 --0.9351835099389478 --0.9373390119125752 --0.9394592236021901 --0.9415440651830210 --0.9435934581619606 --0.9456073253805215 --0.9475855910177413 --0.9495281805930369 --0.9514350209690086 --0.9533060403541941 --0.9551411683057709 --0.9569403357322090 --0.9587034748958717 --0.9604305194155660 --0.9621214042690418 --0.9637760657954401 --0.9653944416976895 --0.9669764710448523 --0.9685220942744175 --0.9700312531945442 --0.9715038909862520 --0.9729399522055603 --0.9743393827855760 --0.9757021300385287 --0.9770281426577545 --0.9783173707196278 --0.9795697656854406 --0.9807852804032305 --0.9819638691095555 --0.9831054874312165 --0.9842100923869292 --0.9852776423889413 --0.9863080972445988 --0.9873014181578585 --0.9882575677307496 --0.9891765099647811 --0.9900582102622972 --0.9909026354277801 --0.9917097536690996 --0.9924795345987101 --0.9932119492347946 --0.9939069700023562 --0.9945645707342555 --0.9951847266721969 --0.9957674144676598 --0.9963126121827781 --0.9968202992911658 --0.9972904566786903 --0.9977230666441916 --0.9981181129001493 --0.9984755805732948 --0.9987954562051724 --0.9990777277526454 --0.9993223845883495 --0.9995294175010931 --0.9996988186962042 --0.9998305817958234 --0.9999247018391445 --0.9999811752826011 --1.0000000000000000 --0.9999811752826011 --0.9999247018391445 --0.9998305817958234 --0.9996988186962042 --0.9995294175010931 --0.9993223845883494 --0.9990777277526454 --0.9987954562051724 --0.9984755805732947 --0.9981181129001492 --0.9977230666441915 --0.9972904566786902 --0.9968202992911657 --0.9963126121827779 --0.9957674144676597 --0.9951847266721968 --0.9945645707342553 --0.9939069700023559 --0.9932119492347944 --0.9924795345987099 --0.9917097536690994 --0.9909026354277799 --0.9900582102622970 --0.9891765099647808 --0.9882575677307494 --0.9873014181578582 --0.9863080972445984 --0.9852776423889411 --0.9842100923869289 --0.9831054874312162 --0.9819638691095551 --0.9807852804032302 --0.9795697656854403 --0.9783173707196274 --0.9770281426577542 --0.9757021300385283 --0.9743393827855756 --0.9729399522055600 --0.9715038909862516 --0.9700312531945438 --0.9685220942744170 --0.9669764710448518 --0.9653944416976891 --0.9637760657954396 --0.9621214042690414 --0.9604305194155656 --0.9587034748958713 --0.9569403357322086 --0.9551411683057704 --0.9533060403541935 --0.9514350209690080 --0.9495281805930363 --0.9475855910177408 --0.9456073253805209 --0.9435934581619601 --0.9415440651830205 --0.9394592236021896 --0.9373390119125746 --0.9351835099389473 --0.9329927988347385 --0.9307669610789833 --0.9285060804732151 --0.9262102421383109 --0.9238795325112863 --0.9215140393420416 --0.9191138516900573 --0.9166790599210423 --0.9142097557035302 --0.9117060320054293 --0.9091679830905219 --0.9065957045149150 --0.9039892931234429 --0.9013488470460217 --0.8986744656939534 --0.8959662497561846 --0.8932243011955149 --0.8904487232447573 --0.8876396204028535 --0.8847970984309372 --0.8819212643483546 --0.8790122264286330 --0.8760700941954063 --0.8730949784182896 --0.8700869911087108 --0.8670462455156922 --0.8639728561215861 --0.8608669386377668 --0.8577286100002715 --0.8545579883654001 --0.8513551931052645 --0.8481203448032968 --0.8448535652497065 --0.8415549774368978 --0.8382247055548375 --0.8348628749863793 --0.8314696123025447 --0.8280450452577551 --0.8245893027850247 --0.8211025149911040 --0.8175848131515832 --0.8140363297059477 --0.8104571982525941 --0.8068475535437987 --0.8032075314806442 --0.7995372691079045 --0.7958369046088828 --0.7921065773002117 --0.7883464276266056 --0.7845565971555747 --0.7807372285720937 --0.7768884656732316 --0.7730104533627363 --0.7691033376455788 --0.7651672656224582 --0.7612023854842610 --0.7572088465064839 --0.7531867990436116 --0.7491363945234587 --0.7450577854414652 --0.7409511253549581 --0.7368165688773691 --0.7326542716724119 --0.7284643904482244 --0.7242470829514660 --0.7200025079613810 --0.7157308252838178 --0.7114321957452157 --0.7071067811865467 --0.7027547444572243 --0.6983762494089720 --0.6939714608896530 --0.6895405447370661 --0.6850836677726994 --0.6806009977954522 --0.6760927035753150 --0.6715589548470176 --0.6669999223036366 --0.6624157775901707 --0.6578066932970777 --0.6531728429537756 --0.6485144010221116 --0.6438315428897904 --0.6391244448637748 --0.6343932841636445 --0.6296382389149262 --0.6248594881423853 --0.6200572117632880 --0.6152315905806258 --0.6103828062763083 --0.6055110414043245 --0.6006164793838678 --0.5956993044924324 --0.5907597018588731 --0.5857978574564380 --0.5808139580957634 --0.5758081914178440 --0.5707807458869663 --0.5657318107836119 --0.5606615761973350 --0.5555702330196010 --0.5504579729366038 --0.5453249884220452 --0.5401714727298919 --0.5349976198870960 --0.5298036246862933 --0.5245896826784677 --0.5193559901655883 --0.5141027441932207 --0.5088301425431058 --0.5035383837257165 --0.4982276669727806 --0.4928981922297830 --0.4875501601484347 --0.4821837720791213 --0.4767992300633209 --0.4713967368259963 --0.4659764957679650 --0.4605387109582387 --0.4550835871263427 --0.4496113296546053 --0.4441221445704281 --0.4386162385385263 --0.4330938188531505 --0.4275550934302808 --0.4220002707997982 --0.4164295600976359 --0.4108431710579025 --0.4052413140049886 --0.3996241998456455 --0.3939920400610469 --0.3883450466988249 --0.3826834323650886 --0.3770074102164169 --0.3713171939518360 --0.3656129978047726 --0.3598950365349867 --0.3541635254204891 --0.3484186802494331 --0.3426607173119932 --0.3368898533922186 --0.3311063057598752 --0.3253102921622615 --0.3195020308160141 --0.3136817403988901 --0.3078496400415334 --0.3020059493192268 --0.2961508882436223 --0.2902846772544611 --0.2844075372112704 --0.2785196893850518 --0.2726213554499475 --0.2667127574748968 --0.2607941179152741 --0.2548656596045130 --0.2489276057457188 --0.2429801799032623 --0.2370236059943659 --0.2310581082806696 --0.2250839113597915 --0.2191012401568683 --0.2131103199160897 --0.2071113761922171 --0.2011046348420903 --0.1950903220161268 --0.1890686641498046 --0.1830398879551396 --0.1770042204121472 --0.1709618887602999 --0.1649131204899684 --0.1588581433338597 --0.1527971852584419 --0.1467304744553601 --0.1406582393328478 --0.1345807085071245 --0.1284981107937918 --0.1224106751992146 --0.1163186309119034 --0.1102222072938815 --0.1041216338720528 --0.0980171403295591 --0.0919089564971310 --0.0857973123444384 --0.0796824379714284 --0.0735645635996660 --0.0674439195636624 --0.0613207363022072 --0.0551952443496883 --0.0490676743274162 --0.0429382569349392 --0.0368072229413571 --0.0306748031766351 --0.0245412285229105 --0.0184067299058033 --0.0122715382857182 --0.0061358846491530 \ No newline at end of file diff --git a/examples/machsuite/fft/strided/test_strided.py b/examples/machsuite/fft/strided/test_strided.py index 0850b03008..d0dfb59c56 100644 --- a/examples/machsuite/fft/strided/test_strided.py +++ b/examples/machsuite/fft/strided/test_strided.py @@ -1,65 +1,70 @@ # Copyright Allo authors. All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 -# test_strided.py - -import os import numpy as np -import allo +import math + +from strided_fft import fft, mod, FFT_SIZE, FFT_SIZE_HALF + + +def python_strided_fft(real, img, real_twid, img_twid): + """Python reference matching the Allo strided FFT (decimation-in-frequency).""" + N = len(real) + r = real.copy() + im = img.copy() + + span = N >> 1 + log = 0 + while span > 0: + odd = span + while odd < N: + odd |= span + even = odd ^ span + + temp = r[even] + r[odd] + r[odd] = r[even] - r[odd] + r[even] = temp -from strided_fft import fft, mod + temp = im[even] + im[odd] + im[odd] = im[even] - im[odd] + im[even] = temp + + rootindex = (even << log) & (N - 1) + if rootindex > 0: + temp = real_twid[rootindex] * r[odd] - img_twid[rootindex] * im[odd] + im[odd] = real_twid[rootindex] * im[odd] + img_twid[rootindex] * r[odd] + r[odd] = temp + + odd += 1 + span >>= 1 + log += 1 + + return r, im -from allo.ir.types import int32, float32, float64 def test_strided_fft(): - data_dir = os.path.dirname(os.path.abspath(__file__)) - file_path = os.path.join(data_dir, "input_strided.data") - counter = 0 - real = [] - img = [] - real_twid = [] - img_twid = [] - - with open(file_path, 'r') as file: - for line in file: - number = line.strip() - if "%%" in line: - counter += 1 - continue - if counter == 1: - real.append(float(number)) - elif counter == 2: - img.append(float(number)) - elif counter == 3: - real_twid.append(float(number)) - elif counter == 4: - img_twid.append(float(number)) - - real = np.array(real, dtype=np.float32) - img = np.array(img, dtype=np.float32) - real_twid = np.array(real_twid, dtype=np.float32) - img_twid = np.array(img_twid, dtype=np.float32) + np.random.seed(42) + + # Generate random complex input + real = np.random.randn(FFT_SIZE).astype(np.float32) + img = np.random.randn(FFT_SIZE).astype(np.float32) + + # Precompute twiddle factors + real_twid = np.zeros(FFT_SIZE_HALF, dtype=np.float32) + img_twid = np.zeros(FFT_SIZE_HALF, dtype=np.float32) + for i in range(FFT_SIZE_HALF): + angle = 2.0 * math.pi * i / FFT_SIZE + real_twid[i] = np.float32(math.cos(angle)) + img_twid[i] = np.float32(math.sin(angle)) + + # Compute Python reference + ref_real, ref_img = python_strided_fft(real.copy(), img.copy(), real_twid, img_twid) + # Run Allo kernel (in-place) mod(real, img, real_twid, img_twid) - output_path = os.path.join(data_dir, "check_strided.data") - counter = 0 - - golden_real = [] - golden_img = [] - with open(output_path, 'r') as file: - for line in file: - number = line.strip() - if "%%" in line: - counter += 1 - continue - if counter == 1: - golden_real.append(float(number)) - elif counter == 2: - golden_img.append(float(number)) - - np.testing.assert_allclose(real, golden_real, rtol=1e-5, atol=1e-5) - np.testing.assert_allclose(img, golden_img, rtol=1e-5, atol=1e-5) + np.testing.assert_allclose(real, ref_real, rtol=1e-5, atol=1e-5) + np.testing.assert_allclose(img, ref_img, rtol=1e-5, atol=1e-5) print("PASS!") test_strided_fft() diff --git a/examples/machsuite/fft/transpose/check_transpose.data b/examples/machsuite/fft/transpose/check_transpose.data deleted file mode 100644 index e1a58e02ef..0000000000 --- a/examples/machsuite/fft/transpose/check_transpose.data +++ /dev/null @@ -1,1026 +0,0 @@ -%% -250.1296711896629859 --5.2455753949252246 --3.2814349802751104 --3.1714384420881636 -9.2855029198983328 --8.3522699178462307 --3.6519085690781727 --8.2163741860630175 -6.6115817812087352 -6.5765903496434284 --12.9164971917594080 --10.0176090691204820 -5.9447962704154271 -2.0444149261510747 --0.5391632390846695 --13.8703655051584924 -7.1834991697764252 --8.6521996719153744 --3.9375255193480450 --0.1725023333572540 --8.1781777506292705 -0.2094844839889325 --5.0602806635162585 --1.5627667121914230 -10.9447150607754295 -4.0516359083840925 --1.1623100926654093 --9.3498525254649163 --8.0741086907908226 -10.6971944775613785 -5.6589397035876754 -1.7785458608365827 -1.2829979598416414 --4.7665653135783126 --6.4335948150195321 -13.9468133160030554 -2.4758296439859770 --3.3756443355644961 -8.2684535305900742 --0.7890503429090234 --8.6576653609165977 -3.9590532721855469 -10.6318084990840838 --9.2591511823878658 -11.7539414887100762 -1.1019601751483465 --9.5878667836115525 -15.3065582718145521 --3.5289159400001808 -6.5478796676299060 --7.7521882420708081 --5.0490065421343697 --0.6615146560269562 --1.5275288989118270 --1.3677259902150833 -7.6939182631161600 -5.6891146239634427 -6.2667489218390662 --3.3231110707608962 --6.7782375850651260 -7.6028800468149722 -0.3836136146710469 -3.6276850616235521 -10.9068001191605788 -6.8379529081148291 -8.2707218030305931 -11.3650223795169580 -0.7076656648916790 -0.3821125011678688 --4.5054867278863782 --3.6339165856050655 --4.9987788203061871 --6.7127886018931955 -1.9116272415860627 --3.0757372428792134 -9.9135329257086156 -5.2372133469977946 -6.0824282523994349 --9.2806293254595928 --3.2950265746846199 -1.1618843395462259 --10.2172881929805808 --2.2804838172142574 -3.0282779935853794 --3.1787856971649990 --3.5898298397602306 -16.7789340465882262 --5.7510579093334124 --0.9723407703926821 --3.1579293486420736 -11.8437360985975513 -0.5522697571954658 --6.4158462656805124 --8.0484284088286770 --2.6513276198866036 -7.0288934771503309 -7.7152592932479731 --2.9651131258948036 --13.9771595578063419 -11.8993405021215750 -11.2672560959448678 --3.6074914559968736 -12.5496316440712370 -12.2452939484823524 -6.0708343909689377 -11.8084406100641157 -0.5732007167236843 --13.4081247748326149 -5.0898038455975065 -1.1056679591126870 -5.7707995108552197 --2.9150421229700356 -6.8154955528644976 -11.9099468802341910 --5.8810193606487298 --4.5001937264079270 -11.8865338983610087 --1.7996615971276571 --1.6305927571064820 -2.5612690690317277 -1.3178023711770135 -5.8828781467253926 -6.7166308471441285 -4.0689284660320437 -4.6592402858435955 --6.4196959412374373 -2.8089352396221976 -1.0918340217854294 --1.3918176370995710 --6.4683652548057697 --2.8649354240161022 --12.5089863369682597 --7.1069417304253921 -4.7313061384336557 -2.5872262707265903 --1.6031281363662551 --4.8344515867433424 -0.0258844835721894 -6.3129657935171757 --12.6785735680072236 -17.2788210775134807 -7.5188057049526016 -0.2351879894171924 --0.9766403790237286 --3.7450681216089765 --3.4029993492501718 --0.0066432904209863 -9.4444228026842492 -6.4856112837631628 --1.3105881267940367 -6.8254587078016273 -2.3727164548778559 -8.4881307138843844 --5.0772258660189165 -4.2193029158040138 -7.8232450561416531 --4.2495483183922298 --3.5559039147195168 --1.5393083934701828 --5.1542638533179996 -1.3746706253537924 -0.8763956520923006 -7.4220404732286793 --8.4970716348442146 --4.2408043493699488 -2.9883417581427296 -1.7287873772819848 -8.1901811203683756 -0.7773515158879030 --5.5974212935322143 -7.8978631070269278 -4.2559721219948807 --1.5462096681009196 -10.8772987332628190 -1.4191582748676863 -1.8279382016151930 -3.5905282371385203 --2.8984761497748712 --11.4014841473245063 -1.5608102261059031 --9.2323404306689696 -6.0163951225737193 -12.7237762598256161 -5.0318100970558071 --8.9818794030374995 --9.4235864608531923 --1.6281020333690674 -0.6824888193984573 --6.1440985231248266 --14.3819240609081831 -3.6193120585767087 -10.2031386587078039 --3.6574404344436999 -6.4093487430525800 -5.8574493518563546 --3.5687116393421094 -16.4629652645047280 -11.0206480346330764 --15.2318210693557212 --13.9078093717638698 --8.8473448392043750 --3.2424061031086584 -6.7163301995844797 --0.7320807104391243 -3.5757458322002229 --2.1435021342954110 -2.0686189982432852 --11.5855044998300389 -0.4443025011264807 -5.9269653594993876 --13.7978947326510344 -6.3189883070741377 --4.6398433787212827 -4.3325244455368708 -3.4815327342192086 -3.6683930231105606 --1.8549323951378791 -9.5987103636009898 --7.2448887523002297 -3.4385034626747166 -4.0113170365153081 -1.9820676960675874 --5.0977581089315169 --1.8494531695543683 -7.5622695646118343 -5.7105577198938020 -9.7983340937814791 --7.2811303013355211 --0.2923207888904580 --3.9484147785186776 -7.0008946506944421 -3.5468843328761022 --2.1973491414519351 --9.5212877302558443 --3.4379872485031617 --14.8211294958797311 --6.2703191223486678 --4.2129721529995745 --5.8322202388699349 -0.6839820495141575 --2.5407682224617023 --9.9505624938677464 -9.0180806412096004 --0.7326102660583862 -8.2174322002642093 --2.7750824119626127 -1.9669496690678228 --16.2942061021974887 -4.5479323006652059 --3.3753884382758916 -0.9633332505041663 --0.5841106780520262 --9.1396926263998886 --9.2542478516497102 -9.2355289703137977 --3.4787753843194373 --10.2217601587914260 -10.1884398149946342 -5.8795578732986282 -2.5535907128339268 --5.9795859686344226 --9.6244945895662237 --3.1639285466466029 --9.7368882504207726 -1.8644662356391555 --5.9064950115558865 -5.4368805015091413 --1.5975150696913438 -4.1113887170293388 --7.5868261147851586 -2.7405760458133335 -6.9562704147886292 -3.5447619146667804 -14.3865424388003138 -5.8702484778309749 --4.9380078062963992 --5.1637640950218326 -0.7770918946793259 -7.8872224168619249 --4.1678393104560501 -3.5971974183956918 --2.7087482986600993 --10.1033849808337006 -3.6515044676331243 -6.1549263214845507 --2.0765052536192092 -9.2966181372323486 --3.6930431965027557 -2.6581927507437557 --6.9182463999400801 --5.1846132776223950 --4.0782549810771771 --8.8881709097005217 -0.8806548787276474 -6.5304360892948079 -1.9122516059099350 --5.5981438147161997 -4.3628889682900320 --6.5910163536331616 -3.0187347857405218 --4.4050207436063964 --8.5986024482375392 -2.7741713427082262 -9.0120514800842102 --1.1575366002581817 -3.6860317112737357 --2.4749735459688886 -8.5181591534219390 -2.1002423689870802 -2.6479284966356769 --9.9914731474639193 --2.4997971845308444 --2.9925518033276455 --4.1352490876259269 --7.4199813987645449 --7.0630229022272513 --1.4770342756865613 --4.6535789530119445 -3.5639986481111903 -2.6802979836173586 -15.3570188813468889 --8.0847442499406732 --2.4255404301697894 --6.0989396277756009 --5.0664849760492086 --2.7380629119443629 --5.8071143260263334 -2.7928296785690514 --4.3435680351030888 --4.0123472357544276 -1.0515532284905418 --15.2728322282494133 --3.8695429757429523 --2.1098389175269698 --0.5819189935341891 -3.6471450556536755 -7.3349576539699726 -7.0144382886554606 -14.5333717475260649 --1.9798831099804095 --4.8857588793052091 --5.4966673432281592 -5.1191738861899090 -9.2164652497173059 --9.7357049008909993 --5.7626403365294800 -5.8834592011858664 -4.1056968152826467 -13.6735107721430733 --6.7427672390374163 --7.9833586875443858 --3.9419476952129449 -0.7379345595837239 --11.0674613152294548 --0.4649919523350832 -6.9355846967571475 -8.6080264571667922 -2.4117703931356855 --12.0900723288251335 -6.5914075940507120 -5.8336403697641890 --2.2862390590070554 -3.2386281997358677 -2.4868883721309709 -2.1727725365853265 --6.2664116515695039 -12.6366837647551975 -8.4609158170196643 -6.3175564886416531 --9.9559644824111011 --4.0409894466696121 -1.3225400930911326 --8.3434777799255642 -6.1511999838081044 --3.3161457197151827 -6.6857511104444338 --5.3302639725059340 -0.4805585141914035 --2.0642198910430354 --11.6697866922430791 --7.8289629091818478 --2.6456990442354589 --2.2218788094237212 --0.7049348495781820 --3.6815584357207243 -4.1561047942956151 -0.4842728142577408 -2.9468014626893693 -8.8690513827010236 -4.9478429995228819 --2.6210755809254560 --2.9308131714893157 -5.6017780089605873 -7.5669444399844910 --3.4675030261330591 --5.7798127290607404 -0.4576056944152462 --5.7703792000525702 -5.1475590582107804 -4.4466791239265850 -0.3142245214735886 -9.8977955125546426 --15.5397237162529329 --8.6093446580388520 --5.9011129349604730 -9.9166149675166118 --8.1869318067256067 -7.8186092832470946 -4.1432545152067766 -3.8274162809716197 -2.0038433055796654 -3.8134098897273963 --6.6710202388532780 --5.4956920289783611 --1.5034679342587509 --6.6477078857677938 -2.5437138459159385 -5.4851796366325498 -3.1988121825124152 --7.6717469372335394 --13.4000674563111737 --4.2927249693170779 -6.7725173463714698 -4.0336369485655217 -3.5769793054097696 --1.6457359456939462 -7.2945990208116287 --2.3643065893180752 -5.6964177182147537 --1.0375837149808405 --6.6492670752010499 -0.9051351881537895 -0.9770764712787654 -6.0620526914119308 -0.8485860043765330 -1.7833953323704865 -6.1523189809043792 --1.6440454050554218 --1.1464039627000018 -3.7518165315738763 -1.5337836858622391 -9.1311566168164386 -5.1432754371636928 -7.3979084120145799 -3.0650819283658972 -0.4000142740879520 -6.9827398950033199 --3.9873752048685733 -13.9487712072335341 -11.0225889635361121 -5.6912419542660029 -3.4945473318703355 --5.8511779640315531 -8.5865224778744746 -6.0116539153031878 -3.6120730645576860 -10.4457263650973928 -2.0561221354047117 -10.0649774383720576 --10.3626344857019426 -6.4480725517336239 --2.4531038639613003 --4.6667698763322631 --9.3118107471260441 -3.9877556073711289 -6.0176049149680679 --10.6640328896027548 --5.7969945552977524 -1.7823592371954664 --0.9417291261201803 -4.8886559028382726 --2.5559540434222505 -9.1935967884820471 -8.9261436855372338 --1.4342902878097652 --1.0079036729508144 --3.0008533932630135 -9.2322022360799956 --4.0677536619690553 --4.2769324427890600 -13.8717420441774273 -2.0572653901965561 -4.0305636192673351 -5.1905860074455159 -11.3556747802231541 --1.8934583311211803 --2.5209872531978155 --2.1626431630615848 -8.3616619444843749 -5.9012844984887121 -8.3145194963320073 --2.2851749774020016 --2.6956395397170736 -9.0682381539991059 --7.2574800743155574 --1.6767267348009556 -3.9758129672272435 -1.7207804696684201 --2.0749515656563866 --8.5459321155337094 -1.6706392334406948 --8.7192160389587983 --2.8357669623115820 -9.0851419518760999 -10.6312118918883236 -1.5708858221794926 -4.6777460399166886 --3.0429930442020430 --0.1082320705019590 -10.8172915955822102 --2.7215799344065417 -3.5684028168451629 -%% -251.6935471333077601 --2.8899000182401506 --8.5057190892917287 --0.9790892991243632 -11.9393194491995764 --8.6243448270398417 -6.2998208819888948 --0.4554152877407880 -9.3666665206300905 -2.0905534140874615 -0.8767229535853245 --0.6839118646021212 -2.3687742072979843 -2.1911852106536691 -9.4866205489669859 -0.8468137937004285 --13.9438803230460149 -1.1310258239814224 --9.2566126361450767 -7.0650095901523127 --1.7933745614237289 --1.3417277239932002 -8.3642836116708850 -3.6876831288499128 -3.5668822751533158 -0.6096392344840247 -4.9472850466416096 -2.5505630970412776 -6.7606751660979434 --1.5663917730792249 -4.4100134552061991 --5.9461681300720270 -3.4470342844008792 -7.5544700284092601 --3.8061053953986828 --10.6878643039161059 -8.3859004551927470 -0.5058854985791026 -8.2571903779552382 --4.0448218442130113 -0.9780994958986722 --0.9712972908461277 --0.7446083702290061 --10.3175531602183703 --3.2793863471565263 -2.4502126207855972 -13.3392870341402467 -9.3425952586072025 --1.3743102159673499 --3.3913991892472182 -2.3571507495004962 --6.4307245478889730 --5.4055183127577280 -4.0899003923201755 -1.0872713826727050 --0.6727144508982033 -17.8963926667944371 -4.4879774088772511 --5.6150360184216668 -2.1100527634195338 -16.5581087779198342 -3.6360751429981617 -8.9009414412565100 --5.5203915288301024 -10.8716506407508753 -2.4684010159189365 -6.7570958321119754 --6.1430621108954995 --11.2705749861048741 --4.8461794968240204 --8.1229706068101226 -4.1953918483082635 --2.6380910878272261 --10.1189847698301847 -4.5202344898952358 --2.6868800665383170 --0.8159143824085833 --1.5269536478680763 -3.4677499439739465 --5.7885833262756510 --1.0501007888624017 --4.9635865718279337 -14.4646081080770799 --1.5758919779707239 --10.9808927498824946 --9.7460544181936868 --1.3359423586125023 -10.7122047893856855 -1.2209097070197448 --8.4890817856316350 -17.6191755719956689 -6.8791834222404669 --1.0783116695613133 -5.0933109987814964 --3.5231002811200507 -4.2328139312469695 -9.3678102211655698 --7.0724092170463289 -0.9617414440872263 -3.9889998168193674 -1.3508455553174641 --0.7788469665889115 -3.6225527213483524 -6.0068902582803272 -4.3251552821508108 -4.7046905898437217 -6.6118481769274391 -1.1137619943406092 --7.8201581095957025 -3.3644348519850409 --4.7696094724545723 -1.5360088831058674 --4.1754554515215068 --0.2378122794670801 -1.6758334761381399 --4.6021944269387829 --0.8255710450205558 --5.7050260907955606 -2.4898515854008823 --9.9163611209343223 -4.2675150827598749 -1.1012705665494023 --9.2642789893371180 --1.7803684304440730 -11.2306253722560445 --6.3298215520759253 --2.2501881684004759 --0.3227739644696173 --4.2198071391495873 --9.2540965884348854 -4.8425280845682526 --1.9468057412160040 -2.3882766263806636 -10.3550227021781609 --9.1496643013798327 --5.4038996511728534 -4.5126830668160265 --12.6583342909116148 -3.2731316170371874 --1.1169321825209888 -1.2541669387307517 --14.7089588859561680 --0.2370135986244853 --3.2898716147668745 --5.4306572934086486 -2.9690494501637850 -3.1909269097714619 -5.2202268839459993 -3.9081923767557658 -0.4017157469064241 --5.9439424007702408 -3.3779443275318854 --3.8059114631568240 --3.9257476477250197 --4.7843717318891805 -4.3619703770132752 -1.1657172041722865 -4.4516691019718087 --7.1389063327678635 -0.6988671566641382 -0.5103077749539189 --7.8674949404996264 -0.5088885994241910 -3.7621500414822742 -1.8999241211155322 --7.5188356304634301 -8.5166196935119736 --0.7102020973553351 --14.1959041369549084 --5.6502408908823387 -3.4451317697234587 --2.6735944756136241 -4.1186811895815429 -1.2678507069383356 -8.3072286686745471 --8.3263326857334441 --0.4239060271126665 -8.6597045996398556 --1.3701854536417839 --0.3847419700825454 --1.0279819139102711 --10.9664790052072192 --6.2151519331941980 -5.0894202446253090 -8.4251080249883437 --2.4707823950029315 --4.8291857155120281 --1.5306993112455134 -8.5265117569493860 --3.8199885137522527 -2.6639926107848617 -10.9092146415201725 -8.8977013460290557 -3.0734602022968143 --0.4927717649994388 -3.6109958916168665 --1.9156321262838736 --8.7624153872071791 --5.2582897527513079 -4.0533512676345644 -7.4114235938931579 --9.0318073604843612 --2.1556248208373443 -5.7436265076219701 --3.8452318931781653 -1.5161974974538439 --3.4280136285403042 -0.1073975305496520 --10.1447155195222560 -4.3391964937558951 -12.8623698671610072 -2.1622774920668522 --2.4304039606580274 -11.9227819727533024 -2.6982932498542129 -0.3574323262078880 --8.6551108571494986 --2.8520210274334694 -10.7044113855641410 -1.3247888813420436 -1.3242232351196015 -0.8430960467803690 -1.4010195522627218 --13.3864542034673235 --1.8492357892625375 --2.6316308499978183 -5.7463767247813209 --5.8760394637359674 --1.2328889996854289 --2.2672906943038842 --0.8816377355910205 -11.6452335437889527 -1.7969878535857506 -5.2309651883172750 -2.5505224108484277 --10.4694933955696676 --2.2918522934335122 -0.6281908837291490 --3.4281614857750693 -6.3337739974225302 -0.0453298215129199 --3.5004488852280353 --2.2313740546084517 -0.2992612968470594 --6.3751253891012851 -0.5250105948590751 --10.7666787034223521 -11.3845926606181855 -5.1078875341275447 -2.0281477183587944 -12.2829996065423011 --6.0181542215208719 --5.7836612918674337 -10.5075904700806682 --1.7014831891182010 --10.3137006381444554 --2.9050248525422546 --1.1342952182366846 --4.5891956681743844 --7.6650283835541604 --7.3354638864219801 -4.1638474209121616 --2.1666828295355689 --1.8523011014081732 --4.3023049391031210 -8.4241345801261556 -3.4022210583073891 -3.0113500750854238 -14.1684578131446699 --5.1581966351493254 --12.5972882072977335 -2.7409726499178619 --2.1796736050077232 --4.4207858569101237 --1.4920933305925281 --2.2116046236234883 --14.4503277915932280 -9.5082997897855623 -7.1021172806401394 --0.9948895275172829 -3.8856056269652806 --4.7476060696229467 --1.1909302348688149 -0.3991836773862003 -12.5669732638193530 -5.7960436281666556 --15.7483418258205798 -8.6841325130595131 -0.0324441500864021 -5.4859499057358674 --6.0825742765828412 --0.3530861172082904 --5.7577678349693571 --12.5366273544066154 -0.8602210173030844 -2.1366282048092846 --1.6341892896106640 --4.8726959683468110 --0.9708838089317426 -1.0283778677748856 --1.5041351431617931 -6.1509602824209555 --3.0964316380189008 -24.1981980796500125 --1.8428675074289138 -3.1000494076352365 --0.8269307620889627 -11.1040780859352619 --13.8269689257178996 --3.8060921908381218 -0.3017494565943539 --5.6222476349461985 --5.1784598814347751 --5.3150539850725433 --0.6221186352235124 -5.6834469528477758 -1.0129860087339981 -4.2055741137059970 -7.7771018627949440 -12.0402907100936289 --6.8269896625061328 -8.8664120354486755 --3.6063733190397684 -6.1253784095737878 -6.7313462157718948 -10.7646508573385447 -10.3593791281398193 --4.9602435267633478 --6.0010260206039785 --6.3714427598001313 -4.2723052103162136 --2.1018514684281668 -2.8706337726024924 -4.3187803770685971 --9.5506067126955720 --4.7903674885511371 --6.2822229126427729 --0.0832152940428208 -9.6613368726168751 --5.7341499332929438 -15.6305248421463521 -4.7479156105302858 --0.1749772384328008 --2.4564140332214048 --7.1067792898026827 --0.5189774205053239 -11.2060158716866844 --5.7199104572343478 --0.4699288071464328 -3.1814455502963428 -11.1345202953020532 --12.2358453333320760 --2.2512324000039978 --0.4489505123093673 -3.7189653591703538 -6.3702367068157510 --8.1431387086772595 -3.0423369127034876 --1.1656665357954878 --6.1500726756666566 -0.1316562446786191 -3.9808790803186480 -2.3338650001041197 -3.7155688353208189 -4.9395939110960949 -3.7564269421136611 --1.7099996446504673 --2.1442013681665264 --11.7905233870388209 -3.2010417785007941 -2.3715349905255754 --0.9824068710546650 -1.0004331795450487 -2.7933094303455261 -0.0659874157230984 --0.1550387171903411 --3.5943203349167678 -1.0909252357312742 --2.5647055018969356 -5.8703875696654002 --1.2368659195148570 -1.9254031179760442 --1.9753045910417328 -3.7671523140428405 --1.6261008976179525 --14.9091225340730045 -10.0325028604170452 -0.0757225631790859 -2.1860270205549193 --0.1911984408578844 --6.7751706797149742 --2.8583657518483889 -14.6392162403521766 --3.6190899389602933 --6.1749999232539352 --15.5791547184333456 -1.8348178902293950 --8.9852207091092424 --0.3290433616670835 --5.5950047626221755 -0.6238087532015291 --2.0549376354889550 -5.5169177573821448 --5.1556195278784891 --5.6934312529408082 --9.4000300657652911 -4.5587717048155083 --6.1976853566847971 --6.1663492756721388 -2.5203374194342416 --10.7165107380035138 --0.7734787211603780 -3.8719338749336596 -10.7763296869830754 -9.0417364425319775 -0.7958587399296999 --18.0203831726954498 --0.9977245825679111 --13.0493301214298629 -3.2374695317370290 -10.2498087938397333 --1.2078634907816550 -5.7834929817627305 -10.8397348903410453 --7.5523229256696416 -9.9052623874410806 -2.6495855904568093 -0.3983944785413676 -8.5486871631692374 --10.3127290965256826 --3.1955613560324285 --8.2403042585050130 --9.6275167834246194 --10.9992258502950726 --2.5339682042082163 --2.1737681093470775 -8.9708399297054555 -9.5025584614146865 --2.3244041530863222 -10.2300909609365593 -4.4344572538638802 --0.6918472606122021 --8.1663756699012957 -4.9564095634336098 --6.1847568782820561 --6.0095640199124007 --1.2601485200373745 --5.0289130105921229 -3.1383078444726249 --9.9824546684546576 -4.5377467900749249 -1.3458050111953705 -0.0626306581781265 -5.4439094681173366 -9.8428528826382919 --5.4146310744351780 --2.7304180579791120 -1.8289917242252152 -4.1308124374211053 -15.2785455405082420 -3.2634559342781779 --3.3870629427343855 --12.2409721452546982 -3.8359385202559797 -8.8215898079948314 --0.9052953972237283 -3.2505371690635938 -7.2152624276845962 --1.9718303839885860 --2.8705627632073201 --1.6125239610455870 --2.3795184319158182 --0.1313454357397994 -2.8304650331334074 --10.8285052217121436 -6.0987540475843671 -0.7357992648121274 -19.3025181400488819 -4.5071113276994286 -10.0871854357706603 -3.5870598684492254 --0.4627030874561366 -6.8048260291435501 -12.5398995622181069 --4.3923828864560379 --9.0472079422873009 --4.6437089659720048 --16.6992456586134885 -3.7543736365216689 -0.0586926629328550 --1.0753923454597696 --9.8276736717962301 --1.2695461664772343 --4.5437163560191109 -12.6764326300234185 -2.2145604088426269 --1.8452796152111335 -0.3879799997938580 --2.2240308246505167 -8.4468304924090809 -0.6510704842439750 --3.1511935037217436 -1.4782905194262614 -13.4319921599400054 --0.6344378233816075 -0.0544423580658105 -2.0512621641459114 -7.8992219096000760 -4.5033614173403294 -9.3157018506109281 --3.3314069629681189 --8.4005230660849026 \ No newline at end of file diff --git a/examples/machsuite/fft/transpose/input_transpose.data b/examples/machsuite/fft/transpose/input_transpose.data deleted file mode 100644 index c1b7b97bf7..0000000000 --- a/examples/machsuite/fft/transpose/input_transpose.data +++ /dev/null @@ -1,1026 +0,0 @@ -%% -0.8483178396146527 -0.9316474009271629 -0.0749141099239747 -0.3243126095086337 -0.4889216894177568 -0.2003220013219365 -0.2465207945154783 -0.5009444841545747 -0.3833875674814791 -0.8638473264891788 -0.4270323830861616 -0.0263683207747022 -0.1798125277440863 -0.5388504032397917 -0.9782153590525915 -0.8309093043465101 -0.8577368190902865 -0.9543748287741737 -0.8490474371089849 -0.3694121479802369 -0.3352441047664209 -0.7552438928694989 -0.2817087394018067 -0.4852360002861091 -0.7268004045533238 -0.6343918397825450 -0.2104079488356254 -0.0395947057002634 -0.0400209978161234 -0.2976758337005888 -0.9521082225628823 -0.1866873697274503 -0.7358651200871347 -0.1361097436415447 -0.9090931683964897 -0.4604792296588825 -0.5769636562652027 -0.8616704275858206 -0.8767687582692533 -0.0279669403183254 -0.8816612565392817 -0.1866195592416753 -0.7633503369248252 -0.2150746941951263 -0.1339641300308199 -0.7161428864829403 -0.1365021466723779 -0.5001932391978972 -0.8470236345937937 -0.4470622249540837 -0.7140811894103265 -0.0127652175460312 -0.3876666127209407 -0.9958895038034786 -0.0926458725571736 -0.9676672240567189 -0.3736362838672994 -0.0488822949430138 -0.4076365668481068 -0.4603180906842517 -0.2873166763901486 -0.4365584272465929 -0.5850196896009423 -0.9590813817633715 -0.9980595552286854 -0.6068136140773602 -0.7043815368917442 -0.1974515966674346 -0.6575472564589070 -0.9454611044982865 -0.5747363779881197 -0.2194919783622648 -0.5763745454924379 -0.7153851752905834 -0.8911010718686341 -0.5206280483477259 -0.1501220678649025 -0.3812301813733660 -0.0463248309608765 -0.4254903780644615 -0.4973494195501764 -0.4281354730441760 -0.1142915128435944 -0.0804645407448647 -0.4373515560814680 -0.2582268915654431 -0.7683934478079263 -0.0766898881091194 -0.8463122892926332 -0.1107166721271598 -0.5840612962298976 -0.8557126220464411 -0.4838001677368423 -0.0621016340325793 -0.1310235740565679 -0.3776118887938892 -0.3530460812272584 -0.4149216674120018 -0.2064459122797230 -0.8343916891700796 -0.0932775064851222 -0.2731170192259920 -0.3356228717457055 -0.3267963290017710 -0.0435681404918652 -0.7228303690021292 -0.2107907960557750 -0.9615694238266003 -0.9326414560282523 -0.9394618799882867 -0.1764777376547630 -0.3732788212737727 -0.4000735922705779 -0.1120309369903489 -0.0511100243190568 -0.8575182783261570 -0.1349654718909908 -0.9723092959416103 -0.8067179481103881 -0.4657453752075365 -0.8214647023258758 -0.6642716262994925 -0.2924958180021960 -0.9396144243758447 -0.6692048055281263 -0.4554570494036198 -0.0154017302137861 -0.9462209557130911 -0.9279331770197743 -0.8926116198429296 -0.9844385803033128 -0.8235301034352464 -0.1171662519206369 -0.9738432213333370 -0.1702801969466125 -0.9700813330218533 -0.3431322540111262 -0.3521808070203251 -0.6456496860574097 -0.0078332098488572 -0.2780721231188467 -0.9308493287741327 -0.3391027675786487 -0.6387221774977941 -0.1387668025077644 -0.3193379819348149 -0.2938847760898528 -0.3760463174887679 -0.1542553433051521 -0.6639159037834084 -0.3564936178023257 -0.4878134574691712 -0.0345427675439928 -0.5848943772682992 -0.0693781648667100 -0.2191364932019932 -0.2761112415673199 -0.2440285243758249 -0.1440250692777039 -0.7614656056422392 -0.9809620066037130 -0.9348033021342805 -0.7552137859210596 -0.6065311722051752 -0.5503350398133949 -0.6275061460415338 -0.0111472337609468 -0.1246312888209616 -0.4231461451579110 -0.6484414922888584 -0.2337922181906040 -0.6779685516426726 -0.8782741573686651 -0.6177010100415349 -0.2939854446950563 -0.8761871775505162 -0.1810071211477334 -0.8720289503655566 -0.2532811225707449 -0.6100117892988954 -0.9301354739598914 -0.5191027833281141 -0.1431706944572742 -0.1708568797583734 -0.6242359909565518 -0.9782736794109049 -0.9891683505866096 -0.0196826080659797 -0.2768293352286383 -0.0768308861291690 -0.6270659160444320 -0.3147389465422545 -0.5336071033488232 -0.0120537996182269 -0.5307654724048916 -0.5153605911637142 -0.7528566241924224 -0.7033589194426896 -0.3209196647064811 -0.4410043195102882 -0.0111739864620048 -0.2863026779679601 -0.2683100918304755 -0.2979827363431253 -0.3721852873425603 -0.1633665685261703 -0.6533281645944697 -0.2843454312853405 -0.9051319563159713 -0.5983082899373767 -0.5757792223158209 -0.2692903346720601 -0.6096013896981760 -0.0901025770439411 -0.4634050247425767 -0.6204605185689965 -0.5112592424386806 -0.4937665420329518 -0.4695717035134276 -0.9097122918366112 -0.3201641400746201 -0.9905173479273656 -0.0056370341850618 -0.3921534977584564 -0.3346194563079505 -0.6360433801365077 -0.5201155310158935 -0.4362019819492165 -0.3809198621760362 -0.5670535082271564 -0.0529453230927324 -0.6790772399224166 -0.2868627608072348 -0.9392660254042972 -0.5753465166316099 -0.6541005362632644 -0.2817555840484371 -0.6612642174687781 -0.9423159385445181 -0.9174747407529212 -0.9779240481377166 -0.2986892413220574 -0.1916000764166038 -0.7468217076566656 -0.5936366233299584 -0.5410113779987784 -0.0748945408290509 -0.3395152960985217 -0.7470779072815197 -0.3161020201267201 -0.7374536219431782 -0.2805479172708150 -0.7130278376509701 -0.8459418603364357 -0.7522291563308318 -0.7673406794115867 -0.9791920811987473 -0.1123833682832090 -0.5471981463946101 -0.0433784996754932 -0.7831913287613563 -0.1725964107004632 -0.8671010177349522 -0.6393078646525761 -0.3310881842077714 -0.5352403136965146 -0.7661294193430825 -0.9244074576810648 -0.0287942216685237 -0.6707214734656840 -0.1748621195872093 -0.2273862811658987 -0.2993243342441511 -0.1768052463670724 -0.4825229633452092 -0.0222151629699995 -0.1239513072997847 -0.2987613558162890 -0.1379142600723082 -0.3440376084075450 -0.4373647696000651 -0.8535612938381643 -0.1715420896272014 -0.4749277287386244 -0.1199070948150680 -0.8089862728472129 -0.1441451973256533 -0.4292770696419592 -0.5211270487544926 -0.0011758916400356 -0.7007083090818177 -0.5281931199838487 -0.7671373984849126 -0.6021015440913253 -0.8912456482822858 -0.7899403302123719 -0.6772490738704474 -0.4708856876330734 -0.1763984475095891 -0.1463600662811033 -0.0165949685352888 -0.6068381808285457 -0.3224651525151173 -0.5148486338006011 -0.8463707450685359 -0.2157857682105999 -0.4175494429555621 -0.3779135888568587 -0.1956304117824023 -0.2671144901023431 -0.2978924140317022 -0.1791553064131353 -0.1601117923815020 -0.4436703260522413 -0.4354899010428503 -0.4863644602979916 -0.0455654999679936 -0.9061800810138900 -0.7274221170832363 -0.9082424735107425 -0.1397186081418257 -0.8710584598934502 -0.6569208507280179 -0.9408021142124381 -0.8543062414871980 -0.6782227444037920 -0.9034898824859597 -0.4495484633567567 -0.2222523874894407 -0.3137809125552068 -0.6478283781152648 -0.4165082365846282 -0.0360033802245706 -0.1218543381677559 -0.5108797423897457 -0.5180611700108055 -0.6056074920261487 -0.8779639279963387 -0.9471242759165983 -0.0824748458740915 -0.8674863090505956 -0.7868870903622686 -0.3087124472657461 -0.5009663253734257 -0.1286847456523950 -0.8405951440090710 -0.8737823046846828 -0.5714577591226613 -0.3163790157527726 -0.7294478876193773 -0.7828848822471060 -0.9947426877569866 -0.6268310698491563 -0.9471211534578475 -0.2243844220207657 -0.8573988054285285 -0.2936439994440631 -0.6987905411296418 -0.9507698943631454 -0.2277384525626225 -0.0983196954057779 -0.1158788858867381 -0.3943691258852570 -0.6522812929588194 -0.9323529611324425 -0.2505797725678027 -0.9463081170472853 -0.6972081938469031 -0.2217159609909230 -0.0158618584757915 -0.7992336160031288 -0.4916870887409591 -0.4203222451574106 -0.4954300164669786 -0.4072567181943900 -0.9436149636721938 -0.1115558766484206 -0.2133777544768501 -0.4926894729576140 -0.2288864259039310 -0.9233105307500995 -0.5522443624207825 -0.7804758780629942 -0.8577533254670533 -0.5175537145011389 -0.7458849304738195 -0.4700598126387943 -0.7256984927494721 -0.4946461243081034 -0.5928752445277561 -0.1435942641956947 -0.4530628816644502 -0.7303585087668238 -0.6771458036224584 -0.9821343857747540 -0.0328071121334004 -0.1185647260517267 -0.8226081939044526 -0.8158652049794541 -0.8828048367094834 -0.6291305933887741 -0.0868219653016111 -0.2738519339014919 -0.7144746575303565 -0.4011478376237659 -0.5007377866913673 -0.2288648035566036 -0.4618209141005981 -0.4425821772294087 -0.8664060965744277 -0.9349865168431754 -0.6358704096466863 -0.0008392427989186 -0.1111643065065295 -0.5246200509372015 -0.1354282528990725 -0.9424363035310214 -0.0744909276406249 -0.0310511640320245 -0.3761947915818324 -0.0217261429493881 -0.4949483768791444 -0.0973932294672044 -0.2981311546048886 -0.4083570361665385 -0.9868219940278903 -0.5543595302377633 -0.8069034553160739 -0.7665658438032671 -0.4969299039679246 -0.8434804973005380 -0.7665036069247364 -0.3282416327845119 -0.2149426327922223 -0.2818218695863094 -0.0961871139367003 -0.5579491260907850 -0.5867774049443926 -0.0881760013338349 -0.9878358065870914 -0.1061326855761554 -0.7271613020145520 -0.5798325617779146 -0.1155059662760101 -0.6973883104954021 -0.5049354722387228 -0.6508972709054981 -0.9006534219964644 -0.9605391610546545 -0.1394240512290819 -0.1671649450914079 -0.1664775697290567 -0.4080768206037291 -0.8477853400387060 -0.4499655955247234 -0.0255424858209450 -0.8505854782984940 -0.4636431798425881 -0.8918284279836336 -0.4856684644884649 -0.1659858594059837 -0.0238823839065784 -0.7994671317638116 -0.3751432912824046 -0.3804227384496434 -0.8413148607509543 -0.6506283850297021 -0.9766834855366925 -0.2191262745253812 -0.0248922210452291 -0.2231645580382334 -0.7404604855597532 -0.9355345620434551 -0.1653789667168293 -0.1059396938307424 -0.0020044749140114 -0.4132138001260813 -0.3312924847795359 -0.6492165403032210 -0.2445108317174756 -0.2171661955475684 -0.0119041354225503 -0.3199195886761848 -0.8799274836463801 -0.1697847195140275 -0.8799610104744855 -0.8029777980474817 -0.7691105305599997 -0.8614010915991184 -0.1349045754696620 -0.1039159475547794 -0.8460187964385510 -0.3083002773220541 -0.2412000351515887 -0.6655076815675369 -0.7731655682148677 -0.3339247226528733 -0.6582442922969689 -0.5215653744435931 -0.3567305965895141 -0.2981062040854478 -0.3833902369228816 -0.6969715537271688 -0.6615875892135347 -0.2121642451626392 -0.6571424956786973 -0.5146580817967552 -0.2742574950854690 -0.0533838274345822 -0.3421116783190124 -0.4346208023329561 -0.9428593202287435 -%% -0.6706497803768818 -0.8259915659051159 -0.6127769850532617 -0.4042432493346517 -0.0563064540342341 -0.4506809985950107 -0.6728182306226016 -0.2093887700710019 -0.2629049630806244 -0.0068903568874143 -0.6741981263711310 -0.8026358879744457 -0.6615563839200532 -0.2011487589490933 -0.2966113305625048 -0.5350148999623799 -0.7123884593841227 -0.8801106496231675 -0.1057599762765537 -0.7736908773165471 -0.1150862062662503 -0.3439478131991411 -0.2162976539518998 -0.0057640498417387 -0.5205619338920122 -0.1837588835868946 -0.1072048133407638 -0.9330220583897403 -0.0781877556303664 -0.6604415374454923 -0.0055543256941696 -0.2113213532549362 -0.4166371044168225 -0.2489126317221700 -0.8804237290693118 -0.9114630717835008 -0.2122197185028387 -0.1872496047054253 -0.0283493571356546 -0.0011739769717719 -0.2587451230366413 -0.6134283988672150 -0.7960136720771441 -0.4417212743517567 -0.3538190365232776 -0.4820827424201957 -0.7270079301991990 -0.5540293780631791 -0.6844720529281880 -0.7395825773469121 -0.1689867872929229 -0.7390011771948182 -0.3889554660143338 -0.0158743815304996 -0.2794561312296530 -0.5488249778351199 -0.9939879360511114 -0.3265921768161898 -0.7380059200028429 -0.2686659846029050 -0.0140301867513706 -0.0345076306283345 -0.7098586658566393 -0.8804033136216555 -0.1311251822393278 -0.1738269702011150 -0.9467849911595574 -0.0635165505526809 -0.8045666146925562 -0.5500252055448300 -0.2960850128458551 -0.3791679357611623 -0.3318679405186607 -0.1383370271666072 -0.9622471231685127 -0.0008209235817533 -0.2858982586997720 -0.9627033012525220 -0.5536461903980735 -0.0203918495292208 -0.2673520692161342 -0.3587292238852842 -0.0093934765497702 -0.0284739994461690 -0.5054042027492341 -0.8181935096212357 -0.5459306504169178 -0.9984011518683296 -0.4788924934998232 -0.9047358057561707 -0.6958031753814037 -0.0826713344650157 -0.2449075192032626 -0.4332419552713540 -0.7481090411770011 -0.3337436210362408 -0.1288111479371150 -0.1393425109365868 -0.3694359018085516 -0.2161886277610609 -0.0868289540623030 -0.2809660913222927 -0.6834390896658262 -0.6599492802927122 -0.0703576285531474 -0.8851721422324230 -0.0784159016220343 -0.6775815611931443 -0.8723857873635551 -0.3442387428829488 -0.7488398469947676 -0.6865869483303326 -0.5721400649461029 -0.5113942038836549 -0.7175259320021290 -0.5784878853002242 -0.1192925964151463 -0.3728264511453223 -0.3324480279209299 -0.7348138089866270 -0.9113418227917187 -0.0133558732261029 -0.0444334379695671 -0.7655890089284283 -0.8380837128929514 -0.6909078386850797 -0.8479124776327206 -0.7677202200246880 -0.5153327254961750 -0.8930457828966226 -0.6018790515210961 -0.0665720402909682 -0.5962448507692394 -0.3392590904124880 -0.1112857249315309 -0.5367884989765819 -0.9916240181373843 -0.8331481345246642 -0.2994661478507417 -0.8627726556183214 -0.6182353827040976 -0.6149876265111006 -0.3531793653091488 -0.5143005186400568 -0.5926468898446244 -0.3649024825358713 -0.5343363005946771 -0.5725036130122593 -0.3174075718189375 -0.3751798269431847 -0.6578860801973966 -0.9332728824329765 -0.1146445520498136 -0.1662239710723725 -0.8694019864172604 -0.7499672365062569 -0.7271363734624335 -0.9430020624479579 -0.4132824422670823 -0.4837363618225233 -0.4671709271543480 -0.4537214639120629 -0.7954668379373012 -0.2438654997599063 -0.4419460762806375 -0.6777206266673230 -0.9957734162654772 -0.2480800843375707 -0.1280403970412000 -0.3644668863337679 -0.9616873414436868 -0.1868708749314857 -0.6930411666732398 -0.5780037143603487 -0.5608423882500977 -0.6441989655644730 -0.9713249811202351 -0.4294390166286234 -0.8969774741365252 -0.1960699631492769 -0.7224530353170772 -0.1268089950416111 -0.9397683680282519 -0.5315018323429732 -0.2254886187046609 -0.0429141142621825 -0.2024717685614631 -0.6910933955316909 -0.7314732999603543 -0.1551093873719042 -0.6743060895480667 -0.4556540188327001 -0.4432436833380574 -0.5606860679844500 -0.6319108687982481 -0.0116703069980435 -0.2322452408551318 -0.3536862332363362 -0.1158322695030433 -0.9634522939857088 -0.8487323055999937 -0.4353499310626945 -0.6302969530620972 -0.1274088565446815 -0.2453010715007161 -0.7126333281485220 -0.5808262573450925 -0.5096368273743479 -0.4906882869254115 -0.6495880834323012 -0.0233123321742689 -0.0041469810558323 -0.8805597089399800 -0.2018707114365797 -0.3379314576230700 -0.4753747255809189 -0.6616274253970083 -0.3197317654981836 -0.2874055811093641 -0.0698162859045715 -0.5185972464080254 -0.3712390779666960 -0.0395522598727142 -0.8522029796288904 -0.6429233013492220 -0.1716043134564161 -0.0245860778925260 -0.1192679823597833 -0.2251123162515863 -0.2278627039406244 -0.6021001931781610 -0.7716493715297760 -0.7086536443199765 -0.6378488996151952 -0.9778896639349272 -0.6175561601799165 -0.1438112390964338 -0.5655215638728978 -0.8964914023258709 -0.4929803186620192 -0.3181047984817529 -0.2571762285898997 -0.5341139182822019 -0.4481070842468913 -0.7442557099061952 -0.0755455037462515 -0.0881736635594114 -0.8292182561831798 -0.4702901568278792 -0.3172165412962517 -0.5192743623627130 -0.0639664291315532 -0.7885729748132124 -0.8739453984594142 -0.2044745982999192 -0.7544967854617538 -0.6899486205135590 -0.9665559358594927 -0.1942611672076565 -0.2071430333395867 -0.2651524610606420 -0.6428563324162907 -0.6081367216327236 -0.4238958468282013 -0.7672532189318672 -0.9786971502709926 -0.0170800252756996 -0.5413752736159771 -0.4882800093012846 -0.5664635732064296 -0.4535325668908858 -0.4184044325889613 -0.9097756987185860 -0.4766618682549004 -0.9760491135221880 -0.6888504370810208 -0.5485435178768772 -0.5561370316148891 -0.0094666403269690 -0.3360619728116845 -0.4604348339427876 -0.9134297132560247 -0.9908922097051105 -0.1251950412031655 -0.5663664606143862 -0.0945400483940218 -0.4625197493670939 -0.8639195447432346 -0.0039262799519478 -0.6833368379014721 -0.7422283452747417 -0.3367793143998574 -0.5412184398424924 -0.3761234842735970 -0.8815788022034485 -0.6074823902030668 -0.4777707505251232 -0.9635916031584622 -0.2727502301296457 -0.1733453829569238 -0.8644986842700396 -0.9691780174692244 -0.2882628109384491 -0.6786791865359718 -0.8478671149035980 -0.4535076944249774 -0.1640098684409771 -0.4073202121801956 -0.5009583692983397 -0.9463817489661509 -0.0961353922326324 -0.1998223443867649 -0.7008862334619737 -0.2881202049236278 -0.3458537061813881 -0.2114514447990400 -0.0648526139252205 -0.8359259337698395 -0.7136411968729466 -0.8839727629895447 -0.4485996609021738 -0.4126785318598829 -0.1302233136776000 -0.6566698732369666 -0.7658415354209089 -0.0691474385841039 -0.5299372100597235 -0.8072030763876551 -0.7386502398203574 -0.8163976724866837 -0.9099590634362089 -0.1079579315030378 -0.1217338602508726 -0.8398682867388026 -0.0527879920083521 -0.8411987867709243 -0.5329342173929354 -0.0519388465693226 -0.8361373832400553 -0.6360358915176915 -0.7620059555978824 -0.7335875744925811 -0.7068483685535193 -0.8204346828900280 -0.2406901567099838 -0.3119376161816957 -0.8188672952427822 -0.0569869927182464 -0.8160735672225893 -0.1962001548817530 -0.6846908215984758 -0.0249193853783506 -0.5050224922572938 -0.8070765288638290 -0.9050568111880135 -0.5962573669748086 -0.1064109752073065 -0.8717233586021045 -0.7111238873247069 -0.8958953958961852 -0.0124857341852776 -0.3721871578061370 -0.1618305771923772 -0.7515039566733900 -0.7107271696811842 -0.2336812851484666 -0.1458156473180457 -0.9620985323087055 -0.8275964656273100 -0.1190767363568868 -0.9233858731422754 -0.5322410813615738 -0.0985540318104040 -0.8424411570469573 -0.0666493030651335 -0.5341925877342263 -0.5394414482514946 -0.8742698174359415 -0.7370734913518688 -0.0641610061811848 -0.7294092153878285 -0.3213275986725672 -0.1358937559382011 -0.5447052195538291 -0.1646240051946704 -0.1159073445476051 -0.5472078151545781 -0.7913238484821290 -0.2545447567715644 -0.5902198217476829 -0.6180104514739206 -0.2679718156247742 -0.6567257066434474 -0.4768088481712171 -0.8438998411194075 -0.8018278899795357 -0.7121966511487732 -0.9440082058646051 -0.3903038249845164 -0.6657680925264067 -0.9707962023941167 -0.9758816432468408 -0.5180344881975328 -0.4590301346752441 -0.5790243849919570 -0.9827581127256924 -0.7580890772895353 -0.0282653007892825 -0.4742266549813303 -0.5206714623709152 -0.0880362523484991 -0.9441696695392323 -0.4154944551240305 -0.4854395925471128 -0.5980708329728217 -0.1514730782817679 -0.2277850588198586 -0.6003959811473946 -0.4138648613445658 -0.5214294374618673 -0.5357899328102427 -0.1126604961733214 -0.3978861271719195 -0.1572100962678205 -0.9684761870036048 -0.2823789715122690 -0.7350302037352653 -0.2226577397656659 -0.2146205511975388 -0.7368134024381822 -0.6851977195850656 -0.2901994887952524 -0.2484031578734452 -0.8406937400471280 -0.7330257783888604 -0.6786698842197517 -0.2108314045756776 -0.9729048073557747 -0.1308633059219713 -0.8793668353727628 -0.3849229287904603 -0.1940388764205123 -0.1682749150222659 -0.7803041144613144 -0.7925818205728924 -0.6160000615567424 -0.6645809359455023 -0.6374354155824379 -0.2899256792758656 -0.2300623404836308 -0.5242963335351867 -0.1784243876633100 -0.2478678303610563 -0.6137636967201309 -0.1159975240188399 -0.4192057281273810 -0.6103248712962920 -0.6050614699403944 -0.6385246389661129 -0.7328477801951783 -0.1442908280252166 -0.2314561865539927 -0.6455315357936088 -0.0036223892582007 -0.0890605637757619 -0.6577781560016939 -0.5651268147351131 -0.5703656983239329 -0.5241197109565234 -0.0928816194038764 -0.5691972941463214 -0.8203219486093015 -0.2960977178239230 -0.4965672877217533 -0.2267953990067369 -0.1616474206061058 -0.2368359225241292 -0.8386880802324272 -0.4304339747920264 -0.8145921244355058 -0.2926089852252082 -0.4587937530266486 -0.4627877133550086 -0.9834880148784035 -0.2091795422250676 -0.8352278251817872 -0.0575487671296270 -0.3627326891505497 -0.6041543996670723 -0.0240717091937075 -0.4567222795141845 -0.4187870842887678 -0.5690436201072602 -0.3836306545353996 -0.7612922517768207 -0.5830063635525695 -0.7915574263840475 -0.4175259561486966 -0.2865009367887664 -0.4939103319869848 -0.2032170404710166 -0.8525061025761500 -0.7470551056895179 -0.8704712147963954 -0.6021654256915009 -0.6238331380559238 -0.2855855561303914 -0.6225569675320149 -0.2935555722964330 -0.9589648176738705 -0.9601991287755726 -0.5852953296215396 \ No newline at end of file diff --git a/examples/machsuite/fft/transpose/test_transpose.py b/examples/machsuite/fft/transpose/test_transpose.py index 4e064ae2ce..7667774281 100644 --- a/examples/machsuite/fft/transpose/test_transpose.py +++ b/examples/machsuite/fft/transpose/test_transpose.py @@ -1,57 +1,26 @@ # Copyright Allo authors. All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 -# test_transpose.py - -import os import numpy as np -import allo from transpose_fft import fft1D_512, mod -from allo.ir.types import int32, float32, float64 - def test_transpose_fft(): - data_dir = os.path.dirname(os.path.abspath(__file__)) - file_path = os.path.join(data_dir, "input_transpose.data") - counter = 0 - real = [] - img = [] - - with open(file_path, 'r') as file: - for line in file: - number = line.strip() - if "%%" in line: - counter += 1 - continue - if counter == 1: - real.append(float(number)) - elif counter == 2: - img.append(float(number)) - - real = np.array(real, dtype=np.float32) - img = np.array(img, dtype=np.float32) + np.random.seed(42) + + # Generate random complex input + real = np.random.randn(512).astype(np.float32) + img = np.random.randn(512).astype(np.float32) + + # Compute NumPy FFT reference from original input + complex_input = real.astype(np.complex64) + 1j * img.astype(np.complex64) + fft_ref = np.fft.fft(complex_input) + # Run Allo kernel (in-place) mod(real, img) - output_path = os.path.join(data_dir, "check_transpose.data") - counter = 0 - - golden_real = [] - golden_img = [] - with open(output_path, 'r') as file: - for line in file: - number = line.strip() - if "%%" in line: - counter += 1 - continue - if counter == 1: - golden_real.append(float(number)) - elif counter == 2: - golden_img.append(float(number)) - - np.testing.assert_allclose(real, golden_real, rtol=1e-5, atol=1e-5) - np.testing.assert_allclose(img, golden_img, rtol=1e-5, atol=1e-5) + np.testing.assert_allclose(real, fft_ref.real, rtol=1e-3, atol=1e-3) + np.testing.assert_allclose(img, fft_ref.imag, rtol=1e-3, atol=1e-3) print("PASS!") test_transpose_fft() diff --git a/examples/machsuite/gemm/input.data b/examples/machsuite/gemm/input.data deleted file mode 100644 index 5e413733b7..0000000000 --- a/examples/machsuite/gemm/input.data +++ /dev/null @@ -1,8194 +0,0 @@ -%% -0.8483178396146527 -0.9316474009271629 -0.0749141099239747 -0.3243126095086337 -0.4889216894177568 -0.2003220013219365 -0.2465207945154783 -0.5009444841545747 -0.3833875674814791 -0.8638473264891788 -0.4270323830861616 -0.0263683207747022 -0.1798125277440863 -0.5388504032397917 -0.9782153590525915 -0.8309093043465101 -0.8577368190902865 -0.9543748287741737 -0.8490474371089849 -0.3694121479802369 -0.3352441047664209 -0.7552438928694989 -0.2817087394018067 -0.4852360002861091 -0.7268004045533238 -0.6343918397825450 -0.2104079488356254 -0.0395947057002634 -0.0400209978161234 -0.2976758337005888 -0.9521082225628823 -0.1866873697274503 -0.7358651200871347 -0.1361097436415447 -0.9090931683964897 -0.4604792296588825 -0.5769636562652027 -0.8616704275858206 -0.8767687582692533 -0.0279669403183254 -0.8816612565392817 -0.1866195592416753 -0.7633503369248252 -0.2150746941951263 -0.1339641300308199 -0.7161428864829403 -0.1365021466723779 -0.5001932391978972 -0.8470236345937937 -0.4470622249540837 -0.7140811894103265 -0.0127652175460312 -0.3876666127209407 -0.9958895038034786 -0.0926458725571736 -0.9676672240567189 -0.3736362838672994 -0.0488822949430138 -0.4076365668481068 -0.4603180906842517 -0.2873166763901486 -0.4365584272465929 -0.5850196896009423 -0.9590813817633715 -0.9980595552286854 -0.6068136140773602 -0.7043815368917442 -0.1974515966674346 -0.6575472564589070 -0.9454611044982865 -0.5747363779881197 -0.2194919783622648 -0.5763745454924379 -0.7153851752905834 -0.8911010718686341 -0.5206280483477259 -0.1501220678649025 -0.3812301813733660 -0.0463248309608765 -0.4254903780644615 -0.4973494195501764 -0.4281354730441760 -0.1142915128435944 -0.0804645407448647 -0.4373515560814680 -0.2582268915654431 -0.7683934478079263 -0.0766898881091194 -0.8463122892926332 -0.1107166721271598 -0.5840612962298976 -0.8557126220464411 -0.4838001677368423 -0.0621016340325793 -0.1310235740565679 -0.3776118887938892 -0.3530460812272584 -0.4149216674120018 -0.2064459122797230 -0.8343916891700796 -0.0932775064851222 -0.2731170192259920 -0.3356228717457055 -0.3267963290017710 -0.0435681404918652 -0.7228303690021292 -0.2107907960557750 -0.9615694238266003 -0.9326414560282523 -0.9394618799882867 -0.1764777376547630 -0.3732788212737727 -0.4000735922705779 -0.1120309369903489 -0.0511100243190568 -0.8575182783261570 -0.1349654718909908 -0.9723092959416103 -0.8067179481103881 -0.4657453752075365 -0.8214647023258758 -0.6642716262994925 -0.2924958180021960 -0.9396144243758447 -0.6692048055281263 -0.4554570494036198 -0.0154017302137861 -0.9462209557130911 -0.9279331770197743 -0.8926116198429296 -0.9844385803033128 -0.8235301034352464 -0.1171662519206369 -0.9738432213333370 -0.1702801969466125 -0.9700813330218533 -0.3431322540111262 -0.3521808070203251 -0.6456496860574097 -0.0078332098488572 -0.2780721231188467 -0.9308493287741327 -0.3391027675786487 -0.6387221774977941 -0.1387668025077644 -0.3193379819348149 -0.2938847760898528 -0.3760463174887679 -0.1542553433051521 -0.6639159037834084 -0.3564936178023257 -0.4878134574691712 -0.0345427675439928 -0.5848943772682992 -0.0693781648667100 -0.2191364932019932 -0.2761112415673199 -0.2440285243758249 -0.1440250692777039 -0.7614656056422392 -0.9809620066037130 -0.9348033021342805 -0.7552137859210596 -0.6065311722051752 -0.5503350398133949 -0.6275061460415338 -0.0111472337609468 -0.1246312888209616 -0.4231461451579110 -0.6484414922888584 -0.2337922181906040 -0.6779685516426726 -0.8782741573686651 -0.6177010100415349 -0.2939854446950563 -0.8761871775505162 -0.1810071211477334 -0.8720289503655566 -0.2532811225707449 -0.6100117892988954 -0.9301354739598914 -0.5191027833281141 -0.1431706944572742 -0.1708568797583734 -0.6242359909565518 -0.9782736794109049 -0.9891683505866096 -0.0196826080659797 -0.2768293352286383 -0.0768308861291690 -0.6270659160444320 -0.3147389465422545 -0.5336071033488232 -0.0120537996182269 -0.5307654724048916 -0.5153605911637142 -0.7528566241924224 -0.7033589194426896 -0.3209196647064811 -0.4410043195102882 -0.0111739864620048 -0.2863026779679601 -0.2683100918304755 -0.2979827363431253 -0.3721852873425603 -0.1633665685261703 -0.6533281645944697 -0.2843454312853405 -0.9051319563159713 -0.5983082899373767 -0.5757792223158209 -0.2692903346720601 -0.6096013896981760 -0.0901025770439411 -0.4634050247425767 -0.6204605185689965 -0.5112592424386806 -0.4937665420329518 -0.4695717035134276 -0.9097122918366112 -0.3201641400746201 -0.9905173479273656 -0.0056370341850618 -0.3921534977584564 -0.3346194563079505 -0.6360433801365077 -0.5201155310158935 -0.4362019819492165 -0.3809198621760362 -0.5670535082271564 -0.0529453230927324 -0.6790772399224166 -0.2868627608072348 -0.9392660254042972 -0.5753465166316099 -0.6541005362632644 -0.2817555840484371 -0.6612642174687781 -0.9423159385445181 -0.9174747407529212 -0.9779240481377166 -0.2986892413220574 -0.1916000764166038 -0.7468217076566656 -0.5936366233299584 -0.5410113779987784 -0.0748945408290509 -0.3395152960985217 -0.7470779072815197 -0.3161020201267201 -0.7374536219431782 -0.2805479172708150 -0.7130278376509701 -0.8459418603364357 -0.7522291563308318 -0.7673406794115867 -0.9791920811987473 -0.1123833682832090 -0.5471981463946101 -0.0433784996754932 -0.7831913287613563 -0.1725964107004632 -0.8671010177349522 -0.6393078646525761 -0.3310881842077714 -0.5352403136965146 -0.7661294193430825 -0.9244074576810648 -0.0287942216685237 -0.6707214734656840 -0.1748621195872093 -0.2273862811658987 -0.2993243342441511 -0.1768052463670724 -0.4825229633452092 -0.0222151629699995 -0.1239513072997847 -0.2987613558162890 -0.1379142600723082 -0.3440376084075450 -0.4373647696000651 -0.8535612938381643 -0.1715420896272014 -0.4749277287386244 -0.1199070948150680 -0.8089862728472129 -0.1441451973256533 -0.4292770696419592 -0.5211270487544926 -0.0011758916400356 -0.7007083090818177 -0.5281931199838487 -0.7671373984849126 -0.6021015440913253 -0.8912456482822858 -0.7899403302123719 -0.6772490738704474 -0.4708856876330734 -0.1763984475095891 -0.1463600662811033 -0.0165949685352888 -0.6068381808285457 -0.3224651525151173 -0.5148486338006011 -0.8463707450685359 -0.2157857682105999 -0.4175494429555621 -0.3779135888568587 -0.1956304117824023 -0.2671144901023431 -0.2978924140317022 -0.1791553064131353 -0.1601117923815020 -0.4436703260522413 -0.4354899010428503 -0.4863644602979916 -0.0455654999679936 -0.9061800810138900 -0.7274221170832363 -0.9082424735107425 -0.1397186081418257 -0.8710584598934502 -0.6569208507280179 -0.9408021142124381 -0.8543062414871980 -0.6782227444037920 -0.9034898824859597 -0.4495484633567567 -0.2222523874894407 -0.3137809125552068 -0.6478283781152648 -0.4165082365846282 -0.0360033802245706 -0.1218543381677559 -0.5108797423897457 -0.5180611700108055 -0.6056074920261487 -0.8779639279963387 -0.9471242759165983 -0.0824748458740915 -0.8674863090505956 -0.7868870903622686 -0.3087124472657461 -0.5009663253734257 -0.1286847456523950 -0.8405951440090710 -0.8737823046846828 -0.5714577591226613 -0.3163790157527726 -0.7294478876193773 -0.7828848822471060 -0.9947426877569866 -0.6268310698491563 -0.9471211534578475 -0.2243844220207657 -0.8573988054285285 -0.2936439994440631 -0.6987905411296418 -0.9507698943631454 -0.2277384525626225 -0.0983196954057779 -0.1158788858867381 -0.3943691258852570 -0.6522812929588194 -0.9323529611324425 -0.2505797725678027 -0.9463081170472853 -0.6972081938469031 -0.2217159609909230 -0.0158618584757915 -0.7992336160031288 -0.4916870887409591 -0.4203222451574106 -0.4954300164669786 -0.4072567181943900 -0.9436149636721938 -0.1115558766484206 -0.2133777544768501 -0.4926894729576140 -0.2288864259039310 -0.9233105307500995 -0.5522443624207825 -0.7804758780629942 -0.8577533254670533 -0.5175537145011389 -0.7458849304738195 -0.4700598126387943 -0.7256984927494721 -0.4946461243081034 -0.5928752445277561 -0.1435942641956947 -0.4530628816644502 -0.7303585087668238 -0.6771458036224584 -0.9821343857747540 -0.0328071121334004 -0.1185647260517267 -0.8226081939044526 -0.8158652049794541 -0.8828048367094834 -0.6291305933887741 -0.0868219653016111 -0.2738519339014919 -0.7144746575303565 -0.4011478376237659 -0.5007377866913673 -0.2288648035566036 -0.4618209141005981 -0.4425821772294087 -0.8664060965744277 -0.9349865168431754 -0.6358704096466863 -0.0008392427989186 -0.1111643065065295 -0.5246200509372015 -0.1354282528990725 -0.9424363035310214 -0.0744909276406249 -0.0310511640320245 -0.3761947915818324 -0.0217261429493881 -0.4949483768791444 -0.0973932294672044 -0.2981311546048886 -0.4083570361665385 -0.9868219940278903 -0.5543595302377633 -0.8069034553160739 -0.7665658438032671 -0.4969299039679246 -0.8434804973005380 -0.7665036069247364 -0.3282416327845119 -0.2149426327922223 -0.2818218695863094 -0.0961871139367003 -0.5579491260907850 -0.5867774049443926 -0.0881760013338349 -0.9878358065870914 -0.1061326855761554 -0.7271613020145520 -0.5798325617779146 -0.1155059662760101 -0.6973883104954021 -0.5049354722387228 -0.6508972709054981 -0.9006534219964644 -0.9605391610546545 -0.1394240512290819 -0.1671649450914079 -0.1664775697290567 -0.4080768206037291 -0.8477853400387060 -0.4499655955247234 -0.0255424858209450 -0.8505854782984940 -0.4636431798425881 -0.8918284279836336 -0.4856684644884649 -0.1659858594059837 -0.0238823839065784 -0.7994671317638116 -0.3751432912824046 -0.3804227384496434 -0.8413148607509543 -0.6506283850297021 -0.9766834855366925 -0.2191262745253812 -0.0248922210452291 -0.2231645580382334 -0.7404604855597532 -0.9355345620434551 -0.1653789667168293 -0.1059396938307424 -0.0020044749140114 -0.4132138001260813 -0.3312924847795359 -0.6492165403032210 -0.2445108317174756 -0.2171661955475684 -0.0119041354225503 -0.3199195886761848 -0.8799274836463801 -0.1697847195140275 -0.8799610104744855 -0.8029777980474817 -0.7691105305599997 -0.8614010915991184 -0.1349045754696620 -0.1039159475547794 -0.8460187964385510 -0.3083002773220541 -0.2412000351515887 -0.6655076815675369 -0.7731655682148677 -0.3339247226528733 -0.6582442922969689 -0.5215653744435931 -0.3567305965895141 -0.2981062040854478 -0.3833902369228816 -0.6969715537271688 -0.6615875892135347 -0.2121642451626392 -0.6571424956786973 -0.5146580817967552 -0.2742574950854690 -0.0533838274345822 -0.3421116783190124 -0.4346208023329561 -0.9428593202287435 -0.8746535554914753 -0.2787038915386076 -0.0607629710157441 -0.9475482605076305 -0.8000948050982155 -0.6696032733350000 -0.1191064572806398 -0.2713718953917491 -0.9754531978352212 -0.2555018393548908 -0.3156812728266634 -0.0378755150817178 -0.9773316421998351 -0.4036409576832637 -0.5324200478158887 -0.2225676235619323 -0.8308367730086326 -0.1544569956255000 -0.0976873451282712 -0.1354281620445729 -0.4682417610236912 -0.4112113092197985 -0.8283636157802693 -0.2354485044044702 -0.5138595908016150 -0.5212459531899646 -0.4374620898104384 -0.2897529706909659 -0.7560560479391087 -0.3444473384695645 -0.2101710283430648 -0.1913184876725962 -0.0194703354524034 -0.8244829999712530 -0.7004725373098700 -0.8548257075248383 -0.7529110407603758 -0.7272569630111225 -0.3430262664463163 -0.0543663112093189 -0.8584713279607648 -0.7237250361599911 -0.6861199156789359 -0.5769331828313227 -0.8880877406289909 -0.6817980021300837 -0.7181124881078564 -0.9474077459051521 -0.1669314152562441 -0.7977844154557096 -0.8776813456744198 -0.3617756810620581 -0.9250877956455573 -0.7853559941128757 -0.1073013935372346 -0.5154524213956178 -0.7705336169182980 -0.7455632462415369 -0.6858314418579472 -0.1451982048517642 -0.9769921914533929 -0.2707441083651104 -0.3692377801896228 -0.7895927671791430 -0.6419221159474837 -0.7595767306201764 -0.7091781136952096 -0.3356167379256038 -0.0962530381386420 -0.8259778697714617 -0.9345988394413669 -0.3858489471473220 -0.0361507946973068 -0.4856627526839860 -0.1892051894625248 -0.4575719204283109 -0.2364687687064010 -0.3024395144952008 -0.4236979859470674 -0.5712537893453448 -0.0743859838433636 -0.6992511255983868 -0.2143443403429400 -0.2557727874806550 -0.6020575222876966 -0.9329008633467030 -0.4591264949733487 -0.1316420504742486 -0.1834118248178533 -0.8616452724482049 -0.4934215152695882 -0.7063222135519909 -0.8890629485443693 -0.3378400307458436 -0.8999166805341422 -0.6545776790901677 -0.2924360980490139 -0.5331525361872268 -0.8521209023427115 -0.5028403366193390 -0.1964219728651424 -0.9007642452958530 -0.6041960938460277 -0.2353145244248827 -0.8739339865772545 -0.2358180816613767 -0.0053266675227582 -0.0245024808476083 -0.4565489134444910 -0.2971400601481179 -0.3462918638414297 -0.3174831292643161 -0.1022473410018786 -0.6345702753207734 -0.7986179739274762 -0.0887550087202571 -0.5395607076593224 -0.5027804701398525 -0.9545712661808851 -0.1311646089110300 -0.3816839551933244 -0.0287340536949976 -0.9741228417106041 -0.8881115817590194 -0.9443051692007695 -0.3973297345018290 -0.2435155738852830 -0.1652102803404903 -0.3243142246189342 -0.8630564791046341 -0.7427364645761575 -0.7628397127536366 -0.2767754158606018 -0.0538923118737419 -0.1873698021206745 -0.1533627910315691 -0.4113317799803305 -0.1961934245958332 -0.9159060981202446 -0.8137254244255523 -0.4905641817376404 -0.1733549482124006 -0.5895471919253229 -0.0471340501793856 -0.9186568804660693 -0.2220043575160327 -0.8392061621265459 -0.4075368623069701 -0.8249215210109830 -0.9296441921715146 -0.7625185210257652 -0.5646893167247345 -0.6062559916719461 -0.7733470603381122 -0.3581334207021432 -0.2525868596630824 -0.8030837979013034 -0.9078980508746070 -0.0213157617704918 -0.6198872241946154 -0.6982054377522401 -0.9125352939114136 -0.8662395645424570 -0.4964301003594250 -0.4589454657543227 -0.9729557362505116 -0.4761687642040447 -0.2915994889708689 -0.0625496872006724 -0.1082706330984529 -0.2676008131717454 -0.4510148028230647 -0.4210224473120947 -0.1548976062879481 -0.8710345719788597 -0.2967209912992471 -0.8860973384349545 -0.1028653706204793 -0.9112527657530287 -0.8316115232944399 -0.7876503979181846 -0.5703146078114243 -0.7668035869923945 -0.9765830388028187 -0.0635054924724125 -0.5053664034118617 -0.1667977138441292 -0.9084464933427940 -0.7396569990701948 -0.8901329413650267 -0.1282122077353620 -0.4280410688231076 -0.3546730853650018 -0.6740117202355542 -0.6993058676596479 -0.1008720531313658 -0.1655201742599672 -0.1678607872980307 -0.3498860824240698 -0.6979183623465720 -0.2972227666959424 -0.2718621421393922 -0.1371334239013910 -0.4695049786139125 -0.8856335695096561 -0.0421636389002602 -0.6171453064703414 -0.8408735929295654 -0.0821163784732936 -0.6958031307930189 -0.6798926151186255 -0.6338000423355364 -0.4342430860317124 -0.2476013748163865 -0.1524726995823791 -0.8910536354990762 -0.4307119981575572 -0.9065538585311617 -0.2802491643541730 -0.8519531607780675 -0.1309172521114062 -0.5223657172611972 -0.5940340561115732 -0.3471992523602176 -0.8553387616652556 -0.6768882381811585 -0.5180580908117607 -0.3464191929026591 -0.1534112256529780 -0.0416632587526700 -0.8032127017104451 -0.4956108399308800 -0.4327021758264568 -0.3047239994232592 -0.8910031103464617 -0.3485973984888802 -0.6992259055414151 -0.9250438169849708 -0.7898209042260892 -0.6802180037968130 -0.2967131969491587 -0.2720348328492520 -0.4998718700371028 -0.9163578329533125 -0.1844334098123010 -0.0446327913910037 -0.8986315754794177 -0.9565339328231259 -0.5917358349016343 -0.3039301433909674 -0.5032089054635454 -0.0098436923475592 -0.2290618525922859 -0.9941160211092916 -0.8018469588895006 -0.4515732147894628 -0.8513496134842463 -0.0670183661705313 -0.6178567164242852 -0.4182952572441551 -0.5383931272117743 -0.8023733482266281 -0.5417656241717650 -0.8788865026335969 -0.9290448072784062 -0.8280212198734908 -0.7615164777749828 -0.2390743428106357 -0.3649655704104566 -0.9861748858550504 -0.9590151332996334 -0.7884061132262163 -0.0238172507286693 -0.0288057462668017 -0.7563025130758088 -0.6327250271593858 -0.6647564006738251 -0.0403168932323779 -0.0851091202383121 -0.7131062167973624 -0.8266676506818488 -0.9699554487883290 -0.8566660020465017 -0.1673708090915806 -0.4935407356523587 -0.2583648166914596 -0.1595971470629153 -0.2616218585439897 -0.1565142635892891 -0.3304712882926483 -0.9311919539307059 -0.1237307163308776 -0.8449149809933604 -0.3000564008709446 -0.1208132269579128 -0.8551890471212074 -0.0613489685386913 -0.7006205445868144 -0.1740531003432544 -0.7732481261159894 -0.1343660168913316 -0.7749930699273819 -0.9868025567899982 -0.7757411308234101 -0.1887441922584664 -0.0740016559370295 -0.2881953716589823 -0.5678458093960356 -0.4288866101517670 -0.0670517898261449 -0.4631190147842646 -0.2993357137446890 -0.9724694844095528 -0.2340145672977075 -0.2952070238889182 -0.1034148020388507 -0.2599693743121106 -0.1983623100747410 -0.7891247745270171 -0.1365468411207909 -0.1704415101615018 -0.3795300396545589 -0.7872552286992399 -0.6761356879505004 -0.5746224709379114 -0.2599649322694619 -0.4465083963340758 -0.1772230114168324 -0.8958712439541665 -0.6755852294955170 -0.0424740404216321 -0.3474975250466014 -0.2787291110962878 -0.4239709392959372 -0.1264310228573687 -0.3030433007684182 -0.6167934317373043 -0.9774138579905517 -0.7922540390432117 -0.9754042035037350 -0.2937298063641197 -0.0493613402709324 -0.2131441317680902 -0.7118006990276875 -0.1926245778050174 -0.0565962349320215 -0.1083695656991906 -0.3233653572329019 -0.6883633369417523 -0.8142820788077080 -0.4708595737453577 -0.9574256940403741 -0.8577722569424684 -0.0390429387589084 -0.6485406197671680 -0.2286115179667637 -0.2505120841371920 -0.4679479656413075 -0.4803960416666576 -0.6427271305126666 -0.1298867853024623 -0.2293811386379165 -0.1945257046607350 -0.5737600072544007 -0.9456753829298495 -0.2914040068729966 -0.0411626576385112 -0.0851770531853963 -0.7512162357048413 -0.9114283912185644 -0.1084939194571904 -0.0340797220314683 -0.6686522970980507 -0.1906153990139051 -0.3274779492389834 -0.2516885885036551 -0.0772963287875257 -0.8935280009426281 -0.6201968041430754 -0.6029673627910744 -0.2263063654776020 -0.0421182878029569 -0.0135692741556023 -0.3516307018310701 -0.3075847105833159 -0.5301877412643056 -0.3610995616465294 -0.0932831537509481 -0.5333126231650014 -0.8783698621094786 -0.4581192548325713 -0.6692522865725606 -0.3856532909282943 -0.6141582130483899 -0.7281831720947005 -0.1948844614969170 -0.4943642276124682 -0.0784046332183870 -0.4345422259377688 -0.6558368046570618 -0.2400154516354979 -0.8126312836129430 -0.0042070986675205 -0.7770597741058617 -0.1301261926096061 -0.9201150257154005 -0.0150107888897510 -0.8096920536489608 -0.4692264045572709 -0.6698343981997922 -0.4625374292719958 -0.9620387146985410 -0.8815344945317943 -0.3039975463072964 -0.1632562644673550 -0.6693371407177068 -0.0255299687668171 -0.8262515235259924 -0.8290796078644540 -0.5251654865487730 -0.1769262026207146 -0.4146529856406467 -0.6257710753225278 -0.5385762819453994 -0.3467421010954000 -0.1803570538412348 -0.0062855490090003 -0.1631445529039522 -0.4952396311548886 -0.1707236567576024 -0.9432265054633366 -0.7188326227851898 -0.0739719232510591 -0.3438571127652211 -0.7995944476081212 -0.1332539980868194 -0.0690427248469638 -0.9524527209180689 -0.3688802404953913 -0.4580401459470407 -0.7170697644292721 -0.1786917333296686 -0.3231652528555629 -0.0632698207861022 -0.2341749143379414 -0.4131050383018145 -0.2951629865399300 -0.2573327687674984 -0.5130724364261614 -0.1589627169488473 -0.1819274409586360 -0.3605838202714328 -0.5440325678864545 -0.9090988849041570 -0.9379179733105221 -0.0141064347307200 -0.8508626122118714 -0.8167047819570149 -0.2623920121133221 -0.4495180123110233 -0.6073459575540703 -0.8055352308781114 -0.0827481756805070 -0.6495691246737028 -0.9557837386834148 -0.1689731366639478 -0.4739915237375780 -0.4228752065265029 -0.3864621066601071 -0.5216681823333275 -0.5101372326813385 -0.9282979463152260 -0.1934401620509328 -0.4407899952942061 -0.7970175752643954 -0.2477094328926093 -0.4700907027077451 -0.1180233354974776 -0.8422914801798748 -0.1531763443715683 -0.9784896365217246 -0.6142847292421334 -0.7350009968521926 -0.1559845355507213 -0.6408397957395198 -0.8871901348808436 -0.9853156529299215 -0.2043291709958035 -0.6791988294404089 -0.1737458412194951 -0.5556855949910641 -0.1662239833913383 -0.9252958993331035 -0.8815207942410712 -0.9207020404321706 -0.9462893018422216 -0.4915897861261869 -0.0532454258881340 -0.6745415400933488 -0.5767564764496971 -0.4995223250778442 -0.5741762963226479 -0.2972223117023296 -0.2369406864338512 -0.1705331838829866 -0.2544590026820316 -0.5933356553889287 -0.7557815104974221 -0.7308638669478563 -0.2163376957510569 -0.2586691231426438 -0.7553707339814911 -0.7346471788703769 -0.6851996707269928 -0.9561268831958318 -0.1776286268103218 -0.2090638796687267 -0.9208621583771288 -0.8812732646074325 -0.9508210687765537 -0.5758670702821425 -0.9854571787699822 -0.5933509225601570 -0.6604902179373257 -0.5584042648968202 -0.1729579729389596 -0.6564298508926651 -0.5830955438100045 -0.1511502127634319 -0.8334491162950335 -0.8390160418908958 -0.9498751132286368 -0.6805358424067183 -0.8917235509170629 -0.0579814337999107 -0.6969147789487629 -0.9731396352692780 -0.9648309337183751 -0.4480131490653159 -0.6360570365851460 -0.4915634649500484 -0.5743495417164315 -0.0506853134613660 -0.9193717203491890 -0.7636754938798417 -0.5903386060266718 -0.8494671255286941 -0.0739589906184266 -0.1899608827416598 -0.2538771945190215 -0.5549114767506421 -0.1512263034010119 -0.4704508482943693 -0.1139597810648855 -0.0081304123387332 -0.3214152877358947 -0.5058998597255967 -0.0024055063574932 -0.7229172036806094 -0.5087455328763326 -0.9655936820644072 -0.8051010575907215 -0.4643465008922253 -0.0474399070116224 -0.9881621738418157 -0.7421226355354282 -0.3629059508503248 -0.8925092177115014 -0.3188253775398846 -0.7615894499929026 -0.7860659345794263 -0.4274153344059541 -0.7506546481352957 -0.5117001905727838 -0.3142340252767178 -0.8396564812580460 -0.5533553856894283 -0.0121274426537729 -0.5099600179554283 -0.5515822970467751 -0.4417897139255623 -0.3099016162147389 -0.4920624029339674 -0.5445581611344861 -0.4216441834210417 -0.8777206587586367 -0.1495164713373523 -0.1831734514961648 -0.6802851933301981 -0.7650830052557893 -0.9975923957784105 -0.9918251862171550 -0.4221855138587343 -0.0493191080438314 -0.0907927261640321 -0.4756095856665302 -0.9296772780500112 -0.5313833738408521 -0.3553404222259285 -0.9298325596427710 -0.5203209861606916 -0.9814207600255722 -0.2397310019979580 -0.7668891880528556 -0.8258388168740718 -0.3750748486478326 -0.5810905371543164 -0.8283499836237471 -0.6595210877066515 -0.7348804125761836 -0.9582625853614675 -0.2956105741737018 -0.0449286630335014 -0.0881678863191049 -0.5128654175628093 -0.7286789583500690 -0.7746266141732618 -0.4910027259108165 -0.9582726479591426 -0.0455779586202578 -0.2511679936357397 -0.5950106288387715 -0.4093814302871493 -0.7920920765654557 -0.4807657545846785 -0.0644004221288580 -0.3604449818921059 -0.0149572948115759 -0.4572205672474317 -0.6500070579303660 -0.0857118129856162 -0.5149312986602372 -0.7259681538845659 -0.2807028792316934 -0.5678912487231295 -0.3027346086447427 -0.6027504146555527 -0.7888812709724224 -0.2095826733090249 -0.8710406122099337 -0.6144933973046902 -0.6731327025888862 -0.4660899259694030 -0.7593567503491224 -0.2631461563643998 -0.5907286543078356 -0.3308505541524190 -0.5902161819117852 -0.7655084118527854 -0.4787799428840276 -0.4260775139075946 -0.8520342917015215 -0.8609163564587169 -0.6285247522380816 -0.8873855914095965 -0.8773130229728554 -0.8474816953396310 -0.6632538077450801 -0.2491645066391866 -0.7028640101614491 -0.4035199579387483 -0.9960145295541215 -0.9511958635802541 -0.0819458983611275 -0.4934417933954853 -0.9612731335633516 -0.4539713643731078 -0.2835148173802094 -0.3299591313903339 -0.9469219869534339 -0.5569633761950359 -0.7783086704975904 -0.3757939716284633 -0.6320330796016872 -0.1575048003110159 -0.8603209340999428 -0.1104494711150759 -0.3315802806881127 -0.9830823457733846 -0.6138286519048827 -0.1468546406772117 -0.5303673577178163 -0.2142054358282510 -0.3156277528064569 -0.1168134761052319 -0.8641601000909435 -0.7412505756449894 -0.8929930420712373 -0.0370980474156693 -0.0833232565561686 -0.4591527565322978 -0.1605298255070592 -0.6159411041058860 -0.4985330815312950 -0.5368497894993722 -0.9390437945276464 -0.0909174562054448 -0.7732347078126135 -0.0735467691323205 -0.5964050836719743 -0.1475769219673463 -0.8936978238715337 -0.7244259915012240 -0.0727299453017558 -0.8719649899180534 -0.5787769379783843 -0.2379618848763425 -0.3347332345812675 -0.4840564894010427 -0.6254147522265978 -0.9692483998140925 -0.2663324295761842 -0.8840743805053830 -0.9454549465199087 -0.4260074016626994 -0.9392846118081410 -0.5612562105372151 -0.7183808978110240 -0.1810680799630747 -0.8836901232350469 -0.4306697602251128 -0.7479959824325308 -0.6017788602363955 -0.5838778581038879 -0.5444577643784778 -0.7257594794702550 -0.2410766860776957 -0.0693989810888280 -0.2812459689902557 -0.3176871138156662 -0.1726872233798366 -0.3235485781729581 -0.9284452397436733 -0.1623963081018855 -0.3108011367098680 -0.2586359209074861 -0.8384687836703300 -0.3050040805832570 -0.3618381349601113 -0.8529214888669500 -0.0194484695774601 -0.1554043499468879 -0.7219812672161211 -0.3012278948439847 -0.6242162002445819 -0.1787586078961123 -0.4612489101437085 -0.3867759227666984 -0.9396384644903751 -0.3505369540379645 -0.0419862136006587 -0.6557909085470451 -0.4556307965914432 -0.3714408100583654 -0.0292259135336660 -0.3219491289299332 -0.5613785988789820 -0.3532440293170446 -0.5413331599498716 -0.8243836253257907 -0.6604627578446109 -0.5634758937599540 -0.8540602042025437 -0.2371237902808737 -0.4591862410798935 -0.9690754325088510 -0.2139059639022128 -0.2324053015891293 -0.5623895344973615 -0.8850335964550572 -0.7415716132615051 -0.3905986164184125 -0.4473561969957039 -0.2474559056534647 -0.2450611111591871 -0.5634591813883659 -0.3675339651465732 -0.2469487773298110 -0.0555018599915761 -0.8996384466974866 -0.8429674019404689 -0.8171247585099440 -0.4793241292623960 -0.8590187260507717 -0.7181106557075176 -0.4965537109077771 -0.1668554868014473 -0.7120082978814256 -0.1361091799656849 -0.4027368771426713 -0.5097822805293074 -0.8967054930297859 -0.0677103170544368 -0.6034582654963560 -0.6550736247566969 -0.7407499552981331 -0.1292736897142973 -0.6930984835338998 -0.9452985705440307 -0.1412682515988833 -0.9203816951581538 -0.6083561055364055 -0.5628747621692389 -0.7602851804696842 -0.3160910119956966 -0.3655335386487320 -0.6296483223578682 -0.1934601450628901 -0.8179122459218160 -0.0490338644092028 -0.0471529488825729 -0.3804954406343724 -0.7166828189201992 -0.1445169305224963 -0.3829097355770772 -0.6315580068239689 -0.2335449829752699 -0.8040712545961126 -0.8776686154844410 -0.0229395889793185 -0.3973466496765722 -0.8436000809166979 -0.7958470057543354 -0.2780522875987176 -0.7468560547340364 -0.3510238519003651 -0.6175971436108465 -0.3940334864492763 -0.3237289141021380 -0.6877464519208845 -0.8984910975528118 -0.2684957943012544 -0.9433321864632048 -0.4901254615239304 -0.8473004971556561 -0.2930547390994029 -0.0140137578113008 -0.5308095920948962 -0.5733962430222072 -0.5561864159889069 -0.0750038383175027 -0.8003035313042662 -0.6195414012134963 -0.9910842494238157 -0.7091449492244239 -0.9731754448739771 -0.6847267734240555 -0.8590727910065618 -0.2343727372384076 -0.7034661540715051 -0.1064256866112102 -0.9382879863100901 -0.9592566943512906 -0.2994319742296596 -0.4309380561607828 -0.2765762635463608 -0.0500565948669185 -0.2826402097189002 -0.6799558557909341 -0.0344349670933182 -0.4944847494279151 -0.1818022911244169 -0.6577952977569871 -0.3955028612918697 -0.2441014576448463 -0.2415817883514426 -0.8540628125496926 -0.9682754154320869 -0.7787056157160520 -0.3988162963343365 -0.2409746663443497 -0.3271050685864407 -0.7183544960822831 -0.4741012071044621 -0.1963010834439670 -0.3804837148390998 -0.9255769055986287 -0.7682160439406055 -0.7754160115251729 -0.2254982017946379 -0.1592403704332606 -0.0417334873913729 -0.0126303341468577 -0.6507229436840348 -0.2317079054492765 -0.4585944636012668 -0.5301768198669289 -0.3919749866941878 -0.2640394621901843 -0.8826151599381713 -0.7448260047904357 -0.6968131092901025 -0.4878163373107030 -0.5309621289984101 -0.9777618767773157 -0.4627340421193095 -0.6983257143316665 -0.9720186799758442 -0.8324308318947888 -0.8699490023657372 -0.0957762018896637 -0.5776281924552997 -0.3115701794689702 -0.9971950340969689 -0.5130857110175624 -0.5234793169055783 -0.1007878387452373 -0.8804488531243910 -0.9347985059363554 -0.3146524839695926 -0.8300606525813007 -0.3927354461623758 -0.9820830106767154 -0.9149605321903987 -0.8126715781600673 -0.7018064616960138 -0.1126391921619974 -0.0861386253837150 -0.8658002209892777 -0.3245950979090420 -0.3938599269621023 -0.4348839826917701 -0.2124210282086236 -0.2298455829710880 -0.6055511425403319 -0.9222468653910245 -0.7820123292480046 -0.3302189553196816 -0.4843547856283799 -0.6897116034068658 -0.4032191766472548 -0.0321715783443726 -0.6000587665795133 -0.4282987034073391 -0.8745485049376570 -0.0767901834220190 -0.0893560489672005 -0.1350866476200832 -0.9693953608763296 -0.2798904101812061 -0.7703273223936905 -0.7764131659013896 -0.1542318403539684 -0.1820222517361119 -0.4217099856357790 -0.9831573290620735 -0.6717182621594086 -0.8180800199550459 -0.2721533164039120 -0.5170262633435022 -0.8112589660218131 -0.2887155760842149 -0.9924844103214874 -0.3324188211741472 -0.7009501970004657 -0.1110790593365149 -0.6875013197897945 -0.8114741873564465 -0.1961532691179642 -0.9749041757349296 -0.3722314796836262 -0.5029472684330377 -0.9938476870707592 -0.0785730891140177 -0.6873582052961151 -0.4549736415715384 -0.9584584294520418 -0.0494693101001363 -0.8499211733766552 -0.8075483551213346 -0.0184471548072749 -0.6205550966495932 -0.2366009421231575 -0.2030949221187415 -0.5981159311129930 -0.9522309466890955 -0.0166728484127095 -0.3736006641494428 -0.6548186088671466 -0.1153397624080071 -0.0161426774140987 -0.4796532412059872 -0.8827293521920049 -0.8042240778717331 -0.7621198835650267 -0.7561972650978945 -0.2795150857818947 -0.5361401046257658 -0.5598196025166333 -0.8729179719433231 -0.1954404252719764 -0.2014100952484681 -0.1104680296969008 -0.7106161585006977 -0.6312021971134438 -0.8984380320481528 -0.0440297569545808 -0.7524714184058229 -0.0667762296617902 -0.5837452107390664 -0.3626103834518689 -0.1832234279209112 -0.9312597340937907 -0.3230099759712715 -0.5139531123073339 -0.7239110847414717 -0.1781181115534966 -0.0531736206958139 -0.2111472411019038 -0.8554210263875838 -0.2115023971522408 -0.0806250405404240 -0.4725169714003127 -0.3502591260947862 -0.4272217401315196 -0.1286186339222690 -0.9632715087890527 -0.0724397689882399 -0.6206533508540893 -0.5033159949065573 -0.5440038790650273 -0.8533566586590772 -0.4065634518225006 -0.7359402951365357 -0.8935902947640075 -0.6271628117198540 -0.4694868266684950 -0.6937750821248603 -0.4378228031788631 -0.3150690752240649 -0.5351090949263548 -0.0550788995008191 -0.4028443227274215 -0.7500785123281940 -0.1835748146894443 -0.6631130400133519 -0.3930599077517083 -0.5789793152605277 -0.5181536051716817 -0.0777152573410451 -0.3201978479111682 -0.4271012766044924 -0.6186072368458863 -0.9718373694239282 -0.4120617704475453 -0.1343350530927840 -0.0981680328985104 -0.1449670647589225 -0.7202036281776740 -0.8657837591220954 -0.5739259319905322 -0.9684378632421182 -0.1786788434086288 -0.3685664837181979 -0.4621210275120023 -0.9113413159246286 -0.6321175130127841 -0.7914041217826194 -0.8760256234789781 -0.6941567759021646 -0.1275647251217849 -0.9080878193335128 -0.4669317926029261 -0.7914136221941976 -0.4932004557502185 -0.3107141881576834 -0.2651248914852155 -0.0315874003127839 -0.1038026875779222 -0.1661213973109814 -0.8433570087297781 -0.6137293818564650 -0.6062688300359890 -0.3459090516535702 -0.8681016381393473 -0.2185817151286858 -0.0254103623557117 -0.3330585822858419 -0.6333724579092227 -0.1828167260647722 -0.9364749563297090 -0.5351399185442015 -0.4522656154239647 -0.5488383900509531 -0.4505403664333439 -0.8441586420094294 -0.5946679726769909 -0.6048383618269364 -0.1255530722287846 -0.2054214690608080 -0.8873205341178325 -0.5293648890946622 -0.8048778866473214 -0.6161451029523104 -0.6257937922945630 -0.6973808131344044 -0.4500340718898797 -0.4237588161901980 -0.4985950748708313 -0.2036463152770128 -0.5796498805904450 -0.3069457320305912 -0.9711626382480357 -0.8500902205586187 -0.6838247528203829 -0.9338919869706606 -0.8668772608741793 -0.8369330502737017 -0.6829785045106866 -0.3814071036560642 -0.3074074256712594 -0.2970130362247582 -0.3462757474818600 -0.7216251441224336 -0.4264721738083586 -0.1951782179448280 -0.6786001800269478 -0.7493399851200931 -0.1199174461172946 -0.3395860438033023 -0.2452156183512082 -0.4497344173711701 -0.1081702544746859 -0.9651306539304539 -0.4001398244086237 -0.8283480626632970 -0.0390649016735763 -0.5415676047643138 -0.9656460908526844 -0.8483282485572319 -0.3626407407215967 -0.5341096433434886 -0.6951170005033274 -0.2041853872112774 -0.1564162798156581 -0.3359168097133057 -0.1898859003762233 -0.9563465319530173 -0.0277613172529810 -0.9982600663501350 -0.4157224082995776 -0.6182273126311373 -0.2909201625468670 -0.6982531188203482 -0.2927193169316778 -0.8448323082519557 -0.1784115975586884 -0.1562577201033060 -0.5267206742332438 -0.3723785072321812 -0.6016901688760332 -0.3394885004479785 -0.3681745351125202 -0.4816657621770388 -0.6502388817243625 -0.3744248090930519 -0.1997446062841129 -0.0638724747340945 -0.6271064708267968 -0.8944272924420821 -0.5776952722405957 -0.3240768182048999 -0.3963687189949507 -0.1513082052892844 -0.0998921614215191 -0.3787604266991969 -0.3143681217976549 -0.3038571659372357 -0.4159837470343808 -0.6917031638508321 -0.3311105301721752 -0.5117238036549624 -0.4258998933295580 -0.0882089657662043 -0.6716496731626198 -0.7008114320946870 -0.6821833198039549 -0.4967269745782379 -0.5003053041133251 -0.6379709856420225 -0.6731442287387129 -0.4862151348539277 -0.3416223867381789 -0.2587760226430585 -0.7627344444442377 -0.6728133703785900 -0.9606667244229609 -0.1237096588897197 -0.8392952352398773 -0.8563222755941469 -0.7762249703620516 -0.2394617308098057 -0.5425143845399832 -0.2717576339699620 -0.2517152907480128 -0.4773156177521747 -0.7514482723755929 -0.1534702596338070 -0.9169168939908613 -0.8638469106160196 -0.5787792644706513 -0.3307858360081919 -0.7824021365813203 -0.3062105903650517 -0.8717805652851589 -0.9486876133946452 -0.7237043838747773 -0.1385687422189358 -0.1807509111397761 -0.9539850727360514 -0.0872982947939255 -0.2189992860815851 -0.8225351417970397 -0.7739365262781076 -0.2574689328250547 -0.3754449045208572 -0.4776456172483712 -0.1630524546939007 -0.2148807980127670 -0.7625596369762973 -0.0822237237377212 -0.3073276715154953 -0.9871380016781808 -0.8250967554042705 -0.2530664464439327 -0.0999661393868426 -0.1376569473043827 -0.0457583661714829 -0.5522329465479632 -0.2318302819330120 -0.0290632569662585 -0.2574116423820800 -0.4059694257552362 -0.1158401408618711 -0.3988482279939093 -0.7509809561979029 -0.0108631990482573 -0.3613944769903494 -0.2615470161031007 -0.4799237874296278 -0.3603727299827104 -0.3422996764751868 -0.5481917944401783 -0.2038601324323919 -0.8094027057821973 -0.1827212151649459 -0.1365249276988363 -0.8757159076768996 -0.6316576915510255 -0.1808272163389700 -0.4638663709829043 -0.3276522013436806 -0.3498433108012495 -0.8699340189586838 -0.5501614310987493 -0.2175672724700776 -0.0828295429177196 -0.8442516418428533 -0.8537933194761173 -0.5429338068337091 -0.3759188132512924 -0.2529886991128149 -0.8700258729923230 -0.4678487253518634 -0.4430367158183640 -0.1614844317677137 -0.4602066902545943 -0.5659671443397306 -0.1732897997195924 -0.7084429063772016 -0.9015098432616030 -0.8990608206583623 -0.4663846962199934 -0.2953744178670430 -0.5808326926108186 -0.6620077369430641 -0.1404568820575970 -0.4018167552800908 -0.2182042101041856 -0.8419265962087658 -0.7753723189514359 -0.2599123275837484 -0.4085621343361786 -0.4952310162756288 -0.9218017740657179 -0.3214208711434320 -0.2970362553084925 -0.8093369938562239 -0.2236423581692771 -0.1962180844205230 -0.2959732768681405 -0.5222790193985309 -0.2897983642657037 -0.3235198875794608 -0.1501642316566192 -0.7329791004933724 -0.5269268209963717 -0.8884726443338818 -0.5331019024080771 -0.8556821087233278 -0.9966697522329172 -0.8763591276416762 -0.3771868810568650 -0.8959516080163772 -0.0834495135961426 -0.6613885168380074 -0.3857706854095542 -0.1753178205276683 -0.2210138301413972 -0.1628210376601531 -0.1116989649558261 -0.9739080371852294 -0.4639448349197089 -0.2356811926050254 -0.2150375411016321 -0.6615601386496218 -0.0986563104422051 -0.4312362687621764 -0.8769004361142536 -0.4387089205177668 -0.0638425786202156 -0.4675280175064468 -0.2532623400650860 -0.2650135603943644 -0.2040352126687831 -0.1500378017198587 -0.4695069710255595 -0.1451312684045712 -0.4619165616190904 -0.6932778818573035 -0.8284612419454459 -0.4307676500866464 -0.5817029665391599 -0.2345338419456773 -0.9132989263023193 -0.3303023713915403 -0.1318109580285394 -0.6104587340542236 -0.3773086045903022 -0.3348832520514470 -0.8941672268783825 -0.6961655370302464 -0.1283037129469135 -0.1874415847614497 -0.9984746006755881 -0.3739292082883631 -0.1811558138296607 -0.5433947482439856 -0.7636143526014230 -0.3308652371105901 -0.7854766307881149 -0.1377158968528451 -0.7361785266879094 -0.4484624012524798 -0.7525682199880136 -0.8778834033319801 -0.2513160662843510 -0.5739656453912447 -0.2703782742015675 -0.5496408367525180 -0.3773253983674111 -0.7145347405949672 -0.6278240088893512 -0.0681951941791360 -0.2490345278051752 -0.1110143947207681 -0.0072804680934511 -0.2535647918622971 -0.4400187451798140 -0.0876561827538812 -0.1258830873814117 -0.1157262082612758 -0.3880819300275033 -0.5335171278208106 -0.6158991593179487 -0.1732827736486425 -0.1681246048321837 -0.1340025161108179 -0.7031521299567874 -0.0971584743083325 -0.0300050486831313 -0.3649267915092207 -0.0130776266427562 -0.4249001724432021 -0.6019313321533512 -0.7186360933609287 -0.6488337051878523 -0.9424361971463059 -0.5312026324414025 -0.0113208088527744 -0.6947402907600092 -0.9114088601168154 -0.7372945608638083 -0.6105102322452791 -0.0142872257104041 -0.6527208539322490 -0.9248092645715644 -0.3613686971905408 -0.0582286150485331 -0.8920581585924597 -0.7528897655058325 -0.3791904352389403 -0.3547582816441380 -0.2989855142913732 -0.5325665763508927 -0.8478105322016664 -0.1916350596431049 -0.2330391063377503 -0.4955413306491385 -0.4739263553969173 -0.2696317123166044 -0.3548655179898875 -0.9972689878532153 -0.7315628879784852 -0.7555054055941167 -0.5290409772018628 -0.7216369183637000 -0.3354723322379004 -0.4062240429250423 -0.9600177423123862 -0.7951070021790079 -0.7300534830218630 -0.4045586280115107 -0.4179065312168281 -0.3548083205792757 -0.4817148632368162 -0.2202880412258661 -0.8208896366972340 -0.2569480573346263 -0.1927993405948100 -0.3516889856769385 -0.5271483990200734 -0.3166763063385680 -0.3368340152874436 -0.8300913006788359 -0.4783297547235413 -0.6447091328486032 -0.9143849738132728 -0.2829399807456394 -0.0173109259168123 -0.8010846556102031 -0.6006423400404350 -0.0206331776742071 -0.9587941158748166 -0.8786368989358860 -0.0216840544195256 -0.1581413353200226 -0.8511382079742316 -0.9901287840301416 -0.1477122922938129 -0.9421060197508584 -0.4288266101021798 -0.2708711392078308 -0.4389583514074658 -0.3880523023013942 -0.3119139450781151 -0.6566710831631445 -0.8731898664352326 -0.3784410097729697 -0.6739046995742594 -0.6660579854044060 -0.9515528307448153 -0.5581520126879149 -0.6616279084364836 -0.5336893468386074 -0.4881750153687056 -0.0591275406701608 -0.5035240527300738 -0.3292514658114145 -0.9460662446965842 -0.0824256077677896 -0.0397844930658592 -0.2141758773078516 -0.0972530171080400 -0.7155563522537424 -0.0523759359974893 -0.6571597137015464 -0.6706978383926298 -0.6892940129140753 -0.1526010454119323 -0.5941624590142602 -0.7389024276979497 -0.4637725190565459 -0.1237640735688782 -0.7713166019315632 -0.5086402753997981 -0.1266809709052739 -0.2410210371161156 -0.1836184879751259 -0.5329062562106652 -0.4395397488844712 -0.3853686927935102 -0.5036346266256724 -0.0915969662973197 -0.7281448369661329 -0.6514800805777704 -0.8775381572115346 -0.4316140910135685 -0.3631889371847135 -0.7151688867875271 -0.5940818450263510 -0.9109860592102107 -0.4256276542705520 -0.4707707352843019 -0.5160759693229782 -0.3952608054189305 -0.2256228996809151 -0.6427779480317762 -0.1133014653684221 -0.3618389417768640 -0.5333639380432589 -0.3439338629851783 -0.9462037966591541 -0.4734420041244100 -0.7077669265743015 -0.6514308911963711 -0.9147729697958245 -0.6562831521905720 -0.7750481858557561 -0.5801169513594883 -0.1557838145660915 -0.3662795009170770 -0.0943879784604676 -0.0659041009093625 -0.1265858305322482 -0.1127891776144493 -0.5016331756516540 -0.5829314173719836 -0.1592475658998847 -0.5518405515941514 -0.4471372896170390 -0.2994264287015914 -0.7679838996087345 -0.1941761887564426 -0.5024237737982008 -0.5423905138817627 -0.4233558363256540 -0.8216863253210320 -0.4605111586200669 -0.2842757491393184 -0.5201139486845655 -0.5906529106561965 -0.5322266724125800 -0.9796232969732901 -0.3789299651228887 -0.9515777656724279 -0.6301423159062844 -0.5085161643884144 -0.3962709119936564 -0.2448284366812226 -0.2169884609854950 -0.9671660744477497 -0.7771691654767080 -0.1955749057336822 -0.5448823001034440 -0.4766987997950337 -0.6471249988487286 -0.5224521055057686 -0.2974188913319513 -0.1704764144372600 -0.8225604160846552 -0.1464612053843218 -0.0378180633936665 -0.3605871599910743 -0.8374171988407302 -0.0358072867858866 -0.9286134144445969 -0.2864947204004493 -0.0858981983742980 -0.6275053335535775 -0.0542874868930629 -0.6115599284274751 -0.1404874926464613 -0.5781485380672087 -0.4517514673290326 -0.3005375698401018 -0.7830976284121697 -0.0914952261368912 -0.0615558611531103 -0.4812427410071211 -0.8246954036196973 -0.6162488256119552 -0.5363941137243149 -0.8335741639950196 -0.2248407538857113 -0.1783978510063497 -0.4894386549241055 -0.8426420791249377 -0.6691797748538200 -0.9530654309254941 -0.7215054773692434 -0.2184309752311924 -0.0535556545859940 -0.7355760360172161 -0.7125801045464030 -0.1129226950060812 -0.6408617863326520 -0.0088071916269654 -0.1752698044253288 -0.3626058506802130 -0.9016036414746993 -0.6571182115476382 -0.3579394987712949 -0.3981795379114300 -0.7076655520278619 -0.8332922762430486 -0.2140966400504132 -0.1040384770630214 -0.9174875249780529 -0.0454672578661966 -0.4451392160925987 -0.8236264176964948 -0.3988030698202904 -0.8395602189883247 -0.7481806329108371 -0.8574185863863462 -0.2860122570970343 -0.0305264413129378 -0.9338321511764129 -0.8036336251119043 -0.0152831247855128 -0.2537205457672891 -0.7467760023225934 -0.1578080470557290 -0.3383684180663123 -0.3224490510748183 -0.9849482703201532 -0.7312367091178014 -0.7368807769143340 -0.4863806188351322 -0.2398375668200497 -0.9591328031569991 -0.2216295075920989 -0.0991364917375947 -0.8714047585491038 -0.3413304091940184 -0.7807428201494574 -0.3021214528250382 -0.9356803899649662 -0.3477661913963421 -0.8636399601628809 -0.1427216082394106 -0.2834422656560801 -0.6917184074705158 -0.3328201440066467 -0.7396908833404031 -0.2310750207624588 -0.5471572842826460 -0.2007861762679823 -0.5644453013140681 -0.6950295201953028 -0.9540885663630770 -0.6519522809975965 -0.7111538644205979 -0.4950967240919409 -0.2651430390731895 -0.8741147374505847 -0.9103227120311351 -0.0388774741230039 -0.8868674067062638 -0.2341489620750941 -0.7113791822048114 -0.9333814718543431 -0.0526432924863842 -0.5704057448364516 -0.4933777168455576 -0.7963478160414786 -0.6208651035944479 -0.7434253395852687 -0.1690915897606438 -0.1763492456650821 -0.5373669639085051 -0.2652185569488609 -0.4051424866867496 -0.7334378461610146 -0.6795598344672715 -0.2867197750403624 -0.3004773459515181 -0.4316339439128885 -0.1071286887195278 -0.9065616633026685 -0.2925336075558105 -0.3196220094467764 -0.5977879637143374 -0.9090507465255502 -0.7621094165019628 -0.5186839142357113 -0.5752129355599445 -0.5151936338318472 -0.8569968051534240 -0.0060043393664977 -0.9177033757494512 -0.1757063108741401 -0.1920894650535574 -0.6157831106300466 -0.4879534658372437 -0.8515889159049316 -0.9158253212817329 -0.1112162138477586 -0.7503890052810741 -0.2356748086411832 -0.3525682638552110 -0.7949357521091615 -0.2199206057796898 -0.2305881420594342 -0.3653246466174305 -0.4253718419763609 -0.9698785749347818 -0.2452885874371920 -0.8673643140724830 -0.0678018532306537 -0.3841659190967407 -0.5342526995960374 -0.7632283545440813 -0.4570600160293788 -0.8187620498115149 -0.2679660288481221 -0.8468344627314129 -0.8688504092517723 -0.9633349231714418 -0.7514234218646944 -0.0793586017339285 -0.7649439307266134 -0.3221231053715377 -0.5534746993708656 -0.4091287269762280 -0.2951002971402829 -0.6767580998888071 -0.5315781944165791 -0.7552514208858222 -0.6325913019945780 -0.3871461893236725 -0.2176495442465485 -0.8701401944692417 -0.3682259306091179 -0.4710882877661311 -0.1082169457380409 -0.5642354607384407 -0.3071200080027510 -0.1135831809784949 -0.0795180069205806 -0.3045017991500948 -0.1376447176213058 -0.5964690557344714 -0.3073334510236777 -0.4313779236437474 -0.8054369474129578 -0.4705882904076342 -0.1507687746449139 -0.4992741834031693 -0.8463728936385136 -0.0473740515728895 -0.3364869536110377 -0.1717823319174135 -0.1074296824822306 -0.5302022314656027 -0.0663281904563182 -0.8206052904185863 -0.4287986810707852 -0.9316986343613594 -0.0339730458698110 -0.7721639704206783 -0.7419171665956227 -0.1440789256464766 -0.7843537697962057 -0.8810282730610096 -0.2248498519723474 -0.3549395517126120 -0.1683911986512410 -0.5739601400580372 -0.8016055346951138 -0.6099384329779106 -0.3705436645094171 -0.0512790200525748 -0.9887132170712494 -0.4411401671481128 -0.5166026298104477 -0.7951406300369281 -0.8765851009557281 -0.2757717845038575 -0.9707343379153335 -0.6046666810083280 -0.0705303276466742 -0.6462683629778959 -0.6632335331080468 -0.0732988558787049 -0.2533629125356554 -0.6520964389011924 -0.5177930063468691 -0.1178150989182707 -0.7961101489724633 -0.3353748979804557 -0.3836963180131407 -0.2248697823020759 -0.4625088176588762 -0.6824024621899156 -0.4500372806021483 -0.2773360393111158 -0.0048130319580941 -0.0544282315572927 -0.5266361569783869 -0.5514970159081751 -0.8174246124868261 -0.1191158069201757 -0.5113842574218206 -0.2665153740051175 -0.0037245413209977 -0.5404675276027460 -0.0687405190946288 -0.0919695068387091 -0.7085513024009341 -0.5673222894587168 -0.0172447284451748 -0.2694799328407629 -0.7652483664245864 -0.9913718067353091 -0.7960542799143854 -0.4258377781411711 -0.8890460572072034 -0.5478856868260973 -0.3793372129484971 -0.6545023965888795 -0.4146404945800153 -0.0899831078068159 -0.1654930362810276 -0.8830895043926623 -0.9215794277907529 -0.7455061199050282 -0.0311767839856468 -0.9401526371359209 -0.8456367133200753 -0.4142454351447334 -0.4838045157828784 -0.3185471692969156 -0.5053445870942752 -0.4844200077946961 -0.1989294084867025 -0.0198360101479607 -0.7185908131632434 -0.4797301207994495 -0.4784053048548190 -0.8252434521546315 -0.5505283898619004 -0.6841624088685818 -0.6988317011636084 -0.8521421897637346 -0.3847805875655068 -0.2194267016938193 -0.0842839596391133 -0.5333086267694065 -0.1133009018289502 -0.0104256109890148 -0.8061500981860513 -0.4557521085856776 -0.4143669445442562 -0.8171475244049123 -0.0309011248260638 -0.5908830058211804 -0.4966563072840477 -0.0998646156514907 -0.8676924601836843 -0.3490461621637053 -0.3336073991823478 -0.5053176385845938 -0.3635959022711146 -0.6459105675950397 -0.9884931551177264 -0.8536138674096286 -0.1425486612223637 -0.4831074655404859 -0.0176065124330450 -0.0217075560568057 -0.7262824450769664 -0.1841584257003132 -0.1922573098849259 -0.0083159254677885 -0.0906214911975787 -0.6196217377588924 -0.9281557018093158 -0.1874104778120492 -0.7728147629612755 -0.1431175524878318 -0.6075805199118314 -0.3023198665745097 -0.8582108485013409 -0.5543501751816330 -0.7054845944352374 -0.6491040354029248 -0.4472527521540218 -0.0790546281503892 -0.9945862779919972 -0.7024832766041549 -0.5043815013282165 -0.2666695778194133 -0.5821317568109406 -0.4023440202873682 -0.1343881790529876 -0.7057471414686156 -0.9198845205211597 -0.4355246660963339 -0.3915947678893558 -0.6203803527627844 -0.2532320330133330 -0.8811378513299315 -0.6987403457043178 -0.5209460001940921 -0.4106025638317067 -0.3476352613437553 -0.8564286048224697 -0.8379673700601790 -0.4932235878335750 -0.1267980951292684 -0.8152869288360616 -0.8686486839863338 -0.0310508902089805 -0.3563698833643751 -0.9903495800666862 -0.1053701076657829 -0.3777795214528517 -0.1442448322924833 -0.7159120163062261 -0.6187324641381081 -0.2467523826364655 -0.7833987603870364 -0.2553274118407315 -0.3331695189313171 -0.3260528987314503 -0.6368506101417425 -0.4152940656863943 -0.9783904337742555 -0.2332925569435231 -0.8282129395436600 -0.3111113543280430 -0.9464043478454933 -0.6823421375829853 -0.6999953378434149 -0.9941508220421779 -0.7565047011678470 -0.0442491658200842 -0.3131004406335741 -0.5088797193230705 -0.8409949230379481 -0.5215291401622927 -0.8823927816616770 -0.0300604483740412 -0.7797094915289946 -0.3657129969334863 -0.9503706660576682 -0.0936287385132829 -0.7159985676327357 -0.7541208441520265 -0.4470347298533524 -0.4474117236647696 -0.2073703568777756 -0.8291133748880026 -0.7432185189274925 -0.5218212522234045 -0.7899087966956031 -0.6346962728221569 -0.0156259770016502 -0.5853981144987728 -0.1788855307655953 -0.6126774948031649 -0.8002779813035363 -0.7037896313012244 -0.8589500509450789 -0.6837025169031509 -0.6524092842833663 -0.9410789309881914 -0.7013940507051653 -0.8436763287788025 -0.4577731669025164 -0.3871186727347858 -0.2087168032784273 -0.5204756790057550 -0.2448423098652422 -0.9407139644152347 -0.8925266866600758 -0.5877846240752774 -0.7924289067657115 -0.2568711731210435 -0.4064008473573240 -0.9705823744403960 -0.9900634686483679 -0.9333125683385073 -0.6712158729877038 -0.6732464282052617 -0.2435810925714018 -0.9875142339286425 -0.2832918162052459 -0.9684492166337187 -0.8387905318540074 -0.9194311755271211 -0.0657859660203974 -0.1396111043216324 -0.3028181258675409 -0.7375552110648771 -0.1563071323960990 -0.2386792956344240 -0.7921877217664572 -0.2347891028079261 -0.7793071332804931 -0.0433425096108236 -0.6461816064514923 -0.7087168408145493 -0.2124460108627451 -0.6834367747901853 -0.2816441551612461 -0.0793291421894096 -0.8992176612790532 -0.9392763092663072 -0.5935205488093617 -0.0182782444597044 -0.9527630269629872 -0.7855845936565192 -0.8457755732829202 -0.7550651691246478 -0.1335965723941956 -0.5181829230044624 -0.7989221107485351 -0.1460719789225934 -0.3391336315848943 -0.1692512315852532 -0.8167200945874217 -0.9082870871594021 -0.7708527769210990 -0.8327982921010419 -0.1451568873974036 -0.6766926420796106 -0.3228396980677798 -0.3790455759086485 -0.0098045228524780 -0.2082838967914925 -0.2566359163653352 -0.6957168124537216 -0.5298681767425926 -0.7418135561115391 -0.3134990374367818 -0.6129875949529717 -0.2556766266509379 -0.2587802383796110 -0.0643171789885681 -0.3440523954380816 -0.0020341670740794 -0.7377173323325710 -0.3836294497774591 -0.0401155562329665 -0.2203091323399088 -0.9444956436435430 -0.8590294415175803 -0.9071474493139494 -0.5209871378571608 -0.5280122238146157 -0.7132359809966036 -0.4589334622086688 -0.5263137966551262 -0.8334890654239904 -0.8336964842995791 -0.6623755264979475 -0.2774792513684601 -0.8089477602536728 -0.4259489845776475 -0.9498615317686153 -0.1587461722317200 -0.1524121479691934 -0.0413356994894433 -0.1843626049141853 -0.6595105119647875 -0.5919710576041460 -0.0169981104149089 -0.1068991984133257 -0.8782231039893145 -0.8110216741834017 -0.0940342537108579 -0.6640561530833688 -0.5669749743309493 -0.1826545468906379 -0.4366657128096059 -0.6067189487848200 -0.5741268824764744 -0.6317198440673419 -0.7559996990333637 -0.6548320689975954 -0.9663886564524881 -0.3918869004918690 -0.6253820411138985 -0.0876585165682384 -0.7998560918519819 -0.2467183526750592 -0.3742594547824361 -0.6580626501610026 -0.9341216806281327 -0.9648265037029683 -0.9909977643861146 -0.6192214798817117 -0.6055281390803471 -0.9494128686954411 -0.1096506432265245 -0.2317059502780414 -0.3952329022490060 -0.5122853835352710 -0.4712182565939949 -0.5036059965700318 -0.8867268786789304 -0.7153553770278717 -0.7776122145396586 -0.3676097706626074 -0.5321276724555907 -0.1983937704793166 -0.8397568231652707 -0.6090923688357607 -0.8971287821261218 -0.3590485691371640 -0.3963515977575180 -0.1517404824190753 -0.9427879336018888 -0.8504195509315551 -0.1125713693800051 -0.7182926016118734 -0.9838170509330592 -0.2473065287029811 -0.9540138088113749 -0.7708146438198877 -0.9851941046941377 -0.2614928463902765 -0.9821093211259458 -0.2117638509340185 -0.2998440391950218 -0.4941296152091866 -0.5079498373702066 -0.2364176588697153 -0.2821099000190708 -0.7599332448692953 -0.5731522994264293 -0.5669270116525842 -0.7257623628462186 -0.8717554103255414 -0.0053546756116713 -0.6019363700373109 -0.6400599336706774 -0.6389083535882745 -0.5165893167899723 -0.7870869143822443 -0.3441616368940548 -0.0540248663588292 -0.8530183020232055 -0.1858574463379224 -0.1064078138548376 -0.7990876974989792 -0.5287258479887386 -0.9597882914289245 -0.2186190669271233 -0.8205061242930550 -0.4944006959199598 -0.7051754741608011 -0.8007286057143383 -0.5065163848209715 -0.5417867940709452 -0.3086141856624374 -0.2138631072579297 -0.1445093050991562 -0.8879931530861160 -0.1360186267119828 -0.6721419586575380 -0.7968719530794882 -0.0927351037767287 -0.1262085241992867 -0.9553317637050301 -0.8881723007402811 -0.1450362860783446 -0.0632017625884842 -0.8148355394552320 -0.2867681819690914 -0.7431112792195215 -0.2519021410770473 -0.5043691036718858 -0.1420021622793086 -0.6971582033183266 -0.0613783372072092 -0.1459495572449420 -0.3805908112470316 -0.5120582659948225 -0.3804211202908996 -0.4305013451295585 -0.1077620504699729 -0.5756669488989862 -0.9789007981456525 -0.0006778924060086 -0.8411759498988617 -0.2413167810166133 -0.8200208199335094 -0.0511429243642432 -0.7337501723587482 -0.6666198854359879 -0.0336220052852073 -0.7122889925052333 -0.2393180787688089 -0.4703996778506551 -0.8248436364292279 -0.3828867458840307 -0.4412440373150769 -0.0693524901085713 -0.2625494378179999 -0.3219881507533592 -0.4225755106554954 -0.5127459207154902 -0.5722941011415659 -0.0569705168803355 -0.0704603511216377 -0.6909030670165396 -0.8624901811329428 -0.2437269175465372 -0.6130555313416628 -0.3290446456950772 -0.4722456510505183 -0.4738981463688732 -0.2007720147247455 -0.6893394032423452 -0.5163599874037810 -0.4703001768167508 -0.4308276679278869 -0.7120251625237207 -0.6966553526958426 -0.6686936028475430 -0.0193049724687554 -0.8956694096565817 -0.6042986184919292 -0.9280652076007632 -0.6673994326593113 -0.5882191249546108 -0.1634216915079643 -0.3346899613294943 -0.4536158282192582 -0.8488716010892065 -0.9274078169285489 -0.6685098377578147 -0.4579828194793494 -0.7403452060780927 -0.5110441509521613 -0.6046267207617656 -0.3845727805333203 -0.2537249713660096 -0.7105625689945402 -0.8228707722151810 -0.4264361486240333 -0.0725746467325331 -0.8095865629013025 -0.0391068120283742 -0.1677292413621340 -0.4125977831703645 -0.9437424701639953 -0.2785851316944986 -0.5904898504134510 -0.4455782988319585 -0.4700024876713483 -0.8069811506837834 -0.6204804175874228 -0.9803014150923876 -0.0913815853728978 -0.1824170306020535 -0.3230576836676652 -0.0767882819787199 -0.4044033112903296 -0.2869167632375137 -0.9653689921760135 -0.1229030402684809 -0.3862893759428359 -0.1727220670471953 -0.9418568370005337 -0.6149742151817531 -0.7681798959349385 -0.2196315763617516 -0.5513556499618311 -0.4609887294635613 -0.4878055357709927 -0.0726977461979966 -0.8682024927287832 -0.7263027029091590 -0.1158755601936181 -0.6520112226619750 -0.5674129270508719 -0.3694443288318152 -0.0793928052508253 -0.6980171805025920 -0.3247969334119606 -0.0642574135675386 -0.4228678335143275 -0.8041737998606097 -0.2073131557844663 -0.3504940734201946 -0.1744371994274187 -0.2802089259407566 -0.3308343278114223 -0.1319677924385653 -0.0617323055129424 -0.9903782531359497 -0.9941134264551078 -0.1147010190952787 -0.9718603908202059 -0.8043517612838919 -0.2544104847825911 -0.6401653200017332 -0.0140489071953548 -0.9610393512792075 -0.1163882692253572 -0.3416995678627345 -0.6543761442644220 -0.4927142362231199 -0.6073953342863813 -0.8508777930905965 -0.5902170201959552 -0.0309148496353481 -0.8813323918378778 -0.6236034728345641 -0.6567249458486170 -0.5423238999082411 -0.6512103015672214 -0.9835114191997647 -0.7308895283564047 -0.4630034716653725 -0.5865146534090433 -0.8385715811262069 -0.5872727879790017 -0.9774564510869574 -0.5800936838019131 -0.8910316885384547 -0.4711484950604988 -0.0954012280378809 -0.6794565808396941 -0.8321513667074516 -0.3560645601955574 -0.3562414566146881 -0.3413479950773950 -0.9307652054441669 -0.8055332897347738 -0.8979890163812628 -0.4120902192159311 -0.3398582884833220 -0.5453824137033345 -0.3048644311244232 -0.8257229159340309 -0.8336117986852922 -0.5497990922529404 -0.1167408078811349 -0.6534814375947918 -0.7760013621556713 -0.4927586415101003 -0.4208444040128250 -0.5600334800061432 -0.8125111763599946 -0.4963809115441208 -0.1239484321015676 -0.5237460463567558 -0.6417352389543201 -0.0037854039691273 -0.1198183818748725 -0.9499990427008117 -0.1403437547942013 -0.3136562693721806 -0.2686466067771681 -0.2237046297245256 -0.2084830352478901 -0.2152407808039985 -0.4463373366875809 -0.3785309991938858 -0.2445779506693463 -0.5502362961124982 -0.4623204045161117 -0.5852625472057276 -0.6702988159059508 -0.5341632430928093 -0.4243661562202983 -0.5873960787154537 -0.4573863903524429 -0.7999439522846815 -0.9052282998406704 -0.8841751743247436 -0.2553929588362078 -0.1194487432045275 -0.4749163781803037 -0.9178351241174887 -0.6420016205224650 -0.9805448363770505 -0.3860824310698207 -0.3672666353833788 -0.5849458875995521 -0.1485038978799439 -0.1284154972145100 -0.1987542343031092 -0.1311775275952755 -0.2875395002740706 -0.4433275923978055 -0.2341792864838095 -0.4716985994864466 -0.7653330019695874 -0.5355888857327684 -0.8236667946990146 -0.9305918482863142 -0.1392190912114604 -0.5568858561001121 -0.7469190598590154 -0.9069768184490278 -0.7137513935766195 -0.7812219528486398 -0.4343284943462814 -0.9927177395848351 -0.6784661146172022 -0.8200403634179926 -0.1256088693302464 -0.8575006944993883 -0.9455326028787304 -0.4207041887175202 -0.1791462351264334 -0.4697333900642302 -0.6862476801640839 -0.2266279545730851 -0.1416016385882077 -0.0936291983499709 -0.5628902570970387 -0.6293526330167585 -0.8096207047450676 -0.3799729035741282 -0.5127931371982657 -0.8176690156315489 -0.2704542534595643 -0.2349210081423545 -0.9247736932193642 -0.2215747181692869 -0.2600488220227843 -0.0479289836936332 -0.7233450900459700 -0.1620815855616085 -0.6893232734769278 -0.6369172867771816 -0.1657978238869506 -0.2947200972944085 -0.4312050267048375 -0.6802207531766202 -0.2166715942311605 -0.0065503584943788 -0.0675653721166204 -0.2742458065335402 -0.8025728189750324 -0.9753552470082490 -0.3493295163660052 -0.0250605135401414 -0.0789539286062442 -0.3202151424758622 -0.8427923744574309 -0.3089242217488471 -0.0204970885242169 -0.0673185475479911 -0.7127661528580257 -0.3963206193331120 -0.2926258648337060 -0.6387109123938431 -0.8311301447405802 -0.4651685036038573 -0.3071590587169996 -0.7508929873547046 -0.7305225711773634 -0.3075272493792864 -0.0332896330626568 -0.7622152168592710 -0.4560407817134677 -0.0298077140986966 -0.0801479926478941 -0.3000211122090841 -0.4971472490260250 -0.2418996402647312 -0.7462194151894821 -0.0320858933431313 -0.5581653396798779 -0.1668588342085847 -0.1765561803409228 -0.4485220683810294 -0.9488086185713019 -0.7333824922095604 -0.1180633590679800 -0.3770406725254607 -0.5191779855454074 -0.8107125332794396 -0.7744122210175314 -0.5836788047232486 -0.7342230425406834 -0.9422508445256931 -0.9446172622861596 -0.2699772678212761 -0.0927549281990316 -0.8015436614138453 -0.9830280476766229 -0.4230091677286750 -0.7113745749911626 -0.0758228984560412 -0.4580642936906506 -0.7863367634693296 -0.5103221485864710 -0.1262417542709046 -0.1237859848847594 -0.8591765756526173 -0.9280974603340021 -0.4420462798797635 -0.5855820292653398 -0.8682214019011666 -0.7370298850913908 -0.5913456909434992 -0.8036568563486212 -0.3060287092419895 -0.3673222815174885 -0.3091919423292769 -0.8173488949488451 -0.7682291297112813 -0.8502504906584892 -0.0459342352321476 -0.1490394309809920 -0.6185426282870566 -0.6507175801222862 -0.1257222009024445 -0.1028139362497752 -0.9533405104514718 -0.0245304068851621 -0.1912297974073539 -0.4744784456678889 -0.5491919110223858 -0.5138051759569182 -0.9549085686423879 -0.9325461621643166 -0.9745357807086195 -0.7116584878871164 -0.5729220368127211 -0.8946886859558514 -0.8098125246179506 -0.3428059471668667 -0.5928559894469391 -0.9070898232338704 -0.6898769574243476 -0.9106528971583618 -0.7678667458920585 -0.2134811662851940 -0.6503332113633331 -0.2313606182409191 -0.8474597098159106 -0.8071230820636389 -0.9744937176700812 -0.3192055523267409 -0.4431258046557249 -0.6374079613233025 -0.6816183664366676 -0.6253070857373455 -0.6907327063110903 -0.7577921534194149 -0.0824226761458937 -0.9401990082074545 -0.9422021098552033 -0.6741702802106800 -0.0209155094887567 -0.8989906267945699 -0.4848181788886528 -0.1678066765399804 -0.3469411656875215 -0.9214944627814002 -0.8320240627595443 -0.6211202476845490 -0.4711358752822325 -0.7269641733502106 -0.3749546339908194 -0.0014286265496336 -0.7468491614348745 -0.0717819591469005 -0.4817357533537355 -0.7036589483354948 -0.0154097360885848 -0.5234046456982343 -0.9515127573070240 -0.4210757782162310 -0.9383476750266099 -0.4773650205591025 -0.1550466626634699 -0.2662688366116893 -0.9459256393416812 -0.9569727288346257 -0.3329219746809199 -0.9584988409684010 -0.8239477295139807 -0.2499657634223057 -0.9358694276699370 -0.2803248033700377 -0.3292936238430579 -0.1050418981280408 -0.1387089449351044 -0.3913071325031758 -0.3939249277403174 -0.3304195572119055 -0.9729670218116907 -0.6352971665167652 -0.7602110948509491 -0.3291234380821621 -0.5514240725529662 -0.9530772657965793 -0.5440239128710066 -0.2983173661016918 -0.2608391018993130 -0.8952257351317862 -0.1066951051514141 -0.1795364494613431 -0.7333006205658980 -0.8777928509662055 -0.0831804240980483 -0.2111001649053972 -0.5287377914700729 -0.7480997663582223 -0.6733493756422638 -0.3263926528083707 -0.6043332505871191 -0.8393863749584483 -0.5268573684790530 -0.1213563453149046 -0.1272497680091083 -0.1918678945086983 -0.7368010474381070 -0.0542108073082442 -0.8634553288583814 -0.6382063416358221 -0.0566744835964747 -0.0530165472473116 -0.0485399283256977 -0.8794409530072729 -0.6022030328220871 -0.1769650929217870 -0.9209647876748021 -0.2069860879753258 -0.3832730312056133 -0.3210848995796401 -0.9584335930408803 -0.7850809935408409 -0.0043957095410118 -0.3088320910268275 -0.8342767580573826 -0.9305745254506655 -0.8045322702429181 -0.5376320904061922 -0.7437802287222151 -0.8918027203812570 -0.8284874380788748 -0.4427187540432582 -0.7832150918033467 -0.6241886274595667 -0.8602479433396343 -0.7828794191733379 -0.4034412966787308 -0.0972211624329052 -0.0957545575677323 -0.9468185043184369 -0.0166394021754269 -0.4400666000379582 -0.6548390667374594 -0.7489282946440325 -0.2904235575319047 -0.6869386879983279 -0.7660735138742700 -0.8492529858393671 -0.4726117589176622 -0.1503633278839865 -0.0534624861325624 -0.1248490103804762 -0.8545586626606988 -0.1533536055968326 -0.3187702419292168 -0.0545301822646316 -0.4587529988715144 -0.2977968500750285 -0.6911074649493023 -0.5274401862624398 -0.1217253413211385 -0.5865659948859288 -0.9683174695277287 -0.6963129412753164 -0.2963599229788997 -0.8708106187906951 -0.9543398210020682 -0.4188548711294953 -0.7727748528942019 -0.9754344884290469 -0.8062746361569690 -0.9575243479456901 -0.0485096623250765 -0.6715855359905861 -0.6381565316605341 -0.8788659094049958 -0.9709469796686030 -0.4108404554349301 -0.3669919920613725 -0.1552897214703702 -0.2817661128272226 -0.7856545161566852 -0.6768146074841703 -0.4162851937959462 -0.5427556481606701 -0.2328186895008260 -0.3516224082772561 -0.3694314616351728 -0.1864787557788296 -0.5107851365023033 -0.4965367158514620 -0.6558114365328713 -0.0955679717862449 -0.0516597136850452 -0.6841393427509785 -0.8999931263688298 -0.6753929188807213 -0.8597784507847106 -0.4744650005272790 -0.2770168426847358 -0.5080857324251810 -0.6030689227763453 -0.7112670032876418 -0.9221753518783958 -0.9304054239197047 -0.6629479889207339 -0.4215625958633478 -0.3750377794274948 -0.1007419858851232 -0.8469922179843797 -0.3964362871411219 -0.1749852057579427 -0.8426529275110314 -0.1937975995916280 -0.1086824132068137 -0.2530465696401206 -0.9850726164775396 -0.4239245956846406 -0.2881254742480331 -0.7982227368637218 -0.9110462020555714 -0.2868670126890072 -0.2244835527387883 -0.9895201774838012 -0.4212404809290919 -0.3708367984288298 -0.1860229598175284 -0.9472951294784691 -0.6712757067173407 -0.5525327379012264 -0.7848252633576295 -0.9319622622502425 -0.6220611863933907 -0.9701404341803265 -0.9439157161717374 -0.1224197690855551 -0.9018561288147540 -0.7623387603088255 -0.9516691779151696 -0.8602700222462256 -0.4962104213490892 -0.5885616699893338 -0.9135039311940605 -0.6059843658361579 -0.5466241675064033 -0.0980407321147256 -0.7869418226706374 -0.2488392309368879 -0.2831369011348138 -0.3563148108415215 -0.7038734629321319 -0.0320544660401869 -0.3933386661535521 -0.8011940565300464 -0.8824499154229233 -0.8695119753839098 -0.8426528160010499 -0.1376853067406616 -0.4727862566397199 -0.7592475513446590 -0.3481560522717445 -0.3691612592081409 -0.9963183048183122 -0.0582895777585185 -0.2777581763435786 -0.4622468853156725 -0.9464668172158465 -0.5311326703782138 -0.4399530742437879 -0.1280292022055795 -0.7942906467098109 -0.0290009173239912 -0.1326389487243496 -0.4530428162999831 -0.5241985797601161 -0.8575309209442439 -0.2913380452456262 -0.8532710183208454 -0.0838126615951708 -0.5835934585255784 -0.9053003531132240 -0.5948498372553975 -0.6243142177222549 -0.8486147774906893 -0.1127972044124028 -0.7381938921042442 -0.4928827910149667 -0.8624581692208484 -0.1179222299628571 -0.8867240864687649 -0.5760392864219475 -0.4856334366936687 -0.0442277188232372 -0.8972969806555193 -0.5456349129012545 -0.6207763216276143 -0.3111680431117006 -0.6882051682902283 -0.2239621122540072 -0.5985568992719273 -0.2858695848756822 -0.7588701984215833 -0.2801759364502935 -0.7434509748192851 -0.3379278577001779 -0.3599812914717095 -0.8020946373485069 -0.5533381236621043 -0.4129786657843247 -0.3197889347950157 -0.0907390388089702 -0.3637351224097894 -0.7999714456066029 -0.8454360000359874 -0.6763072940251612 -0.7585972776697341 -0.3683557698109673 -0.4700244245943911 -0.6511918123965198 -0.6102844548914053 -0.1296364201753137 -0.7570474437239754 -0.8329083243151789 -0.5638345532757192 -0.6956719615262047 -0.3190598718805366 -0.3000793270341480 -0.3958900914130883 -0.7971417514823089 -0.2752651077753829 -0.1346478707199898 -0.7868993983585427 -0.6465897204141028 -0.8345192421055727 -0.8553034798796854 -0.4035405694782536 -0.0393005987620078 -0.1864743818210754 -0.0782408712109127 -0.8082382547030694 -0.2592011765992596 -0.4727218417296649 -0.7835815390804642 -0.9625924921189504 -0.4284811333207777 -0.1703520835074033 -0.0741360427958031 -0.0842814283729507 -0.3220268789891595 -0.0684692951068559 -0.7569081646242020 -0.8190425026550325 -0.0604083240675614 -0.4015519017609845 -0.6060103847638154 -0.4611319235813013 -0.5893592411068641 -0.6090500565366371 -0.3897344010937195 -0.6333723021475033 -0.5537537947884796 -0.3671583560660169 -0.5595003010615971 -0.7118279174413930 -0.2896919875420444 -0.8797939161426416 -0.0283674943740764 -0.2252505166005045 -0.8647117327221190 -0.5838537823744645 -0.0533097940340064 -0.2454355324616551 -0.1457635265471866 -0.9916514807172295 -0.8018088121830826 -0.7839165626634601 -0.2304989070165952 -0.5400607989109327 -0.7420755464721360 -0.6775498089889564 -0.2761329376036514 -0.8094984630636168 -0.4274281995860807 -0.8529580416454822 -0.7327718260734296 -0.0267595427859441 -0.1533287099441819 -0.1785540330132014 -0.9049981022576421 -0.6370403347229363 -0.2333467016245261 -0.8330966976200318 -0.4824865000376169 -0.7969858190549778 -0.4898764403536429 -0.0098951488934947 -0.4853177369533326 -0.9111317811852874 -0.4856297405390637 -0.0593718239098601 -0.0492416160014340 -0.7268175819902564 -0.4315874796663755 -0.5482766906589944 -0.6107123035958083 -0.3973251200583114 -0.8034969097035769 -0.8437015785766225 -0.8872943610558727 -0.0459296351700952 -0.7049386289255136 -0.3180843440462041 -0.3521996425344311 -0.9379995094510883 -0.5553826868160102 -0.1305179899179889 -0.5445332748818809 -0.3999709312563738 -0.8316868649512391 -0.9985113177934113 -0.6960267782847426 -0.9561881667103697 -0.6802236232133327 -0.7177845104271785 -0.9947311614034371 -0.1938331411224928 -0.9581106108215182 -0.2776697628114175 -0.2513470073653531 -0.1174647197207670 -0.1071449778630509 -0.3095273780605141 -0.2082107204471396 -0.0680411303377704 -0.0553336585611877 -0.0547060247687520 -0.6020305811205667 -0.3481646449302296 -0.4741873140346660 -0.9433227522124742 -0.6216386708321144 -0.3004323982724183 -0.3373783246256792 -0.9339333293022144 -0.9860703651108117 -0.5015861980890027 -0.7536315161723348 -0.5042306876902864 -0.9168054239479918 -0.2671770187639119 -0.6290384631323430 -0.6170151680410770 -0.5629687350440642 -0.5091955254926195 -0.2702397237895343 -0.3674290239857216 -0.7679891595049857 -0.7075675707149066 -0.7303736243845586 -0.4906654267093791 -0.3783690434704202 -0.8376281586370878 -0.4433181894859248 -0.0644852600145862 -0.0741629770087011 -0.5884813853814782 -0.8726292647787558 -0.4993805845457442 -0.7426941432683318 -0.1661382620416438 -0.9948196495159256 -0.4960905252863093 -0.1615269140358198 -0.9263696668501155 -0.2509717635922702 -0.0856014641510393 -0.1321343336581146 -0.0127681402563455 -0.2148347216745659 -0.3144667162340182 -0.3630309645035544 -0.9998213626991237 -0.6364221473379665 -0.8959582152979828 -0.7748214945090773 -0.4243966197924200 -0.6380256664310779 -0.1129573709429025 -0.6265777676754362 -0.2877674165663668 -0.2401417772615207 -0.2700168744083968 -0.3668519478689093 -0.6785368022813182 -0.8821936927194002 -0.9743900307826544 -0.4524698016296237 -0.2081203354268589 -0.1962331244621722 -0.2257923625132734 -0.1291391531160373 -0.1037009717067546 -0.1561655863754546 -0.4071173483042607 -0.3546973551187848 -0.7792462614327318 -0.0852909299209756 -0.7520748822548631 -0.4677796660668629 -0.0177414228656497 -0.1091076158618242 -0.6178742609778533 -0.9039872008884522 -0.8790326774688466 -0.0901598239054849 -0.5902435479794661 -0.6034702961846992 -0.9675686174965299 -0.3218550625114011 -0.9704433028521787 -0.3653104601180138 -0.2903967479487290 -0.9500836366877444 -0.5942454607269896 -0.7402103767587034 -0.7694161904908208 -0.5943260572626130 -0.6660780579582368 -0.5034071458973298 -0.8571181980580108 -0.6987697376384235 -0.0393950242820781 -0.0207470764536919 -0.1493995969559883 -0.4427628699188064 -0.5178977425793684 -0.0040251848189055 -0.5416739470271813 -0.6065672066561448 -0.0684480015962372 -0.9070993480923639 -0.5021209112574512 -0.2206395806324882 -0.5179353406550722 -0.0619437457756905 -0.6128648683561332 -0.3945842864182926 -0.9644836795200163 -0.0560215472036411 -0.9143503827190211 -0.6370083085679005 -0.0901774428811184 -0.6022449412147705 -0.3571683626923595 -0.8485563258385083 -0.8493369103781154 -0.8936862899670551 -0.6895472611764749 -0.6208326977592575 -0.0915386169616530 -0.3576390337508497 -0.0379871805350188 -0.3973383899275636 -0.9662537054815710 -0.8889322022863616 -0.6807141868282839 -0.9757016067934301 -0.5808854614298566 -0.8051431799105656 -0.4518010084481107 -0.5675942499031384 -0.2045953596797140 -0.4678911233555230 -0.9589286970763056 -0.7126409098569627 -0.1442751223345858 -0.0777261893808430 -0.2592341010386940 -0.3941222534007708 -0.7058403355194004 -0.4518028142368543 -0.2230568779803564 -0.0352289947143969 -0.2854681131422772 -0.5619989676653263 -0.1203744016334308 -0.1616179073103561 -0.0647351504363285 -0.3885263873257561 -0.8889003300702796 -0.2166534725689228 -0.3295529104318212 -0.6098177338754266 -0.5423234560202240 -0.6973996137201184 -0.2523601102772647 -0.3523072195586315 -0.3974987856982318 -0.9041005735324209 -0.4281572112044837 -0.9494950539698883 -0.3310317998370815 -0.4095263049286418 -0.7658086713429273 -0.0527674503475612 -0.2318525341129702 -0.8557448657911788 -0.7886359519522118 -0.9914833238578070 -0.0340579201212248 -0.8640409744174753 -0.5861020103340558 -0.9461761339165113 -0.0535563354799457 -0.5422695913245698 -0.5948289554176101 -0.4682462281913729 -0.1065916753365985 -0.7329773329903606 -0.4552298027587030 -0.8703761898623446 -0.9069451251233291 -0.2612401327905112 -0.9072745346215518 -0.2982225117582469 -0.6701890737099837 -0.6486629730175258 -0.3476789436726416 -0.6069553946353698 -0.8753044094418365 -0.4244919279041355 -0.2018470149287022 -0.7577920820045654 -0.0134407417408604 -0.0597713648098465 -0.2933012427533213 -0.4220742406739290 -0.2151192833207042 -0.9507173770033219 -0.4201116796138531 -0.9874538856424147 -0.3016540349459197 -0.8305660404068024 -0.5404951066812829 -0.9244633180165635 -0.5280925584251142 -0.4478847736566256 -0.3931590004210562 -0.0335573290769412 -0.4819613871000669 -0.2714021668707060 -0.3483684663004801 -0.3155041749915854 -0.5213990003795758 -0.3588675328976439 -0.4729788692739723 -0.8449626468184095 -0.4278199439562870 -0.7009578000460521 -0.4502856315202420 -0.0539262090350153 -0.3094195552715717 -0.0695402711588709 -0.0832582996828970 -0.4611556379674120 -0.5928585048973124 -0.4904855733585885 -0.5806192875684917 -0.7035483908950515 -0.0989441273468646 -0.3453812878879815 -0.4305676260277960 -0.1870440138898889 -0.8627072082897314 -0.2566936453926283 -0.6548083531646354 -0.2881601676281960 -0.4856312718050483 -0.0010945024065687 -0.3582109556022177 -0.1207385745585247 -0.8078974791599174 -0.8067804068969963 -0.3984377532053100 -0.0766202879357664 -0.1740615416826545 -0.6076765730413947 -0.8773982614840347 -0.2199610209287552 -0.2577429649884649 -0.7043373363052443 -0.2470322086858558 -0.5289809938974113 -0.3316825443448341 -0.7317594109665763 -0.2776012179204936 -0.0904438959336663 -0.6571115285166766 -0.0311145165586959 -0.0113137165403429 -0.5770106929602846 -0.2518283067578856 -0.7173246639098539 -0.9797748119484488 -0.4830758378109952 -0.8003159026291570 -0.5888952986212693 -0.8026557643785668 -0.7955277408031037 -0.7946845470303125 -0.8352429365982578 -0.7962017417135824 -0.8278086753961391 -0.1387711009582998 -0.6047573729744773 -0.2619872130056564 -0.9049907647898884 -0.3614823279365794 -0.2176728714931604 -0.8862355563580705 -0.8988885502927421 -0.2411653206797683 -0.3922017287552129 -0.2342992584073436 -0.1121379279305236 -0.9452661807672263 -0.9163137579799617 -0.3520795558831729 -0.0699544112864469 -0.6948619735042708 -0.0791256563590374 -0.8331560538887953 -0.7470820213134997 -0.5965594049632699 -0.3768181231030067 -0.5440193822784947 -0.5438284935058681 -0.3976326333355200 -0.2677150220375470 -0.3791770789923231 -0.7377746243331721 -0.7836233045094935 -0.8949288092466063 -0.5299308110647731 -0.4563827054852294 -0.2769771391115356 -0.5017332898151771 -0.7630376126899732 -0.4694442108652175 -0.3701930483267317 -0.3520552999557838 -0.5106196902940164 -0.0805444975278731 -0.8644415256395910 -0.6799668095778671 -0.8173021224527385 -0.9262199874356766 -0.8997842073621133 -0.3864614297059774 -0.7581579065178720 -0.9218138442127921 -0.4781853811339705 -0.5686287843249328 -0.6633845188422757 -0.9726310592891884 -0.2431025646471857 -0.3796923400513239 -0.6027599281366354 -0.7998750057123523 -0.9113312329222760 -0.6826679892891340 -0.2347250577409572 -0.0193501972516604 -0.1582075449103721 -0.6050071122482342 -0.6317396914497669 -0.7054668935015765 -0.8085784461791388 -0.2423929591394197 -0.7943912045364800 -0.4841638715357013 -0.2909534481943852 -0.3694342164043868 -0.6106571476057602 -0.7007370816386747 -0.3296783324067281 -0.2378468671605201 -0.2138918606016414 -0.0834005232880555 -0.9625825176761640 -0.7071178822223231 -0.6193657344259127 -0.9037579764905734 -0.3760462537104926 -0.9272085379385860 -0.4145604436486642 -0.7163842443986543 -0.9416201902615027 -0.4696466543010526 -0.5475877358443557 -0.3078974293631170 -0.0864449867139666 -0.2947041392507166 -0.7845594830697051 -0.1973766068305152 -0.7076967492961203 -0.2220882579647708 -0.8984180577054697 -0.0641741882111155 -0.8453214919167448 -0.5434613072709705 -0.6570898653552437 -0.2666689291393401 -0.7118666614040309 -0.5222220232382256 -0.2019750110029918 -0.1694318951634734 -0.6080600343690593 -0.1322475636595851 -0.2240399269099285 -0.0875771366333505 -0.0129897623071988 -0.8213684222523250 -0.1685259339969558 -0.5599148858262145 -0.0244039295621356 -0.8756325687047770 -0.1358692594274837 -0.7452132755394657 -0.7963977764526176 -0.0057996067752371 -0.3083866531891359 -0.3481258746528091 -0.1379387184667966 -0.7108330651377835 -0.4910123105650222 -0.0127111152236490 -0.1400093210922283 -0.8772376310138545 -0.0642135455977788 -0.0474465203080256 -0.6023563777134481 -0.0705401977397903 -0.2404433676870347 -0.2877137972690681 -0.4147201192843088 -0.6276915124724459 -0.7275032281898189 -0.1650393419152797 -0.7900444750045588 -0.4831306802954756 -0.3663913955246970 -0.8634655019480085 -0.0439011628275715 -0.5408044334730607 -0.6087436454131336 -0.2630263594943114 -0.1923189102929856 -0.8226831344310569 -0.3205801078195882 -0.0737647586336594 -0.6363673953434528 -0.6425800284065696 -0.9776931502270542 -0.5393302511044680 -0.8489366203574595 -0.6083638236855146 -0.9874172880949750 -0.5531006096108984 -0.2631817780428966 -0.4005284257333844 -0.4393042660656227 -0.6696564519091706 -0.5241886101840103 -0.5851777908162870 -0.9426298779513287 -0.7608247078935377 -0.9845646153150303 -0.9993620360822618 -0.1718176286666659 -0.2019307559370854 -0.8130919063758836 -0.0394220312495019 -0.6995018578969400 -0.0190637848655241 -0.9282804728769622 -0.3693604936217229 -0.6073598748460106 -0.6704021063581598 -0.3817387379820327 -0.7932442088176627 -0.1899966718136513 -0.4620598452918018 -0.7213578850697171 -0.7016941641576053 -0.1428521577676866 -0.9515465782913169 -0.7160325919770573 -0.9591549315143448 -0.3393946315617082 -0.5021659666998124 -0.8275248141104553 -0.0599609286781410 -0.5059094019811358 -0.5816115982334229 -0.2545683067340665 -0.0027733723205142 -0.9589267315061605 -0.2066170383050034 -0.6365229481643158 -0.6659604618244720 -0.9498935960745365 -0.5562539219466368 -0.0919442176916449 -0.7330055888883731 -0.4687475013059940 -0.2138289900221892 -0.3888447259783548 -0.8978422498710903 -0.5812069799110943 -0.5053246302588236 -0.3689993558904881 -0.6075037462650175 -0.1010715788013506 -0.6163206888043542 -0.4313973795285059 -0.7289210155083319 -0.2434551742724788 -0.8767517631769769 -0.7638795446140799 -0.4683518428634790 -0.8029433736240098 -0.8332324851121918 -0.3541927557395376 -0.2067521753298019 -0.9917545788073994 -0.4813590995775784 -0.7906135293298242 -0.5551703592034277 -0.1178652888984343 -0.4738590869464704 -0.9148135116021678 -0.2052820697655480 -0.8373136303501840 -0.0351671855912436 -0.4959088586249558 -0.6294492856640239 -0.1606013680408289 -0.0634127374295977 -0.7454091952804132 -0.2130478491316503 -0.9814119354559367 -0.0085997517683986 -0.3044317285627039 -0.4979172836179641 -0.6105824531841729 -0.4997702750491402 -0.8890594698383838 -0.3899347151312688 -0.9737728539915710 -0.1345180334714729 -0.6202428330749135 -0.1178511521280436 -0.0215940786229476 -0.3199174859025778 -0.3650088339877630 -0.1027353881975562 -0.0398130954389242 -0.1359781012455575 -0.7726848078626293 -0.9578968980748209 -0.4586757974891814 -0.8933549726843074 -0.4029153499111170 -0.0654508054920698 -0.8718539209689278 -0.0861678873047313 -0.7227644532794208 -0.0753523596752715 -0.8170591055141160 -0.8670146554785372 -0.9064004732017060 -0.9755042342345405 -0.4467960979976642 -0.8250304772744029 -0.1430613361734182 -0.9923357677368152 -0.5245088196530916 -0.1057720822833328 -0.7957905540155363 -0.8434523678794333 -0.3513376614459972 -0.0774890794476364 -0.6780774037145523 -0.9246459963714948 -0.2751485396698508 -0.3884597945605621 -0.7646940134296738 -0.1147171930008135 -0.6885436169183272 -0.7011279689425205 -0.9905882736770518 -0.4152680232423990 -0.0193000216654164 -0.4137449222974127 -0.1903970833816367 -0.1565453235427942 -0.3552850491409862 -0.4419692235308819 -0.8687665420426781 -0.2392380858725140 -0.0815311610930919 -0.6108935017386188 -0.9528799140934776 -0.8139044629817798 -0.4595908436164710 -0.4888699504018674 -0.0775143268248063 -0.0764960347851348 -0.9505112200392730 -0.0774163088905336 -0.3802729794587423 -0.2025087137890029 -0.5883828638468152 -0.5026010468325494 -0.5931454467267677 -0.2139358260397758 -0.1506449985858682 -0.7007939538353719 -0.8438481618651184 -0.2010398630776860 -0.9313112959935892 -0.2006388280718107 -0.0924435681200207 -0.1941548257665664 -0.3187619654639952 -0.0711971657930817 -0.2018557402371236 -0.9438800019122410 -0.8744353320021668 -0.0972203541095714 -0.4853452148059803 -0.9654431398437867 -0.3479297517766198 -0.3612860977089697 -0.5031831255110939 -0.5463906026482228 -0.4705712111466593 -0.2182024730375788 -0.7683769708171466 -0.6557360214476132 -0.0268238030381397 -0.1289696859554829 -0.0443221501352365 -0.0597159078246455 -0.7853135537528347 -0.0665929879626907 -0.1419676574596913 -0.5505598400138620 -0.5086478673982043 -0.5659451955506059 -0.7859386174271199 -0.5081822831684474 -0.7516999672962027 -0.9252366162069251 -0.5718058812841218 -0.9364597776395780 -0.7645226621806690 -0.9230603192261170 -0.3896547776480180 -0.4662971659300724 -%% -0.6706497803768818 -0.8259915659051159 -0.6127769850532617 -0.4042432493346517 -0.0563064540342341 -0.4506809985950107 -0.6728182306226016 -0.2093887700710019 -0.2629049630806244 -0.0068903568874143 -0.6741981263711310 -0.8026358879744457 -0.6615563839200532 -0.2011487589490933 -0.2966113305625048 -0.5350148999623799 -0.7123884593841227 -0.8801106496231675 -0.1057599762765537 -0.7736908773165471 -0.1150862062662503 -0.3439478131991411 -0.2162976539518998 -0.0057640498417387 -0.5205619338920122 -0.1837588835868946 -0.1072048133407638 -0.9330220583897403 -0.0781877556303664 -0.6604415374454923 -0.0055543256941696 -0.2113213532549362 -0.4166371044168225 -0.2489126317221700 -0.8804237290693118 -0.9114630717835008 -0.2122197185028387 -0.1872496047054253 -0.0283493571356546 -0.0011739769717719 -0.2587451230366413 -0.6134283988672150 -0.7960136720771441 -0.4417212743517567 -0.3538190365232776 -0.4820827424201957 -0.7270079301991990 -0.5540293780631791 -0.6844720529281880 -0.7395825773469121 -0.1689867872929229 -0.7390011771948182 -0.3889554660143338 -0.0158743815304996 -0.2794561312296530 -0.5488249778351199 -0.9939879360511114 -0.3265921768161898 -0.7380059200028429 -0.2686659846029050 -0.0140301867513706 -0.0345076306283345 -0.7098586658566393 -0.8804033136216555 -0.1311251822393278 -0.1738269702011150 -0.9467849911595574 -0.0635165505526809 -0.8045666146925562 -0.5500252055448300 -0.2960850128458551 -0.3791679357611623 -0.3318679405186607 -0.1383370271666072 -0.9622471231685127 -0.0008209235817533 -0.2858982586997720 -0.9627033012525220 -0.5536461903980735 -0.0203918495292208 -0.2673520692161342 -0.3587292238852842 -0.0093934765497702 -0.0284739994461690 -0.5054042027492341 -0.8181935096212357 -0.5459306504169178 -0.9984011518683296 -0.4788924934998232 -0.9047358057561707 -0.6958031753814037 -0.0826713344650157 -0.2449075192032626 -0.4332419552713540 -0.7481090411770011 -0.3337436210362408 -0.1288111479371150 -0.1393425109365868 -0.3694359018085516 -0.2161886277610609 -0.0868289540623030 -0.2809660913222927 -0.6834390896658262 -0.6599492802927122 -0.0703576285531474 -0.8851721422324230 -0.0784159016220343 -0.6775815611931443 -0.8723857873635551 -0.3442387428829488 -0.7488398469947676 -0.6865869483303326 -0.5721400649461029 -0.5113942038836549 -0.7175259320021290 -0.5784878853002242 -0.1192925964151463 -0.3728264511453223 -0.3324480279209299 -0.7348138089866270 -0.9113418227917187 -0.0133558732261029 -0.0444334379695671 -0.7655890089284283 -0.8380837128929514 -0.6909078386850797 -0.8479124776327206 -0.7677202200246880 -0.5153327254961750 -0.8930457828966226 -0.6018790515210961 -0.0665720402909682 -0.5962448507692394 -0.3392590904124880 -0.1112857249315309 -0.5367884989765819 -0.9916240181373843 -0.8331481345246642 -0.2994661478507417 -0.8627726556183214 -0.6182353827040976 -0.6149876265111006 -0.3531793653091488 -0.5143005186400568 -0.5926468898446244 -0.3649024825358713 -0.5343363005946771 -0.5725036130122593 -0.3174075718189375 -0.3751798269431847 -0.6578860801973966 -0.9332728824329765 -0.1146445520498136 -0.1662239710723725 -0.8694019864172604 -0.7499672365062569 -0.7271363734624335 -0.9430020624479579 -0.4132824422670823 -0.4837363618225233 -0.4671709271543480 -0.4537214639120629 -0.7954668379373012 -0.2438654997599063 -0.4419460762806375 -0.6777206266673230 -0.9957734162654772 -0.2480800843375707 -0.1280403970412000 -0.3644668863337679 -0.9616873414436868 -0.1868708749314857 -0.6930411666732398 -0.5780037143603487 -0.5608423882500977 -0.6441989655644730 -0.9713249811202351 -0.4294390166286234 -0.8969774741365252 -0.1960699631492769 -0.7224530353170772 -0.1268089950416111 -0.9397683680282519 -0.5315018323429732 -0.2254886187046609 -0.0429141142621825 -0.2024717685614631 -0.6910933955316909 -0.7314732999603543 -0.1551093873719042 -0.6743060895480667 -0.4556540188327001 -0.4432436833380574 -0.5606860679844500 -0.6319108687982481 -0.0116703069980435 -0.2322452408551318 -0.3536862332363362 -0.1158322695030433 -0.9634522939857088 -0.8487323055999937 -0.4353499310626945 -0.6302969530620972 -0.1274088565446815 -0.2453010715007161 -0.7126333281485220 -0.5808262573450925 -0.5096368273743479 -0.4906882869254115 -0.6495880834323012 -0.0233123321742689 -0.0041469810558323 -0.8805597089399800 -0.2018707114365797 -0.3379314576230700 -0.4753747255809189 -0.6616274253970083 -0.3197317654981836 -0.2874055811093641 -0.0698162859045715 -0.5185972464080254 -0.3712390779666960 -0.0395522598727142 -0.8522029796288904 -0.6429233013492220 -0.1716043134564161 -0.0245860778925260 -0.1192679823597833 -0.2251123162515863 -0.2278627039406244 -0.6021001931781610 -0.7716493715297760 -0.7086536443199765 -0.6378488996151952 -0.9778896639349272 -0.6175561601799165 -0.1438112390964338 -0.5655215638728978 -0.8964914023258709 -0.4929803186620192 -0.3181047984817529 -0.2571762285898997 -0.5341139182822019 -0.4481070842468913 -0.7442557099061952 -0.0755455037462515 -0.0881736635594114 -0.8292182561831798 -0.4702901568278792 -0.3172165412962517 -0.5192743623627130 -0.0639664291315532 -0.7885729748132124 -0.8739453984594142 -0.2044745982999192 -0.7544967854617538 -0.6899486205135590 -0.9665559358594927 -0.1942611672076565 -0.2071430333395867 -0.2651524610606420 -0.6428563324162907 -0.6081367216327236 -0.4238958468282013 -0.7672532189318672 -0.9786971502709926 -0.0170800252756996 -0.5413752736159771 -0.4882800093012846 -0.5664635732064296 -0.4535325668908858 -0.4184044325889613 -0.9097756987185860 -0.4766618682549004 -0.9760491135221880 -0.6888504370810208 -0.5485435178768772 -0.5561370316148891 -0.0094666403269690 -0.3360619728116845 -0.4604348339427876 -0.9134297132560247 -0.9908922097051105 -0.1251950412031655 -0.5663664606143862 -0.0945400483940218 -0.4625197493670939 -0.8639195447432346 -0.0039262799519478 -0.6833368379014721 -0.7422283452747417 -0.3367793143998574 -0.5412184398424924 -0.3761234842735970 -0.8815788022034485 -0.6074823902030668 -0.4777707505251232 -0.9635916031584622 -0.2727502301296457 -0.1733453829569238 -0.8644986842700396 -0.9691780174692244 -0.2882628109384491 -0.6786791865359718 -0.8478671149035980 -0.4535076944249774 -0.1640098684409771 -0.4073202121801956 -0.5009583692983397 -0.9463817489661509 -0.0961353922326324 -0.1998223443867649 -0.7008862334619737 -0.2881202049236278 -0.3458537061813881 -0.2114514447990400 -0.0648526139252205 -0.8359259337698395 -0.7136411968729466 -0.8839727629895447 -0.4485996609021738 -0.4126785318598829 -0.1302233136776000 -0.6566698732369666 -0.7658415354209089 -0.0691474385841039 -0.5299372100597235 -0.8072030763876551 -0.7386502398203574 -0.8163976724866837 -0.9099590634362089 -0.1079579315030378 -0.1217338602508726 -0.8398682867388026 -0.0527879920083521 -0.8411987867709243 -0.5329342173929354 -0.0519388465693226 -0.8361373832400553 -0.6360358915176915 -0.7620059555978824 -0.7335875744925811 -0.7068483685535193 -0.8204346828900280 -0.2406901567099838 -0.3119376161816957 -0.8188672952427822 -0.0569869927182464 -0.8160735672225893 -0.1962001548817530 -0.6846908215984758 -0.0249193853783506 -0.5050224922572938 -0.8070765288638290 -0.9050568111880135 -0.5962573669748086 -0.1064109752073065 -0.8717233586021045 -0.7111238873247069 -0.8958953958961852 -0.0124857341852776 -0.3721871578061370 -0.1618305771923772 -0.7515039566733900 -0.7107271696811842 -0.2336812851484666 -0.1458156473180457 -0.9620985323087055 -0.8275964656273100 -0.1190767363568868 -0.9233858731422754 -0.5322410813615738 -0.0985540318104040 -0.8424411570469573 -0.0666493030651335 -0.5341925877342263 -0.5394414482514946 -0.8742698174359415 -0.7370734913518688 -0.0641610061811848 -0.7294092153878285 -0.3213275986725672 -0.1358937559382011 -0.5447052195538291 -0.1646240051946704 -0.1159073445476051 -0.5472078151545781 -0.7913238484821290 -0.2545447567715644 -0.5902198217476829 -0.6180104514739206 -0.2679718156247742 -0.6567257066434474 -0.4768088481712171 -0.8438998411194075 -0.8018278899795357 -0.7121966511487732 -0.9440082058646051 -0.3903038249845164 -0.6657680925264067 -0.9707962023941167 -0.9758816432468408 -0.5180344881975328 -0.4590301346752441 -0.5790243849919570 -0.9827581127256924 -0.7580890772895353 -0.0282653007892825 -0.4742266549813303 -0.5206714623709152 -0.0880362523484991 -0.9441696695392323 -0.4154944551240305 -0.4854395925471128 -0.5980708329728217 -0.1514730782817679 -0.2277850588198586 -0.6003959811473946 -0.4138648613445658 -0.5214294374618673 -0.5357899328102427 -0.1126604961733214 -0.3978861271719195 -0.1572100962678205 -0.9684761870036048 -0.2823789715122690 -0.7350302037352653 -0.2226577397656659 -0.2146205511975388 -0.7368134024381822 -0.6851977195850656 -0.2901994887952524 -0.2484031578734452 -0.8406937400471280 -0.7330257783888604 -0.6786698842197517 -0.2108314045756776 -0.9729048073557747 -0.1308633059219713 -0.8793668353727628 -0.3849229287904603 -0.1940388764205123 -0.1682749150222659 -0.7803041144613144 -0.7925818205728924 -0.6160000615567424 -0.6645809359455023 -0.6374354155824379 -0.2899256792758656 -0.2300623404836308 -0.5242963335351867 -0.1784243876633100 -0.2478678303610563 -0.6137636967201309 -0.1159975240188399 -0.4192057281273810 -0.6103248712962920 -0.6050614699403944 -0.6385246389661129 -0.7328477801951783 -0.1442908280252166 -0.2314561865539927 -0.6455315357936088 -0.0036223892582007 -0.0890605637757619 -0.6577781560016939 -0.5651268147351131 -0.5703656983239329 -0.5241197109565234 -0.0928816194038764 -0.5691972941463214 -0.8203219486093015 -0.2960977178239230 -0.4965672877217533 -0.2267953990067369 -0.1616474206061058 -0.2368359225241292 -0.8386880802324272 -0.4304339747920264 -0.8145921244355058 -0.2926089852252082 -0.4587937530266486 -0.4627877133550086 -0.9834880148784035 -0.2091795422250676 -0.8352278251817872 -0.0575487671296270 -0.3627326891505497 -0.6041543996670723 -0.0240717091937075 -0.4567222795141845 -0.4187870842887678 -0.5690436201072602 -0.3836306545353996 -0.7612922517768207 -0.5830063635525695 -0.7915574263840475 -0.4175259561486966 -0.2865009367887664 -0.4939103319869848 -0.2032170404710166 -0.8525061025761500 -0.7470551056895179 -0.8704712147963954 -0.6021654256915009 -0.6238331380559238 -0.2855855561303914 -0.6225569675320149 -0.2935555722964330 -0.9589648176738705 -0.9601991287755726 -0.5852953296215396 -0.6340552231766458 -0.6093081552867891 -0.8201434308862593 -0.2822697850577675 -0.9967785368852289 -0.2335465394107082 -0.6133704666150794 -0.4904032972340310 -0.1486629614533488 -0.8344672104592319 -0.9135908892417143 -0.7375622842785539 -0.5897558904109929 -0.1098753606683376 -0.9272881333662260 -0.6750529795155394 -0.8462439715445221 -0.2697821392669694 -0.7935084333473916 -0.8943474250522346 -0.2476696228020709 -0.3595067971832537 -0.8828856110778583 -0.6013691126210915 -0.9341383640410316 -0.4639396851498175 -0.8290389292699053 -0.9429304352276578 -0.8081843415934805 -0.2868742714089621 -0.6535422941066777 -0.6023122114508395 -0.2223677379303567 -0.6361442691922778 -0.3982437177621924 -0.5200912939619448 -0.5758078305226627 -0.7748887228869331 -0.1868994335680947 -0.8514212268643726 -0.3243979065563521 -0.4913208241743346 -0.0238366876477415 -0.1780986630421012 -0.8175212786729061 -0.9890372316210527 -0.3728789405866972 -0.6985932887801443 -0.3352356552544678 -0.3583583587778792 -0.4466220774815540 -0.0073745961146291 -0.6395481290571057 -0.5310219901165730 -0.7821001015015184 -0.2685203738424503 -0.1438215294677934 -0.5978443760279027 -0.9795823619109548 -0.3137689628064870 -0.3214138467598521 -0.8115559552087143 -0.2312886358012007 -0.8212584584657652 -0.9204949582089900 -0.0535134842000858 -0.9994410687255284 -0.6078550477689345 -0.7973926779009489 -0.1996560290000941 -0.5062876995415149 -0.8106786658315915 -0.0578425989842830 -0.5827079546553868 -0.0432037154811639 -0.5040317224858045 -0.9355691016054981 -0.2346848591614981 -0.5349390666455331 -0.9174472475955017 -0.9493137647333125 -0.4753405498076677 -0.1103976875454604 -0.7558087927388618 -0.3570947260322702 -0.8038972094324570 -0.3579640237972918 -0.7760442284305953 -0.3810516153211138 -0.1975746340404962 -0.8492999204369951 -0.6765546499587541 -0.1665838822246852 -0.1122785128910717 -0.2931939247600330 -0.7919951366782531 -0.0000582404213271 -0.8365080694915067 -0.2203637985585991 -0.6121296532474468 -0.2632961130913377 -0.0167285780013336 -0.4663309861016941 -0.7681799354590529 -0.3578060430860387 -0.2507600408199844 -0.5213115453088991 -0.3586892252566525 -0.6067751293117634 -0.9444632137746499 -0.9554219865588455 -0.5440689530350660 -0.1909700800250211 -0.1093806604767160 -0.7921633027842446 -0.1450294874919295 -0.1471985053609071 -0.0840312398289538 -0.0154118778449698 -0.4113809834270833 -0.3409183263468049 -0.8245251809130726 -0.6855985912090038 -0.2734045968044596 -0.7470573345824032 -0.7955318051569673 -0.0098127554247992 -0.6683780880410551 -0.1955225398256463 -0.3766197726646677 -0.0391047380371551 -0.2781487271629544 -0.1364691784907707 -0.2850721502751419 -0.0328973603833372 -0.9943792719896820 -0.6688384792981219 -0.4181112610271447 -0.1958179163192384 -0.9487291300060424 -0.3077654564242168 -0.7734300984283474 -0.6001396078131837 -0.8288257992036374 -0.0598446880534251 -0.0041856455700249 -0.9894728358865287 -0.0264532417712930 -0.4804227234935126 -0.0209322318342958 -0.9079223600125221 -0.9942765238896506 -0.5695570360172535 -0.7908262776651667 -0.9298491328745901 -0.2208941532330675 -0.4179045817888594 -0.6575322667894352 -0.8683361463991330 -0.0839274555745167 -0.5310017743192919 -0.5588325296668758 -0.0790463710490849 -0.7141867336772016 -0.4660200337484994 -0.7912064169318891 -0.8692844841966102 -0.5698923882269467 -0.4622641334170032 -0.1857573872948335 -0.5555595117353874 -0.0274413368339296 -0.1478438882769952 -0.4022779560333388 -0.8310386550646565 -0.1955024169867306 -0.8105401474647648 -0.3179930012343569 -0.0645600918293471 -0.2821075221546099 -0.8126411863275826 -0.1958498653224454 -0.3417382871033576 -0.5429096178775660 -0.0584930853678110 -0.4318403446245803 -0.3400144716621019 -0.9163287579962210 -0.6570576629613014 -0.4512718082641197 -0.9918900189591481 -0.4125872327658243 -0.3068165288947494 -0.3917093909562097 -0.3211895063719646 -0.3791139793096455 -0.3120045087232532 -0.1830462244693473 -0.5714279559387955 -0.2432982030208981 -0.3619224357655671 -0.4432778294797055 -0.7380736063012061 -0.9969313795461562 -0.5796349622748407 -0.7489459668531810 -0.7253672276173816 -0.5964103996236462 -0.2396655416315751 -0.0793554566490335 -0.3066772003296285 -0.5463786145232832 -0.0368418381532545 -0.9528706490181399 -0.6710863315232413 -0.2502500622002418 -0.4954620639638203 -0.2095527133076652 -0.4969308697084986 -0.4630343362496562 -0.7156447186913564 -0.9234436793840297 -0.1856394858598623 -0.3900936852835272 -0.6562750780860392 -0.6782481697309971 -0.0911612232140149 -0.1506002710545582 -0.4054244376561835 -0.4151740738781450 -0.9276398938602863 -0.6659787134123577 -0.9664801684939164 -0.3115282554454715 -0.8850230123909625 -0.6794787234586774 -0.2039261229292699 -0.5261577562343004 -0.8031207979755999 -0.6089336135656924 -0.7589013122320359 -0.3252171220337829 -0.2898318363065108 -0.7628518731394488 -0.1208005967267066 -0.4226086253200432 -0.4642084456183688 -0.6308854486034864 -0.1873009554916036 -0.6745428364676211 -0.3021643928953425 -0.6945713970307663 -0.2122282798610379 -0.4109919470346464 -0.2792336701373840 -0.6547910278041879 -0.2040536576239929 -0.8670961185862694 -0.8436951669448575 -0.7947723365945589 -0.7520419119893480 -0.7868348879649741 -0.2582729804497911 -0.8551167038829224 -0.3565121290335632 -0.1988301591539327 -0.1253561067512468 -0.3366010045544819 -0.3272425311344930 -0.1538595967543899 -0.1033105160116152 -0.3743997170512169 -0.6153147887679208 -0.6675935686067275 -0.8367262623602036 -0.6291700812098902 -0.0581007481140927 -0.5781984136712619 -0.2994004347902761 -0.2100447758866776 -0.3443339876707654 -0.0288499938062725 -0.3475022184142304 -0.7603928954830640 -0.5794945515381902 -0.5742942870031563 -0.0880799601167812 -0.1316003510675131 -0.2672551380763951 -0.4159943880195391 -0.5989595178839436 -0.2079628915883681 -0.7947277676573256 -0.7012523488967064 -0.3131759144170164 -0.9430180194210784 -0.8093026915237201 -0.7638995751704638 -0.9863321525652662 -0.4003011775272923 -0.9392228653340066 -0.5293987821876242 -0.0699443843988401 -0.3134108149213973 -0.7679636839503412 -0.2065000836745334 -0.5092162007580897 -0.3550337294465232 -0.2625737652496218 -0.3582208438688635 -0.9962482615397005 -0.7136425903233395 -0.9873002903568326 -0.7940620208707384 -0.1919963578354481 -0.6051337418560589 -0.2133650689005113 -0.9788801647903563 -0.4018239919361203 -0.9855890087001478 -0.8940523377283587 -0.3345351792526688 -0.9332820447600124 -0.5065539962732061 -0.9850765452102191 -0.5451311385903999 -0.6739192120991860 -0.8995240635621277 -0.5550385370458792 -0.3985632869525510 -0.9486246686280224 -0.3963824622451271 -0.0923621929153820 -0.4044468670200175 -0.9129165705540221 -0.2474533411648938 -0.0907881496037106 -0.5333879332631586 -0.0824018675289126 -0.2441935596529791 -0.5602324445708283 -0.2031084500396330 -0.3395845457034887 -0.8651871658783690 -0.1909952863567097 -0.2795872739642140 -0.8312696340084913 -0.7787417059599778 -0.0449367160743683 -0.4692373597415473 -0.1408660435935495 -0.4078630996645722 -0.9620032624635270 -0.2366611129563654 -0.5014567508919666 -0.0981788114016942 -0.1806323541546026 -0.4900608810254211 -0.2257804796681363 -0.6635944289309471 -0.5115215380743492 -0.4660595600809136 -0.5893662854201182 -0.2212515715943369 -0.0890093449785207 -0.9642799094591201 -0.7520228015470677 -0.5725258426375218 -0.2807641908627197 -0.9622855547195419 -0.6132306130320873 -0.1471264854779259 -0.5576803869075215 -0.5224653336349999 -0.4353217702014705 -0.2121603219439661 -0.5072724887865836 -0.3664609952382488 -0.3621023188399063 -0.0568475790644856 -0.6277682176611352 -0.1804715445896593 -0.5440077939177549 -0.6382937479031150 -0.1863015302591411 -0.4739561207873199 -0.9198099739242492 -0.4462258281478695 -0.3780301601045438 -0.1416867369433903 -0.3206521623141904 -0.8805001012584773 -0.9963772804791737 -0.4617856603383861 -0.6395592546966653 -0.2299436212495613 -0.5523120968280731 -0.0390347512883195 -0.9754607130246790 -0.6898141941820103 -0.6098647799232504 -0.0011919751190465 -0.2742158816023777 -0.0129619504510874 -0.7112811891677699 -0.8748053417175690 -0.7771672829000217 -0.8636747421080946 -0.2008204071149156 -0.1670931862843831 -0.9930516449781763 -0.2295481356655345 -0.4619626182430470 -0.2716373586077914 -0.4774434444031093 -0.1554564497529733 -0.5801407455126777 -0.9251803686711203 -0.5870197311906299 -0.4426079411888729 -0.8193189482072215 -0.9469464587102370 -0.6456911458242299 -0.6790549569637353 -0.4549697186771808 -0.7432000533939859 -0.4987473965562773 -0.0215206591826416 -0.4239912636305227 -0.3798668775474282 -0.5902707500336405 -0.4617226843808971 -0.1450335004744172 -0.8270521721189605 -0.4798500419297958 -0.3531084288980881 -0.4127904888076044 -0.3979812311811942 -0.0633748050049529 -0.9628699220321748 -0.2808764620100573 -0.7951747844806449 -0.6440324052030922 -0.8268915145821329 -0.6776694233399565 -0.7476721154021942 -0.7913956135491885 -0.4438037611563914 -0.1894062094066217 -0.6742821959559429 -0.0751962319153344 -0.4171746726632544 -0.8028094818238460 -0.5741540631774584 -0.2119586184816012 -0.7002240855906146 -0.5915092902196697 -0.4088850928024466 -0.3891466494839805 -0.4450613685799698 -0.8605063273274033 -0.7619769015116673 -0.4109791488118166 -0.6995209428283368 -0.7927465224293798 -0.6651371873253121 -0.8783821906590518 -0.7324899106003891 -0.9787996433785298 -0.2243933711503675 -0.3396867072456570 -0.9706742302917581 -0.4226697559960621 -0.4053856578671966 -0.4299848906994959 -0.0195538050942645 -0.4882446058399408 -0.0050335943612510 -0.6184150514021836 -0.7436742538352471 -0.9760423311005739 -0.4809790251925535 -0.8281110640624487 -0.4293368810785904 -0.7447513040531746 -0.3658407082754213 -0.9347167863565927 -0.5756712042417134 -0.8907119866888689 -0.5040296297570688 -0.0431348307802444 -0.9924178790289504 -0.1382007251365877 -0.6552489912530833 -0.3028184124450130 -0.6008649706098884 -0.2387731461416915 -0.6260593296138161 -0.3966320214295392 -0.4410662055655723 -0.3598054629319845 -0.1273167659069661 -0.5659734413179224 -0.2577111394577001 -0.7920323294835268 -0.2084368240195619 -0.3714806785942453 -0.1605691731804975 -0.8915152147589399 -0.6678945841165947 -0.9620524271442882 -0.5115421986130528 -0.6740783028295261 -0.5062493706921459 -0.8663526052435616 -0.7023252651270384 -0.7311501233259725 -0.1879876391345607 -0.8349081475459735 -0.4239934311379909 -0.9729107465553655 -0.5253140884030542 -0.7153643647990499 -0.8097557908319570 -0.4281199262969559 -0.0336082488182343 -0.6422743193895412 -0.8664740396054412 -0.8499016976167587 -0.8662031678458075 -0.8633948653851446 -0.3314137123176484 -0.6966065053518696 -0.4441905912241438 -0.4586997265792671 -0.6832300586376354 -0.4452520506859341 -0.9743019876856285 -0.1972669846409746 -0.3999453463693672 -0.8716341794734965 -0.9392526345490593 -0.4078170195036085 -0.4977580170575677 -0.7313521221776285 -0.4708001698881611 -0.9015858890087439 -0.5776283281676070 -0.5261645780094363 -0.1873361917379495 -0.3183682940450852 -0.3026371472034468 -0.7027122454964163 -0.8741308605412854 -0.7477014851329072 -0.3878588233174927 -0.1230665676874787 -0.9611162062905568 -0.6429508714803907 -0.6805755179400397 -0.8076469660038721 -0.7863769563783374 -0.8299917104581902 -0.5172410717492845 -0.4706494595514595 -0.0028857581699064 -0.3283724836419109 -0.5974215880908222 -0.3637519656148018 -0.0625848865700366 -0.2556806833524042 -0.1314988250825415 -0.6778174568471043 -0.4592717561148534 -0.1095826743807705 -0.6278432281397783 -0.5778926120439918 -0.0346061533231668 -0.9414436233758671 -0.8471078173912678 -0.9634648427650838 -0.8538593907713599 -0.5063024252317282 -0.2681910862893243 -0.0796816904736719 -0.2453476235020552 -0.4662236567928310 -0.1958375594229104 -0.8709268322544527 -0.8136249764817466 -0.8474832589931299 -0.9035519050886631 -0.0225191712694915 -0.7239348250432245 -0.6867304281273064 -0.0092867971145361 -0.6020711038665827 -0.8706532146734764 -0.9179843861724638 -0.0410185442246580 -0.1822352636845558 -0.9248575843794211 -0.5211236717730604 -0.4510727500750041 -0.4517458957796450 -0.0934367872300967 -0.7508691477534293 -0.5284026626017644 -0.8393702879550945 -0.2438067920352463 -0.8723163609094619 -0.9840383455310787 -0.8348651951871527 -0.4481408405654671 -0.3902188934728952 -0.1016659768032312 -0.9351170132324814 -0.6397757941767460 -0.3295906817068242 -0.5093636227100334 -0.6457594030228846 -0.1863015544438260 -0.5200665306897020 -0.7870726376723480 -0.9127192797753966 -0.5470721740315405 -0.8926302690050050 -0.6363389096463550 -0.9601333950642523 -0.3706193841752623 -0.1386829921182344 -0.9588389973018461 -0.2277220408831829 -0.7180470078127240 -0.8065194462333201 -0.9110964726918016 -0.7426402847535993 -0.9851873494269756 -0.5045404384800642 -0.6033470114508762 -0.5053048950620602 -0.1821706243452708 -0.5095071520576512 -0.4878328125233971 -0.9004596327773445 -0.9618410414328150 -0.3068680431956540 -0.5046274913296918 -0.4172029689554730 -0.7670397251756738 -0.9332966518291168 -0.6485564972476571 -0.5811943828247736 -0.1488728445642979 -0.3322074212980943 -0.5400555704376303 -0.7031863415243131 -0.7669549772950260 -0.8886009739428576 -0.0546645941807403 -0.1918008887570896 -0.3294462748959614 -0.0423501673210455 -0.9824061432643633 -0.3602869273744204 -0.5260462169293489 -0.2910294649726550 -0.3020284562493477 -0.7709643464233488 -0.7074300137165597 -0.4167448570146364 -0.5473605115913461 -0.6787282889941261 -0.3111969219047548 -0.2059550398831939 -0.9670512607244869 -0.1386722654256127 -0.4924633533546569 -0.8819242532885108 -0.4055280534630044 -0.6593833689876296 -0.7084295652762030 -0.2009824987741067 -0.4026557881803819 -0.8570163548169257 -0.7412595616728223 -0.8451211357601036 -0.6078952659525060 -0.1917469531178785 -0.3020135465357887 -0.7302113291255181 -0.1607169783855153 -0.3704826975333985 -0.4563019863606176 -0.4604478550205848 -0.2830025486607967 -0.6896187478927254 -0.3722090063816373 -0.7950662064217235 -0.3348360203134726 -0.0894686744595175 -0.3131440244414995 -0.6844497001816023 -0.2320520233230104 -0.0630692129371812 -0.4855638283523876 -0.4965223237201346 -0.9982592694182569 -0.9336370556795063 -0.4765344655401264 -0.6204062808188641 -0.6409336170248937 -0.1423732376046224 -0.7218417997981040 -0.0251948869031422 -0.4909029452917174 -0.5315158170434265 -0.6792714176240864 -0.2785917048485730 -0.9892130481716161 -0.0718708728884951 -0.1105211423483690 -0.2476463085989742 -0.0877703830360676 -0.3927175624140121 -0.5194937068661596 -0.2129820728970462 -0.5116859464372664 -0.9701954086706548 -0.2873223706950525 -0.9233588265617964 -0.3202957011432098 -0.7791746019144454 -0.9209934033719811 -0.9055937012421273 -0.5325132251968094 -0.3328632260400404 -0.6879271306239299 -0.6402844764267249 -0.3795103594138809 -0.0104455357879364 -0.8645202597223570 -0.9665086486985087 -0.8585639967066960 -0.5896684881948212 -0.4193839547307011 -0.8493300328385999 -0.2147913221791555 -0.2178345534963051 -0.9592739581968029 -0.8079379395659060 -0.3485584241424272 -0.7876367022679963 -0.6571206096210505 -0.2742004033810502 -0.7844973503336494 -0.9215009178567896 -0.3673928884402909 -0.2694485164429946 -0.8477599036677013 -0.0197733826665731 -0.9508153113715531 -0.4873538161115555 -0.1738055037722702 -0.4287095907432208 -0.0400733113888152 -0.3487703920656186 -0.0259574643662913 -0.4368592948167376 -0.1687529035079925 -0.0259042723130055 -0.0719586872242812 -0.6430274491897451 -0.0114041688989043 -0.0775811394458042 -0.9223172893733803 -0.6718885396626793 -0.5199939983391061 -0.0826638545418551 -0.7146037669691063 -0.8175022559802654 -0.4589764113545460 -0.9610839736700799 -0.2703559113423437 -0.8896222515317803 -0.5026845150159609 -0.0381470695767974 -0.2717425462398037 -0.4038553830832153 -0.7970668453594278 -0.2330985796013476 -0.3582673009272933 -0.5517150582761918 -0.6598581014187268 -0.2218884618999365 -0.9762124378489822 -0.6396709043830325 -0.2480394526978102 -0.7595500832590132 -0.3927735686328228 -0.5754941526394404 -0.3123407094673069 -0.0215684359916686 -0.4296692679649919 -0.6831645084459348 -0.9170702241972314 -0.1878667418114593 -0.9102305328613657 -0.3408413486688138 -0.7026429254335277 -0.1758883202244403 -0.7841527065942911 -0.8871619722542370 -0.4405644139217184 -0.8621191632112634 -0.6800467610385879 -0.9553649143590983 -0.8912267606498364 -0.6900608695698048 -0.2570009291409269 -0.1955109471129666 -0.0271261000024117 -0.6517197906162637 -0.9305352719464305 -0.0212299243550949 -0.6395854929880482 -0.3315313356692369 -0.9255905733332066 -0.7875500687587406 -0.0899734733084319 -0.1040757479266377 -0.1394336256620761 -0.6090159635682290 -0.2598777693170771 -0.9611367026643435 -0.2765725319856374 -0.6778858688433568 -0.3141230252886089 -0.0203547899449999 -0.0095817847494037 -0.0610637907984764 -0.5526652945738433 -0.7147416224628306 -0.4656216816761077 -0.4546946621297752 -0.4030354883920502 -0.3868185686872813 -0.8009164149131514 -0.6594529835275775 -0.7518138273803485 -0.8836259797670921 -0.3657194700513534 -0.9775612212299545 -0.9229481884182147 -0.2247027261430662 -0.8225957546037668 -0.9660192468670252 -0.4183206264910264 -0.1680814572518313 -0.4637392546241816 -0.3309454778655800 -0.5590929455073977 -0.2447328717422609 -0.8376171715612460 -0.2047712583344336 -0.8277759639768222 -0.5144552987413169 -0.2484164534965537 -0.6897256734773605 -0.6580908583538513 -0.8879918301005744 -0.2672114165009548 -0.6347878489451315 -0.5274753092267366 -0.7218235212939345 -0.8095640610314773 -0.3906289598627614 -0.0445790309120977 -0.8092999013602296 -0.4802389454333384 -0.7521930350435397 -0.2547425313612202 -0.9291760722080621 -0.3083790008351598 -0.5671369577507618 -0.8056249972073503 -0.9259937055166781 -0.0108541343650807 -0.9995096890250954 -0.0468467767183383 -0.1015936452475766 -0.6244921261511849 -0.5610149259685449 -0.1897416806139023 -0.0831319487873877 -0.0706035632146813 -0.8954138902763091 -0.8520072965491357 -0.9566347385595937 -0.4787620074084486 -0.1172054936578882 -0.5351143889040114 -0.1152222666330742 -0.2922462181448231 -0.3200833726774070 -0.1181354526867396 -0.2404575448750886 -0.5415909901854883 -0.3211389059912222 -0.3510463296267063 -0.7746324488118888 -0.9986030947566680 -0.0418595158942575 -0.0139787161175348 -0.3875907595896543 -0.7530389086716179 -0.5941317089184823 -0.1595625427646494 -0.4194132666128316 -0.6563692272464169 -0.7790335494772769 -0.8956786136783697 -0.9515107168427686 -0.9677560237200764 -0.6229528862708318 -0.6895320519652769 -0.0473014817654582 -0.3620892707510956 -0.4848792401906387 -0.0860256114500050 -0.1231564388786734 -0.0649173780997755 -0.6530233085976481 -0.2429985447839251 -0.3364787209385801 -0.6459399067910920 -0.3203764689930123 -0.6990693047823500 -0.4341323145713521 -0.6563422059892272 -0.2173387971355377 -0.9637952866773769 -0.6607275980470636 -0.0796469243440591 -0.4479284411694911 -0.5415876254192639 -0.6557567534066947 -0.8340148838324034 -0.1922276581617431 -0.4076427724465323 -0.3533006825814292 -0.5981341136279571 -0.2553379914371780 -0.1919467015311055 -0.9294979370271899 -0.5744078435073761 -0.2798287115224770 -0.8338315974978148 -0.4896111546024445 -0.2203518595405510 -0.8501585460851093 -0.2950349902168938 -0.5329113050349750 -0.1557779573842886 -0.3158441582262916 -0.3435317300120490 -0.0501260294635253 -0.5708653611593014 -0.8115657322046125 -0.1128616801596810 -0.9481083901226166 -0.9731976148322251 -0.2862745100218906 -0.7679103932822915 -0.2984715121287830 -0.4963932883852935 -0.9894080736664661 -0.0494555565027316 -0.3702362623475484 -0.5174465377145300 -0.7664428139096473 -0.8421790808778825 -0.3613062961000928 -0.0304059869582618 -0.8163494961351256 -0.0066496192799561 -0.4353939689505179 -0.6164955456506980 -0.3677672876430078 -0.6058981686330663 -0.8482330837866502 -0.8508228913740034 -0.0420607643745302 -0.6764219799533058 -0.3016978510235287 -0.2061570293911438 -0.4894713187226017 -0.8947067781885739 -0.4974399832782541 -0.2560584232650818 -0.3545240503132590 -0.0497645050704449 -0.3649382456285633 -0.5781017928703784 -0.2593985048801880 -0.2573054854966929 -0.8411345508500866 -0.1673501853211126 -0.2698629368291344 -0.0114681157053863 -0.5425356489234545 -0.9124050823057182 -0.3243438310007327 -0.0444391412355456 -0.2854804921104441 -0.9713481381612467 -0.1493028258138311 -0.9376220915546207 -0.5160480009443225 -0.7575753428651201 -0.4392434079381751 -0.8641895135928856 -0.6048116800155845 -0.8517577489309491 -0.0681054820570370 -0.3507316083262376 -0.1584073325761163 -0.9048422929448370 -0.2454456134530116 -0.1688553989695608 -0.0925885913979589 -0.6156297430830749 -0.5117834588197085 -0.5927523492918186 -0.9284291380830760 -0.4295983204456260 -0.7005624337148904 -0.0683092844046305 -0.5042668834271299 -0.7823365651784885 -0.7913493504668692 -0.7143029247109636 -0.4981071978430911 -0.5904419032047712 -0.1096904064169723 -0.2201526756501532 -0.1583351274890349 -0.8978992567846610 -0.4534670964102946 -0.3385387806043364 -0.8593305478788553 -0.6829161334968287 -0.9477761586191684 -0.7326863964439103 -0.3717420865424330 -0.6865041726173859 -0.2257920557058972 -0.2153121365673821 -0.7081949833336886 -0.1456191362384329 -0.3819270358226128 -0.1482824488284014 -0.8397461173564810 -0.5095795900424288 -0.9533439251481428 -0.0031193434442223 -0.1835190420210124 -0.2126659650200075 -0.7026535406262844 -0.0926336341837400 -0.8983485289172923 -0.3584504138910118 -0.5226308085286762 -0.3473896043618652 -0.3327680155018392 -0.2779397906022432 -0.8690825544212326 -0.4379204522330615 -0.6588062234418051 -0.0845975714870132 -0.0426857190169780 -0.4426838510419984 -0.6385115281333987 -0.0468161403668703 -0.3179645073860647 -0.2520913007147265 -0.1310366504615986 -0.8406932627872690 -0.7062852925711428 -0.8117694859180328 -0.2544704680915038 -0.5028047000489703 -0.5024131357778179 -0.9758845426614957 -0.3776248605135203 -0.1560141998388467 -0.4365298069364617 -0.8740165912993504 -0.6249453573075638 -0.3584603369820842 -0.5812052635912771 -0.7064391204933703 -0.2590970165632111 -0.9616261270243925 -0.7371200538040362 -0.8760180277757790 -0.2477914310539994 -0.4596424959467362 -0.1997953719048625 -0.1025062748242720 -0.2128657260791223 -0.9537716668849801 -0.3250156576093250 -0.2426958968117487 -0.6371153835140172 -0.9842940491864728 -0.5338854397695886 -0.7107330495915096 -0.5615951156497201 -0.4974925589399317 -0.1248608704692610 -0.0653478205616685 -0.4995372200732820 -0.9166056415751752 -0.5604306335633519 -0.0168225782271857 -0.8638570115317078 -0.0690418190997658 -0.7590143505888518 -0.1488856672386586 -0.2286919108552740 -0.9232449990816181 -0.4805208219527649 -0.7179963295659471 -0.1486892621703501 -0.4203278297205737 -0.5190996974631388 -0.2096879014544686 -0.8925270420925629 -0.1983568854738631 -0.0016125358176491 -0.9881801548783509 -0.1319881603987824 -0.9360905385012720 -0.8310210136280922 -0.4360755966886609 -0.0794404984136965 -0.2248113269254897 -0.2025194147491347 -0.0363324026444286 -0.3923839381164775 -0.7766632656102206 -0.9173689276496617 -0.6504967858451154 -0.6068946954502972 -0.9659888371945107 -0.5690692313924823 -0.1991219338090241 -0.1773277227699380 -0.7108295824508500 -0.6970606269690431 -0.9649042244467533 -0.5618734107635087 -0.7311277757280892 -0.3527781517282796 -0.8191464096957458 -0.6858132156912087 -0.3573405703805015 -0.3853339766032497 -0.8102174856585140 -0.4903624529474172 -0.2423793284917126 -0.4434779790592663 -0.2800492035870955 -0.5821730245457386 -0.7804142279797868 -0.7166911594708220 -0.2666068292819997 -0.3713383720971528 -0.0680229006285039 -0.4262955169175252 -0.9892175858714144 -0.4335280915793611 -0.0823560106269561 -0.7670735542380446 -0.8202882149578634 -0.9114414573051591 -0.9439149093249251 -0.8020672803295404 -0.1510127658616406 -0.6819584785461428 -0.9459783015865997 -0.0177456972609941 -0.0677281602122275 -0.1684869620222255 -0.8801085341366714 -0.5266360815497825 -0.3240634223890045 -0.2583433493451672 -0.5552886782383709 -0.0028728320033330 -0.2561453714930781 -0.1756304211722207 -0.7927598776722965 -0.7407312200833395 -0.6577896151185617 -0.0215305357367126 -0.1583856915392156 -0.2304879757242600 -0.9861086250863013 -0.9022317622920208 -0.9395066438928235 -0.7858749917959041 -0.7872547942492210 -0.1296149965814871 -0.2012412185255479 -0.5976058508472814 -0.7983280453108142 -0.3331059352600580 -0.8688069511171967 -0.3626717804320311 -0.7630185250512496 -0.9448369216702093 -0.8927858127970022 -0.1291753652670494 -0.5196630832232656 -0.7400979199890309 -0.2424624018252474 -0.3371683802973342 -0.3840708848328651 -0.2246769054521544 -0.0678706418418612 -0.1123802356325516 -0.6998075135450743 -0.6949245762243059 -0.1275475579388417 -0.5919798260770579 -0.9667346689505580 -0.7274768031650555 -0.2356456471960194 -0.2760441233144222 -0.4353027378685878 -0.5896858784646944 -0.6660646890608888 -0.3536900202122732 -0.5836296582623269 -0.8487296204131421 -0.0266214263945826 -0.1883480922821393 -0.1932333033290927 -0.6090000382146201 -0.9125268695002923 -0.4843806999657029 -0.3384077327164764 -0.0728766379887434 -0.4932348745355788 -0.4295417609839121 -0.5387690605084077 -0.3665522269142119 -0.9496307630822044 -0.8070069141532575 -0.1410670617274711 -0.5049755016580028 -0.3995270685772330 -0.2576757670334312 -0.0331007656505329 -0.5419223146351337 -0.9828015631932735 -0.2474143375257285 -0.2798160041657937 -0.4539045319551354 -0.6713641663858049 -0.6191971169652316 -0.6324322066047796 -0.9385249342522616 -0.9809966755016950 -0.1001079041876762 -0.1415330856138893 -0.1704488839366777 -0.3881485905965430 -0.2935499941248824 -0.1120005811916858 -0.5914879323108095 -0.8765235178597197 -0.2271962394785683 -0.6161754863290158 -0.4764176557196777 -0.7056085159691604 -0.1496645437284556 -0.7058634873540515 -0.9859995805692675 -0.9355089490367021 -0.2785601350972580 -0.1003528419838865 -0.2261425593878807 -0.4967031151489507 -0.0566664538568530 -0.9159277316054119 -0.3922953860809024 -0.4483502985238674 -0.9124681416233108 -0.6718031407877725 -0.4816634428056503 -0.7061227517611068 -0.1873683529932155 -0.3169404869243944 -0.0910609552450158 -0.2949820297812915 -0.0245653972452079 -0.4141141928760574 -0.8185350103409462 -0.4636467348206875 -0.6289251174784207 -0.6869857659841480 -0.5964122412216316 -0.4618838976102555 -0.7359986342556086 -0.8051806030752703 -0.1706060923454619 -0.9482913628610325 -0.4809387541501188 -0.8579969297238123 -0.9968685829068644 -0.5392077948673361 -0.0947857543232063 -0.9287967257651502 -0.0585686642139498 -0.6695867268859137 -0.1936208173684255 -0.0259080832807979 -0.1963049592221661 -0.9536030970765107 -0.4186538106744412 -0.4546006669003153 -0.0781686485842149 -0.6534944031709503 -0.6433527421047117 -0.4721226608708392 -0.4722094731200412 -0.8946639929385878 -0.7557253174510878 -0.9654927884521087 -0.3597407314778985 -0.9799811185141807 -0.7607680901727522 -0.6508613178756906 -0.2436633564044947 -0.8925608164716374 -0.5919963182484672 -0.7111540657638707 -0.1740080894329348 -0.0355902435505784 -0.6079107078295621 -0.7214647631957276 -0.2955362684203443 -0.4562961344523110 -0.0779334540207073 -0.1021414682525891 -0.7065259216680965 -0.6222726095579222 -0.7988079862222858 -0.9618378826488166 -0.6333816246201256 -0.9331191849755162 -0.3102661147308385 -0.3875507149968780 -0.4498616242467166 -0.8894861406466421 -0.2243485310274160 -0.2707622428419260 -0.4786969146798553 -0.9846251447247807 -0.5729761491506550 -0.8513888062996343 -0.9132168187018416 -0.2772562585729932 -0.2007969491109869 -0.7721790667651092 -0.7797739521900092 -0.5401140573140070 -0.7634158161949297 -0.6366050729945988 -0.0770363291291437 -0.4721668146956453 -0.4686432376641178 -0.6968911564583339 -0.4225138471526058 -0.2991646701389455 -0.7099622684953939 -0.3213712247060048 -0.1890481684469329 -0.5430008637584348 -0.9171931156991225 -0.5872694907499869 -0.7584472802012305 -0.4226089782700226 -0.9294961108168333 -0.4543320886707632 -0.0823410508928388 -0.1758714870797015 -0.9153472698235159 -0.8393921070525052 -0.4224232250181824 -0.1777626197675873 -0.0419886888245400 -0.8262135835404802 -0.5052004520770992 -0.2637273907291635 -0.9440946973564522 -0.9229891394437990 -0.9894965857068228 -0.1129838258364303 -0.2561510074557786 -0.7875380908210652 -0.6319777168903906 -0.6617064324814188 -0.2866653780760334 -0.8660328782465921 -0.7916314662378321 -0.5969386861976854 -0.8843213689630884 -0.6730165711165048 -0.2982409442407024 -0.3065158119143195 -0.6557112141528549 -0.1891885643338961 -0.9306619264648888 -0.1877469903470455 -0.0334335459897208 -0.7582239608908194 -0.7483979351883965 -0.7911550121426927 -0.9501843543802572 -0.2722935458685424 -0.6007415948786937 -0.3901549076518685 -0.9763755612054245 -0.0369939700249492 -0.5323729445506774 -0.7856730916404367 -0.3497280843685927 -0.6387814536537902 -0.6792836778919811 -0.6541452667514743 -0.1569148474471564 -0.4490370580981634 -0.6120169481812407 -0.4291933530968562 -0.8849982720438981 -0.7790553412783163 -0.0331638468875693 -0.1215640456835296 -0.6412051548983529 -0.1942739494269774 -0.6193798821139512 -0.3990234774825708 -0.4587772307346252 -0.3257413037677643 -0.7588046323386585 -0.1037593527667019 -0.8321320812847075 -0.5608472276986062 -0.5760265944119405 -0.6073082243118895 -0.2993349058571911 -0.7678174345784632 -0.6197024503169893 -0.0831102403921690 -0.1673107408842182 -0.2496212996915371 -0.9957936244241495 -0.9023690064795112 -0.3417791450257848 -0.2132540412149562 -0.2748117750164497 -0.0580707922064493 -0.0302003492278179 -0.9353036575742548 -0.0704915014151684 -0.9435622151044095 -0.1150421314579128 -0.7943208010593020 -0.9243679720473754 -0.8180606145619777 -0.7693368208868272 -0.9269028270471269 -0.0716061769037047 -0.1374518610202794 -0.4379920531781609 -0.2799964018764617 -0.3750445895500082 -0.1252938052153874 -0.3636804417561890 -0.4916875036003094 -0.5734618587685328 -0.1033924013526448 -0.0047566450719206 -0.6829888108652479 -0.9759443974204535 -0.3633676200711662 -0.7362900598063589 -0.5509065377926534 -0.9917593780234876 -0.6278834045356503 -0.1553793406044841 -0.6025802475252517 -0.7556594391164060 -0.7723281635324477 -0.2024199741261136 -0.6365184884751295 -0.1401223395222604 -0.9204158061945104 -0.8409760855592519 -0.4030988975865366 -0.0797163856639079 -0.2279533339232732 -0.8685041370249280 -0.9924199481463124 -0.2922436471527523 -0.0332181762314443 -0.1336691578462882 -0.9786199296286078 -0.2802261413336742 -0.3023797459494975 -0.3287873010032111 -0.7921060249068855 -0.9225916883513958 -0.7850993153812060 -0.8474991423452118 -0.1067095448456049 -0.8458985887255326 -0.6846225021968605 -0.9036181463180440 -0.7224748697753093 -0.3342460342540206 -0.1173245081376589 -0.6984498386545128 -0.5433877135872228 -0.1985025309029395 -0.6371900354379039 -0.7097815171508399 -0.6208031849535145 -0.7263305328814040 -0.9182174066146056 -0.5467990157951281 -0.8799271016679129 -0.4333543027484889 -0.9580083734844091 -0.8639409539357322 -0.6617163541433831 -0.1168465140212412 -0.6817131992600645 -0.2433453353730155 -0.4644642812297524 -0.9082284253198464 -0.8020966184045929 -0.8663983141380835 -0.1737822456463625 -0.5194094901570069 -0.0169302627768005 -0.1436561895187408 -0.6106929247383819 -0.2618672248522042 -0.2188649547461539 -0.9947507742070121 -0.1310251433160454 -0.9455554493610040 -0.0696159079694186 -0.2140276966668211 -0.5554124526262427 -0.2637067488889844 -0.0911155297285757 -0.1661280939687333 -0.5011615243934917 -0.1100992035279255 -0.1412587275249444 -0.0995751608974772 -0.2627060852763985 -0.6342966168815523 -0.6768336652904491 -0.9748301440095153 -0.2292324685112495 -0.4008871349850629 -0.5974652718577376 -0.3822692476844953 -0.0757144239438484 -0.3177899458612168 -0.2075964784851643 -0.4529547830290563 -0.6201183259245497 -0.4687509895638818 -0.7270959939771672 -0.7013305336049380 -0.2477703411225342 -0.5262581730027912 -0.1776465925219300 -0.8700935582670346 -0.8389953518944439 -0.2196786775898805 -0.6202520310464685 -0.5516537147578645 -0.6087754021366627 -0.8936780350076884 -0.7827779522304362 -0.1758652721951158 -0.4972289162183700 -0.6059529357580395 -0.7130301811159451 -0.8596385375734888 -0.6391932981098963 -0.5887081588545566 -0.8936721566251852 -0.7183373966652044 -0.3228062530090938 -0.3707911797021348 -0.7364208881589807 -0.4316219469550188 -0.3572694378006537 -0.3138175500557325 -0.6244081383965628 -0.8675676014797002 -0.8759615692583863 -0.9365154468413415 -0.7433043281225773 -0.4056836276498403 -0.6443499358660489 -0.2206039338744345 -0.6508569030236597 -0.8555644826246532 -0.6325750545992908 -0.9868097318323660 -0.4635187669438467 -0.5657400050310177 -0.1157655500324088 -0.1163859845173219 -0.2383849613486622 -0.5405867679807470 -0.0684025993237541 -0.2849853367531424 -0.0629259998894395 -0.1925659935892730 -0.2653042874391041 -0.9314489567745914 -0.4947204649861094 -0.3120536209830941 -0.2849697583085745 -0.2108695153102065 -0.5511080661030812 -0.8429663839534144 -0.9777554581731687 -0.4248490252564392 -0.2478895011199792 -0.1840953558752291 -0.0306056615913880 -0.3058430496147007 -0.6353552250362883 -0.4383101539866083 -0.2338112277989623 -0.0211983881535119 -0.0712461246959274 -0.2113991352481090 -0.7949031811022533 -0.3805400197462047 -0.7186323016644206 -0.9065632633526954 -0.3376554898120862 -0.4710461122327015 -0.2913289014446749 -0.3503133544690384 -0.1909629029424268 -0.1568733838349911 -0.5487271279048312 -0.5003409308398880 -0.3131182001903026 -0.3867805096969247 -0.9781644910262695 -0.9840747966364163 -0.2271315989736059 -0.1943299345284453 -0.7312787032966112 -0.0422015835284154 -0.5117771636821119 -0.5750782535910294 -0.0030782736878965 -0.8027050213017932 -0.0487987963982722 -0.6829641993410900 -0.7309757066843222 -0.6983215724339001 -0.2324537813400110 -0.1039695855171783 -0.2838189068593525 -0.7169576664367757 -0.9507119858036748 -0.6497863167843734 -0.5492045539913952 -0.7367940167798390 -0.2432521340060706 -0.6368982022979823 -0.3110533886338623 -0.3887509146167604 -0.0814918811892169 -0.5911303526141637 -0.9118206940962326 -0.5462907006195745 -0.0570610234267521 -0.3287219928958103 -0.3837925816143414 -0.2456097395769410 -0.3840718414980835 -0.0216831354038262 -0.0323446848357492 -0.2136053216055497 -0.2515686352360630 -0.4547675052467607 -0.7560601768748735 -0.1151137989478402 -0.4459907401167787 -0.5219318646141409 -0.4029219013976958 -0.8850646288602388 -0.3613262544146608 -0.3024388213252649 -0.3650937284619293 -0.1959769775963441 -0.1891180706391074 -0.6989587519988958 -0.3781129179390808 -0.2120985966202965 -0.9112108675884004 -0.3807303876039323 -0.4137071695130826 -0.1893143843398929 -0.9804922842088835 -0.1124770162224866 -0.4495232729801300 -0.0378757213609248 -0.1100748006771031 -0.0860732671597094 -0.8919560013964665 -0.1422400593534927 -0.1130258376026575 -0.6620428427348600 -0.7738180212483589 -0.7836370348227916 -0.7587208043621751 -0.8263215448898816 -0.4590926366929638 -0.1614325381696843 -0.4612824840290185 -0.2726667585161675 -0.6152661946112064 -0.4383517857712692 -0.5319054128048194 -0.2252427752535455 -0.8547473335356496 -0.3951882373086660 -0.5464726243951982 -0.7965737207573602 -0.3168420172378338 -0.5202801818738064 -0.5682557715571042 -0.8774815375558623 -0.8052271462196303 -0.1945275877689054 -0.2593278107933764 -0.6551292650217213 -0.3528642599580720 -0.8855659442826312 -0.1445798491151181 -0.6189029157849091 -0.9889907441601455 -0.2559840167365194 -0.5384930923201144 -0.6833376951851492 -0.0696696653512354 -0.4448429128180033 -0.3619195187677985 -0.1113532420250700 -0.3697993829018421 -0.1567798385936343 -0.4856004158845726 -0.1128769426014182 -0.4100471916935172 -0.3278123678013509 -0.8033711009282011 -0.4250922142124365 -0.5740273989848887 -0.3179571610606062 -0.4229652210393595 -0.7574623391410822 -0.5151610804490614 -0.3739834510993206 -0.6263529613883547 -0.0798727666458218 -0.7609281543135803 -0.5462209965445174 -0.6772834811991795 -0.6005647333963041 -0.2570639911138122 -0.0671901781913464 -0.7010966386414133 -0.5576750142468556 -0.1373789750610118 -0.4291926311886515 -0.5644731100830583 -0.1985120137359764 -0.6927687735794372 -0.4778204039312450 -0.8091134056683726 -0.8551032424473254 -0.1918101731485582 -0.0578982585410387 -0.8224736662414506 -0.6339196902098865 -0.5285597730759886 -0.5237926112567608 -0.6067592486433189 -0.5942964367596129 -0.2009746354573663 -0.1229079775264173 -0.2738195510737064 -0.7736301405510647 -0.3646297004554473 -0.1929478868791691 -0.6389453593425197 -0.0474608076229809 -0.5210058420620016 -0.2675814857860954 -0.6715867465043378 -0.7276366647480302 -0.9733471450877078 -0.4983872392132644 -0.9795425713308116 -0.4317351176909463 -0.8590440628148251 -0.4734314596088596 -0.2710684550054215 -0.0618921953487952 -0.9589351639402076 -0.0515392607549173 -0.5710601888403317 -0.5170961713529671 -0.4339244521016377 -0.0056411208751191 -0.3063813897837524 -0.6819402715359614 -0.3505149030770587 -0.4125348777270141 -0.5735243338777470 -0.9332310901554849 -0.0171698858285609 -0.2109580670809580 -0.9280769351248651 -0.6687123751575741 -0.3182305101402755 -0.4975961271659044 -0.5019821861036969 -0.9573041051037562 -0.5193393604564319 -0.8121058203288879 -0.6744443527716226 -0.2319928316780180 -0.8635313509861434 -0.9791890548707380 -0.8912425192676844 -0.8013408494620968 -0.8889397105245140 -0.1234271638085666 -0.5830906262606326 -0.8172092060278197 -0.5907902108743418 -0.1711860647546211 -0.8399519785253313 -0.8235526438421128 -0.9624080780819501 -0.1529730587350045 -0.6034092686039084 -0.0386799172301899 -0.5331682941563185 -0.7013829239251173 -0.9427655219765450 -0.4112738028227974 -0.9249215412365197 -0.5490046368042139 -0.2456892240259040 -0.9166348024173846 -0.4747760208728015 -0.9270209830962918 -0.9260177581212643 -0.2335004809341738 -0.9270794780794804 -0.4579896519277681 -0.1136841759176972 -0.7871453397436495 -0.4428267897252037 -0.4940440582550536 -0.1763139742113466 -0.2558519655755877 -0.3936840533149819 -0.0040309208172359 -0.5448165062970943 -0.5669367909899098 -0.4330201767117541 -0.8147036442375436 -0.2293810367032126 -0.6489986250100064 -0.5168873650912207 -0.5537887083181703 -0.2797601616976392 -0.3636551767145870 -0.0467957836489408 -0.9130874770529670 -0.1912189812674835 -0.9886810948139901 -0.2006225740466708 -0.1775338427463685 -0.2977799466819427 -0.1479188071380166 -0.1172028702215285 -0.1242010168813659 -0.0225552508180891 -0.5662809660732754 -0.8841867719282607 -0.7312814900058969 -0.3531879674397241 -0.5966015458058689 -0.8829711590945659 -0.4513444224601150 -0.9694889832741199 -0.5927488133727438 -0.3396049277373778 -0.6608279907803493 -0.0365218470407455 -0.8265872160788240 -0.9231239195956772 -0.5064960709934986 -0.4928525442821521 -0.4297542586206582 -0.6297086926082467 -0.4671628063249157 -0.4439592417247724 -0.6563127939154818 -0.2549380321083613 -0.4373357543143452 -0.1053125397168596 -0.1892832580852158 -0.8327291367651705 -0.0171805441861160 -0.8458747167591856 -0.9035212962460917 -0.3615053877317662 -0.8847306874768228 -0.0837941455584337 -0.4039241954095356 -0.7771752795863403 -0.7500550862503530 -0.4078994835116534 -0.5120729922348450 -0.9194100343389090 -0.8996544058361938 -0.6428103386684728 -0.5903832248078932 -0.9570889133549190 -0.3976405736902547 -0.1841442067454379 -0.1536403827814869 -0.5811038261335163 -0.8124670166318528 -0.7959604402893791 -0.1863635860037035 -0.8230339146314990 -0.1932715025720215 -0.1589033154038024 -0.4153878343666717 -0.6653147788198980 -0.4218689182080718 -0.9082212586799744 -0.2328640251067574 -0.8719032215409300 -0.0934286251151026 -0.6066404880243841 -0.3178065424469673 -0.2096594226977372 -0.7607008219582292 -0.2749765078036719 -0.2099432676325038 -0.9518052411502533 -0.4609902667721021 -0.7837124396582826 -0.7674223862020693 -0.5888467219924421 -0.8126388688622690 -0.4493699774365243 -0.4233144364253454 -0.9437320247524976 -0.0579932723344032 -0.9380430619146506 -0.2126458057988500 -0.6817661149813998 -0.2939514106973011 -0.5365928973307806 -0.7175931043331778 -0.0729363847573541 -0.2490381993456429 -0.8031535205004233 -0.2709221163321436 -0.2544548287235081 -0.8026203239782833 -0.4645057873315249 -0.9669160818624946 -0.3663768192469513 -0.5090179159053722 -0.6342528026015917 -0.4167053557301900 -0.0131260273013897 -0.1349413456669559 -0.3728711731817764 -0.0565736112736507 -0.3678621661307605 -0.5596867981485875 -0.4276849946969118 -0.3161158135780279 -0.6950153805643957 -0.1865955912368681 -0.7123625803619320 -0.9465444467715145 -0.1640701178277738 -0.5288132468691444 -0.8219452765005371 -0.1509443243981779 -0.3636056044968974 -0.5973491303248710 -0.3914715591132254 -0.7818900887180683 -0.1377539214298980 -0.9610707955758955 -0.9454116237527719 -0.3643483346169943 -0.1687031977165938 -0.4698062490735393 -0.1513551427474638 -0.3986150095147143 -0.5941725085253207 -0.5966337362181545 -0.1116377498895729 -0.4310163111679934 -0.5247427016501139 -0.2065947633301262 -0.2615834865421487 -0.3419923415391768 -0.9348498544076438 -0.3933332491832110 -0.3566066631893925 -0.4612146013308161 -0.3015471218501019 -0.4344707139660967 -0.1801015269742987 -0.4651115608443717 -0.0454760254210119 -0.1096301820849350 -0.9718693382273154 -0.0348447925858021 -0.4594539163494470 -0.8833284512513764 -0.0582610146743793 -0.8443737279198956 -0.9795255015059384 -0.7565594789920754 -0.8790070548675091 -0.4636479245572682 -0.3802837431038160 -0.7505001429700476 -0.1643648558147171 -0.9639061331548464 -0.4250597453538525 -0.7942929511686594 -0.4246859135390591 -0.3493554749427280 -0.1465260695491343 -0.2133162893118217 -0.2678911430834340 -0.2881423962691383 -0.2309801141516686 -0.2395562488007093 -0.0224563421625056 -0.7063739692951070 -0.6907846497843610 -0.8728563048159124 -0.1455436351532448 -0.5209748956267971 -0.3467372167314559 -0.6348891468293104 -0.2987602887699883 -0.3252290112564024 -0.5766850627114333 -0.7982353372346244 -0.3018559668091040 -0.9489051570040348 -0.4379027361023099 -0.8229215645715848 -0.0263150368884914 -0.1776751212490120 -0.8746632720559925 -0.5276407836792805 -0.6745477304047895 -0.6407529042328762 -0.2859796992875509 -0.9952957506752927 -0.6744534476112900 -0.9304769045913656 -0.8619972040947571 -0.3703660128928549 -0.8371610078340121 -0.3413500651355380 -0.9504104889706287 -0.8987708678194404 -0.6569529557604826 -0.5891623618704200 -0.4428059799772390 -0.7222354864571913 -0.0391878210312704 -0.1059685341874931 -0.8069672260726064 -0.9643057110532074 -0.0977331637806196 -0.6952749356319133 -0.8228700129758153 -0.2728658584446968 -0.5063604703084774 -0.8774925207788475 -0.2089037712604399 -0.1113335260395547 -0.2054598095455895 -0.0997081610552545 -0.8679363667684028 -0.3626630647759844 -0.7004999264396903 -0.6056923348629711 -0.9520627800773355 -0.7822415818591221 -0.6490671972015787 -0.8767661013059145 -0.5249828995804126 -0.2065361062509685 -0.5524235302928883 -0.0977332544003112 -0.8710497983770643 -0.2522646288253396 -0.8931667231377955 -0.7764085302502153 -0.4701810870105381 -0.5323995048157854 -0.7480802119244796 -0.9064676562451112 -0.6916814837226591 -0.4440813426724699 -0.2652024140170477 -0.4456564353206106 -0.7463404551081245 -0.3131247933032065 -0.1642040875681695 -0.6686033731047023 -0.0964779154377887 -0.9445138898807497 -0.8179756452070128 -0.7039503688077839 -0.5134380468193412 -0.7261458442203923 -0.1685905748347270 -0.5475120404040339 -0.5763917342940471 -0.3272504140120357 -0.7321401320798823 -0.5435130174121984 -0.1515230321293589 -0.4614142477784033 -0.4496710813450988 -0.9469967276655596 -0.6607228020360648 -0.9639260145033548 -0.9667926218487144 -0.4075268940411121 -0.1426653957262339 -0.0948809760667325 -0.2236940145123590 -0.6669275769292319 -0.5620732695964338 -0.7685744396888347 -0.9230910609659772 -0.0447784106392832 -0.6691482278291867 -0.8029637144074445 -0.2007518196116110 -0.1621969457374351 -0.5498161951841352 -0.3247960455675121 -0.0555657174422847 -0.9507964298777801 -0.7464146448325126 -0.8701378871308296 -0.1764176709338983 -0.6476407481335331 -0.8118957908730597 -0.7001025798930463 -0.6954499169867434 -0.4269261130818651 -0.2584224686550218 -0.8557911065085821 -0.4080311933884037 -0.8921766436227925 -0.6570661694465365 -0.9013910560094708 -0.7067650618992493 -0.7986710578240241 -0.9934091994568139 -0.3837716675032453 -0.3984667038320578 -0.8430119803823234 -0.3984852040692691 -0.9187647721272022 -0.5890825521842522 -0.1282440763540252 -0.4063276620089407 -0.4487514754867101 -0.5126427780617493 -0.3961708312780415 -0.6838211264800994 -0.4430178824554102 -0.5162034738546781 -0.1448633575422701 -0.7326239205647583 -0.2262076941849885 -0.1540259257540633 -0.5974313606575705 -0.6834770995352164 -0.2868467925311327 -0.5751947667860926 -0.1821203594217198 -0.9549358417914217 -0.8449640126273854 -0.6233779871040017 -0.9368096474224712 -0.7530481428041115 -0.6676516219678099 -0.1931223840891168 -0.7451106619183011 -0.6497137846770245 -0.8816191119016713 -0.8807817020687638 -0.7482263236977590 -0.0916623139259684 -0.6305543527523649 -0.9764785561738009 -0.3574107775346321 -0.2606808889932940 -0.6288603793972403 -0.3861915242206575 -0.5540970109675031 -0.7514969652755670 -0.9892576005077395 -0.8817104991690599 -0.6190572873263608 -0.3322969936910256 -0.5410325883437056 -0.8280465480388737 -0.0939881149405492 -0.9467825252219553 -0.9123292097291379 -0.8999448584342006 -0.1021824440434559 -0.3867807936564447 -0.8287559196301943 -0.0439928299238042 -0.3912945256034284 -0.0087757537075989 -0.3922465992678454 -0.7833037309265811 -0.4302373912302858 -0.0836047947691785 -0.2092693190052297 -0.6318477060572308 -0.4570254676268140 -0.3217845556429611 -0.9803750308727694 -0.5918649918923817 -0.6912033714027225 -0.6179443311727641 -0.3334517983654598 -0.9098340407833777 -0.5690357431170759 -0.8999753091926783 -0.0724679469105484 -0.3415662593695014 -0.7974908887599885 -0.4929254414887597 -0.0770865617229143 -0.4176836641305233 -0.0736229240657903 -0.3128924356375894 -0.7346192154935036 -0.2653650830090053 -0.4708417679274263 -0.9637326558135999 -0.2233344229878275 -0.3173647450103672 -0.1496438226795781 -0.4556146022401861 -0.6108247067764538 -0.3145541775288102 -0.3331607391503046 -0.7247357583582351 -0.8782894632000819 -0.9750452229946508 -0.5259443030774046 -0.4717511612443351 -0.2720277675511649 -0.6083135865277604 -0.8650981880448310 -0.0687078606124558 -0.4511860038700734 -0.5726337332571396 -0.3661982715927656 -0.3081025932247643 -0.1423980674466295 -0.7188660208882818 -0.4968824763207218 -0.5193575897234158 -0.3237274035651022 -0.8204890500501928 -0.1682113548151652 -0.1570609461731189 -0.1178386036114570 -0.5201435138957931 -0.0108195671442699 -0.5728635481870499 -0.6237282217488047 -0.0061946435201270 -0.3865488948628893 -0.3344583830947076 -0.2764747843947868 -0.3860268472675207 -0.6468509316836342 -0.7902109702413553 -0.3214803254027717 -0.5146668963558023 -0.3127791712702981 -0.5523556359138064 -0.3113164548331319 -0.2715166958134880 -0.2696725712861748 -0.5876289109573154 -0.0189027637938617 -0.6396398196580594 -0.2233441078691917 -0.3062931411859928 -0.7125529850041792 -0.8484733811907379 -0.7256719378929907 -0.0283406410667621 -0.2527593291264946 -0.5265794023996558 -0.4809310455171297 -0.3391211311716686 -0.1353979371877488 -0.6273199057936474 -0.6353390984536212 -0.7165035974229624 -0.6045557452870042 -0.3770747894574380 -0.6047703580631050 -0.5608768215301636 -0.3855510851675122 -0.4414240786932923 -0.2596232668506761 -0.0668367015786133 -0.7148501475093065 -0.7775446973417393 -0.6516060678377167 -0.2781881165082198 -0.7637065017776843 -0.6732710189880377 -0.7410062848167595 -0.6241551426060181 -0.6061769692932210 -0.7177708389102360 -0.1773637650368193 -0.9849649160774979 -0.5038153066735473 -0.2149858265836500 -0.7549893138371494 -0.6548805934123709 -0.4186134070403760 -0.0454358016897985 -0.8903693123664190 -0.9710578868530227 -0.3143465939198342 -0.7779501430401617 -0.3810653349366381 -0.8463839425129869 -0.1615016174688448 -0.7353178554093256 -0.8135060722577998 -0.5525926130013498 -0.4604252973242768 -0.1690872537033562 -0.5403875898033681 -0.7127707992219700 -0.1589958278306129 -0.4400065194765697 -0.6271785186632960 -0.3409265932919875 -0.1638569330848884 -0.5413105873907236 -0.2803454721914291 -0.0465395918250496 -0.8380357570562974 -0.9160018079546464 -0.0911276206501758 -0.1189789477979659 -0.0458687824665198 -0.2095650547096802 -0.9611044880593111 -0.2228254193808072 -0.8601528313146197 -0.2627472783194154 -0.2303648877064658 -0.6046207949582443 -0.6611270313450298 -0.3713682395258254 -0.1743405787398492 -0.0049651621141271 -0.3739565858265579 -0.2122761152485618 -0.6280553278635256 -0.1419947395118994 -0.8475043438017765 -0.4861853167539388 -0.7111626168507752 -0.6940818680870718 -0.6483943804140281 -0.9250861862841840 -0.3650907813109042 -0.2674501949231847 -0.9631944991058083 -0.2563093681148351 -0.5012887546850463 -0.0572751357908885 -0.0048792970022117 -0.0720459586939031 -0.8470977911064690 -0.8741668507835810 -0.3325876219700402 -0.0887608337501947 -0.2336343695171201 -0.3899464518102683 -0.7809174907470868 -0.1357746094621514 -0.8158316279512876 -0.0978421639191211 -0.9944485062594591 -0.7631660906774567 -0.5104394493445547 -0.7445950886089299 -0.5743903194439279 -0.5913726441134529 -0.6981041851596637 -0.8388345502257361 -0.4689634920834597 -0.5728227458459714 -0.8236031661129011 -0.2838521163820377 -0.6389563745825669 -0.4378977751661047 -0.7007924002571561 -0.8783184645733956 -0.1489166847314697 -0.7259753413442116 -0.1334991111423169 -0.1064897955985747 -0.6730295438882458 -0.2869572894269682 -0.7079329793634805 -0.9235016204831968 -0.5803631725014128 -0.0409096263451661 -0.6120759002744813 -0.3855545345718656 -0.2635260292475370 -0.5868798300059380 -0.3016145778063414 -0.2945415129453403 -0.8246489557153501 -0.5835982827916305 -0.6671875260977598 -0.4277423400608538 -0.5742249620566068 -0.4117698211215645 -0.2885492757703365 -0.9622348649199955 -0.9615537775527098 -0.0392438853766996 -0.2573971823851843 -0.6336073005202605 -0.1534051702778775 -0.7213041630116503 -0.1287328064453885 -0.8392358989052883 -0.1090424350020984 -0.2084043852089612 -0.5148907533277063 -0.9987439707632532 -0.9711006827143380 -0.2892075009928889 -0.5870119354720940 -0.1263070636402274 -0.5626976645954397 -0.9869041838286523 -0.9509886518341037 -0.1666283984566050 -0.7936973923825491 -0.2303696689302618 -0.1299598248754407 -0.7193949707809599 -0.4836236193614193 -0.1218362271844129 -0.2101916774479936 -0.1526105577191852 -0.0515364500698388 -0.1208855426704545 -0.2141399230462596 -0.7974800159440272 -0.4428767268634248 -0.1454691097752801 -0.4613142250042476 -0.5379475931489045 -0.4831569793135084 -0.9600817822896669 -0.4813790396192721 -0.7707309572513631 -0.1283095364838849 -0.1855992839320634 -0.8943519448631011 -0.7117174673758302 -0.9950419146330347 -0.8999068159064955 -0.9633030005808503 -0.6298705231518571 -0.2072829728242044 -0.0371978480177478 -0.2249443501737158 -0.9425160482077461 -0.6264371105362913 -0.5126000470443903 -0.0434622207251730 -0.4840805484492140 -0.5377870964577022 -0.1411657217618572 -0.8509379048393558 -0.4264370969967503 -0.1199439811970452 -0.6305239912300294 -0.9828027943567310 -0.9118653006670880 -0.6669892012392025 -0.2584616017691808 -0.2213976660745338 -0.3233833933329494 -0.8516480823593563 -0.3510985854493050 -0.9780050639181338 -0.0287085367965143 -0.9942082642433182 -0.5954530628256699 -0.8324232207889402 -0.8346051939051872 -0.0789569312923590 -0.2321059001191234 -0.4591553817851783 -0.6571556917649888 -0.2514816902350940 -0.0335281900383571 -0.8300653245974394 -0.9677304322924599 -0.5710103079878723 -0.5605323828534732 -0.2983033599595394 -0.1077372668972931 -0.8777517983440664 -0.8213780444039860 -0.7960357462290809 -0.1333384792149022 -0.5383211200121083 -0.3730956049007724 -0.3246673865047690 -0.2448169355063909 -0.6207319364194025 -0.5035562017095430 -0.3271616931061729 -0.9245462844425575 -0.6079458509979555 -0.3502909366169590 -0.6665088156220389 -0.3661241049069908 -0.9939999118569857 -0.5182152311787992 -0.8324482833810826 -0.3682112496055341 -0.6982414350951044 -0.3489937042677249 -0.7049949331930265 -0.4477570090992364 -0.1344910633246543 -0.0301232035070222 -0.1938051044170610 -0.2095987559797875 -0.0481670786491321 -0.7946866129053529 -0.9149321561417251 -0.9794331391295049 -0.1550235681923567 -0.8580501377841311 -0.8347893113994014 -0.2769896590345319 -0.1098581750552740 -0.2248763495232860 -0.1637921435099287 -0.6450649436975239 -0.6889887462760442 -0.3202461024788755 -0.0527561003177464 -0.6468307825965837 -0.2239438744721323 -0.8549594250319258 -0.9343639367262815 -0.8547367353467349 -0.6780936637917433 -0.8496977199718273 -0.7996266697666955 -0.9900157620583137 -0.1288125753547609 -0.4549822995135085 -0.0543546143951467 -0.8451430685991986 -0.7713218883517662 -0.3028530058442990 -0.2484474409778098 -0.9967393369142546 -0.3426433535296828 -0.3171449665045525 -0.5668001170537623 -0.0173863137311968 -0.6307935913417893 -0.5996301276463204 -0.2769472158116873 -0.6881110806979086 -0.4258768299651968 -0.1855412088231387 -0.2164209638909639 -0.9879696753771976 -0.3763795278896999 -0.4507260659607661 -0.1714906541642699 -0.3400671426255745 -0.1261607339191308 -0.6604590403828685 -0.7212128305515212 -0.1578127874006147 -0.6419953827350798 -0.1866133465800725 -0.6641915996293858 -0.9543452882395757 -0.2530357928421164 -0.3858811198472460 -0.8317013905819667 -0.4556725033185925 -0.1485589763924226 -0.0631953039934159 -0.9155515699434648 -0.0444127415513378 -0.8934581023505754 -0.0035539859859854 -0.0826098109456852 -0.7728659492993096 -0.6492289991689618 -0.9266684001041536 -0.4016381941286306 -0.4449209864811698 -0.0453024045788368 -0.6744822152982231 -0.8529070687271770 -0.9032777372384868 -0.7220092552230120 -0.3221864902962057 -0.7663363875959082 -0.1518372443200215 -0.0847432954199855 -0.8064971530357057 -0.1694753651302676 -0.8176063110541527 -0.7448447533127468 -0.5753301258645515 -0.9367611233262976 -0.1511462214064298 -0.9356375291256585 -0.0337129663950172 -0.0137912907137914 -0.0955406619717245 -0.0759784099693897 -0.9913877179726797 -0.3535789536192085 -0.8515309602203993 -0.2824651687528292 -0.8223753966693962 -0.0615185938987057 -0.4358033972743817 -0.6662095369317013 -0.3902505030695910 -0.6350066500572807 -0.6477626317506298 -0.2076427248604955 -0.8440215638970610 -0.6158008262311028 -0.4687356693996213 -0.9621556063826321 -0.4693718421343177 -0.0888117846537118 -0.9822704845770566 -0.0589292167547899 -0.7028244384824039 -0.1613793966661895 -0.8738097883030351 -0.6201098510238203 -0.7685614182487543 -0.1928454231992696 -0.2948968587816548 -0.0434712724404338 -0.2657501300052919 -0.8958744327157354 -0.7252933263330101 -0.6856374171720245 -0.0789683281492478 -0.3774007901419771 -0.7699758164787809 -0.3175541104772741 -0.6322404270974508 -0.4343337771222068 -0.5950295941088068 -0.5128569894578279 -0.0704601497161563 -0.8739691693757392 -0.5008904302837718 -0.2696200106336988 -0.2440753246626009 -0.4226765934364002 -0.9707208516752488 -0.3512869114584589 -0.6527387248880785 -0.9160853485749051 -0.9845901782681918 -0.1965349597397970 -0.7015367102872970 -0.6547593948819044 -0.7134940694124560 -0.3222228623170293 -0.2276504704839755 -0.2456490078975147 -0.2345933519509922 -0.3736848029012488 -0.0618984223479150 -0.1438179192806950 -0.2820741512199350 -0.1686952567113232 -0.2900835622424199 -0.8687649640284049 -0.7591331993954807 -0.1371498568530490 -0.6846817886518658 -0.4242364003644321 -0.6520423256110016 -0.8704003670471167 -0.0911173672711642 -0.9581823805408390 -0.0285256385002091 -0.3688729477646421 -0.7063159806311957 -0.7735156212287586 -0.4026045997460139 -0.5994577718336805 -0.5938121297973028 -0.3517031101215584 -0.7570057653895577 -0.6673908544508536 -0.8775337327107734 -0.9511414475580500 -0.7852618176184961 -0.4050046245095935 -0.6142633006105205 -0.1355479593208981 -0.1922780548715168 -0.6390540211009592 -0.2923085950200515 -0.3822791959687200 -0.1347339459858347 -0.3250915221831860 -0.5778808242807872 -0.5686982767602882 -0.4065525185253236 -0.3514984481981450 -0.3133512926860471 -0.9682554551274564 -0.3533998162285419 -0.6957205356327055 -0.6847428130154095 -0.8682479239445948 -0.9602375316694656 -0.2691104163392815 -0.2866046523404587 -0.6939230606443462 -0.6159553975838948 -0.3232233413347266 -0.3577221613958597 -0.9457367220876570 -0.4787264242776245 -0.4374964753898052 -0.7126577604468228 -0.7280355641238991 -0.0751340327284612 -0.3722979815220576 -0.1954508577098989 -0.8326250440198980 -0.2328388225398497 -0.2803914146447187 -0.3945336374642353 -0.2689126324750311 -0.3401702608340884 -0.0496103603106149 -0.1847265811323002 -0.0885915022704502 -0.9810832131448329 -0.5088556045002297 -0.4619988883523340 -0.1144653989413662 -0.6202895608891309 -0.4205614684864838 -0.4924717551287293 -0.6955512364278810 -0.6139018548740238 -0.7506666943202854 -0.9595305583308357 -0.6264722680423318 -0.0132934327384797 -0.1648116031236186 -0.5685168061739171 -0.3742623473374296 -0.1367027543782267 -0.5678157317893688 -0.9222959480302243 -0.4215047556113787 -0.5922616285808097 -0.5193342081595044 -0.6860325126085799 -0.2895169656860639 -0.9070510371742110 -0.5692344093485971 -0.4646997247120890 -0.1308021305469336 -0.3360647053129587 -0.6252867044693028 -0.2281412236360646 -0.2692837835504257 -0.5023909292738894 -0.4719298236415889 -0.0989330573731109 -0.6086902551988170 -0.0306916554924255 -0.7951819300838288 -0.9689402168182070 -0.0928584242992020 -0.9511177126225021 -0.8917901507978196 -0.0796209377659138 -0.8942791762943808 -0.0756582194340036 -0.8524920019718304 -0.7776825001911938 -0.8591575703568813 -0.6350643655932994 -0.3866893959113714 -0.9356641207536417 -0.2477000833376177 -0.9668854639593490 -0.5624390540996577 -0.7896878927946959 -0.9511939497690176 -0.6461373755171875 -0.8720458690309005 -0.0814398082613586 -0.6100834560256365 -0.4217608935494335 -0.2754720300875200 -0.4337478233729890 -0.3181947427734010 -0.1671451020724283 -0.2426300424963984 -0.8006886903047120 -0.3170696935248111 -0.0398690098662475 -0.4031408223409829 -0.4428581638558566 -0.8459384231992374 -0.1419323763814824 -0.7636300977859752 -0.7572858003909119 -0.6888571690502810 -0.6312871424017545 -0.0621014672332205 -0.3163453190569315 -0.5883705695063821 -0.5333363026868428 -0.6441665832883675 -0.3694196753051330 -0.3487864915401314 -0.2499718155499667 -0.1260868714755394 -0.7268179877232523 -0.7385074174989852 -0.1638278006239400 -0.0899152606814574 -0.9114849747660871 -0.5304472994611305 -0.5239449066363071 -0.6490032403293007 -0.3661875947860148 -0.0069644226143314 -0.7064366780986365 -0.9102127627157890 -0.8230947910017576 -0.6586904152077444 -0.5426298249008631 -0.8632530738293718 -0.5230795466248702 -0.5741296538498493 -0.7746334581158708 -0.5188856267472509 -0.7745682630348170 -0.8480022828441559 -0.5031924320809790 -0.4190720242971119 -0.2955220994088717 -0.4088443034973781 -0.6491630261443907 -0.0690628197424478 -0.7915438927194609 -0.4369219558845996 -0.8630563349021801 -0.1057419409970080 -0.9421158717161077 -0.9455580452333414 -0.3795985647597186 -0.9630706869650973 -0.9373632002034864 -0.0376233373590138 -0.0427115415650853 -0.2575607649942694 -0.6041967268176728 -0.7579654585142864 -0.5028863449146018 -0.8997294937129526 -0.8257625007890427 -0.1876292260481766 -0.1611218677822427 -0.5756054206447589 -0.2709306494820310 -0.4181656598597601 -0.2562539929886002 -0.5747352415756489 -0.1161696367266494 -0.4017534383225067 -0.1578684827808490 -0.7615103278169035 -0.4059943378517891 -0.8776358776599731 -0.9494002735264540 -0.9006349069723660 -0.4355415777231810 -0.3349048672380194 -0.3045587024858248 -0.9928510276691366 -0.2649329295549460 -0.1248246249887440 -0.0214221014354256 -0.5919394363865536 -0.8837669982955006 -0.0862916803884344 -0.5302807062158765 -0.3079703475342763 -0.3368022884894052 -0.5037935511027167 -0.8108959963214764 -0.0163780562966749 -0.7026421763588978 -0.5690931392185360 -0.8308186850948277 -0.6994454032801732 -0.5085922360287749 -0.6468444999064321 -0.8556035146321254 -0.5967375629707358 -0.9021842422995419 -0.0479491111315656 -0.9955531169081846 -0.6373350247849729 -0.0955463288860236 -0.5203829231108750 -0.3913993153561542 -0.4412091774824465 -0.5320349348252249 -0.4930614743196868 -0.4922264572980378 -0.4196213854736572 -0.7019489580957559 -0.3481021592664419 -0.3549554626908037 -0.7961946928330699 -0.7104329514588159 -0.7584443999368344 -0.4382795173158305 -0.0170458775009219 -0.0537993644927600 -0.6410874579776630 -0.3639120908755651 -0.4955116834779562 -0.6039028453650120 -0.8212140463783906 -0.8858822212762416 -0.4818044428900620 -0.6639754767604806 -0.1417055823135218 -0.0194000031020874 -0.8715370097317358 -0.0586795303411281 -0.3392246445650924 -0.8633670866917796 -0.5348256180656783 -0.8192053783989264 -0.1250291763070594 -0.3047939734500653 -0.8063318187043338 -0.5145791646679497 -0.3331116262574282 -0.4641524893162475 -0.3108927290773412 -0.5095591136521186 -0.6022389733282494 -0.8503532254005470 -0.5484205193192184 -0.9619696085898178 -0.4027647936392752 -0.3638701681038269 -0.5389892811984535 -0.9467769403352206 -0.8854488371074130 -0.9590384555996012 -0.0637407230374178 -0.1928507656744056 -0.8630148728613440 -0.8646899659901202 -0.2610004171662564 -0.5721103800225625 -0.4897783307910739 -0.8343544491645567 -0.3210210078200334 -0.7842167099968975 -0.8183819766054143 -0.4804175929634013 -0.6177086588293222 -0.8240119734525737 -0.8592202184714766 -0.5185725279504294 -0.5656509643770243 -0.1923840423555024 -0.9151713295842649 -0.9824915116039127 -0.8351973143335265 -0.7457921595382653 -0.8885047111441623 -0.9057650181705917 -0.8210509308630805 -0.5473874516895294 -0.6652631015739449 -0.3496565662204631 -0.0063932971602750 -0.5066488670483926 -0.4936067755127737 -0.6998763984893109 -0.3480475113606617 -0.3234285667002604 -0.0134371445952464 -0.1702485537633432 -0.8119804759159118 -0.2716116796085886 -0.5782723936852415 -0.3799645501753812 -0.0029348400271083 -0.3806812382042609 -0.8353822079663196 -0.6471416292831312 -0.3089262026318753 -0.0860733940669950 -0.1477416640347983 -0.3943162995760795 -0.3970503237014046 -0.6243038394891625 -0.9075118944465639 -0.8609124220749952 -0.6890978131896852 -0.6776339212236266 -0.3283416533914786 -0.7138336032371070 -0.2077443726779923 -0.3106785551470603 -0.1426042736541671 -0.4102104312821251 -0.1025029196144746 -0.6302766239292742 -0.7535473207529370 -0.7772193406179878 -0.8314565729842434 -0.8945283528296089 -0.5172657099881329 -0.2588544386014501 -0.8239180933042720 -0.0703844188154351 -0.2539294801782476 -0.5092011971637833 -0.8754312536659660 -0.4185949058487153 -0.1191343046034892 -0.3832232353003271 -0.4066014358902328 -0.0800093296983278 -0.5931199546259429 -0.9303583238056383 -0.2684345901860224 -0.6170343326711578 -0.2057368811802059 -0.7543369048700779 -0.6223157684129104 -0.6543464685243070 -0.4611191589926993 -0.2775897240624260 -0.4219224948344127 -0.8326251092465238 -0.8666558526080980 -0.8241515990655706 -0.4311932186193822 -0.7737640666349305 -0.4061660805673123 -0.5670336486464720 -0.6536434867240749 -0.0943537856523908 -0.9020147748525827 -0.0808963880362578 -0.9497857613521382 -0.0674846954203605 -0.5052382466100686 -0.8787667206310243 -0.9216929457110492 -0.5350952143141043 -0.0468085928038452 -0.7181365644190563 -0.1885278043326467 -0.7112796716977007 -0.9931490678129947 -0.2023647140163892 -0.8892402450461474 -0.8264536174564026 -0.6510246524334288 -0.3165347975742644 -0.6289394622522293 -0.2159822091612651 -0.5225040502135401 -0.9257961901183096 -0.9809012919641079 -0.9311899486920171 -0.8756880679574339 -0.7497748312759055 -0.2004990318056434 -0.5005755751901551 -0.0895272807033023 -0.0657686181302542 -0.9560096620682418 -0.8585374750011819 -0.0174942003782250 -0.0740138468167145 -0.5815551194797854 -0.5212542938808363 -0.5007889390255161 -0.0096634690035043 -0.6245739501621127 -0.8803319569852166 -0.8127731049811253 -0.2757654552351039 -0.5692765171185458 -0.2825857997408593 -0.4357644337702811 -0.1709888964275718 -0.6618458355103916 -0.0961141463396262 -0.4482191336844942 -0.2943017256158122 -0.8812035666887482 -0.5483021301966271 -0.1044471867056734 -0.9260244947286494 -0.5631910120421563 -0.6238664335619096 -0.1587836492574903 -0.5033393373644321 -0.9997544918900463 -0.7340618908450933 -0.7057184433745347 -0.6960892677934105 -0.4602553605820607 -0.3812496569237124 -0.7956180792998351 -0.1950703840516066 -0.1962505010299684 -0.2546667625670089 -0.1608074461388874 -0.3371962105484665 -0.7360414799849176 -0.8823297505545290 -0.2489779602370610 -0.8850917742257747 -0.0116946251630607 -0.0869338738844986 -0.7815874642132405 -0.0523620331851256 -0.5510698753799739 -0.2086266100089444 -0.6117944622057337 -0.6580063593968488 -0.2346445437734486 -0.0981567476907283 -0.0611888183645963 -0.6910599713210896 -0.4297698030930609 -0.4822496887120519 -0.6187305952387991 -0.2317202898767556 -0.9401894117818901 -0.5660686728413793 -0.4168002077089659 -0.2342407012142255 -0.7329600009626106 -0.5846098411399414 -0.5177182887342885 -0.4698610472074138 -0.2394673185109746 -0.5183084289986644 -0.7193841599655487 -0.7747382299346429 -0.4641082918759536 -0.1980340091246358 -0.2537705731995317 -0.5152972376755222 -0.2962523838962505 -0.5105710104347215 -0.0332042492463865 -0.7413037406151809 -0.7824637915999241 -0.6095517809403775 -0.1898430817794196 -0.3985392356871770 -0.9903337664655959 -0.5850380402472457 -0.9608057919064550 -0.5890875814684613 -0.3214790068077099 -0.1074567073284539 -0.2172989586327303 -0.5407497456878783 -0.6941728588072454 -0.9260493792437919 -0.7941816072938562 -0.4297888923898942 -0.4166084842604219 -0.7625610592712999 -0.7444808392434304 -0.4413686376260545 -0.1131583941972516 -0.3485589122727082 -0.7362898880718852 -0.4568600463459189 -0.8739938938972788 -0.0468195127778072 -0.5031604508892873 -0.6165037774847977 -0.5139819789223679 -0.0932932132957973 -0.2617800003473775 -0.8667041402269570 -0.1418951754469502 -0.1184819597514346 -0.2496863725639776 -0.0439646276964972 -0.5374878409601039 -0.2344178424258360 -0.4207397550600492 -0.5958767505040581 -0.2640370936637656 -0.1173619065437163 -0.1389730841261784 -0.9815338437538212 -0.0548446313478029 -0.8639050431112300 -0.4091472809739085 -0.0914098400052272 -0.2924511926882077 -0.8341072674228749 -0.9063571374425314 -0.9354546573418866 -0.6477398462777451 -0.3056528526493715 -0.3357105432423399 -0.9970673833973877 -0.9191206362153325 -0.6329937887849238 -0.1811248281531150 -0.9946397012756670 -0.3616655327612184 -0.8572157037352498 -0.4161717217475666 -0.9186418420411845 -0.4937420021944939 -0.6150884727507665 -0.9694619246555832 -0.1989117333686791 -0.8222632525390694 -0.8625020901798364 -0.9813174472647360 -0.9737597506217200 -0.1424798553906285 -0.0756219210493462 -0.7058028327415606 -0.9630899705527698 -0.1233660557701673 -0.2787136416820667 -0.9461960119459432 -0.7950975947095447 -0.8338735931296666 -0.8208664594746544 -0.5858443212857665 -0.5770431849393872 -0.8127530670726920 -0.0467544057375541 -0.6072295003510089 -0.8439457657535949 -0.8042866620552710 -0.9676556009046338 -0.9451395668126975 -0.5588683344974364 -0.1741249682626592 -0.3340472402616684 -0.5225629443863583 -0.4494408522515017 -0.1324317323068525 -0.6871394714087652 -0.3108478714141773 -0.4233591783086375 -0.3530258381872665 -0.8596691273504133 -0.9300638386880165 -0.3221710798322680 -0.3856540316043208 -0.9948187033230584 -0.6758359365897221 -0.2052447001670879 -0.9429019811442961 -0.6373742344696804 -0.2555441974863149 -0.8208543074699097 -0.4908545685419795 -0.5977954594480067 -0.0323493551234803 -0.0216774671839612 -0.2714016338013079 -0.3050860534910699 -0.3634514077961929 -0.4964753317420894 -0.1470483640028502 -0.1924411884271331 -0.9645044754797040 -0.9128755037186511 -0.2446108182598414 -0.6527823716644632 -0.4833511225251816 -0.6569525946478005 -0.8480170427585838 -0.6642149883855176 -0.3116529902856549 -0.6201110571199142 -0.9426340782057823 -0.6091899201366227 -0.1665739483517239 -0.3241475398236102 -0.0076923121823691 -0.8663010265956035 -0.7547080237742787 -0.4432321780783209 -0.8719247205719000 -0.6683124065682919 -0.5600602964436892 -0.3179731645631844 -0.9702921992545719 -0.7499693192076474 -0.7696484988317184 -0.3283739948157595 -0.4275295333300883 -0.0245779191458986 -0.8220812733353746 -0.2958956136801289 -0.1646366427944430 -0.9151267785637606 -0.1886443254429894 -0.4463677783156101 -0.5394003784147128 -0.0159790216745736 -0.6411700814653186 -0.0126742545562036 -0.5053435004802815 -0.8025789045716888 -0.9834838239285439 -0.3991630138357820 -0.5775123759964353 -0.5744490761786466 -0.9810162386996795 -0.6908628700315042 -0.4547270363043814 -0.9013898790313836 -0.3661673134905380 -0.7076764056474339 -0.1418524680454674 -0.8626773153355396 -0.4324078163887816 -0.1440770633499817 -0.7941828509102772 -0.9966883166797117 -0.6006798050191969 -0.1240459017459825 -0.2961440704401475 -0.9314375464792607 -0.4982649967433120 -0.2992412251228406 -0.5146651847781548 -0.4221580114035435 -0.2539327871420151 -0.0880232781366852 -0.8829621953165878 -0.1629584720874507 -0.6719682673375300 -0.3704579486276234 -0.9638192888048213 -0.2484486196452460 -0.5247045674660742 -0.2652716837465754 -0.0208413071810196 -0.6733469963052907 -0.1908770255401239 -0.2258924750500340 -0.2583945048854795 -0.5659764079770653 -0.3801663085487789 -0.8607361804082391 -0.0932461507075871 -0.4393864228536248 -0.4797856708940539 -0.5904640355661406 -0.9836831391063524 -0.0330573381609349 -0.7374507163765850 -0.6637581138534575 -0.0337354895952007 -0.2712596244887543 -0.5822774098133469 -0.7174314790569768 -0.7716722260490573 -0.6164764878597639 -0.0315861605731262 -0.4204018894628171 -0.3460505272883869 -0.7290155421249658 -0.4062766042051045 -0.6241736726711947 -0.8644214952980255 -0.8399951853820917 -0.6676764837564315 -0.6310050334873238 -0.1426920361141336 -0.7270156412609167 -0.6059240375304933 -0.3021208114599034 -0.4970573081749277 -0.5169761825325546 -0.3053032238831100 -0.6343009861347658 -0.8676815225248905 -0.2107309852739936 -0.8527478185139891 -0.9189340270067456 -0.9708341746265018 -0.0757675873161756 -0.8839526181521286 -0.4784939559220838 -0.7740756928409699 -0.9668472172523122 -0.6939646976537082 -0.7856652368505715 -0.9655427657149195 -0.7889688197471899 -0.4975169674936818 -0.6354566356643697 -0.1788013486468323 -0.6804430643119709 -0.4220455503329315 -0.8424278622806806 -0.3167163691588802 -0.9537394807313093 -0.5917154634896798 -0.6659413533971892 -0.4427519859458661 -0.3865390906576301 -0.5549558581142912 -0.5467342005826487 -0.4417973188212148 -0.4716988712562071 -0.4752971471495617 -0.2114175968330289 -0.3968767854763474 -0.5339047909944767 -0.7602055964564732 -0.9811595372841326 -0.8332277234895037 -0.0586117178048113 -0.3752435485730808 -0.1139518142973991 -0.5462444668715074 -0.9706599023730074 -0.5304454196808286 -0.1684801260114551 -0.0040092863104130 -0.4593660202141126 -0.0139403103754096 -0.9581229606199110 -0.1391431361467037 -0.6221373083733361 -0.4093510840058727 -0.6331866495659348 -0.5056385967155725 -0.1077286378963363 -0.9269554032237798 -0.1135793394499816 -0.4522994437922002 -0.4970252176139072 -0.9996814373256075 -0.3793319461052901 -0.4448159914428240 -0.6523988991186846 -0.2399842468180099 -0.7327924271771716 -0.0708898183968216 -0.8598144106825126 -0.5777692906408652 -0.6426249129200496 -0.8217830796491505 -0.4099427823229086 -0.3677426601336815 -0.0617126310863716 -0.7302741820061712 -0.3534630644875740 -0.8991244862779448 -0.0694055097854803 diff --git a/examples/machsuite/md/grid/check.data b/examples/machsuite/md/grid/check.data deleted file mode 100644 index 09086a3f4b..0000000000 --- a/examples/machsuite/md/grid/check.data +++ /dev/null @@ -1,1921 +0,0 @@ -%% -0.0008016146700337 --0.0020612837355072 -0.0032332671592132 -0.0009657118885183 --0.0002559778828942 -0.0009366593142218 -0.0015737295206710 -0.0025164681238565 -0.0008421486301414 --0.0007693122326422 -0.0011008966727841 --0.0005170781277456 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0042426913231147 -0.0012573272962747 --0.0043626231122797 --0.0058821718876515 -0.0008912304752724 -0.0007981985366119 -0.0111909952553888 -0.0080859975169486 --0.0082458653141254 --0.0101317804230405 --0.0054681912391431 -0.0087561474785383 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0267580953782801 --0.0181488887985749 --0.0329532343064745 --0.0016756031075928 -0.0039166123027246 --0.0011824246551046 --0.0230819130166738 -0.0187939588481652 -0.0332566784825497 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.0428574158153332 -0.0223263953422374 -0.0590668667488971 -0.0000398854878357 -0.0011838433681570 --0.0006169800086439 -0.0001127043722985 -0.0083982902875366 --0.0021869618210129 -0.0004195832617033 --0.0007926583756136 -0.0007043678046081 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.0000531463948199 --0.0000361577666351 -0.0002689196974539 --0.1795461267317063 -0.0375728602830572 -0.0655083308093748 -0.0011889498663721 -0.0014161944608434 -0.0039014923008386 -0.0002823102410679 -0.0001176443220691 -0.0003351106123218 -0.0049032503743093 --0.0308778478119831 -0.0226967666615731 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0046891067675452 -0.0515484305928833 --0.0146531343244131 -0.0011094340348861 --0.0027566954001805 --0.0006936610183670 -0.1977004950044021 --0.0426013496792352 --0.0709412061470357 -0.0019703521004494 --0.0037883850192022 -0.0016847318605780 --0.0175135653995458 -0.0055272601833707 -0.0215907283787189 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0001780254997250 --0.0011082841058664 --0.0003915347354026 -0.0269073841382492 -0.0069259798103592 --0.0209249904783105 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0426696651009882 --0.0308877417785578 --0.0572963990182955 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.0000939578908079 --0.0014212990787822 -0.0018997455840246 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.1204947814886540 --0.1701542391576167 --0.0111901954757517 -0.0010984229394016 --0.0003851614574388 -0.0004046275052823 -0.0053220051720462 -0.0023165974787598 -0.0003525348081090 --0.0001142149980863 --0.0003022538657350 -0.0016197449466316 --0.0085442651864849 --0.0006223407329152 -0.0048869632129421 --0.0108493802874439 -0.0449461160168093 -0.1051247983437815 -0.1647383818467405 -0.0567185698956202 --0.0688002926185729 -0.0175442416759592 -0.0482792765953833 -0.0032727269937419 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0592909446828081 -0.0635912015305100 -0.0330142881557682 -0.0752894659803055 -0.0080089606378843 --0.0618024734131891 -0.0016486847864912 -0.0019948253560223 -0.0042621957483977 -0.0043808763038075 -0.0015734328866385 --0.0073205984703925 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0879758901997003 -0.0338102764169575 -0.2330680054591917 -0.1106384515496441 --0.0946842935461264 --0.0828600895057100 --0.0011550212865317 -0.0026804885157450 --0.0079561150105339 -0.0607676705350274 -0.0186481935728355 --0.0180659937109340 --0.0446143371395681 -0.0087111628934016 --0.0070781316273632 --0.0020040322853012 -0.0116221257080258 -0.0025764735621329 --0.0735674296370898 -0.0902057776026366 --0.1710455148552032 --0.1372982973773928 --0.0726321709132671 -0.0464146074727411 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0007551946823331 --0.0001872191838872 --0.0000281648205895 -0.0023527587054983 -0.0078764128903397 -0.0012030904619356 --0.0026008656299250 --0.0076633759411431 --0.0011108495708290 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.1148276658388596 --0.0556248659511400 -0.0024525295358168 -0.0229591108906597 --0.0205487476934463 --0.0027824868746763 --0.0009258121756698 --0.0013434767559833 -0.0004356374223916 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.3213378722238427 --0.2951157522871649 -0.0410604798590038 -0.0106837086385966 -0.0077372643406002 --0.0093250423278907 --0.3869342633197253 -0.1463278268786601 -0.1615271115152888 -0.0237451600077906 --0.0405812370514187 -0.0014040629574545 --0.0299419056008585 -0.0356088153952852 -0.0113005964034503 -0.0207437622067401 --0.0134754493498122 --0.0068984789793771 -0.0635858482175531 -0.1442037424495205 --0.1956937966636535 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.0017515505722391 --0.0003618969810815 --0.0029565738931423 --0.0028482596761533 --0.0256309745472979 --0.0040634856953386 -0.0032053826119937 -0.0011804378473153 --0.0019056056970107 -0.0035200257514817 -0.0243766433773361 --0.0042530831121714 --0.0020091385572978 --0.0002839950378757 -0.0008911620266546 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.0101579317927858 -0.0090484453549082 -0.0255602897685860 --0.0062357163576728 --0.0132346823333880 --0.0111300685339492 -0.0154938064070440 -0.0084742369963749 --0.0169370197677059 -0.3493661140241782 --0.0257813489428274 -0.0075948202399911 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.0080513591682765 --0.0003435781642636 -0.0067019359555706 -0.0012290776584109 -0.0023492892258333 -0.0000937700734115 -0.0037801818133428 --0.0042678918589221 -0.0037133706020399 -0.0098199001932781 -0.0044194078518575 -0.0026560569388156 --0.0074014114142038 -0.0210629134569731 --0.0050566308889909 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000166229340228 -0.0035032421583956 --0.0748982652139666 -0.0009205757465129 -0.0006734184516102 --0.0019982440541865 --0.0009594017803750 -0.0026662861455810 --0.0002124850243123 -0.0108758069902455 -0.0375330219728405 --0.1139668719610184 -0.0046722878544998 --0.0044297189867139 -0.0740117330777845 --0.0344895103109037 -0.0215150161191926 -0.0767657759161824 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0008515335231784 -0.0011701636800202 --0.0007419048674524 -0.0086878110512158 -0.0107598582023829 --0.0085947205295207 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.0413085405522693 -0.0239917433264527 -0.0357156095034951 -0.0419468801179095 --0.0271964840982822 --0.0348503702771976 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0091027449219709 --0.0317133427817201 --0.0218761855187477 --0.0219848272538993 --0.0135416381876195 -0.0837023222438274 --0.0076339017565340 -0.0247951335905305 -0.0297399281276362 --0.0039749705905268 --0.0016243054618179 --0.0879315542861506 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.0468807749390627 -0.0410697288044842 --0.0158567546975064 -0.0170610821506539 --0.0760157036622600 -0.0248874397173449 -0.0005195737390543 --0.0003363461286372 --0.0001129064855776 --0.0009566598559609 --0.0006115814988428 --0.0003095436949597 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0005432617272709 -0.0007377543546827 --0.0009600114173474 --0.0081466769590123 --0.0092784136037697 -0.0078372221485811 -0.0002020071726526 --0.0016044685868399 --0.0000521038316568 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0005611030885686 --0.0010279611105609 -0.0015221674934736 --0.0189394175064694 -0.0133827824650017 -0.0172243828395186 --0.0300340773798848 -0.0486031501020633 --0.0043942471178263 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.0014911313865790 -0.0003489717135695 --0.0012618288280424 --0.1790075936230213 --0.1994360049256822 -0.5604354493123419 --0.2564299561913451 --0.0941911823691335 --0.1454074789360139 -0.3974594759649666 -0.3075609420163656 --0.4108592085914512 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.0389866391704262 -0.0529324449935396 --0.0126086174964111 -0.0116274285483952 --0.0061432435210796 --0.0093443838850450 -0.0279785032945351 --0.0166639858865789 --0.0838961390886420 --0.0685634951780475 --0.0175075570323587 -0.0644985687202421 --0.0091583877443038 -0.0031408034088689 --0.0051159609932893 --0.0175298370518508 -0.0157574469794754 -0.0068385354426639 -0.0454148829607619 --0.0408693593291291 -0.0146825287520033 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.0708325938802943 --0.3707171788013304 -0.2090005800749688 -0.0696892393746579 -0.3698360789751528 --0.2096034434623567 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0001162930251807 --0.0003360036982691 -0.0005623751354960 -0.1524579413440236 -0.0912421774528825 -0.2502086720481890 -0.0299155626791728 --0.0481069133729052 -0.0045561206976490 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0033743045768102 -0.0033421831760145 --0.0052365850368850 --0.1148859226862679 -0.0550102086803810 --0.0022080961920992 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.0422400120972266 --0.1133330350496087 --0.0620131796721079 --0.0036493280132725 --0.0031626889626801 --0.0029450569944850 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0004540543186728 -0.0003733528790385 --0.0008257874734353 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0016595041936221 -0.0016983856531714 -0.0003337076781276 --0.0032757333275589 -0.0031895317800154 -0.0006904905531620 -0.0423883754323453 -0.2421292062205354 --0.3935963191428360 --0.5460321622971337 -0.0395791595567607 --0.0431009080486237 -0.1622562523053928 --0.4238624044867859 -0.2064102202214718 -0.0190526436223607 -0.2614895906793391 -0.2479145441474787 -0.0010304633448615 -0.0022023377605555 -0.0015826908335284 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.0009220899629042 --0.0000393054842927 --0.0020509894522389 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0263955421081405 -0.0258220671095092 -0.0036983252135958 --0.0274446295848477 --0.0251797553959176 --0.0039138280177073 --0.0004239797831378 --0.0000432487126822 -0.0007154761370208 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.0000707394350930 -0.0005838843443950 -0.0001996600039543 -0.0114836634631033 --0.0035442215533755 -0.0024129973750894 -0.3298282875913066 -0.4237314613037090 -0.2002182099530759 -0.0405014940378005 --0.0429447239418359 --0.0257148334534142 -0.0002668385666598 -0.0012118563719967 -0.0001378671350596 --0.0322023403663033 -0.0526231753324126 --0.0021433272438742 --0.3494914762831171 --0.4262204526004207 --0.1810705867366519 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0137738694512999 -0.0204146722122910 --0.0261888005344849 --0.0027968662690393 --0.0014301187310803 -0.0057283446923816 -0.0000046939505855 --0.0008150230131906 -0.0005313518104254 --0.0007750389063415 --0.0019741629286755 --0.0052772449852880 --0.0224236849575694 --0.0939017659761533 --0.0224302453181006 -0.0024035593832342 -0.0057557406146801 -0.0011353880204633 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0030337546652350 --0.0130520653047131 -0.0047684090735163 -0.0381003190195692 --0.1759262286434487 --0.2905493215147570 -0.0004449687337694 --0.0001334741736791 --0.0003581775545681 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.1048771325462825 -0.0095426733344107 -0.1157457216411089 -0.0029445438808390 -0.0050882787062597 -0.0098881611590995 --0.0652327713234532 -0.1889620661454769 --0.0910186395503672 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.0000156589993671 -0.0002182354431198 --0.0008230343265443 -0.1070678616343370 --0.0111578132921657 --0.1142506850507911 --0.0020142310553977 --0.0079740955357981 --0.0041327471946413 -0.0447325427636785 -0.0197455146618225 --0.0089663365081650 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0053183402577394 -0.0169088226094414 -0.0101800420699541 -0.0001399963570736 -0.0004336611136793 -0.0004805129544838 -0.0449951361848489 --0.0227113686055153 --0.0023325030124900 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.0090333426388336 -0.0119807054039994 -0.0822953569498199 --0.0287366263574300 -0.1307941159417806 -0.1889542825079312 -0.0230412756158479 -0.0145538359353853 -0.0190899415850896 --0.0141479652081345 --0.1464109154503823 --0.1995194976832997 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0102822404702486 --0.0486077840122376 --0.0776855865366434 -0.0565731105477124 --0.1340540331248832 -0.1698993458268650 -0.0014906036144699 --0.0066907418100084 -0.0010125853764796 --0.0111657659443726 -0.0116960795325082 -0.0024469247846338 -0.0035046331961354 -0.0047584096205458 -0.0014395179195658 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.1333337525265387 --0.0318600143751384 --0.0154561648192441 --0.0135654016525637 --0.0261459119912975 --0.0137280228917552 -0.1390321513981113 -0.0341663892885011 -0.0188085891949614 --0.0215895340188821 -0.0420157602795929 -0.0225563734878390 -0.0185451314760312 -0.0103607198165909 -0.0218384870782002 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0709365913702072 --0.2380127030729829 -0.0513783405944045 --0.0642002129610421 -0.2198017716955442 --0.0500723124976861 --0.0003255200258128 -0.0018321347868712 --0.0001790717815276 --0.1471370542789476 --0.0952357140679121 --0.2588070402788974 --0.0037589488125727 -0.0021388025933205 -0.0088674940206693 --0.0012651123576027 --0.0012782101646254 -0.0015271223991517 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.0028803058878676 --0.0039602692972474 -0.0039667288250546 -0.0055566496531415 -0.0019932761943058 --0.0055053446107937 -0.0001938525128812 --0.0002094671793510 -0.0004127628287690 -0.0143656246591519 --0.0031246866903968 -0.0082793443344567 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0040204515701607 --0.0018868910389561 --0.0005264436789894 -0.0013527643125421 --0.0005780921235166 -0.0000875929760601 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.0009156847433242 --0.0068270787029342 -0.0051061542751151 --0.0002872508884305 --0.0154502241648810 -0.0141659021359401 --0.0000367961284332 --0.0006445832028076 -0.0003954191602603 -0.0013512133554388 -0.0008654505467664 --0.0070301963569058 -0.0378613025502546 --0.0148571558579193 --0.0182629679998363 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.0171244948612434 -0.0278944340865733 --0.0633672287989910 --0.0011432465437173 --0.0002157903106158 -0.0014015262889581 -0.0156575607406717 --0.0249594192597853 -0.0653680569099316 --0.0035054207309154 --0.0026479735917827 -0.0014153119720327 --0.0004194101643891 --0.0000810910031136 -0.0002996744769866 -0.0029728614510050 -0.0052680374681129 -0.0108577060011738 -0.0006758974522929 --0.0049810999334929 --0.0088485988779339 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0005923661813341 -0.0084201459600550 --0.0043303661178495 -0.0472616256003619 --0.0094154067206348 -0.0015570519479162 --0.1714846384530933 --0.0152660074814996 -0.0915073959805966 --0.0297488200356278 -0.0219017430892599 -0.0263238444988996 -0.0235685269465409 --0.0478839712717235 --0.0046819911737951 -0.1302404241601678 -0.0451081961486606 --0.1163690382367431 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0009990333512011 -0.0003500277525316 -0.0002626015903429 -0.0055026040441423 --0.0013416482415214 --0.0003052488806474 -0.0775606548299859 -0.0143383468133951 --0.2606498232111347 --0.0795304062057260 --0.0104297574743495 -0.2619565202015096 --0.0026784679118908 --0.0003343218737249 -0.0019249205497706 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.0022007154156997 -0.0011547181552869 --0.0007508847071831 --0.0038153104464105 -0.0004607425782580 --0.0032919064581829 -0.0022458514859954 -0.0000106738005259 -0.0004349774033362 --0.0001276167746256 --0.0004153605966995 --0.0010341132271985 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0038045507526040 -0.0040420209778283 --0.0030081453257749 --0.0123225758015090 -0.0013871430031204 -0.0005121874913231 -0.0032943861089370 -0.0189884529862400 -0.0216843555331750 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.0412132936337798 -0.1838391598110417 -0.2801473298145968 --0.0024633393703112 --0.0003908592556341 -0.0005264167627606 --0.0006065223355158 -0.0002107483488243 --0.0001213691374696 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.1526478708999199 --0.2024655516872423 --0.1626730940395208 --0.0563251141650802 -0.3023964899561370 -0.1331800396132101 -0.0702315034013259 --0.2394975183705634 --0.1196443548919606 --0.1703839548416286 -0.1403023578679205 -0.1473964695666927 -0.0299221887944748 -0.0807791581558369 -0.0598083130366062 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.0067948015413230 -0.0076256991001257 --0.0057136534343011 --0.0012798176769765 --0.0007896616762824 -0.0002466612245451 --0.0483896719821349 --0.0027594017230452 --0.0015618822994514 --0.0040728919857370 --0.0001881422519999 --0.0033935974677219 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0009998642127137 --0.0015084513746965 --0.0019097915646343 -0.0036296151030395 --0.0026032460755202 -0.0469470829951975 --0.0455790357408855 --0.0259067532673741 -0.0120243717627473 --0.0136255267251922 -0.0061642867965609 --0.0427878615799737 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.0440780709289049 -0.1709182375221937 -0.0669723202167151 --0.0177194647725344 -0.0342461578756077 --0.0020350359261940 -0.0164086448057910 --0.0339089889391380 -0.0013705842480099 -0.0375707522820355 --0.1460660596172995 -0.0135139818818003 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.0318001680094672 --0.0800348992715833 --0.0584335655513780 --0.0131825715285276 -0.0003118724494567 --0.0028722713362092 -0.0006940454413882 -0.0090158249685174 -0.0005071067797072 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.0046046901218460 -0.0023350145652545 -0.0002808483804970 -0.0047885138520584 --0.0079744905705208 -0.0068080601719305 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.0128518108626240 --0.0026518038091979 --0.0062140673981869 --0.0051913790796481 -0.0001162968587750 -0.0001675473330337 --0.0000970258212066 --0.0001038533932548 -0.0001154359896710 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.0024794823930704 --0.0011210079880082 -0.0001861868418523 --0.0012259091325350 --0.0005167514660963 -0.0015060428963622 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.0122187230601565 --0.0125727673551077 --0.0567387323088952 --0.0044911171921989 --0.0019018120712079 --0.0010013103709688 --0.0468430225349176 --0.0029127807530683 -0.0026060259246207 -0.0009968074534412 --0.0023467310315809 -0.0015418563325374 -0.0216082132405872 --0.0082000934629875 --0.0196998056266698 -0.0355174529973460 --0.0017494825368486 --0.0065320193204915 -0.0024090563061103 --0.0043557898172702 --0.0034551653197571 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.2919863255898946 -0.0001722670713344 --0.2852506531745930 --0.0795148800700761 -0.1325206293878184 -0.4623270632459219 -0.3705872270252406 --0.1330791720914045 --0.1781596204320695 --0.0150327506791896 --0.0136009752443854 --0.0267669782412858 --0.0008529956979031 --0.0006639698036322 --0.0006456426532591 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 diff --git a/examples/machsuite/md/grid/input.data b/examples/machsuite/md/grid/input.data deleted file mode 100644 index 5d49ab8b09..0000000000 --- a/examples/machsuite/md/grid/input.data +++ /dev/null @@ -1,1986 +0,0 @@ -%% -4 -4 -3 -4 -5 -5 -2 -1 -1 -8 -4 -8 -3 -3 -7 -5 -4 -5 -6 -2 -2 -4 -4 -3 -3 -4 -7 -2 -3 -2 -2 -1 -7 -1 -3 -7 -6 -3 -3 -4 -3 -4 -5 -5 -6 -4 -2 -5 -7 -6 -5 -4 -3 -3 -5 -4 -4 -4 -3 -2 -3 -2 -7 -5 -%% -3.6751776717378926 -4.2081589767125083 -2.1440962668152759 -0.1878695309954036 -1.6092908148972949 -0.5694799889233795 -1.9227078446526487 -3.5831061282627052 -3.9964468877352988 -2.1591586300607557 -0.7200676044914117 -2.4346772050174530 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.1261290806846831 -4.0064400264387299 -9.0136199719002139 -2.7868502187317352 -4.1289182455944600 -7.3887180361710314 -0.1127406837012356 -0.7910451974542847 -7.8430699551691285 -1.4978908165810179 -1.7634732711882284 -6.7903059219704334 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.5366177225833804 -3.1021877474380846 -12.5413183208886387 -4.5572540788124876 -1.0589064618546478 -12.0420038635632203 -2.5039008240633098 -2.3981418963013592 -11.3273292122877240 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -2.7221948728308938 -4.9782526344434004 -18.1818633679297932 -0.5593388063665081 -0.0234795394354381 -17.6332251307856360 -2.5361799008322228 -2.8634138891454834 -18.7953673605650380 -0.3172371695158291 -2.3815347271377356 -15.9846723200625753 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -4.3259530790379968 -9.7047200057221819 -0.1152809968347733 -1.6534266893003142 -9.6760033547368458 -4.8981503840652518 -1.2420326806515858 -8.6648391054270792 -2.6204714811313572 -0.2671174645220583 -5.8499163600439203 -0.8886687593913422 -3.4972423917441855 -9.0706513378177149 -4.5477256233179739 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -4.1877754014200370 -7.6677513496295822 -5.2580992616124878 -0.9776458988602766 -6.5318435363237963 -8.1527313369621357 -0.4078369905844157 -9.9469883910035293 -5.3470413843226838 -1.7365790812460604 -5.4623403845198393 -5.6193218264458542 -3.5361049273414475 -9.5332373650980067 -9.6504592669041838 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.5637551126073275 -5.9535166740117766 -13.2088307489098451 -2.3181468909521010 -9.4011962527758861 -10.9441563030915603 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.8529174511434725 -5.5891226245930596 -19.3533444811343784 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -2.6225036447865557 -12.1362722815472051 -3.4765394040222990 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -4.2264270650987248 -14.7173024017426926 -8.3327420883364507 -0.2553043509206231 -14.7800235438963625 -7.7533322544188135 -0.9264966192175300 -11.0729238079614696 -8.5098075612892305 -2.7753360501552873 -11.8529377968924887 -6.3867596386962973 -4.8773099951981260 -11.0067007962678982 -8.8389215256127489 -4.6449048171026357 -14.0671783888537920 -7.0737246647267247 -3.2022358476300394 -14.0177246692394739 -8.8734065210448261 -2.8718852839138940 -12.3602090294784119 -9.0612576332890029 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -4.9304158903095656 -13.4563646124520311 -10.0188896830914942 -3.5962505548817258 -13.2311276784010641 -10.7770080647958348 -0.6901526125666906 -11.7003937920188470 -14.1971733171327852 -3.4171375951674676 -10.6300366468594643 -12.4847198191310369 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.2703310110536179 -13.1509451291781403 -16.0913322938511243 -1.0222004863811358 -14.3505186400425799 -17.1503655665231420 -2.3433250384127384 -11.9248970153847882 -19.4768644266667401 -0.0829396211166469 -12.1920277939635202 -17.6111941787996003 -3.4519282140092651 -12.8571266483258135 -17.3420203546990450 -1.0557598401670412 -10.3612234002161117 -16.8239757354184860 -1.6494969174818297 -12.7207178303538289 -17.3497261810119134 -2.3712945210345331 -14.2439330229754635 -16.4521638780890527 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.7918941140052675 -18.6604411677948043 -0.8004199563224681 -3.7449920941085066 -17.5353751653850658 -0.5669871427130923 -4.5097723740932185 -19.5654735882180972 -0.8582822852436496 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -4.0229751789818655 -19.5643071810518308 -5.9322266112500959 -4.1428606667917336 -15.6638265752271266 -5.3030492212128397 -3.4308417925440269 -19.8178441941022108 -9.4985545747724878 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1.5683180324406867 -19.2313884765320040 -13.5516312238628860 -0.3318993707057750 -17.2899736854007919 -12.1367636165709136 -2.6044662735519992 -18.8160422842487627 -13.1333974647393319 -1.3829487716820774 -18.0697976497191952 -10.5987442011944708 -2.4370867633551181 -16.7973657347760543 -10.2175948477949134 -3.9240030976350608 -15.6576976449421181 -13.6938164319695161 -1.2832201236236951 -18.4662106150019909 -14.5881843077565705 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -2.7667405433321446 -17.8220214373726833 -19.2449424633702542 -1.5337977621823875 -19.9680230373665921 -16.9262457858526645 -0.3080346042757222 -16.9582495526544115 -18.9244191142618199 -1.2970522785044105 -18.1236016202777996 -16.7185186753967905 -4.4876884404153135 -18.1011362237602711 -17.1479761085705711 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -6.7851818082497601 -3.4056039389322494 -2.2257144986306177 -7.4437057468512062 -4.9060214300143219 -3.2673313705234071 -5.4550046025929149 -2.9272013256220664 -3.4669076591384762 -9.7272892059598330 -4.2290288959808002 -0.9113099993598716 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -8.8344254870351335 -2.6792826006163977 -7.0763807304655524 -5.7463335278029710 -0.2806037350274115 -8.7311685449318581 -5.9217002569171031 -4.3898395672452963 -7.5833587152232447 -7.0609216245451680 -2.5762229587422998 -8.2984333482400352 -8.4064449031482127 -1.9710806362080797 -9.9086003293395724 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -5.1749024607328264 -3.7323911848335052 -12.2685679773443006 -6.8847748576589751 -3.5295547530952605 -14.9767969398953511 -8.4629229031582209 -2.5608079408240010 -12.9688298457771687 -7.6183972435207252 -4.5022463250317255 -11.3410701645431278 -5.1435245717979949 -3.8320015283320767 -10.6822783656440379 -8.1464042436039126 -3.9126082356480452 -10.0191673859667940 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -9.5778498699964629 -2.2143334425431953 -18.0947161151234148 -7.2893377266753587 -4.6758443638120806 -19.2337468288737377 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -8.5627094608835197 -7.1745844777056833 -2.2858302568718885 -7.4437431561227392 -7.8873825177051406 -3.2366115438475438 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -6.4862521901726744 -8.0848649866930344 -9.7784337883551373 -5.7260535593592010 -8.7069986212538897 -5.3662018366095099 -6.8807521681509005 -6.7212394562336897 -8.7472953920013019 -5.7624040984725564 -8.7097980208570078 -6.9170741236277618 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -6.6489605584185973 -9.3149075041507299 -14.6962761797325392 -7.2980496507174255 -5.8776955217970546 -10.6867260118935405 -6.3220404025344026 -6.3443308259250344 -14.7490724388635641 -9.1806026935048806 -8.0229567524753183 -11.5804876998391393 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -5.7179651739954398 -7.6246036274673203 -19.2540660250504416 -8.3680886517792246 -5.9864866848830207 -18.1955139743717211 -9.2503949873418794 -8.5855413928391844 -17.2783908948646925 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.5209263497753573 -11.4500722602451859 -3.0851068661030423 -5.5222248313463975 -14.5427274692486712 -4.8805704875164988 -9.8537894591522797 -14.7414698270373776 -4.5777285180786205 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -8.7470311216293606 -10.1080840549846833 -5.1645378313088619 -6.7124574349141106 -13.6687817933165245 -6.5359265800354196 -7.4655764254754544 -13.7317389666066525 -8.0014718454115581 -6.3481514363787506 -13.2783180756681674 -7.5035965388636949 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.0635873061829768 -12.7744435499558833 -10.2860103728011349 -9.8137657385082306 -11.9661657987475341 -12.9917616686460242 -9.7656001860256918 -13.4144294693136796 -11.3292714641285919 -6.1742489453149219 -14.1369673710703854 -10.0193265074685129 -5.0908951354312872 -11.8575048905551217 -11.8043964349536594 -5.3594363124954834 -14.6071701753364778 -13.1345141328689490 -5.4770386780298388 -10.3606897639506563 -14.2894931506071305 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -5.8797088939011255 -11.2168477650019547 -17.5237435510103232 -5.6869086257068098 -10.1927365474869589 -18.1026391263194277 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.7791093202866755 -19.9177900760695721 -0.3174876306099913 -9.4177137526614665 -19.2718320631692421 -3.5279689501917821 -8.9909692671351333 -16.1440615277531023 -4.4450477497888139 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -9.3434185430869618 -18.6960660426856116 -9.0744292782412579 -5.3422898020468619 -18.9276349793230168 -5.9578482806340451 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -6.6217636841554288 -15.3450643786373426 -10.7048062739302914 -6.3275803150554522 -16.3214713444517869 -14.5889577523875467 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -9.2086966788557518 -17.0712258767632861 -18.2685942651204947 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -10.4125609669545192 -0.0164184716350660 -3.0024413572980491 -13.1989856058542436 -0.8713628098373043 -1.4071525710629489 -11.5697577060044843 -2.6993094378198168 -2.3858519283029271 -11.6978875453659832 -3.3244794214474496 -1.3875632973341996 -10.9439629278922013 -3.8852233441531299 -0.8675699935098641 -11.1227406322977824 -2.7582852014461645 -0.1893328065393807 -10.4225409750898521 -0.0785255990389568 -0.0235178328007123 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -11.5155844463164172 -0.4662466434853773 -5.3858066934412019 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -11.4428012989220580 -2.2406187398069779 -10.2278840776730977 -12.7208676027301557 -3.4320862691283209 -10.4023106203178699 -10.3510742900227761 -3.2924801038934080 -14.9176986094763908 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -13.4839625274226194 -0.5273664154940431 -16.0527177594889139 -11.5392731253040548 -4.2443943700567752 -17.2334085517164119 -13.5593710328534520 -3.7374174986297151 -17.5654831473733033 -12.8839793112894601 -3.6201424229546681 -19.4264996224047017 -10.3072118232742849 -0.2334061399608698 -15.0571324838484486 -13.7989724102711797 -2.2476673656641801 -19.3311187171898560 -14.2224777464941372 -4.5547690512524506 -17.9179079179237029 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -14.3228577296588071 -9.6416548484039133 -2.7300429334475576 -12.9129937211481938 -5.9893229570148341 -0.1566641969771449 -10.6721420669764644 -8.8648736667611487 -0.2410759923645371 -12.6059390612419442 -5.9596547268625066 -2.5481771308936310 -10.3854872472542592 -5.6109583454163001 -1.2793285826310643 -14.2145433936236838 -5.0115954513560546 -4.6736257029693311 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -14.7601184000568590 -9.2063618136850334 -5.3733196920580992 -14.9621808235400202 -7.5522377758777850 -6.6748724207248156 -13.4861217909613345 -6.2947789308450908 -9.1130803766540005 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -11.5274909098487583 -6.6373588103732137 -14.3077035058116682 -13.8218679106338183 -5.5365867045727661 -14.6294659992070848 -14.9364341531333107 -8.9621416849378264 -11.8727324665991674 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -10.9764995567023966 -7.4727256773459869 -19.8797587210222275 -10.5638623996769727 -6.7355862879971484 -15.3427479696982516 -14.7730047964071467 -6.2756182511041372 -16.3279534497336734 -13.5429160724491666 -9.5361769634243423 -19.6426877154950787 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -14.7916515469382421 -14.2816237882065309 -3.3797357458584583 -12.5501229208306757 -13.5544125333464613 -0.2229446752189353 -14.8851141981239028 -10.8202275599755673 -1.5109100749250302 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -10.2251848487736119 -13.2325485079401659 -9.8753308406590374 -12.1627344326544709 -12.7861572930515202 -8.4779169365640250 -10.8243687968498481 -12.0420308818265056 -7.5224696854719397 -12.1496478040613365 -13.5449814774089479 -9.5554150105024647 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -14.5360080910664777 -10.4112386778402453 -12.6878367956508988 -14.5401586039839792 -10.0038647839579440 -11.0805875612635809 -13.8608233334647952 -12.3540202008306981 -11.5600742872069731 -11.2137213596890000 -10.6153094480978325 -12.6382173759649614 -13.6667367580294439 -14.0141661816363534 -14.8445669054948333 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -11.6812259245979515 -13.9160635076280741 -17.1142524409288228 -13.2252843493755616 -11.3104312774579547 -18.8463187708903632 -10.2969726760120217 -13.5735837307194362 -16.9274149013707174 -14.5484423416647264 -14.2728239374589307 -18.1648494702148504 -12.1121498405229744 -10.6586843478587099 -17.5592785599267742 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -14.0876307378348837 -18.9356998231911469 -3.9490319333486923 -14.4566073800425841 -17.7034428446484604 -4.2158159211154995 -12.0375810304219222 -16.4706020687049275 -1.3314408058193639 -10.0147557338273447 -19.6551622545138471 -4.5772960711320723 -10.4134292474183034 -18.6997303368635066 -1.7607250469699816 -12.7174081929337248 -18.8833933907846472 -0.0167848559783718 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -10.3719449281605076 -19.8103469585473100 -7.4247815593339208 -13.5815447984483324 -15.4329874305955190 -5.7372552161446952 -12.9565675623052972 -18.1991812687241783 -8.3301647316925624 -14.5139698549894405 -15.8264769696425809 -9.8929224861620675 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -14.1730728863995292 -18.7853205080859418 -12.7569779923039039 -11.5069303326321979 -19.5577932786985436 -13.0820107252652882 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -14.2477691876824526 -19.0874965754834740 -17.6022129924633504 -14.2605567530194026 -15.7714594962642494 -16.9188372067287141 -10.1004498451458762 -18.9424230691569520 -16.1415305772765798 -13.9758108225928357 -17.4344671720420905 -19.0153978872629068 -13.0456258591763881 -15.0300791334677992 -18.6470592226488492 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -19.0421644512576478 -0.1110865138833930 -3.7337473945490069 -16.6878337834015902 -4.3237725552212183 -1.8655501297024442 -18.6654576486595296 -0.6908553508798563 -2.2928910409962713 -19.9154683253095435 -2.4926257764192314 -4.9616016867514139 -19.7833670117321923 -4.0494353712292614 -0.3936521613195942 -16.1797254569442579 -1.8908009678804352 -2.8829039465130659 -16.4086936578005584 -2.5736949130478992 -4.8138031341996772 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -17.2769465297835758 -0.1378071377482869 -8.5406476617232325 -16.9809487421796987 -2.1151995255310747 -7.3882429596047370 -18.8600412489591598 -2.8805013855540791 -8.2656488453416461 -18.1942458367322217 -1.3963257180914304 -6.4032828014924013 -16.9573422980719606 -4.3157153642119992 -9.0701538884995472 -17.6794552597908954 -2.7943721628365132 -8.9719932180434760 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -16.5198313181023195 -1.4982821984794936 -12.2555397010652349 -17.3880397283452091 -4.3827298640398640 -14.9993447301251379 -19.5209822704437599 -0.4443032593999899 -13.7770087416204152 -19.8948537551397315 -0.4983877075670113 -12.5366213969831257 -18.9261623409457087 -2.9163129463609136 -13.9441638769380631 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -19.2690458797141737 -0.2234797292400960 -16.9746461119998742 -19.2419706461741100 -4.4343192198184598 -16.5519293125461999 -16.8779968223881518 -0.6561422426680080 -16.0365577995907138 -19.4159240478823349 -1.7364393060322221 -19.5176328649368145 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -15.4738175463309418 -6.7048820953284167 -2.3017241253250060 -16.8488231409391460 -8.1451343638878004 -1.3329860613026692 -15.1617815457907064 -9.2364182820119609 -0.5653060157856495 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -15.1048778573899778 -6.8789562639828219 -5.6341747880361348 -17.4405790073111326 -8.5887803325724672 -5.0656224514148986 -19.5584809627543308 -6.3620959696350585 -5.9737848264411486 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -16.7616742578590276 -9.1091409880723955 -13.8181567737015936 -17.2554531123664283 -5.5614424623769327 -12.3647076540819523 -17.0440595925778062 -6.6923891261590107 -12.8584660269844413 -17.4211691978690055 -8.2535706371976580 -13.1384170145603569 -18.4677174628455063 -9.8337417748191829 -10.6448216272314760 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -17.6084745813862362 -9.2095845931776505 -18.2292614356700184 -19.4461859188322066 -7.4565290229064454 -16.1343589622077630 -15.2293121128447844 -9.6747272364504653 -19.6192401320742604 -16.8119028801814210 -6.2387523236339151 -17.4756460936936548 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -17.9395494827305022 -12.2002357859779096 -3.9213992629855374 -18.4881491536212970 -10.8275054723195439 -0.5758844333704736 -16.3773459048556447 -11.4291551824532256 -1.1397398543649275 -18.8722992734438755 -10.6838517546845253 -2.2311175329684114 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -16.9404726918758755 -13.6894410585637605 -8.9412444990816748 -19.4016266604370671 -10.7357699795316375 -6.8626450802225243 -18.6169865754826560 -12.2997525302220119 -6.7820553515729740 -16.5843651236635949 -14.9415581456303936 -9.4058031365575836 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -18.9092220899657306 -11.0005041108965997 -11.4947275597623939 -18.6027094791978271 -14.4490607063415428 -10.3820556665622821 -17.6560967341896671 -13.3153618505281344 -12.5826118677754817 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -16.9663567922930554 -13.4129956075376366 -18.6329480185432601 -16.6181860869302014 -10.7002979992475993 -17.1547363818057299 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -15.2670067384965051 -15.9202734415428822 -4.3014938839025252 -17.4789079691882847 -15.0445831266166348 -4.0894919659983850 -19.5739430054198529 -15.3225883868616499 -0.3416005055139921 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -17.9298280465174180 -18.3494948150584243 -9.8596063732403838 -18.8801641172921038 -16.3173040995890837 -7.8060764996903291 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -16.3638701924247130 -15.3678689561585262 -10.9186130083383564 -16.4292940465175157 -18.2268364558343734 -13.2854325259898509 -18.7922884875168954 -15.3117801785685650 -13.3840961105625276 -15.3544044004937597 -18.5586635403954858 -10.3066545099235007 -15.1042757184211922 -15.9093367587460239 -12.1306234441035024 -17.0861248297439587 -15.3168307084181787 -13.5644548880758400 -15.2401191119576485 -15.7377418072453708 -14.6717514898516210 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -19.1816276352674322 -17.6080662724331098 -19.9611911045737074 -18.6528291205650447 -17.4477157472711006 -18.7892375997657339 -17.8522323968585930 -17.8609156579324519 -19.6887716060662541 -15.3468135882317327 -15.0899357092350765 -19.5838416239749478 -17.8249129656457157 -17.6315760440689715 -15.7988066042474369 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 diff --git a/examples/machsuite/md/grid/md_kernel_test.py b/examples/machsuite/md/grid/md_kernel_test.py index 2c319c812f..7daede0174 100644 --- a/examples/machsuite/md/grid/md_kernel_test.py +++ b/examples/machsuite/md/grid/md_kernel_test.py @@ -3,36 +3,70 @@ import numpy as np import os -def parse_data(file): - data_arrays = [] - current_array = [] - with open(file, 'r') as f: - for line in f: - if line.strip() == '%%': - if current_array: - data_arrays.append(current_array) - current_array = [] - else: - num = float(line.strip()) - current_array.append(num) - data_arrays.append(current_array) - return data_arrays +blockSide = 4 +densityFactor = 10 +domainEdge = 20.0 +blockEdge = domainEdge / blockSide +lj1 = 1.5 +lj2 = 2.0 + + +def md_force_ref(n_points, pos_x, pos_y, pos_z): + """Python reference for MD grid force computation.""" + force_x = np.zeros_like(pos_x) + force_y = np.zeros_like(pos_y) + force_z = np.zeros_like(pos_z) + + for b0x in range(blockSide): + for b0y in range(blockSide): + for b0z in range(blockSide): + for b1x in range(max(0, b0x-1), min(blockSide, b0x+2)): + for b1y in range(max(0, b0y-1), min(blockSide, b0y+2)): + for b1z in range(max(0, b0z-1), min(blockSide, b0z+2)): + q_range = n_points[b1x, b1y, b1z] + for p_idx in range(n_points[b0x, b0y, b0z]): + px = pos_x[b0x, b0y, b0z, p_idx] + py = pos_y[b0x, b0y, b0z, p_idx] + pz = pos_z[b0x, b0y, b0z, p_idx] + sx, sy, sz = 0.0, 0.0, 0.0 + for q_idx in range(q_range): + qx = pos_x[b1x, b1y, b1z, q_idx] + qy = pos_y[b1x, b1y, b1z, q_idx] + qz = pos_z[b1x, b1y, b1z, q_idx] + if qx != px or qy != py or qz != pz: + dx = px - qx + dy = py - qy + dz = pz - qz + r2inv = 1.0 / (dx*dx + dy*dy + dz*dz) + r6inv = r2inv * r2inv * r2inv + potential = r6inv * (lj1 * r6inv - lj2) + f = r2inv * potential + sx += f * dx + sy += f * dy + sz += f * dz + force_x[b0x, b0y, b0z, p_idx] += sx + force_y[b0x, b0y, b0z, p_idx] += sy + force_z[b0x, b0y, b0z, p_idx] += sz + + return force_x, force_y, force_z + if __name__ == "__main__": - data_dir = os.path.dirname(os.path.abspath(__file__)) - input_data = parse_data(os.path.join(data_dir, "input.data")) - check_data = parse_data(os.path.join(data_dir, "check.data")) - # C code uses dvector_t structs (AoS layout: x0,y0,z0,x1,y1,z1,...) - force_data = np.array(check_data[0]).astype(np.float64) - check_x = np.ascontiguousarray(force_data[0::3].reshape((4,4,4,10))) - check_y = np.ascontiguousarray(force_data[1::3].reshape((4,4,4,10))) - check_z = np.ascontiguousarray(force_data[2::3].reshape((4,4,4,10))) - - np_n_points = np.array(input_data[0]).astype(np.int32).reshape((4,4,4)) - pos_data = np.array(input_data[1]).astype(np.float64) - np_pos_x = np.ascontiguousarray(pos_data[0::3].reshape((4,4,4,10))) - np_pos_y = np.ascontiguousarray(pos_data[1::3].reshape((4,4,4,10))) - np_pos_z = np.ascontiguousarray(pos_data[2::3].reshape((4,4,4,10))) + np.random.seed(42) + + # Generate random atom positions within grid blocks + np_n_points = np.full((blockSide, blockSide, blockSide), densityFactor, dtype=np.int32) + np_pos_x = np.zeros((blockSide, blockSide, blockSide, densityFactor), dtype=np.float64) + np_pos_y = np.zeros((blockSide, blockSide, blockSide, densityFactor), dtype=np.float64) + np_pos_z = np.zeros((blockSide, blockSide, blockSide, densityFactor), dtype=np.float64) + + for bx in range(blockSide): + for by in range(blockSide): + for bz in range(blockSide): + for a in range(densityFactor): + np_pos_x[bx, by, bz, a] = bx * blockEdge + np.random.rand() * blockEdge + np_pos_y[bx, by, bz, a] = by * blockEdge + np.random.rand() * blockEdge + np_pos_z[bx, by, bz, a] = bz * blockEdge + np.random.rand() * blockEdge s_x = allo.customize(md.md_x) mod_x = s_x.build() @@ -45,6 +79,8 @@ def parse_data(file): forceY = mod_y(np_n_points, np_pos_x, np_pos_y, np_pos_z) forceZ = mod_z(np_n_points, np_pos_x, np_pos_y, np_pos_z) + check_x, check_y, check_z = md_force_ref(np_n_points, np_pos_x, np_pos_y, np_pos_z) + np.testing.assert_allclose(forceX, check_x, rtol=1e-5, atol=1e-5) np.testing.assert_allclose(forceY, check_y, rtol=1e-5, atol=1e-5) np.testing.assert_allclose(forceZ, check_z, rtol=1e-5, atol=1e-5) diff --git a/examples/machsuite/md/knn/check.data b/examples/machsuite/md/knn/check.data deleted file mode 100644 index 9fbeaa09ca..0000000000 --- a/examples/machsuite/md/knn/check.data +++ /dev/null @@ -1,771 +0,0 @@ -%% --0.0045795189517608 -0.0010006544024939 -0.0091353696597257 -0.0042083936032755 -0.0593902131124659 -0.0046532535512106 -0.0006000365319329 --0.0000749367839938 -0.0753128895754742 -0.1148295162832887 -0.0048178879330691 --0.0009192037800680 -0.0472773018929201 -0.0038046401480434 --0.0412273030911962 --0.0000508553772453 -0.0102953805332252 -0.0007925298799086 -0.0007545233671592 -0.0001392802906365 --0.0171184405409007 --0.1203620059221036 --0.0428603544791572 --0.0067776896522974 -0.0114879325563022 -0.0023562821077880 -0.0000391861670495 -0.0000165070167933 --0.0128529391671262 --0.0080499826906790 -0.0138042637110846 -0.0566116805226414 --0.0440312338098056 -0.0053294616085111 -0.0010526192037506 -0.0001147188716166 -0.0426656532030718 --0.0000212247716140 -0.0010476259487722 -0.0030316460754411 -0.0012217212317550 -0.0016100161283132 --0.2919842006498220 --0.0001263469957246 -0.0709385190313541 -0.0879389850840536 --0.0317543611690016 -0.0038558278418436 --0.1048689889554224 --0.0017563368590621 -0.0016546462302004 -0.0005332160253217 -0.0052461792716530 -0.1976687090519876 --0.0412878437605855 -0.0009642577260911 --0.0014795854002822 --0.0121757721007683 --0.0028504232314383 -0.0008557032670345 --0.1333490342654787 --0.1795839529229207 -0.0011741467235024 -0.0380988958748112 -0.0098290177403689 --0.0059394288417645 --0.0011112390377251 -0.0019360813285793 --0.1790140341055154 --0.0032822499942972 --0.0642028730865273 -0.3213302258114489 --0.0795103495668107 -0.0009249859997316 --0.2563673304702790 -0.0263929082423519 -0.1106130094452820 -0.0423576663203423 --0.0012599904430325 --0.0468686511629383 --0.0044725886187494 -0.0002759794502637 --0.0468025687946449 -0.1526817352499845 -0.0032008593634687 -0.0010082430260856 -0.3705908922719823 --0.0003239373355089 --0.0011621009219526 --0.0101502302074965 --0.0176873827812899 --0.0028082644015579 --0.0562869461910865 -0.0164525952082818 --0.0389120305315647 --0.0002934752613145 -0.0170772842771684 -0.0005685548421083 -0.3973848498696269 -0.0156659068077403 --0.5460767881222509 -0.0055272732361114 --0.0189348407404303 --0.1714603595644497 --0.0483845953470964 -0.0033901275017676 -0.0216360228752040 --0.0084529293853750 -0.0001315032347755 --0.0034959747577141 --0.0009674478125459 -0.0086731771760339 -0.3298190943502501 -0.0014037974609553 --0.0708439953985395 -0.0404965424040329 --0.0024431770515170 -0.0010255436882137 --0.0131284830784892 -0.0001107894045428 -0.0043489999572390 --0.0025900388331786 --0.0004115483005159 -0.0029441987217273 -0.0267318335418436 -0.0004492962577070 --0.0000118814823774 --0.0111666797134007 -0.0002612526527235 --0.0108123629566951 --0.0021967544953101 --0.0219334991645086 --0.0008072705431594 --0.0062180153691900 -0.0696851989869954 -0.0116706349082798 --0.0009197466653283 -0.0607571882232662 --0.0090764551016809 --0.0297350634328291 --0.0028854968545133 -0.0111844408520772 -0.0702751037497208 --0.0274510576702956 -0.0108620503230867 --0.0016654135342545 -0.0055536903088580 -0.0040215988538506 -0.0013443186434745 --0.0135661906202453 --0.0024661114479737 --0.0005830143302719 -0.0046680270345165 --0.0652088129568841 -0.0450028719225990 --0.0101447240127669 -0.0376052470474780 -0.0005240782658987 --0.0224426423294674 --0.0002910927982936 --0.0051747127483074 --0.0150230189973244 --0.0322002731555954 -0.1622415321561700 -0.0229398419088130 --0.0446167817688489 --0.0287335659308238 --0.0422364612898884 --0.0000963835163646 -0.0036370411706518 -0.0280013819737468 -0.0048581820747142 --0.0081577795803511 --0.0175719109984944 -0.0775684556042425 -0.0190416527519842 --0.0076179361251093 -0.0004652525750220 --0.0009343774153151 --0.0231144603615749 -0.0029893502908488 -0.0001801247605473 -0.0010268143764088 -0.0034433621848123 -0.1070704879119819 -0.0230402269038010 --0.0008276849658398 --0.0141396876251974 -0.1524687750685142 -0.0154750738627719 -0.0106527073918973 -0.1390133656788715 -0.0235710403959843 --0.0344766425756731 --0.1148909896693189 -0.0015579206478781 -0.1645774774300167 --0.0039179163868212 -0.3493697437410079 -0.0035133934524417 --0.0216271592954963 -0.1302617696357277 --0.1703575644791838 --0.3869387858113245 -0.0355531941524447 -0.0237223616175110 -0.0299049624989864 --0.0020402994586124 -0.0002027347657051 --0.0007713403730759 --0.0299788776589361 --0.0020198567010444 -0.0185155204413976 --0.0735885335513550 -0.0024034012998256 --0.0684886891186168 -0.0007281890893727 --0.0040434798710332 --0.0455652681632317 --0.0036143754165868 -0.0208290447385603 --0.0795234886573328 --0.0000522834042340 --0.0019925194859428 -0.0013486672055835 --0.3495038995226429 -0.0419544425375063 -0.0378408511170425 -0.0024016736757507 --0.0026407530717009 --0.0037870789867693 -0.0004175645624719 -0.0299430948513492 --0.0073927860855057 --0.0123112251762417 --0.0136111792788654 --0.0300323763139989 -0.0635715384111979 --0.0004256208694251 -0.0268540142335609 -0.0143655791137093 --0.0092086363985898 -0.0174422479137566 --0.0174821426174726 -0.0447451301957200 -0.0022557391534384 --0.1373513130683182 --0.0011967822510849 -0.0007376061506525 --0.0001246538476983 -0.0454143283079350 --0.0009430098858331 --0.1471428921985210 -0.0033023440310946 --0.0037655439177521 --0.0012653569888536 -%% -0.0023366376424289 -0.0003274706321093 --0.0317479641666915 -0.0012419462439193 -0.0637072217014040 -0.0515247773607932 -0.0084045555673605 -0.0005624979925615 -0.0080552120116362 --0.0556008960067645 --0.0080103578063896 --0.0068012877531211 --0.0094373727621233 -0.0040491473997874 -0.1838488708935814 --0.0000329217738144 --0.0486651522720374 --0.0020812533673982 --0.0001865388585123 --0.0011163309733541 -0.0278902562968541 --0.1701359061526200 -0.0223444808569898 -0.0076336976576161 --0.0035534307488968 -0.0078791535525673 -0.0011834506428879 -0.0034651769465794 --0.0026456678554020 --0.0003757237280991 -0.0204392592717834 --0.1341136394015902 -0.1708886589100200 -0.0169252013985751 --0.0003766157939695 --0.0003324887616034 --0.0308939263298839 -0.0002184454698729 --0.0027649631618547 --0.0130654958351564 -0.0023219393970790 -0.0019834044128723 -0.0001735693539581 --0.0014243371464416 --0.2379998639374943 -0.0337901919648708 --0.0800381526645846 --0.0042882016507604 -0.0095543650571517 --0.0003561319504468 -0.0016866337868831 -0.0007368577037479 -0.0023084275797397 --0.0425990197749463 -0.0240141812475105 --0.0002574691461937 -0.0003193690063291 --0.0125262146585251 --0.0256253333202020 -0.0011553048731904 --0.0318421152535022 -0.0375666593857264 -0.0014204053250233 --0.1759238848951172 -0.0043839134142663 -0.0008433075880576 --0.0002185312693791 --0.0037839926180563 --0.1993764437829915 -0.0031752022194020 -0.2198255398372332 --0.2950945874465774 -0.1325234030790587 -0.0006446002998840 --0.0941228296290855 -0.0258034128580267 --0.0946892177713960 -0.2421010978137048 --0.0007871048444721 -0.0410660104155664 --0.0018648306017793 -0.0001157720230893 --0.0029084922099082 --0.2024342135417301 -0.0011865628025500 --0.0023212217321001 --0.1330767144835761 -0.0018370939411536 -0.0026763976180610 -0.0090248908717061 -0.0342410726204171 --0.0014405021372105 -0.3023897312616984 --0.0338972551110036 -0.0530617283566031 --0.0001800754800253 --0.0760380341554816 --0.0010444867178764 -0.3076913346327718 --0.0249657988992430 -0.0395407494884418 --0.0013262154159867 -0.0134247098751451 --0.0152856937009451 --0.0027215020481674 -0.0033808602304749 --0.0081973177823275 --0.0006244932736350 -0.0004418447508018 --0.0026540261962620 -0.0026224217557514 -0.0107719407465121 -0.4237093953585532 --0.0067061534541944 --0.3707297694857420 --0.0429536112623487 --0.0003548272938677 --0.0015110681874581 -0.0003318723560599 -0.0083982660573683 -0.0015051986891214 --0.0076625117130702 --0.0000763039531262 -0.0050752984544254 --0.0181594871889979 --0.0001355499297827 --0.0008031959876353 -0.0116819064236495 -0.0011946764139594 -0.0449968124493289 -0.0011508230180537 --0.0135743895994105 --0.0019691942483913 --0.0132373148723370 -0.3698192133911120 --0.0061370866386815 --0.0000729034691551 -0.0186453375976536 -0.0119855587926925 -0.0218890264932470 --0.0039330460108275 -0.0080792493352998 --0.2394672890560277 --0.0251952678329363 -0.0375433977375618 -0.0038995428668366 -0.0019955311865223 --0.0018492365594615 --0.0005520286146161 --0.0261453751340513 --0.0011075161069945 -0.0001948306751402 --0.0044790436546044 -0.1889540789341556 --0.0227193922159459 --0.0054836019124442 --0.1460147243572459 --0.0003664681325090 --0.0939104211081484 --0.0154570498303793 -0.0001123255366511 --0.0136088942649073 -0.0526088956811829 --0.4238662874232183 --0.0205412110766567 -0.0086878559725064 -0.1307735706335590 --0.1133049718359686 --0.0001045825111041 --0.0026014797665092 --0.0166498565389207 --0.0308604792251989 --0.0092910105418492 -0.0055174663365743 -0.0143293189093238 -0.2614724745817563 -0.0247773620378728 -0.0003831462057484 --0.0013167642344193 -0.0187730446099219 -0.0052379121488160 --0.0015940959040823 -0.0021975748335872 -0.0047359053913183 --0.0111371379860461 -0.0145569002390629 --0.0006418750407132 --0.1464057061882958 -0.0912606924784732 -0.0084551029910644 -0.0077678520607954 -0.0341888748346538 --0.0479023890543295 -0.0214990277589202 -0.0550477446675383 -0.0024907014211731 -0.0567838303071173 --0.0016621172065412 --0.0257821729016364 -0.0243891766729837 -0.0419936554597676 -0.0450860621847714 -0.1403281670891161 -0.1463614376976397 --0.0017285937093979 --0.0405585790724259 --0.0481034606850254 --0.0080034944849930 --0.0001514350786818 -0.0010962928496224 -0.0356322486183008 -0.0116038104005805 -0.0103487323204759 -0.0901928901889105 --0.0043284345085213 --0.0175056197409945 --0.0050159466691116 --0.0001498369750154 --0.0259007558420731 --0.0031305723026013 --0.0134227689148391 --0.0104359111559650 --0.0006359153097625 --0.0002637271329941 -0.0008758023313190 --0.4262596837197251 --0.0271864123638465 --0.0148677802658914 -0.0057793928931485 --0.0003491377993326 -0.0004572245645245 --0.0007924008463422 -0.0808090414918233 -0.0210423147466303 -0.0014013192489283 -0.0061641436821485 -0.0485863153347486 -0.1442332705438349 --0.0000792767590709 -0.0069381503605460 --0.0030704680578749 -0.0030640963993225 -0.0482341990542410 -0.0157785548694374 -0.0197977314964901 --0.0000054396724673 --0.0726394763631353 --0.0005130689122156 -0.0090154796102442 --0.0004177376502328 --0.0409149941359858 --0.0006041777520952 --0.0952224642959121 -0.0190031262088979 -0.0021461123577084 --0.0012753032555793 -%% -0.0003331512668661 -0.0002392120969401 --0.0218611391798295 --0.0043484272383932 -0.0329947799990490 --0.0146782857920584 --0.0043264753208002 -0.0002111559620985 --0.0616769764841274 -0.0024402260802260 -0.0068561389518542 -0.0051228434822202 -0.0015556858914776 --0.0030079565567761 -0.2801438646043106 -0.0002553439754180 --0.0776834863713215 -0.0032178259599896 --0.0000288724087788 --0.0003847089647469 --0.0633668376027912 --0.0112524663991965 -0.0590707831589821 --0.0056919888034930 -0.0024470720125280 -0.0012002520267324 --0.0006168471515519 --0.0748726901632676 --0.0062071834250270 -0.0067230987356224 --0.0262004152445645 -0.1698864827414849 -0.0669824617989436 -0.0101532262082429 -0.0003900035793537 -0.0005591346076319 --0.0572891489425459 --0.0007936995563046 --0.0007021699658971 -0.0047530256937731 -0.0000974143274047 -0.0042961165362821 --0.2852481524977619 -0.0018567269190672 -0.0513750314167724 -0.2330943247791502 --0.0584476952568427 -0.0037015750519698 -0.1157746758480753 --0.0029497571483984 -0.0003263178349143 --0.0009411404605778 -0.0003596378839630 --0.0709492495184697 -0.0356827223533080 -0.0009354610571981 --0.0012980121078216 --0.0567567502241796 --0.0040607289581101 --0.0007313617580492 --0.0154257678128280 -0.0654912187330980 -0.0038889485552302 --0.2905522136980022 -0.0026851646639413 -0.0007816373949054 -0.0013587960952252 -0.0016601308727936 -0.5603000262801787 -0.0006780042616553 --0.0500807662723323 -0.0410674215399688 -0.4623328631161086 --0.0019719369280860 --0.1454303235918162 -0.0036884042652098 --0.0828243512247075 --0.3936253527887135 -0.0002505778812599 --0.0158104643473662 --0.0010161863868166 -0.0003279173705771 -0.0025764273051478 --0.1626907358940115 --0.0018993907695316 -0.0015298063401423 --0.1781552297085376 --0.0001909113161382 --0.0079422450319257 -0.0255201419607594 --0.0020390798176853 -0.0056911873564627 -0.1331656617175906 -0.0013727870340908 --0.0126124160760607 -0.0015172696044835 -0.0248717371382690 -0.0014821198116345 --0.4108352984041132 -0.0653666723806979 --0.0431257796514816 --0.0002968751529700 -0.0172399257956327 -0.0915130698215933 --0.0015382964176610 --0.0052289648198087 --0.0197380798483629 -0.0049713429819444 -0.0004630283434048 -0.0014184876475261 --0.0002099181478943 --0.0085797884795251 -0.2002357351267306 -0.0009646486489415 -0.2090351871409680 --0.0256913220244116 -0.0005049209977443 --0.0019294137333642 --0.0028997129696970 --0.0021850374210273 --0.0073238564504272 --0.0011107178223412 -0.0002944720422556 -0.0098881318599914 --0.0329406389557539 --0.0003501107973728 -0.0005112082493486 -0.0024255012883502 -0.0001321747236266 -0.1051236954315492 --0.0007499001911237 -0.0836681231925889 --0.0053123333960179 --0.0111641466718695 --0.2095742719753632 --0.0093385967473624 --0.0020474154802312 --0.0180564904661425 -0.0822950923266108 -0.0263247652423681 -0.0039636525475914 --0.0082461979610267 --0.1196296703912288 --0.0039262893942859 --0.1139517005709203 --0.0011817949033491 --0.0055312767275372 --0.0005253057648256 -0.0000867237272117 --0.0136913013204265 -0.0002079297964426 --0.0001169896606389 -0.0739588590687230 --0.0910231816311404 --0.0023677683865490 -0.0087596902805567 -0.0135088043437074 --0.0000928166893061 --0.0224606779225434 -0.0142005245509785 -0.0001630922189449 --0.0267438864579996 --0.0021300964727106 -0.2063792487288936 --0.0028357615413782 --0.0070580837078370 -0.1889589560564129 --0.0619377684469789 -0.0001128528766564 -0.0469392673932266 --0.0839092463935101 -0.0226664366280997 -0.0078626075697730 -0.0216608457706066 --0.2606512596199520 -0.2478995971183793 -0.0297534314122946 --0.0008155620215197 -0.0004371884464687 -0.0332578076009335 -0.0108376628860144 -0.0000007824016011 -0.0015775486745661 -0.0014589425129476 --0.1142393020213334 -0.0190785606654878 --0.0006248384781040 --0.1995323055061711 -0.2502031059197560 --0.0169422107694874 --0.0093248573023010 -0.0188242711288708 --0.0047097087096664 -0.0767160302397170 --0.0022254422717735 -0.0008329842963042 --0.0688654127105466 --0.0879815484345477 -0.0075719330453578 --0.0042393898655229 -0.0226070124561855 --0.1163466321045853 -0.1474058783526109 -0.1615328753760150 --0.0065505097964318 -0.0013964798123428 -0.0045456406569018 --0.0041245215557732 -0.0004197531876269 --0.0005187860088975 -0.0112936957030108 -0.0025967044153008 -0.0218753509992570 --0.1710207902692772 --0.0034345509449755 -0.0644348346323744 --0.0088243589631982 --0.0033734274494978 -0.0120083767551926 --0.0029241444429930 --0.0068912192515364 -0.2619540409601694 -0.0004023182384380 -0.0008998462050639 --0.0070081692366391 --0.1810543739508146 --0.0348855935088357 --0.0182359604117160 -0.0011597708381245 -0.0019225304829568 --0.0032813548962147 -0.0007034138528733 -0.0598153434231341 --0.0050409856810312 -0.0004819880487538 --0.0427970018552158 --0.0044339270624758 --0.1956870570977186 -0.0007194999056275 --0.0209173932681773 -0.0082794876055903 --0.0050261207363631 -0.0033376851343108 -0.0068452305011028 --0.0089297311876238 -0.0004422536221071 -0.0464839568455993 -0.0015022400340921 -0.0004868431363263 --0.0010306986922436 -0.0147385409694710 --0.0003063028730447 --0.2588093315853564 -0.0216622321431159 -0.0088582862311794 -0.0015241305792138 diff --git a/examples/machsuite/md/knn/input.data b/examples/machsuite/md/knn/input.data deleted file mode 100644 index bd7133f9ba..0000000000 --- a/examples/machsuite/md/knn/input.data +++ /dev/null @@ -1,4868 +0,0 @@ -%% -16.9663567922930554 -16.5198313181023195 -6.4862521901726744 -1.1261290806846831 -4.9304158903095656 -4.1877754014200370 -17.2769465297835758 -13.4839625274226194 -3.5962505548817258 -4.0229751789818655 -16.6181860869302014 -14.2477691876824526 -16.9809487421796987 -15.4738175463309418 -15.1048778573899778 -4.3259530790379968 -14.5360080910664777 -3.6751776717378926 -0.7918941140052675 -1.5637551126073275 -19.0421644512576478 -4.2264270650987248 -2.7221948728308938 -17.6084745813862362 -11.5392731253040548 -3.7449920941085066 -0.5593388063665081 -5.1749024607328264 -15.2670067384965051 -8.8344254870351335 -14.3228577296588071 -14.5401586039839792 -16.9404726918758755 -14.7916515469382421 -0.2553043509206231 -7.7791093202866755 -1.8529174511434725 -10.9764995567023966 -0.9776458988602766 -14.7601184000568590 -5.7463335278029710 -0.6901526125666906 -19.1816276352674322 -2.6225036447865557 -14.0876307378348837 -1.2703310110536179 -18.9092220899657306 -5.9217002569171031 -11.5274909098487583 -2.7667405433321446 -10.4125609669545192 -5.7179651739954398 -0.9264966192175300 -0.4078369905844157 -8.5627094608835197 -0.1878695309954036 -8.7470311216293606 -16.3638701924247130 -1.5337977621823875 -9.5778498699964629 -11.6812259245979515 -1.6534266893003142 -1.2420326806515858 -14.9621808235400202 -7.0609216245451680 -2.7868502187317352 -16.6878337834015902 -1.7365790812460604 -6.7124574349141106 -13.1989856058542436 -14.4566073800425841 -1.5683180324406867 -18.6528291205650447 -6.8847748576589751 -7.4655764254754544 -11.4428012989220580 -1.0222004863811358 -11.5697577060044843 -19.4461859188322066 -6.6489605584185973 -16.4292940465175157 -0.2671174645220583 -18.7922884875168954 -16.7616742578590276 -0.3080346042757222 -15.3544044004937597 -17.8522323968585930 -12.0375810304219222 -2.3433250384127384 -6.7851818082497601 -19.4016266604370671 -12.9129937211481938 -17.2554531123664283 -18.6169865754826560 -7.0635873061829768 -2.7753360501552873 -7.2980496507174255 -7.5209263497753573 -6.3481514363787506 -18.6654576486595296 -11.6978875453659832 -17.3880397283452091 -5.5222248313463975 -18.8600412489591598 -15.2293121128447844 -9.3434185430869618 -15.1042757184211922 -4.8773099951981260 -12.5501229208306757 -19.9154683253095435 -8.4629229031582209 -7.2893377266753587 -13.5593710328534520 -13.8608233334647952 -5.8797088939011255 -12.8839793112894601 -17.4405790073111326 -17.9395494827305022 -18.6027094791978271 -2.5361799008322228 -3.4171375951674676 -4.5097723740932185 -19.7833670117321923 -13.8218679106338183 -1.5366177225833804 -13.4861217909613345 -10.6721420669764644 -11.2137213596890000 -10.3072118232742849 -4.6449048171026357 -19.2690458797141737 -5.7260535593592010 -12.6059390612419442 -7.4437057468512062 -5.6869086257068098 -9.8137657385082306 -11.5155844463164172 -0.0829396211166469 -10.2251848487736119 -18.1942458367322217 -10.3719449281605076 -0.1127406837012356 -17.0440595925778062 -12.7208676027301557 -7.6183972435207252 -4.5572540788124876 -13.5815447984483324 -14.1730728863995292 -11.5069303326321979 -13.2252843493755616 -17.9298280465174180 -19.5584809627543308 -5.1435245717979949 -14.9364341531333107 -14.8851141981239028 -1.4978908165810179 -16.5843651236635949 -6.3220404025344026 -10.3854872472542592 -14.2605567530194026 -17.4789079691882847 -15.3468135882317327 -13.7989724102711797 -10.9439629278922013 -4.1428606667917336 -3.4519282140092651 -12.1627344326544709 -6.6217636841554288 -19.5739430054198529 -18.4881491536212970 -9.7656001860256918 -3.4972423917441855 -8.3680886517792246 -3.5361049273414475 -19.5209822704437599 -11.1227406322977824 -6.8807521681509005 -9.2086966788557518 -3.4308417925440269 -2.5039008240633098 -16.1797254569442579 -9.2503949873418794 -10.4225409750898521 -13.6667367580294439 -10.5638623996769727 -10.8243687968498481 -17.8249129656457157 -12.1496478040613365 -9.4177137526614665 -5.4550046025929149 -0.3318993707057750 -10.2969726760120217 -16.9573422980719606 -8.1464042436039126 -5.3422898020468619 -1.9227078446526487 -3.2022358476300394 -5.7624040984725564 -9.7272892059598330 -1.2970522785044105 -14.5484423416647264 -17.6794552597908954 -17.4211691978690055 -2.6044662735519992 -17.0861248297439587 -1.3829487716820774 -8.9909692671351333 -14.7730047964071467 -12.9565675623052972 -2.1591586300607557 -2.4370867633551181 -1.0557598401670412 -12.1121498405229744 -1.6494969174818297 -15.2401191119576485 -6.1742489453149219 -16.4086936578005584 -16.8119028801814210 -16.3773459048556447 -6.3275803150554522 -3.9240030976350608 -19.8948537551397315 -10.1004498451458762 -4.4876884404153135 -13.9758108225928357 -14.2224777464941372 -7.4437431561227392 -13.0456258591763881 -14.2145433936236838 -18.9261623409457087 -19.2419706461741100 -0.3172371695158291 -18.4677174628455063 -8.4064449031482127 -16.8488231409391460 -18.8722992734438755 -9.8537894591522797 -1.2832201236236951 -10.3510742900227761 -2.3181468909521010 -14.5139698549894405 -5.0908951354312872 -2.8718852839138940 -5.3594363124954834 -13.5429160724491666 -16.8779968223881518 -2.3712945210345331 -18.8801641172921038 -17.6560967341896671 -19.4159240478823349 -5.4770386780298388 -9.1806026935048806 -10.0147557338273447 -15.1617815457907064 -10.4134292474183034 -12.7174081929337248 -%% -13.4129956075376366 -1.4982821984794936 -8.0848649866930344 -4.0064400264387299 -13.4563646124520311 -7.6677513496295822 -0.1378071377482869 -0.5273664154940431 -13.2311276784010641 -19.5643071810518308 -10.7002979992475993 -19.0874965754834740 -2.1151995255310747 -6.7048820953284167 -6.8789562639828219 -9.7047200057221819 -10.4112386778402453 -4.2081589767125083 -18.6604411677948043 -5.9535166740117766 -0.1110865138833930 -14.7173024017426926 -4.9782526344434004 -9.2095845931776505 -4.2443943700567752 -17.5353751653850658 -0.0234795394354381 -3.7323911848335052 -15.9202734415428822 -2.6792826006163977 -9.6416548484039133 -10.0038647839579440 -13.6894410585637605 -14.2816237882065309 -14.7800235438963625 -19.9177900760695721 -5.5891226245930596 -7.4727256773459869 -6.5318435363237963 -9.2063618136850334 -0.2806037350274115 -11.7003937920188470 -17.6080662724331098 -12.1362722815472051 -18.9356998231911469 -13.1509451291781403 -11.0005041108965997 -4.3898395672452963 -6.6373588103732137 -17.8220214373726833 -0.0164184716350660 -7.6246036274673203 -11.0729238079614696 -9.9469883910035293 -7.1745844777056833 -1.6092908148972949 -10.1080840549846833 -15.3678689561585262 -19.9680230373665921 -2.2143334425431953 -13.9160635076280741 -9.6760033547368458 -8.6648391054270792 -7.5522377758777850 -2.5762229587422998 -4.1289182455944600 -4.3237725552212183 -5.4623403845198393 -13.6687817933165245 -0.8713628098373043 -17.7034428446484604 -19.2313884765320040 -17.4477157472711006 -3.5295547530952605 -13.7317389666066525 -2.2406187398069779 -14.3505186400425799 -2.6993094378198168 -7.4565290229064454 -9.3149075041507299 -18.2268364558343734 -5.8499163600439203 -15.3117801785685650 -9.1091409880723955 -16.9582495526544115 -18.5586635403954858 -17.8609156579324519 -16.4706020687049275 -11.9248970153847882 -3.4056039389322494 -10.7357699795316375 -5.9893229570148341 -5.5614424623769327 -12.2997525302220119 -12.7744435499558833 -11.8529377968924887 -5.8776955217970546 -11.4500722602451859 -13.2783180756681674 -0.6908553508798563 -3.3244794214474496 -4.3827298640398640 -14.5427274692486712 -2.8805013855540791 -9.6747272364504653 -18.6960660426856116 -15.9093367587460239 -11.0067007962678982 -13.5544125333464613 -2.4926257764192314 -2.5608079408240010 -4.6758443638120806 -3.7374174986297151 -12.3540202008306981 -11.2168477650019547 -3.6201424229546681 -8.5887803325724672 -12.2002357859779096 -14.4490607063415428 -2.8634138891454834 -10.6300366468594643 -19.5654735882180972 -4.0494353712292614 -5.5365867045727661 -3.1021877474380846 -6.2947789308450908 -8.8648736667611487 -10.6153094480978325 -0.2334061399608698 -14.0671783888537920 -0.2234797292400960 -8.7069986212538897 -5.9596547268625066 -4.9060214300143219 -10.1927365474869589 -11.9661657987475341 -0.4662466434853773 -12.1920277939635202 -13.2325485079401659 -1.3963257180914304 -19.8103469585473100 -0.7910451974542847 -6.6923891261590107 -3.4320862691283209 -4.5022463250317255 -1.0589064618546478 -15.4329874305955190 -18.7853205080859418 -19.5577932786985436 -11.3104312774579547 -18.3494948150584243 -6.3620959696350585 -3.8320015283320767 -8.9621416849378264 -10.8202275599755673 -1.7634732711882284 -14.9415581456303936 -6.3443308259250344 -5.6109583454163001 -15.7714594962642494 -15.0445831266166348 -15.0899357092350765 -2.2476673656641801 -3.8852233441531299 -15.6638265752271266 -12.8571266483258135 -12.7861572930515202 -15.3450643786373426 -15.3225883868616499 -10.8275054723195439 -13.4144294693136796 -9.0706513378177149 -5.9864866848830207 -9.5332373650980067 -0.4443032593999899 -2.7582852014461645 -6.7212394562336897 -17.0712258767632861 -19.8178441941022108 -2.3981418963013592 -1.8908009678804352 -8.5855413928391844 -0.0785255990389568 -14.0141661816363534 -6.7355862879971484 -12.0420308818265056 -17.6315760440689715 -13.5449814774089479 -19.2718320631692421 -2.9272013256220664 -17.2899736854007919 -13.5735837307194362 -4.3157153642119992 -3.9126082356480452 -18.9276349793230168 -3.5831061282627052 -14.0177246692394739 -8.7097980208570078 -4.2290288959808002 -18.1236016202777996 -14.2728239374589307 -2.7943721628365132 -8.2535706371976580 -18.8160422842487627 -15.3168307084181787 -18.0697976497191952 -16.1440615277531023 -6.2756182511041372 -18.1991812687241783 -0.7200676044914117 -16.7973657347760543 -10.3612234002161117 -10.6586843478587099 -12.7207178303538289 -15.7377418072453708 -14.1369673710703854 -2.5736949130478992 -6.2387523236339151 -11.4291551824532256 -16.3214713444517869 -15.6576976449421181 -0.4983877075670113 -18.9424230691569520 -18.1011362237602711 -17.4344671720420905 -4.5547690512524506 -7.8873825177051406 -15.0300791334677992 -5.0115954513560546 -2.9163129463609136 -4.4343192198184598 -2.3815347271377356 -9.8337417748191829 -1.9710806362080797 -8.1451343638878004 -10.6838517546845253 -14.7414698270373776 -18.4662106150019909 -3.2924801038934080 -9.4011962527758861 -15.8264769696425809 -11.8575048905551217 -12.3602090294784119 -14.6071701753364778 -9.5361769634243423 -0.6561422426680080 -14.2439330229754635 -16.3173040995890837 -13.3153618505281344 -1.7364393060322221 -10.3606897639506563 -8.0229567524753183 -19.6551622545138471 -9.2364182820119609 -18.6997303368635066 -18.8833933907846472 -%% -18.6329480185432601 -12.2555397010652349 -9.7784337883551373 -9.0136199719002139 -10.0188896830914942 -5.2580992616124878 -8.5406476617232325 -16.0527177594889139 -10.7770080647958348 -5.9322266112500959 -17.1547363818057299 -17.6022129924633504 -7.3882429596047370 -2.3017241253250060 -5.6341747880361348 -0.1152809968347733 -12.6878367956508988 -2.1440962668152759 -0.8004199563224681 -13.2088307489098451 -3.7337473945490069 -8.3327420883364507 -18.1818633679297932 -18.2292614356700184 -17.2334085517164119 -0.5669871427130923 -17.6332251307856360 -12.2685679773443006 -4.3014938839025252 -7.0763807304655524 -2.7300429334475576 -11.0805875612635809 -8.9412444990816748 -3.3797357458584583 -7.7533322544188135 -0.3174876306099913 -19.3533444811343784 -19.8797587210222275 -8.1527313369621357 -5.3733196920580992 -8.7311685449318581 -14.1971733171327852 -19.9611911045737074 -3.4765394040222990 -3.9490319333486923 -16.0913322938511243 -11.4947275597623939 -7.5833587152232447 -14.3077035058116682 -19.2449424633702542 -3.0024413572980491 -19.2540660250504416 -8.5098075612892305 -5.3470413843226838 -2.2858302568718885 -0.5694799889233795 -5.1645378313088619 -10.9186130083383564 -16.9262457858526645 -18.0947161151234148 -17.1142524409288228 -4.8981503840652518 -2.6204714811313572 -6.6748724207248156 -8.2984333482400352 -7.3887180361710314 -1.8655501297024442 -5.6193218264458542 -6.5359265800354196 -1.4071525710629489 -4.2158159211154995 -13.5516312238628860 -18.7892375997657339 -14.9767969398953511 -8.0014718454115581 -10.2278840776730977 -17.1503655665231420 -2.3858519283029271 -16.1343589622077630 -14.6962761797325392 -13.2854325259898509 -0.8886687593913422 -13.3840961105625276 -13.8181567737015936 -18.9244191142618199 -10.3066545099235007 -19.6887716060662541 -1.3314408058193639 -19.4768644266667401 -2.2257144986306177 -6.8626450802225243 -0.1566641969771449 -12.3647076540819523 -6.7820553515729740 -10.2860103728011349 -6.3867596386962973 -10.6867260118935405 -3.0851068661030423 -7.5035965388636949 -2.2928910409962713 -1.3875632973341996 -14.9993447301251379 -4.8805704875164988 -8.2656488453416461 -19.6192401320742604 -9.0744292782412579 -12.1306234441035024 -8.8389215256127489 -0.2229446752189353 -4.9616016867514139 -12.9688298457771687 -19.2337468288737377 -17.5654831473733033 -11.5600742872069731 -17.5237435510103232 -19.4264996224047017 -5.0656224514148986 -3.9213992629855374 -10.3820556665622821 -18.7953673605650380 -12.4847198191310369 -0.8582822852436496 -0.3936521613195942 -14.6294659992070848 -12.5413183208886387 -9.1130803766540005 -0.2410759923645371 -12.6382173759649614 -15.0571324838484486 -7.0737246647267247 -16.9746461119998742 -5.3662018366095099 -2.5481771308936310 -3.2673313705234071 -18.1026391263194277 -12.9917616686460242 -5.3858066934412019 -17.6111941787996003 -9.8753308406590374 -6.4032828014924013 -7.4247815593339208 -7.8430699551691285 -12.8584660269844413 -10.4023106203178699 -11.3410701645431278 -12.0420038635632203 -5.7372552161446952 -12.7569779923039039 -13.0820107252652882 -18.8463187708903632 -9.8596063732403838 -5.9737848264411486 -10.6822783656440379 -11.8727324665991674 -1.5109100749250302 -6.7903059219704334 -9.4058031365575836 -14.7490724388635641 -1.2793285826310643 -16.9188372067287141 -4.0894919659983850 -19.5838416239749478 -19.3311187171898560 -0.8675699935098641 -5.3030492212128397 -17.3420203546990450 -8.4779169365640250 -10.7048062739302914 -0.3416005055139921 -0.5758844333704736 -11.3292714641285919 -4.5477256233179739 -18.1955139743717211 -9.6504592669041838 -13.7770087416204152 -0.1893328065393807 -8.7472953920013019 -18.2685942651204947 -9.4985545747724878 -11.3273292122877240 -2.8829039465130659 -17.2783908948646925 -0.0235178328007123 -14.8445669054948333 -15.3427479696982516 -7.5224696854719397 -15.7988066042474369 -9.5554150105024647 -3.5279689501917821 -3.4669076591384762 -12.1367636165709136 -16.9274149013707174 -9.0701538884995472 -10.0191673859667940 -5.9578482806340451 -3.9964468877352988 -8.8734065210448261 -6.9170741236277618 -0.9113099993598716 -16.7185186753967905 -18.1648494702148504 -8.9719932180434760 -13.1384170145603569 -13.1333974647393319 -13.5644548880758400 -10.5987442011944708 -4.4450477497888139 -16.3279534497336734 -8.3301647316925624 -2.4346772050174530 -10.2175948477949134 -16.8239757354184860 -17.5592785599267742 -17.3497261810119134 -14.6717514898516210 -10.0193265074685129 -4.8138031341996772 -17.4756460936936548 -1.1397398543649275 -14.5889577523875467 -13.6938164319695161 -12.5366213969831257 -16.1415305772765798 -17.1479761085705711 -19.0153978872629068 -17.9179079179237029 -3.2366115438475438 -18.6470592226488492 -4.6736257029693311 -13.9441638769380631 -16.5519293125461999 -15.9846723200625753 -10.6448216272314760 -9.9086003293395724 -1.3329860613026692 -2.2311175329684114 -4.5777285180786205 -14.5881843077565705 -14.9176986094763908 -10.9441563030915603 -9.8929224861620675 -11.8043964349536594 -9.0612576332890029 -13.1345141328689490 -19.6426877154950787 -16.0365577995907138 -16.4521638780890527 -7.8060764996903291 -12.5826118677754817 -19.5176328649368145 -14.2894931506071305 -11.5804876998391393 -4.5772960711320723 -0.5653060157856495 -1.7607250469699816 -0.0167848559783718 -%% -161 -200 -10 -159 -104 -227 -23 -149 -72 -86 -214 -42 -224 -183 -186 -244 -229 -174 -221 -201 -245 -6 -101 -92 -192 -143 -103 -12 -7 -142 -123 -75 -176 -96 -197 -251 -173 -107 -144 -47 -193 -241 -131 -239 -152 -94 -120 -79 -65 -38 -179 -155 -141 -124 -67 -152 -19 -47 -195 -27 -145 -239 -40 -173 -215 -8 -196 -21 -94 -241 -242 -167 -107 -98 -129 -74 -243 -68 -120 -210 -171 -131 -197 -61 -67 -226 -62 -65 -47 -53 -38 -176 -95 -17 -133 -173 -12 -139 -201 -103 -1 -192 -216 -221 -109 -20 -174 -143 -180 -229 -99 -75 -128 -245 -112 -162 -238 -24 -225 -115 -59 -1 -123 -101 -130 -207 -110 -229 -4 -242 -196 -241 -215 -21 -120 -107 -243 -94 -167 -210 -220 -173 -129 -239 -194 -178 -164 -121 -210 -102 -21 -205 -129 -25 -188 -18 -252 -206 -105 -196 -23 -104 -0 -83 -149 -244 -200 -78 -217 -212 -202 -207 -16 -183 -161 -248 -224 -159 -186 -86 -227 -222 -214 -161 -72 -147 -200 -80 -148 -177 -42 -60 -139 -201 -103 -6 -216 -192 -109 -180 -20 -228 -1 -151 -143 -14 -99 -125 -234 -66 -132 -253 -228 -30 -14 -91 -116 -39 -154 -63 -180 -216 -218 -100 -63 -228 -39 -116 -13 -125 -132 -30 -151 -216 -192 -234 -66 -12 -253 -154 -62 -43 -171 -97 -226 -54 -61 -131 -5 -81 -17 -126 -133 -53 -56 -95 -31 -153 -113 -83 -127 -202 -248 -183 -232 -142 -46 -10 -135 -187 -48 -123 -189 -195 -89 -209 -81 -133 -67 -55 -5 -62 -65 -226 -171 -155 -54 -47 -25 -121 -9 -164 -194 -35 -43 -102 -34 -129 -95 -188 -178 -21 -206 -196 -124 -179 -239 -27 -3 -231 -152 -157 -120 -38 -22 -173 -211 -145 -41 -250 -99 -109 -139 -180 -216 -12 -6 -66 -122 -103 -201 -69 -151 -228 -192 -13 -196 -129 -4 -215 -98 -242 -8 -164 -68 -210 -74 -167 -102 -95 -107 -94 -36 -119 -51 -231 -111 -157 -19 -26 -73 -172 -211 -134 -124 -27 -79 -114 -10 -104 -217 -78 -0 -244 -83 -207 -149 -202 -230 -212 -225 -101 -200 -142 -112 -115 -238 -225 -59 -184 -162 -123 -172 -48 -207 -37 -7 -111 -128 -181 -121 -18 -35 -164 -102 -9 -194 -43 -188 -206 -254 -129 -97 -68 -252 -236 -231 -119 -22 -36 -124 -145 -179 -19 -73 -27 -111 -157 -152 -59 -51 -3 -152 -144 -145 -179 -73 -96 -110 -124 -193 -157 -19 -233 -64 -47 -176 -40 -33 -70 -146 -160 -44 -87 -117 -247 -208 -156 -32 -108 -93 -236 -218 -240 -64 -233 -193 -47 -136 -75 -40 -133 -176 -144 -189 -96 -50 -143 -152 -89 -154 -253 -39 -218 -13 -234 -116 -132 -14 -126 -63 -117 -91 -235 -33 -169 -153 -16 -113 -83 -127 -202 -232 -125 -166 -46 -142 -187 -248 -32 -63 -92 -156 -118 -57 -93 -240 -247 -248 -46 -113 -106 -90 -232 -187 -150 -166 -31 -28 -160 -146 -70 -117 -154 -108 -218 -87 -30 -44 -236 -39 -93 -235 -168 -196 -242 -52 -210 -21 -95 -205 -129 -164 -8 -190 -4 -53 -43 -102 -61 -254 -121 -188 -25 -252 -255 -87 -206 -194 -9 -236 -18 -44 -102 -164 -140 -22 -119 -51 -231 -211 -111 -26 -134 -19 -88 -157 -172 -73 -137 -114 -124 -244 -181 -172 -212 -24 -115 -149 -184 -111 -225 -104 -112 -51 -207 -48 -59 -3 -67 -65 -173 -239 -53 -5 -52 -61 -155 -171 -19 -195 -197 -47 -179 -63 -14 -30 -116 -13 -154 -228 -117 -234 -132 -253 -125 -218 -90 -93 -185 -64 -233 -145 -152 -29 -47 -193 -179 -155 -27 -65 -144 -110 -141 -189 -3 -45 -211 -120 -213 -137 -246 -76 -239 -165 -8 -250 -241 -220 -88 -243 -242 -72 -86 -186 -161 -0 -224 -11 -200 -159 -227 -214 -82 -204 -80 -10 -183 -95 -61 -171 -53 -62 -102 -164 -15 -129 -97 -131 -5 -68 -52 -34 -242 -70 -28 -146 -87 -255 -252 -254 -208 -188 -33 -140 -160 -206 -236 -85 -247 -213 -246 -76 -137 -41 -165 -211 -88 -220 -84 -120 -199 -114 -243 -250 -237 -232 -248 -202 -118 -83 -32 -153 -31 -16 -90 -82 -142 -93 -156 -57 -204 -64 -176 -65 -152 -193 -29 -96 -144 -233 -40 -2 -197 -5 -189 -133 -67 -184 -123 -238 -24 -207 -251 -181 -127 -153 -112 -225 -172 -16 -143 -212 -157 -84 -223 -199 -58 -76 -246 -237 -165 -213 -45 -88 -71 -219 -220 -203 -137 -136 -182 -77 -69 -100 -175 -163 -198 -89 -29 -133 -189 -158 -180 -132 -228 -134 -172 -111 -114 -22 -181 -36 -157 -79 -37 -88 -250 -119 -211 -165 -73 -242 -95 -173 -239 -53 -196 -34 -61 -107 -8 -38 -120 -4 -21 -129 -171 -61 -62 -95 -171 -52 -43 -5 -38 -67 -242 -173 -34 -131 -197 -107 -239 -226 -158 -133 -126 -198 -56 -89 -132 -163 -131 -97 -91 -100 -5 -15 -77 -209 -81 -195 -17 -189 -155 -67 -89 -141 -62 -65 -133 -5 -3 -38 -171 -97 -226 -131 -185 -197 -54 -68 -98 -74 -236 -5 -176 -171 -107 -126 -166 -156 -106 -240 -118 -32 -204 -248 -85 -82 -150 -80 -214 -113 -247 -147 -187 -199 -237 -49 -71 -223 -84 -203 -190 -76 -246 -220 -219 -205 -45 -213 -165 -24 -238 -111 -128 -115 -172 -112 -73 -162 -7 -225 -110 -184 -37 -48 -157 -191 -227 -183 -200 -159 -212 -149 -177 -161 -224 -214 -135 -222 -244 -0 -127 -53 -171 -62 -95 -43 -5 -52 -131 -67 -38 -197 -242 -173 -107 -15 -81 -61 -171 -53 -81 -43 -5 -15 -67 -17 -95 -131 -195 -38 -197 -226 -52 -14 -39 -125 -116 -228 -13 -192 -30 -151 -132 -31 -153 -90 -216 -234 -232 -29 -233 -47 -193 -40 -152 -144 -96 -176 -27 -65 -145 -75 -110 -189 -179 -3 -67 -155 -38 -47 -195 -152 -141 -179 -5 -64 -189 -176 -40 -17 -124 -180 -13 -122 -216 -228 -234 -99 -132 -91 -14 -109 -69 -100 -20 -253 -116 -65 -195 -38 -5 -3 -155 -171 -17 -61 -62 -53 -47 -81 -189 -131 -197 -98 -74 -129 -102 -21 -164 -215 -236 -94 -4 -206 -107 -97 -196 -56 -95 -77 -100 -175 -182 -50 -180 -163 -136 -198 -66 -216 -132 -91 -228 -158 -99 -44 -28 -146 -33 -87 -160 -208 -255 -254 -252 -188 -236 -140 -206 -247 -240 -203 -237 -190 -205 -199 -58 -210 -220 -178 -223 -219 -246 -84 -49 -243 -76 -86 -42 -186 -161 -0 -224 -11 -159 -200 -214 -82 -204 -80 -227 -183 -10 -110 -157 -27 -238 -144 -172 -59 -111 -145 -152 -128 -184 -96 -193 -24 -22 -98 -68 -215 -94 -129 -4 -167 -138 -21 -102 -185 -107 -170 -236 -196 -206 -143 -233 -193 -110 -29 -144 -125 -64 -238 -136 -128 -1 -96 -123 -48 -192 -246 -45 -213 -137 -165 -84 -88 -199 -41 -211 -49 -220 -237 -223 -58 -114 -100 -163 -175 -69 -198 -50 -158 -132 -182 -136 -228 -91 -180 -133 -89 -54 -230 -217 -23 -202 -101 -83 -142 -10 -92 -207 -229 -46 -104 -232 -123 -225 -250 -157 -114 -134 -181 -120 -241 -251 -135 -184 -51 -2 -172 -127 -96 -165 -147 -106 -186 -204 -214 -85 -57 -150 -82 -240 -159 -11 -156 -148 -248 -118 -62 -17 -195 -55 -67 -15 -209 -61 -171 -53 -5 -189 -89 -65 -43 -155 -204 -248 -118 -57 -186 -80 -214 -106 -156 -46 -150 -32 -183 -240 -85 -247 -202 -142 -153 -16 -31 -232 -46 -10 -92 -78 -207 -248 -23 -217 -123 -113 -49 -199 -76 -58 -246 -223 -237 -213 -45 -137 -165 -88 -71 -220 -203 -190 -150 -147 -240 -208 -80 -106 -57 -156 -148 -247 -204 -214 -118 -32 -82 -146 -72 -42 -161 -186 -224 -11 -0 -159 -200 -227 -214 -80 -204 -82 -183 -10 -254 -255 -108 -70 -33 -44 -236 -206 -188 -28 -146 -252 -35 -160 -154 -218 -213 -165 -137 -211 -76 -45 -246 -134 -114 -84 -51 -41 -49 -250 -36 -199 -189 -133 -17 -198 -54 -158 -163 -226 -175 -77 -100 -50 -195 -29 -209 -182 -93 -116 -117 -232 -32 -151 -235 -46 -39 -118 -63 -160 -156 -247 -14 -169 -132 -158 -163 -100 -13 -126 -175 -198 -253 -77 -66 -234 -30 -228 -54 -69 -142 -202 -101 -229 -192 -83 -123 -1 -153 -201 -207 -78 -232 -230 -125 -103 -90 -117 -32 -160 -247 -118 -156 -116 -232 -235 -46 -39 -33 -28 -57 -248 -215 -4 -74 -167 -241 -98 -170 -107 -138 -8 -243 -68 -135 -21 -129 -196 -242 -61 -52 -43 -129 -53 -196 -107 -171 -21 -98 -173 -34 -102 -164 -68 -144 -176 -193 -2 -152 -251 -27 -47 -64 -233 -110 -157 -73 -197 -29 -79 -56 -226 -131 -102 -68 -236 -54 -15 -171 -98 -43 -126 -197 -206 -74 -5 -68 -74 -129 -215 -21 -4 -94 -107 -102 -196 -167 -242 -164 -95 -8 -138 -20 -180 -109 -216 -122 -66 -139 -69 -12 -103 -6 -228 -13 -151 -201 -77 -163 -77 -175 -198 -158 -69 -132 -91 -182 -50 -228 -133 -136 -180 -89 -54 -229 -230 -92 -217 -142 -207 -123 -78 -245 -1 -202 -225 -174 -112 -83 -130 -164 -68 -129 -98 -21 -74 -206 -43 -97 -95 -236 -194 -196 -215 -4 -9 -201 -12 -139 -192 -6 -109 -151 -216 -1 -221 -92 -20 -229 -174 -14 -180 -244 -149 -23 -10 -212 -0 -217 -207 -37 -200 -161 -225 -227 -78 -83 -60 -140 -208 -167 -148 -252 -194 -206 -74 -188 -138 -215 -170 -187 -240 -236 -178 -57 -240 -204 -214 -80 -147 -85 -156 -183 -248 -113 -82 -118 -32 -150 -187 -173 -242 -4 -98 -241 -197 -94 -8 -95 -196 -2 -129 -215 -239 -21 -74 -87 -154 -33 -218 -30 -126 -253 -236 -255 -28 -254 -146 -70 -206 -97 -160 -139 -20 -99 -103 -216 -12 -151 -180 -201 -122 -66 -6 -192 -228 -14 -116 -144 -73 -238 -233 -193 -27 -128 -75 -96 -152 -145 -157 -64 -143 -184 -59 -172 -51 -59 -73 -37 -22 -24 -181 -157 -119 -238 -184 -36 -115 -134 -79 -225 -115 -24 -162 -207 -123 -7 -217 -238 -59 -101 -245 -184 -48 -37 -128 -16 -31 -187 -127 -166 -153 -183 -106 -240 -57 -248 -138 -170 -32 -135 -156 -134 -165 -250 -79 -51 -88 -181 -213 -246 -211 -191 -45 -243 -157 -120 -76 -162 -112 -225 -24 -59 -37 -207 -7 -217 -238 -172 -123 -184 -111 -244 -245 -39 -14 -63 -151 -90 -235 -234 -117 -13 -30 -93 -228 -154 -218 -253 -169 -235 -160 -93 -218 -90 -169 -33 -116 -154 -30 -28 -39 -234 -168 -253 -32 -156 -32 -57 -248 -82 -247 -204 -46 -150 -106 -93 -240 -232 -90 -80 -85 -22 -36 -231 -26 -111 -51 -73 -124 -19 -157 -172 -27 -59 -145 -179 -211 -241 -239 -250 -173 -8 -41 -242 -107 -4 -79 -243 -52 -94 -2 -45 -211 -25 -35 -18 -9 -194 -188 -164 -254 -102 -252 -206 -43 -236 -87 -255 -129 -66 -99 -109 -180 -234 -20 -13 -216 -151 -139 -169 -116 -235 -253 -228 -91 -207 -48 -112 -225 -184 -24 -101 -142 -92 -238 -217 -153 -83 -202 -143 -7 -179 -19 -3 -145 -27 -231 -152 -65 -141 -38 -73 -155 -26 -22 -157 -119 -63 -143 -14 -192 -153 -31 -75 -228 -39 -92 -142 -251 -201 -16 -48 -123 -54 -158 -91 -132 -30 -226 -253 -198 -154 -97 -163 -108 -56 -13 -100 -133 -135 -16 -113 -170 -251 -31 -138 -153 -48 -187 -183 -184 -166 -212 -79 -94 -238 -7 -110 -59 -24 -73 -75 -112 -233 -162 -115 -143 -144 -123 -225 -184 -21 -98 -68 -196 -102 -164 -95 -74 -4 -242 -215 -107 -8 -94 -167 -34 -245 -249 -174 -229 -230 -221 -101 -1 -7 -162 -217 -225 -112 -78 -92 -207 -197 -5 -171 -226 -56 -97 -176 -61 -107 -95 -54 -2 -133 -47 -173 -43 -91 -158 -228 -13 -100 -163 -77 -198 -30 -14 -126 -54 -175 -66 -253 -39 -89 -54 -189 -226 -198 -158 -17 -163 -47 -29 -131 -5 -77 -100 -175 -132 -114 -51 -165 -79 -250 -181 -88 -211 -213 -172 -157 -246 -45 -191 -111 -137 -127 -170 -138 -94 -251 -191 -113 -187 -79 -183 -250 -241 -60 -16 -166 -215 -50 -77 -29 -69 -100 -75 -228 -216 -180 -182 -233 -175 -163 -64 -143 -12 -213 -45 -211 -76 -88 -246 -165 -41 -84 -114 -134 -199 -120 -49 -220 -250 -170 -187 -166 -185 -94 -74 -135 -127 -113 -215 -167 -98 -68 -240 -4 -236 -12 -103 -109 -6 -216 -201 -20 -180 -192 -99 -151 -66 -228 -1 -14 -221 -105 -252 -208 -188 -206 -44 -194 -70 -146 -254 -148 -236 -85 -240 -9 -147 -155 -3 -65 -179 -195 -67 -124 -40 -209 -38 -145 -152 -47 -64 -189 -55 -92 -202 -83 -101 -153 -123 -232 -78 -207 -229 -192 -16 -31 -217 -230 -46 -75 -125 -192 -233 -193 -1 -123 -110 -238 -29 -48 -201 -144 -92 -12 -251 -193 -96 -152 -110 -27 -233 -176 -64 -73 -251 -2 -157 -47 -75 -145 -238 -179 -27 -152 -40 -124 -110 -73 -233 -144 -64 -193 -3 -96 -47 -65 -19 -28 -70 -33 -208 -236 -44 -166 -160 -240 -187 -185 -156 -87 -206 -32 -252 -80 -85 -148 -106 -214 -240 -57 -204 -208 -150 -11 -186 -159 -183 -222 -156 -147 -222 -105 -85 -80 -208 -106 -11 -214 -240 -140 -159 -177 -183 -219 -170 -212 -244 -104 -200 -60 -227 -10 -191 -0 -161 -37 -183 -23 -159 -181 -207 -85 -247 -57 -156 -80 -118 -240 -106 -82 -147 -32 -204 -208 -248 -186 -214 -116 -109 -103 -90 -14 -192 -63 -201 -216 -12 -139 -66 -13 -39 -234 -228 -27 -144 -96 -179 -193 -145 -47 -64 -233 -176 -65 -40 -124 -110 -3 -2 -31 -16 -83 -202 -142 -113 -232 -125 -127 -92 -46 -123 -48 -248 -207 -63 -218 -30 -253 -234 -169 -108 -33 -235 -117 -39 -13 -126 -116 -91 -132 -160 -141 -65 -3 -195 -67 -209 -179 -40 -38 -47 -189 -17 -152 -64 -124 -145 -32 -57 -118 -240 -247 -106 -150 -248 -85 -204 -93 -113 -82 -187 -146 -208 -73 -79 -27 -172 -144 -250 -96 -184 -181 -251 -110 -51 -111 -152 -19 -238 -198 -163 -132 -54 -100 -91 -175 -77 -126 -133 -226 -89 -228 -13 -69 -182 -200 -227 -214 -224 -183 -161 -60 -11 -0 -186 -204 -191 -106 -80 -149 -86 -28 -33 -117 -93 -70 -247 -146 -168 -218 -235 -32 -44 -156 -90 -169 -154 -200 -227 -0 -224 -159 -86 -72 -149 -60 -11 -42 -214 -183 -10 -186 -104 -115 -112 -225 -24 -7 -59 -245 -207 -217 -249 -238 -123 -128 -37 -101 -130 -100 -198 -175 -158 -77 -91 -132 -69 -182 -54 -133 -89 -50 -126 -228 -13 -102 -129 -21 -68 -194 -98 -9 -196 -95 -43 -34 -74 -206 -25 -242 -4 -213 -246 -45 -88 -76 -114 -137 -211 -134 -41 -250 -220 -243 -219 -120 -223 -187 -185 -138 -113 -170 -146 -240 -31 -127 -74 -32 -236 -156 -135 -16 -39 -215 -4 -94 -243 -74 -21 -8 -170 -98 -241 -219 -220 -196 -138 -129 -210 -160 -169 -117 -235 -218 -33 -28 -154 -70 -93 -108 -44 -253 -247 -87 -255 -235 -218 -234 -117 -253 -154 -168 -30 -116 -13 -160 -33 -39 -90 -93 -108 -138 -135 -94 -187 -127 -167 -166 -215 -74 -185 -113 -243 -241 -4 -98 -183 -5 -61 -131 -62 -197 -53 -43 -95 -67 -226 -15 -97 -107 -38 -173 -52 -111 -181 -51 -37 -184 -24 -59 -157 -73 -238 -134 -48 -79 -115 -112 -22 -239 -107 -242 -120 -52 -2 -241 -197 -8 -95 -4 -38 -176 -196 -5 -94 -221 -229 -130 -245 -1 -101 -230 -201 -6 -92 -249 -103 -7 -192 -142 -12 -163 -100 -198 -77 -182 -69 -158 -91 -50 -132 -89 -133 -54 -136 -180 -228 -2 -96 -47 -197 -193 -144 -251 -152 -131 -64 -173 -5 -107 -29 -27 -65 -222 -191 -60 -227 -219 -224 -223 -159 -11 -200 -148 -183 -49 -161 -114 -243 -205 -210 -9 -203 -194 -71 -190 -21 -167 -237 -196 -220 -164 -105 -34 -215 -124 -145 -152 -27 -3 -19 -65 -141 -40 -155 -231 -38 -47 -64 -144 -73 -216 -66 -99 -20 -69 -139 -228 -109 -12 -77 -122 -13 -100 -132 -136 -175 -172 -184 -37 -212 -79 -134 -51 -48 -114 -157 -111 -24 -244 -149 -191 -250 -175 -50 -69 -77 -100 -163 -198 -89 -136 -158 -91 -133 -180 -189 -132 -54 -214 -159 -60 -200 -106 -113 -204 -227 -191 -16 -212 -248 -127 -135 -149 -57 -48 -181 -24 -238 -123 -172 -251 -157 -207 -37 -79 -212 -127 -112 -73 -225 -166 -138 -187 -56 -74 -236 -170 -68 -98 -146 -94 -113 -39 -127 -206 -31 -80 -72 -204 -214 -82 -86 -159 -11 -42 -106 -147 -224 -0 -161 -200 -248 -166 -138 -185 -113 -170 -240 -127 -135 -146 -31 -106 -156 -57 -32 -208 -74 -252 -254 -206 -35 -140 -87 -236 -44 -194 -255 -70 -105 -121 -9 -208 -146 -89 -17 -133 -195 -209 -47 -65 -29 -67 -64 -198 -5 -155 -226 -54 -50 -205 -71 -237 -210 -203 -220 -199 -178 -34 -8 -196 -58 -246 -243 -45 -76 -60 -212 -227 -177 -183 -149 -135 -200 -159 -114 -181 -127 -219 -222 -170 -224 -201 -103 -12 -92 -125 -139 -6 -1 -142 -63 -143 -151 -216 -14 -228 -109 -144 -233 -96 -64 -152 -110 -29 -176 -47 -75 -27 -2 -251 -40 -143 -145 -9 -164 -178 -102 -188 -206 -252 -21 -129 -105 -121 -140 -68 -210 -25 -98 -67 -17 -209 -155 -65 -189 -81 -55 -5 -141 -3 -89 -38 -62 -47 -133 -21 -242 -8 -4 -129 -210 -215 -34 -95 -107 -98 -52 -164 -167 -241 -68 -131 -5 -176 -2 -107 -171 -173 -56 -226 -95 -47 -98 -61 -96 -97 -68 -163 -158 -175 -100 -77 -89 -133 -54 -91 -132 -182 -50 -126 -69 -226 -189 -58 -237 -84 -49 -223 -71 -76 -203 -246 -220 -190 -45 -213 -165 -219 -137 -227 -161 -159 -0 -60 -149 -224 -183 -214 -10 -212 -191 -11 -104 -244 -86 -103 -192 -12 -6 -139 -1 -216 -92 -109 -221 -151 -229 -143 -125 -142 -174 -83 -142 -92 -153 -232 -46 -16 -78 -31 -101 -207 -123 -10 -217 -248 -23 -71 -237 -205 -190 -220 -210 -178 -199 -58 -223 -219 -243 -246 -167 -8 -49 -82 -214 -248 -106 -57 -80 -186 -118 -183 -156 -159 -240 -147 -113 -150 -32 -210 -190 -178 -203 -71 -237 -34 -220 -196 -21 -8 -9 -4 -243 -167 -242 -236 -188 -252 -102 -68 -254 -87 -74 -146 -194 -140 -164 -98 -97 -105 -185 -123 -217 -225 -112 -101 -48 -24 -142 -83 -184 -115 -23 -202 -92 -104 -244 -85 -140 -240 -105 -146 -70 -44 -147 -187 -106 -252 -156 -57 -148 -28 -150 -55 -195 -17 -189 -155 -89 -81 -67 -141 -65 -133 -40 -47 -3 -5 -64 -205 -190 -196 -178 -21 -203 -8 -34 -220 -4 -71 -167 -215 -242 -243 -129 -137 -213 -45 -41 -88 -165 -76 -246 -134 -120 -114 -250 -36 -19 -22 -51 -149 -244 -60 -191 -181 -104 -37 -200 -10 -183 -227 -184 -127 -48 -207 -135 -45 -137 -76 -165 -246 -88 -211 -41 -114 -84 -134 -220 -250 -199 -49 -120 -204 -183 -159 -106 -80 -186 -147 -82 -200 -57 -248 -11 -227 -60 -113 -224 -4 -167 -94 -74 -21 -98 -8 -241 -196 -243 -129 -68 -107 -242 -170 -138 -180 -139 -12 -228 -66 -109 -20 -99 -103 -201 -6 -14 -192 -13 -69 -151 -207 -225 -101 -230 -23 -78 -112 -123 -104 -10 -142 -83 -202 -115 -244 -92 -154 -169 -253 -235 -30 -117 -234 -33 -108 -160 -13 -116 -39 -168 -28 -93 -243 -220 -223 -167 -203 -177 -246 -222 -215 -165 -191 -241 -237 -170 -4 -8 -243 -219 -246 -203 -8 -210 -237 -167 -190 -223 -71 -45 -4 -241 -215 -165 -174 -229 -1 -130 -245 -201 -6 -103 -101 -230 -92 -192 -12 -139 -142 -249 -177 -148 -11 -219 -224 -159 -147 -60 -191 -227 -223 -183 -214 -200 -80 -243 -49 -199 -58 -219 -237 -220 -246 -203 -84 -71 -177 -76 -165 -243 -222 -45 -11 -227 -159 -161 -200 -86 -60 -72 -214 -177 -186 -0 -222 -42 -183 -191 -112 -115 -207 -162 -24 -217 -123 -101 -7 -37 -48 -184 -238 -245 -230 -59 -54 -131 -133 -56 -97 -5 -197 -158 -171 -126 -89 -15 -198 -189 -17 -132 -200 -159 -60 -161 -224 -191 -149 -183 -0 -11 -177 -214 -212 -222 -244 -86 -14 -132 -13 -216 -63 -66 -180 -77 -39 -100 -125 -91 -116 -12 -30 -163 -101 -174 -221 -230 -1 -92 -245 -130 -142 -78 -201 -217 -192 -202 -103 -249 -101 -229 -78 -217 -249 -130 -245 -92 -207 -142 -174 -225 -23 -202 -221 -112 -26 -119 -124 -22 -19 -36 -179 -145 -27 -73 -3 -157 -152 -111 -211 -51 -46 -202 -83 -153 -31 -90 -248 -142 -16 -32 -93 -118 -92 -113 -156 -63 -193 -64 -29 -144 -75 -110 -40 -152 -96 -47 -27 -145 -143 -176 -73 -238 -253 -13 -169 -30 -154 -218 -235 -116 -66 -91 -39 -14 -132 -117 -122 -228 -169 -117 -218 -234 -116 -154 -253 -90 -30 -93 -160 -168 -13 -39 -33 -151 -206 -68 -146 -185 -87 -74 -97 -102 -188 -98 -56 -254 -252 -166 -33 -108 -71 -203 -199 -58 -190 -220 -205 -223 -84 -246 -210 -76 -49 -219 -45 -178 -24 -110 -128 -59 -73 -184 -48 -123 -112 -7 -144 -172 -75 -157 -225 -143 -173 -120 -52 -242 -107 -241 -8 -19 -38 -41 -2 -250 -4 -196 -95 -197 -57 -156 -106 -85 -208 -187 -32 -113 -166 -147 -150 -146 -118 -204 -80 -214 -120 -8 -4 -94 -250 -243 -215 -107 -173 -242 -239 -167 -196 -79 -220 -2 -196 -8 -52 -107 -4 -95 -21 -173 -129 -239 -241 -34 -215 -120 -98 -94 -220 -219 -167 -241 -8 -215 -4 -94 -250 -120 -246 -210 -196 -170 -21 -165 -104 -149 -212 -37 -10 -23 -207 -181 -200 -217 -0 -225 -60 -227 -161 -191 -130 -7 -174 -229 -1 -101 -249 -230 -221 -112 -162 -225 -217 -123 -207 -115 -76 -45 -213 -165 -137 -220 -41 -88 -199 -211 -84 -223 -243 -49 -237 -114 -150 -156 -118 -32 -57 -93 -160 -240 -85 -28 -82 -90 -117 -106 -146 -248 -204 -82 -118 -46 -57 -106 -156 -32 -214 -113 -232 -16 -83 -183 -31 -240 -130 -230 -245 -217 -101 -162 -229 -174 -225 -112 -78 -115 -7 -221 -207 -23 -79 -120 -241 -114 -134 -157 -243 -165 -239 -135 -8 -94 -41 -211 -173 -181 -96 -2 -127 -48 -144 -176 -184 -79 -135 -193 -157 -250 -125 -94 -170 -138 -188 -140 -254 -206 -44 -105 -35 -70 -236 -194 -87 -208 -255 -146 -9 -28 -154 -234 -30 -218 -13 -169 -91 -235 -126 -132 -39 -108 -116 -117 -66 -14 -188 -87 -255 -252 -35 -206 -44 -70 -236 -140 -108 -121 -146 -28 -33 -194 -87 -254 -44 -70 -188 -35 -108 -252 -28 -33 -206 -146 -236 -160 -168 -140 diff --git a/examples/machsuite/md/knn/md_kernel_test.py b/examples/machsuite/md/knn/md_kernel_test.py index 0431bb0797..a52a845219 100644 --- a/examples/machsuite/md/knn/md_kernel_test.py +++ b/examples/machsuite/md/knn/md_kernel_test.py @@ -3,33 +3,62 @@ import numpy as np import os -def parse_data(file): - data_arrays = [] - current_array = [] - with open(file, 'r') as f: - for line in f: - if line.strip() == '%%': - if current_array: - data_arrays.append(current_array) - current_array = [] +nAtoms = 256 +maxNeighbors = 16 +domainEdge = 20.0 +lj1 = 1.5 +lj2 = 2.0 + + +def md_knn_force_ref(pos_x, pos_y, pos_z, NL): + """Python reference for MD KNN force computation.""" + force_x = np.zeros(nAtoms, dtype=np.float64) + force_y = np.zeros(nAtoms, dtype=np.float64) + force_z = np.zeros(nAtoms, dtype=np.float64) + + for i in range(nAtoms): + ix, iy, iz = pos_x[i], pos_y[i], pos_z[i] + fx, fy, fz = 0.0, 0.0, 0.0 + for j in range(maxNeighbors): + jidx = NL[i * maxNeighbors + j] + jx, jy, jz = pos_x[jidx], pos_y[jidx], pos_z[jidx] + dx = ix - jx + dy = iy - jy + dz = iz - jz + r2 = dx*dx + dy*dy + dz*dz + if r2 == 0: + r2inv = (domainEdge * domainEdge * 3.0) * 1000 else: - num = float(line.strip()) - current_array.append(num) - data_arrays.append(current_array) - return data_arrays + r2inv = 1.0 / r2 + r6inv = r2inv * r2inv * r2inv + potential = r6inv * (lj1 * r6inv - lj2) + force = r2inv * potential + fx += dx * force + fy += dy * force + fz += dz * force + force_x[i] = fx + force_y[i] = fy + force_z[i] = fz + + return force_x, force_y, force_z + if __name__ == "__main__": - data_dir = os.path.dirname(os.path.abspath(__file__)) - input_data = parse_data(os.path.join(data_dir, "input.data")) - check_data = parse_data(os.path.join(data_dir, "check.data")) - check_x = np.array(check_data[0]).astype(np.float64) - check_y = np.array(check_data[1]).astype(np.float64) - check_z = np.array(check_data[2]).astype(np.float64) - - np_pos_x = np.array(input_data[0]).astype(np.float64) - np_pos_y = np.array(input_data[1]).astype(np.float64) - np_pos_z = np.array(input_data[2]).astype(np.float64) - np_NL = np.array(input_data[3]).astype(np.int32) + np.random.seed(42) + + # Generate random atom positions + np_pos_x = np.random.rand(nAtoms).astype(np.float64) * domainEdge + np_pos_y = np.random.rand(nAtoms).astype(np.float64) * domainEdge + np_pos_z = np.random.rand(nAtoms).astype(np.float64) * domainEdge + + # Generate neighbor list: for each atom, pick maxNeighbors distinct neighbors + np_NL = np.zeros(nAtoms * maxNeighbors, dtype=np.int32) + for i in range(nAtoms): + others = list(range(nAtoms)) + others.remove(i) + neighbors = np.random.choice(others, size=maxNeighbors, replace=False) + for j in range(maxNeighbors): + np_NL[i * maxNeighbors + j] = neighbors[j] s_x = allo.customize(md.md_x) mod_x = s_x.build() @@ -42,7 +71,9 @@ def parse_data(file): forceY = mod_y(np_pos_x, np_pos_y, np_pos_z, np_NL) forceZ = mod_z(np_pos_x, np_pos_y, np_pos_z, np_NL) - np.testing.assert_allclose(forceX, check_x, rtol=2, atol=20) - np.testing.assert_allclose(forceY, check_y, rtol=2, atol=20) - np.testing.assert_allclose(forceZ, check_z, rtol=2, atol=20) + check_x, check_y, check_z = md_knn_force_ref(np_pos_x, np_pos_y, np_pos_z, np_NL) + + np.testing.assert_allclose(forceX, check_x, rtol=1e-5, atol=1e-5) + np.testing.assert_allclose(forceY, check_y, rtol=1e-5, atol=1e-5) + np.testing.assert_allclose(forceZ, check_z, rtol=1e-5, atol=1e-5) print("PASS!") diff --git a/examples/machsuite/merge/check.data b/examples/machsuite/merge/check.data deleted file mode 100644 index d720516150..0000000000 --- a/examples/machsuite/merge/check.data +++ /dev/null @@ -1,2049 +0,0 @@ -%% -2133347 -3755034 -3757680 -5114060 -6748351 -11497565 -13360332 -14464969 -14535786 -15264621 -16570194 -16921963 -16959813 -19892644 -20193475 -20865036 -21389248 -22768866 -25100496 -25776468 -25869575 -27666284 -27675825 -28990799 -29381863 -29653602 -30894415 -32011475 -32283582 -32495326 -33287680 -33423244 -33797863 -33967896 -34606601 -34794482 -36491596 -36513003 -37313539 -37577570 -37600544 -37958120 -39484517 -40140980 -41705353 -42383451 -43902811 -44125235 -47621339 -47866257 -48905545 -51198210 -51245290 -55100470 -58572672 -59206569 -60974523 -62624058 -62830115 -63917942 -65375150 -65864705 -66411149 -67176562 -67874428 -68604017 -69122538 -69969612 -70599058 -71478587 -72158627 -72460518 -73066829 -76115669 -76700937 -78410211 -80693604 -80818357 -81692302 -82876636 -83314681 -84370399 -85297387 -85901251 -87087128 -87248777 -87270835 -88325323 -89650033 -90635783 -92766339 -93482676 -93987402 -95454661 -95598889 -96657364 -98319525 -99479956 -100077314 -100936390 -101347165 -101884596 -102673761 -105234290 -105724135 -105877669 -106828160 -109081969 -110019408 -111155111 -111436477 -111756298 -111885734 -113221775 -114342047 -116727282 -118360318 -119602863 -120372826 -121774000 -122470461 -123620487 -127031658 -127386675 -127839099 -128191180 -128199623 -128894687 -128928023 -128952447 -132957322 -133709002 -134086399 -134097471 -135356844 -136883456 -137991365 -139185907 -139309844 -139783465 -144522435 -145125081 -145181215 -146301892 -146480651 -147666338 -148366910 -149065532 -150020171 -150337966 -150901144 -151035803 -151333492 -151499496 -152600286 -153048093 -153207158 -154698022 -155477576 -155859496 -156300070 -156543006 -156692706 -156960811 -160415738 -161717562 -163522198 -164019660 -165337021 -165449550 -165757953 -166148387 -168634616 -169996838 -170250664 -170391257 -170463985 -171333890 -172081653 -172179489 -174384850 -175276916 -176394620 -177133202 -177548100 -177623586 -177771287 -179816643 -180988319 -181874898 -182069082 -183070972 -184954528 -185259225 -185589616 -186545648 -186735955 -187577258 -187757211 -189071296 -189324225 -189486773 -190068440 -190526577 -191656740 -191855552 -192699922 -194033189 -194304077 -194961368 -195485565 -195575558 -195791553 -196570489 -198128026 -198515425 -199018542 -200930301 -201967992 -203588067 -206702553 -207237193 -208236790 -208753405 -212096210 -212764022 -213296204 -213358112 -215084709 -216451246 -216730162 -217581202 -217859346 -218079139 -220029168 -222764447 -222774002 -224370131 -225640914 -225891607 -227234597 -228193101 -228756043 -230054271 -230116054 -231968216 -232320438 -234368065 -236157269 -238322615 -239056365 -240134265 -240505305 -242255706 -243261054 -243305723 -244437562 -246048882 -247483746 -247597272 -248943784 -248987466 -249178659 -250211688 -250544064 -253359016 -254388947 -255055848 -256610514 -257004501 -257911218 -258103701 -260995967 -261522116 -261653045 -263877273 -264114698 -265158106 -265255716 -265337843 -266261552 -267592551 -267898534 -269286404 -269570899 -269644648 -270842593 -271001503 -271321916 -271463051 -274284400 -275490071 -277528908 -278812137 -278846449 -279972861 -280371522 -281450081 -284387350 -285571409 -286532441 -286665591 -286841615 -287756628 -288148609 -289705845 -291409102 -293433174 -294813100 -295984014 -297554450 -297823665 -297869098 -299389274 -299898902 -300761205 -302354825 -302652346 -303590601 -304511300 -305434839 -306233773 -306822213 -307203772 -308134579 -308994026 -309212434 -310302420 -310662211 -310665455 -311356082 -312251881 -314315478 -315948592 -320253652 -320990176 -321993998 -325031938 -325290524 -325464775 -328655625 -329738404 -330737581 -330792297 -332327337 -333247645 -334543417 -334880253 -334977553 -335715992 -336541300 -337601622 -338856656 -342063486 -342070919 -344296193 -349919910 -350127017 -351873178 -352228300 -353885535 -355079864 -355535304 -355560126 -355663123 -355827223 -356093208 -356194072 -358187431 -361261943 -362170271 -368123457 -370000419 -370391868 -370406316 -371167247 -371943766 -375078779 -377206183 -379721750 -379897203 -380400361 -380681534 -381891319 -382115769 -382894292 -384805441 -385862243 -392336178 -392961592 -394042623 -394189989 -394664535 -396095779 -396375367 -397615021 -400859314 -403111108 -403955460 -404866075 -407019027 -407338232 -407394234 -408591603 -409435661 -410327491 -413733332 -413952789 -415406505 -417049677 -417112292 -417730805 -418518584 -419218001 -420033603 -421766723 -422151624 -423694845 -424635729 -426239114 -426368885 -426858731 -427310717 -427731302 -429639342 -429741617 -429882966 -433157790 -433315813 -434370628 -434550013 -436827523 -439115595 -439420872 -439666194 -440638102 -440797705 -441400426 -442054749 -442247466 -443973176 -444128215 -444869164 -445929743 -446035477 -446582461 -446669555 -448651778 -449325307 -450180092 -453173852 -456679784 -460964936 -461038923 -461186368 -461386911 -462324490 -463015512 -466353018 -466890649 -467485606 -469191954 -469606255 -470747628 -470920964 -471437709 -472147699 -472376887 -474042834 -475239808 -477793157 -477796026 -477837560 -477994546 -479378426 -480093923 -480755265 -481430369 -483764857 -484374348 -485470119 -488305458 -488787171 -491184830 -494700070 -495965166 -495999182 -496276526 -496705994 -498204267 -498679396 -502743441 -503395919 -503974112 -505236584 -505318934 -505651416 -507333260 -509043494 -510319326 -510490837 -512010901 -512735686 -514380753 -515229764 -517175601 -520630890 -522708374 -524037430 -524157971 -524589729 -525189582 -526857678 -527155034 -527747622 -529333204 -530630168 -532918727 -532974825 -533206101 -533566406 -534440455 -535153458 -536145871 -537126833 -540184876 -541468179 -543322263 -543473278 -544807927 -544833283 -545094225 -545325403 -546700911 -549024074 -550021592 -553748629 -553810021 -555271126 -555566939 -556662332 -560186184 -561622493 -561858461 -563554428 -563762887 -565681876 -565800731 -566064689 -566225790 -566948716 -567355160 -568740973 -569091874 -569866125 -570351679 -571532202 -571692111 -571913873 -572148025 -572382664 -573024774 -573553042 -574107939 -574110884 -574493348 -575072672 -575225045 -575410850 -576622031 -576793022 -577928774 -578934327 -580950754 -581839897 -581929050 -582040172 -582241926 -582856665 -584977769 -585230318 -586080090 -587037925 -587655589 -587767534 -587916663 -588200933 -589330536 -589994150 -590784521 -590956460 -591164384 -593608013 -594786342 -597276011 -599711002 -600033258 -600477902 -601273025 -602854601 -603437841 -604513972 -606824780 -612383828 -613268233 -613529359 -615255022 -615396429 -615465251 -617601891 -619028234 -619433493 -619600306 -619670720 -620801916 -622945444 -623522623 -624009478 -625175432 -625384414 -626485281 -627008650 -629196542 -631585224 -632426210 -632657984 -633725180 -633950703 -634966326 -635151053 -636440904 -637126175 -638126241 -638785636 -640042407 -641476730 -642497135 -642811328 -644816858 -645644963 -645888076 -647202043 -647566861 -648920224 -649418674 -649968691 -650800084 -650896432 -651856529 -653182226 -653548551 -654040018 -654196693 -654528262 -654953859 -655371791 -656216426 -656363920 -657058228 -659854392 -661211720 -662099942 -663304095 -663507254 -664661815 -667549624 -669470941 -669729404 -670730778 -671092095 -673553453 -673939191 -674185448 -675168495 -675626112 -676159587 -677596581 -679338690 -680154439 -680538897 -682966620 -683533351 -683562227 -684312237 -684786026 -685518568 -686696903 -686712154 -686806421 -687976188 -688030609 -688349205 -688409711 -688458885 -689731123 -690139864 -690340275 -691710619 -693156114 -695452877 -697034874 -697126989 -698372168 -698735397 -699187511 -699663017 -700320492 -705207687 -708933711 -710833831 -712594424 -712973066 -712981076 -712997872 -714517701 -715522899 -715553437 -715902510 -716307040 -717117315 -719448316 -720006110 -722929758 -725038219 -725273676 -725776724 -730203072 -730675129 -730808830 -733476653 -733984101 -734093500 -735891214 -736956260 -738685536 -738881659 -739660204 -741025494 -741418432 -743345365 -744237267 -744357234 -744811305 -745378755 -746394489 -746617994 -747237852 -747629642 -747957429 -748843663 -750880416 -752732815 -757693590 -757956417 -758036067 -758299180 -758309245 -758747878 -760832339 -761135150 -761990740 -764040994 -767231266 -767356740 -767456013 -768137467 -769562455 -771445491 -772232460 -772564030 -775053198 -775345665 -775464769 -778720014 -778793566 -781720704 -782100758 -782182721 -783463990 -791279994 -791876198 -792265037 -794289828 -796271435 -796629791 -796806456 -797661895 -798120086 -798742964 -800065723 -803122230 -804293100 -807198688 -807487382 -807650229 -808500002 -808577261 -808830103 -809073182 -809264055 -809276456 -810284694 -811952156 -812433900 -813759669 -817956649 -818949154 -819592305 -820782732 -822154166 -822605154 -824100101 -825072193 -826107839 -827043256 -827249544 -828922529 -831110648 -831460600 -831989131 -832280789 -832694119 -833364330 -833850611 -834541135 -838266613 -839107675 -839148521 -840691116 -842556374 -844180205 -844692692 -845612054 -845863361 -846697057 -846871207 -848683553 -850405899 -850784234 -851123424 -852197140 -855502120 -855586245 -855668781 -855675633 -855879190 -855957287 -856117299 -856163730 -857924069 -859068360 -861414954 -862220124 -862884446 -864712182 -868199677 -869562959 -869731817 -870211055 -874435881 -877005609 -878151227 -878431464 -878975232 -880060227 -880325991 -880407103 -881467599 -883528647 -884061622 -884238878 -884886315 -885339106 -885938485 -886705747 -887832138 -887851153 -888016505 -888378984 -889041242 -889558597 -890214205 -890996604 -891002766 -892456149 -895203452 -895333635 -899241182 -899521529 -901869777 -903776433 -904117025 -904844916 -905578736 -906203575 -906811784 -906812863 -911439955 -913039220 -913210060 -913408239 -913546305 -915003592 -915056003 -915682031 -919030930 -919061917 -920120429 -921374992 -922348435 -923023429 -923477393 -923510154 -924717512 -925823612 -926141078 -928060762 -929515894 -929610229 -929774247 -930810656 -931278473 -932779695 -933376004 -935575241 -937167562 -937219425 -938525317 -938531752 -939110988 -940359383 -940414037 -943290983 -945732052 -948235397 -948583912 -948660600 -949308911 -949738733 -950017849 -950546871 -952105334 -953346621 -953389511 -957614860 -958114106 -958204191 -958475713 -959114025 -959591760 -959767948 -959847712 -960509540 -963616547 -964714143 -965216452 -966500528 -966540065 -966656346 -968134515 -969142497 -970035152 -970890193 -971012069 -972380635 -972432201 -972720185 -973272863 -973421597 -974146282 -974611758 -975595750 -976556402 -978797663 -978889362 -979882348 -982559445 -982971994 -983027648 -983036142 -983326361 -983769777 -984775739 -985667224 -986185740 -987100826 -988389331 -988814076 -989310069 -989780742 -990148370 -990510471 -998034057 -998574805 -1002103818 -1002382477 -1002781191 -1006476475 -1007073583 -1007413192 -1008080182 -1008917238 -1009562350 -1011126259 -1011426922 -1011465638 -1011728700 -1012978043 -1013596633 -1015486081 -1017605774 -1019123948 -1020998191 -1025378896 -1025539030 -1027145810 -1027218802 -1028402758 -1028943287 -1029044046 -1029473878 -1030745371 -1030891483 -1031661611 -1035063037 -1036163211 -1036324244 -1038024060 -1038079141 -1039609563 -1041291898 -1043514001 -1043671504 -1043748460 -1043799665 -1043813904 -1044906031 -1045155143 -1049227491 -1049335247 -1049728079 -1049845316 -1050330236 -1050997197 -1051457277 -1052821998 -1055687629 -1056661716 -1057862950 -1059798558 -1059806210 -1060288813 -1060696357 -1061518049 -1061892401 -1062922841 -1066649388 -1066972125 -1068053540 -1070355746 -1071401003 -1073048018 -1074097729 -1074286241 -1074300668 -1074483465 -1076063081 -1076611070 -1077160981 -1081087911 -1081585836 -1082854026 -1082946820 -1084899449 -1086035569 -1086200684 -1087460587 -1088190640 -1088812321 -1089642825 -1090531306 -1090974754 -1092306234 -1092710391 -1092953187 -1093221553 -1095075549 -1095541326 -1098270690 -1099260427 -1099741236 -1103884228 -1104249874 -1104858395 -1107290731 -1108017302 -1108811950 -1109418933 -1109622328 -1109855432 -1110626951 -1112932854 -1114555094 -1114901368 -1116883499 -1117756527 -1117811582 -1118528663 -1121395876 -1121418962 -1125116660 -1126356873 -1128584764 -1132845513 -1133750821 -1133774721 -1133824038 -1135598074 -1135620094 -1136933701 -1138038366 -1139318757 -1139540709 -1140779057 -1140871300 -1141337493 -1141625008 -1143906286 -1144962169 -1146517530 -1147868582 -1150608565 -1150685699 -1152561826 -1152658053 -1152870612 -1153411159 -1153831208 -1155746337 -1156777289 -1157339335 -1157521215 -1159311377 -1160173737 -1160512943 -1161042045 -1161314948 -1163243317 -1164236034 -1164772417 -1167644629 -1169503075 -1169798951 -1170087820 -1172837198 -1174834475 -1175335789 -1175852528 -1177950017 -1179092924 -1180171844 -1180885064 -1181139571 -1181417357 -1183706182 -1185682885 -1185794840 -1185820321 -1186424475 -1186749668 -1188795072 -1188961944 -1189752626 -1190803319 -1190905355 -1194156988 -1195126377 -1196073904 -1196102277 -1197836840 -1199917825 -1200831126 -1200952768 -1201701021 -1202350460 -1203533423 -1203560793 -1204015278 -1204603742 -1205290644 -1205463274 -1205578490 -1206155886 -1206390092 -1206963419 -1207379225 -1208131300 -1209892037 -1211066244 -1215426612 -1216726543 -1217295379 -1217890510 -1218550582 -1220333667 -1220504126 -1225723697 -1225936051 -1227145464 -1227250292 -1227437587 -1228449626 -1230989666 -1234319084 -1234818297 -1235930752 -1237457277 -1237975020 -1238195981 -1239022902 -1241008979 -1241623934 -1242283544 -1243363704 -1243702427 -1245554671 -1246420553 -1247105271 -1248644863 -1252662158 -1252894316 -1255682160 -1257913932 -1258401652 -1258466362 -1259656278 -1261553536 -1262117610 -1263325058 -1267194477 -1268173144 -1268605809 -1269116464 -1269130261 -1270135577 -1271224717 -1273404932 -1275248869 -1277243675 -1277321980 -1280088237 -1280377319 -1283366129 -1283452965 -1288300668 -1288593639 -1288963009 -1289143959 -1289636648 -1289710990 -1291395605 -1292482679 -1293750767 -1296097952 -1300663257 -1300801411 -1300975567 -1304926989 -1307929928 -1308135181 -1308199630 -1308827711 -1310389367 -1314346640 -1314379214 -1314761427 -1315274444 -1318176443 -1318724530 -1318788757 -1320744276 -1322378188 -1322899191 -1322903332 -1323635552 -1325636480 -1327244745 -1327717577 -1328483569 -1329163456 -1330148002 -1330356158 -1330750916 -1331213739 -1334292065 -1335953484 -1336095842 -1337023357 -1338304372 -1339916712 -1340913190 -1344001400 -1347420787 -1348885486 -1349015110 -1349960247 -1350773514 -1351690990 -1352022878 -1353432239 -1354578859 -1355355406 -1356742879 -1357124699 -1357126034 -1357403688 -1358323379 -1358767116 -1359635656 -1360170634 -1360482924 -1362144698 -1362843647 -1362978041 -1363477108 -1366155872 -1366534343 -1366540379 -1370274737 -1370612980 -1371516301 -1372082487 -1375376180 -1375996180 -1376179498 -1376525530 -1376862374 -1377121447 -1378231989 -1378629143 -1379034746 -1379702275 -1380501622 -1382222743 -1382277369 -1386167239 -1386353267 -1388546716 -1388983728 -1389889911 -1391960827 -1395863973 -1396295365 -1396645840 -1401333919 -1402247546 -1404491762 -1405497708 -1405789849 -1406437932 -1409507697 -1409829600 -1410156639 -1410552188 -1410765040 -1413994924 -1414207923 -1414423038 -1414528615 -1417951513 -1422027837 -1422585722 -1422685798 -1423639214 -1424215948 -1424752169 -1426697691 -1427718200 -1429354919 -1430036275 -1430365678 -1432518129 -1435813687 -1436648428 -1436803764 -1436923733 -1436925357 -1437804740 -1441967717 -1442696964 -1444528980 -1446109254 -1447146831 -1447529023 -1447639092 -1452760991 -1452949634 -1454208590 -1455007941 -1455129140 -1455163933 -1456500105 -1457477494 -1458969496 -1459936822 -1464154677 -1466255376 -1466647222 -1467133816 -1469672015 -1471685662 -1475644449 -1476113587 -1477040484 -1477125634 -1477958868 -1478052781 -1478231675 -1479091917 -1480023781 -1481426509 -1481673943 -1481954328 -1485761527 -1486010819 -1490088251 -1490293414 -1490551067 -1490855871 -1490993762 -1492372309 -1495513018 -1496403843 -1496856968 -1498584073 -1500513730 -1502453831 -1502970603 -1504889936 -1505342868 -1507596870 -1507828443 -1507871622 -1508081018 -1508414985 -1508415400 -1508479159 -1508784989 -1508899123 -1509102120 -1509239253 -1509423999 -1511282393 -1511471584 -1511975455 -1512337459 -1512366409 -1514185138 -1517833798 -1517889260 -1518491148 -1519303354 -1519638970 -1520134395 -1520682189 -1521269681 -1521856552 -1521977514 -1523490095 -1524089052 -1524439365 -1525501767 -1526049370 -1526083639 -1526265741 -1527380174 -1527421456 -1529439264 -1529777199 -1530083358 -1530120543 -1532297134 -1534366741 -1534846639 -1537880576 -1538159254 -1538229015 -1539989091 -1540741826 -1541002096 -1541074474 -1541111920 -1541721121 -1544221168 -1545737076 -1546967413 -1548221944 -1548399784 -1549529019 -1549733557 -1550538745 -1551165877 -1552449187 -1554873250 -1555063811 -1555839117 -1557213329 -1558931031 -1559662372 -1561025502 -1562199863 -1563098806 -1564028159 -1566921788 -1567582626 -1567885971 -1568409342 -1569699514 -1570568754 -1570682769 -1571401088 -1571615945 -1573197253 -1573306030 -1574199191 -1574664725 -1575838288 -1577296486 -1578225787 -1578615594 -1578783094 -1579943353 -1580519681 -1581562042 -1583299513 -1584569620 -1585435999 -1591980305 -1594259114 -1596482838 -1596566478 -1596781798 -1598145122 -1598474177 -1598702022 -1598880106 -1601476259 -1604608585 -1605673665 -1606094474 -1607153388 -1608483043 -1609576996 -1609966836 -1610106089 -1610212241 -1612961280 -1614633814 -1615301359 -1615396489 -1615586521 -1615644249 -1617349948 -1619540398 -1622220773 -1622566196 -1622672547 -1622858086 -1624464501 -1624469284 -1625624387 -1626442863 -1626561260 -1626835703 -1627131223 -1628704410 -1629979228 -1631921401 -1632359870 -1632447212 -1633900703 -1634092629 -1634849629 -1634970761 -1635095625 -1638858151 -1639101257 -1639266374 -1639375178 -1643044260 -1643477270 -1643600058 -1646270397 -1647081533 -1648638369 -1649158032 -1651359165 -1651757254 -1652676409 -1653666869 -1654496076 -1655987401 -1658941557 -1660130224 -1660399521 -1660648751 -1663738178 -1664461865 -1664938017 -1665344106 -1666581461 -1667198857 -1668027402 -1668301266 -1669934750 -1670756727 -1671375771 -1672057153 -1673714908 -1674101664 -1675299198 -1677345411 -1678071040 -1678802734 -1679356962 -1680245394 -1681992484 -1682345589 -1682795575 -1683700383 -1684298076 -1684591040 -1686133874 -1686201683 -1693046234 -1696623877 -1698620703 -1700597509 -1702429773 -1703593893 -1705151327 -1706381830 -1706621285 -1708884929 -1712530333 -1714271246 -1716268655 -1717303496 -1717619409 -1717771501 -1717784670 -1717898129 -1720162062 -1721413076 -1722060509 -1723393945 -1724525858 -1725179668 -1726223739 -1730973465 -1731352982 -1734614399 -1735003835 -1736059900 -1739031566 -1739709739 -1742200000 -1743060669 -1743156388 -1743560317 -1744091564 -1747034742 -1748920694 -1749360430 -1750705322 -1751012237 -1751481862 -1751706861 -1752801464 -1753942928 -1754206178 -1755190221 -1757516351 -1758303713 -1761029936 -1761115959 -1762325188 -1762541667 -1763803382 -1763962871 -1766708683 -1767102385 -1767385714 -1767960493 -1770782659 -1773889298 -1775413870 -1775824841 -1776748374 -1776907376 -1777087870 -1777687620 -1777860200 -1778540681 -1781370922 -1781463861 -1782981879 -1783108894 -1785165035 -1787046589 -1787727134 -1787922118 -1789130811 -1791501057 -1794023617 -1794658020 -1795509528 -1795907770 -1796184127 -1796300787 -1797062632 -1798205555 -1802694996 -1802842080 -1804722203 -1804991596 -1805045931 -1808063237 -1808277272 -1808409362 -1809053399 -1809816412 -1811254570 -1812653640 -1813623839 -1815633090 -1818417574 -1820141525 -1820537604 -1822410595 -1823946607 -1824181053 -1824488320 -1825081759 -1826954830 -1828731468 -1830311501 -1830732408 -1831135391 -1832175712 -1832407011 -1832970857 -1834168494 -1835805781 -1838108796 -1838410053 -1838522490 -1838585137 -1838827365 -1842721649 -1842753670 -1844269578 -1844561354 -1845237492 -1847931834 -1847955003 -1849441842 -1849930260 -1851144058 -1851394246 -1851918902 -1852864695 -1853098254 -1855992217 -1857013270 -1860452983 -1862173806 -1862290036 -1862424942 -1862516074 -1863090771 -1869118844 -1870686501 -1871737210 -1871930841 -1873231157 -1873342560 -1873437237 -1873914717 -1874050798 -1874446752 -1877665128 -1878336665 -1878457419 -1878652257 -1879212775 -1882195988 -1883277337 -1883661820 -1884372854 -1884757001 -1884958763 -1886068611 -1886163330 -1886436552 -1887274953 -1887487879 -1888071966 -1888220505 -1889248804 -1890353495 -1891793940 -1896019661 -1896476627 -1896647369 -1897820551 -1902153909 -1902254400 -1902339426 -1904253857 -1907078094 -1907538605 -1907580398 -1907807070 -1907911431 -1909053670 -1909718144 -1911249842 -1915352982 -1915682127 -1916020202 -1916094303 -1916259885 -1916308447 -1916828746 -1916908871 -1916993507 -1918376468 -1918632021 -1919583369 -1920728646 -1922036040 -1922614328 -1923924460 -1924416135 -1924633218 -1925056591 -1925082982 -1927651160 -1929621642 -1929913575 -1931573183 -1932716859 -1934613289 -1935068243 -1936377891 -1938115516 -1940511093 -1942290066 -1945580778 -1946213519 -1947409049 -1948715918 -1949700165 -1950213303 -1950273149 -1951327492 -1951377854 -1953285454 -1953576625 -1955039518 -1955293159 -1956068826 -1956126820 -1956991390 -1957012319 -1957602825 -1958219970 -1959287271 -1959338304 -1959775221 -1961650964 -1963473417 -1963770886 -1965873054 -1966615493 -1967364101 -1967458050 -1967928355 -1968849511 -1970429577 -1973194763 -1973998991 -1974957533 -1976452159 -1976830581 -1977247419 -1980953401 -1982013299 -1982165897 -1982312774 -1985493594 -1985953656 -1988645768 -1989365107 -1989677061 -1991495774 -1992004640 -1992319864 -1992886662 -1994105611 -1994425709 -1995915674 -1996070097 -1996684564 -1996730701 -1997162113 -1997623469 -1998377219 -1999127721 -2001200452 -2005054881 -2005811631 -2006160299 -2006982087 -2009652075 -2009798832 -2010057298 -2013001410 -2017315325 -2019357220 -2019932464 -2021770828 -2023037910 -2023613712 -2024107971 -2024945956 -2027242748 -2027485539 -2028513672 -2029183499 -2029656846 -2029866940 -2033017829 -2033754513 -2035115070 -2035742309 -2035752357 -2038696287 -2040229806 -2040360225 -2040914781 -2041430432 -2041922925 -2042693768 -2042892557 -2043808773 -2044732291 -2044819044 -2045928996 -2047175855 -2049075599 -2049884625 -2051581527 -2052223638 -2052476522 -2053285680 -2057529922 -2061783685 -2063389035 -2065420671 -2065468078 -2066152872 -2066161218 -2066209600 -2066451533 -2067955182 -2068587877 -2071142127 -2072291183 -2073205469 -2073575906 -2075304330 -2076257739 -2077984882 -2078244571 -2078387171 -2078588264 -2078809135 -2079506846 -2079856010 -2080912538 -2081640854 -2083692784 -2083830786 -2084230463 -2084376878 -2084381027 -2084804186 -2086945996 -2086956417 -2087272360 -2089096067 -2089420814 -2091020153 -2096925230 -2097234590 -2098333903 -2100035316 -2101153676 -2102342705 -2102759154 -2107573499 -2107879177 -2108631302 -2112022026 -2112321593 -2113258941 -2113307749 -2113939165 -2114483017 -2115926688 -2116358856 -2116500429 -2116642867 -2118036408 -2118454202 -2118918951 -2119234197 -2123456246 -2123781138 -2125209562 -2126242116 -2126524027 -2126751739 -2127559558 -2128021970 -2128389497 -2132256492 -2133026663 -2133146643 -2137312385 -2142772926 -2143582251 -2143642374 -2144650720 -2146276546 -2147208091 diff --git a/examples/machsuite/merge/check1.data b/examples/machsuite/merge/check1.data deleted file mode 100644 index 678e1861eb..0000000000 --- a/examples/machsuite/merge/check1.data +++ /dev/null @@ -1,7 +0,0 @@ -%% -5 -6 -7 -8 -9 -%% diff --git a/examples/machsuite/merge/input.data b/examples/machsuite/merge/input.data deleted file mode 100644 index 5a655a5227..0000000000 --- a/examples/machsuite/merge/input.data +++ /dev/null @@ -1,2049 +0,0 @@ -%% -1109418933 -1238195981 -1655987401 -1435813687 -568740973 -194304077 -85901251 -90635783 -1521856552 -561622493 -1490293414 -1693046234 -978889362 -758747878 -238322615 -449325307 -111436477 -1663738178 -34606601 -2101153676 -807487382 -1239022902 -1622566196 -1916259885 -308994026 -1703593893 -1508899123 -1362978041 -325464775 -1670756727 -474042834 -906811784 -291409102 -440797705 -904844916 -2116642867 -582856665 -1432518129 -1375376180 -1237457277 -638126241 -576622031 -1624464501 -949308911 -979882348 -1825081759 -303590601 -269644648 -1185820321 -466890649 -924717512 -1525501767 -289705845 -1169798951 -332327337 -990148370 -1174834475 -1632359870 -230054271 -1066649388 -688349205 -892456149 -239056365 -757693590 -177623586 -1161314948 -461186368 -1322903332 -1202350460 -2040360225 -1598474177 -1382277369 -599711002 -154698022 -1767102385 -1712530333 -1808063237 -1117811582 -156300070 -859068360 -2089420814 -1897820551 -1017605774 -310662211 -2073205469 -1031661611 -1139318757 -1237975020 -1372082487 -299389274 -890214205 -690340275 -1252662158 -593608013 -151499496 -1308135181 -83314681 -1514185138 -1953285454 -1702429773 -885339106 -1628704410 -1660130224 -1104858395 -1664461865 -566948716 -1140779057 -76115669 -1041291898 -1280088237 -1008080182 -127839099 -1327244745 -1967364101 -574110884 -236157269 -1143906286 -715553437 -1056661716 -1791501057 -820782732 -1090531306 -1362843647 -47866257 -1512337459 -586080090 -1615644249 -1267194477 -719448316 -1717784670 -987100826 -758299180 -1530120543 -1606094474 -986185740 -1625624387 -281450081 -248943784 -1976452159 -1248644863 -1204603742 -37313539 -1289636648 -1228449626 -587916663 -509043494 -1787922118 -27666284 -456679784 -768137467 -145125081 -1873231157 -1664938017 -424635729 -1059806210 -561858461 -2017315325 -1351690990 -212764022 -1430036275 -655371791 -1293750767 -2071142127 -888016505 -1604608585 -330737581 -2091020153 -1750705322 -964714143 -295984014 -950546871 -526857678 -1270135577 -1823946607 -1557213329 -271463051 -922348435 -1639101257 -1752801464 -1043514001 -716307040 -928060762 -1992319864 -1477125634 -983769777 -96657364 -850784234 -625175432 -334977553 -846697057 -1935068243 -426368885 -1511975455 -1074286241 -1874050798 -1783108894 -576793022 -1013596633 -170463985 -3755034 -1314379214 -186735955 -243261054 -60974523 -1878652257 -1815633090 -66411149 -1614633814 -258103701 -686696903 -1802842080 -938525317 -1534846639 -1945580778 -725038219 -846871207 -151035803 -952105334 -1668027402 -852197140 -855879190 -1220504126 -688409711 -1886436552 -1268605809 -750880416 -59206569 -190068440 -1924633218 -2066152872 -571532202 -2133146643 -1550538745 -1108017302 -712973066 -1086200684 -989310069 -172179489 -1200952768 -1059798558 -1322899191 -1578225787 -502743441 -926141078 -155477576 -1838827365 -189486773 -105877669 -297823665 -796629791 -1809053399 -869562959 -300761205 -1300801411 -333247645 -2078588264 -744357234 -277528908 -1095075549 -1596482838 -1388983728 -1849441842 -111155111 -1622220773 -833364330 -1985493594 -248987466 -826107839 -180988319 -397615021 -1241008979 -2033017829 -775464769 -1409507697 -1851918902 -29381863 -1242283544 -1194156988 -530630168 -1132845513 -965216452 -1907580398 -379897203 -1330750916 -1002382477 -536145871 -356194072 -1610106089 -177548100 -1970429577 -1205463274 -948235397 -421766723 -514380753 -1698620703 -985667224 -983036142 -1997623469 -189071296 -1459936822 -831989131 -1896019661 -1626835703 -1259656278 -1781463861 -938531752 -2068587877 -288148609 -682966620 -1028943287 -698735397 -1571401088 -384805441 -1087460587 -2084376878 -1179092924 -1511282393 -206702553 -1126356873 -1777087870 -2067955182 -1159311377 -1544221168 -2128389497 -82876636 -2118454202 -540184876 -392961592 -1466255376 -948583912 -1234319084 -1549529019 -1907538605 -371167247 -190526577 -80693604 -1639375178 -1541074474 -1074097729 -1196073904 -807198688 -2052223638 -93482676 -1742200000 -1375996180 -615255022 -1436923733 -619433493 -1998377219 -1050997197 -1090974754 -929610229 -741418432 -855675633 -2084230463 -199018542 -582040172 -708933711 -915682031 -1950213303 -30894415 -355535304 -673553453 -181874898 -1888071966 -2133026663 -1541111920 -760832339 -620801916 -1961650964 -461386911 -1257913932 -33287680 -1437804740 -1904253857 -1246420553 -1633900703 -974611758 -1062922841 -278846449 -1490855871 -440638102 -757956417 -761990740 -1273404932 -410327491 -656363920 -1357403688 -1395863973 -2041922925 -839148521 -1678802734 -2076257739 -534440455 -1530083358 -1269130261 -247483746 -1447529023 -822154166 -1824488320 -1804991596 -475239808 -556662332 -988389331 -423694845 -730808830 -1573306030 -344296193 -810284694 -1156777289 -342070919 -1879212775 -2100035316 -1955293159 -590784521 -1761029936 -1896647369 -1610212241 -887851153 -915056003 -269570899 -1211066244 -194961368 -51245290 -1502453831 -311356082 -811952156 -602854601 -306822213 -1205578490 -915003592 -923510154 -222774002 -931278473 -1677345411 -1318724530 -932779695 -225891607 -891002766 -808830103 -2029183499 -507333260 -2013001410 -1564028159 -2024107971 -584977769 -1651757254 -257004501 -1923924460 -563762887 -101347165 -634966326 -1524439365 -2084381027 -1813623839 -838266613 -1902254400 -976556402 -1794023617 -1731352982 -684786026 -495999182 -1824181053 -856163730 -461038923 -195485565 -1526265741 -587767534 -1289710990 -845863361 -200930301 -1787046589 -1947409049 -929515894 -186545648 -72460518 -207237193 -578934327 -1889248804 -966500528 -959591760 -772232460 -624009478 -439115595 -517175601 -1548221944 -1409829600 -1916908871 -1761115959 -1753942928 -1153831208 -1932716859 -41705353 -1529777199 -1008917238 -227234597 -1452760991 -886705747 -617601891 -505236584 -269286404 -2143642374 -597276011 -695452877 -1496856968 -1426697691 -1985953656 -1601476259 -165757953 -261522116 -1989365107 -2127559558 -1077160981 -111885734 -1678071040 -1164772417 -844692692 -170391257 -1957602825 -1235930752 -175276916 -899241182 -1569699514 -1092953187 -2147208091 -1757516351 -1109855432 -160415738 -1135598074 -271001503 -1405789849 -439420872 -352228300 -2035742309 -1798205555 -187577258 -1632447212 -1029044046 -1116883499 -1275248869 -1873914717 -2006982087 -715522899 -2023037910 -2042693768 -824100101 -1751481862 -1739709739 -587037925 -1578783094 -1853098254 -422151624 -640042407 -919030930 -169996838 -1634092629 -698372168 -460964936 -878151227 -667549624 -1524089052 -959767948 -714517701 -555271126 -1444528980 -191656740 -1700597509 -382115769 -1241623934 -1675299198 -1252894316 -62624058 -1671375771 -1227437587 -150020171 -203588067 -1982312774 -2098333903 -590956460 -1884958763 -179816643 -512010901 -1300663257 -1360170634 -134086399 -496705994 -1045155143 -913408239 -320990176 -1334292065 -230116054 -1366155872 -85297387 -2107879177 -165449550 -1141625008 -510490837 -1646270397 -505651416 -913039220 -589330536 -1609966836 -527155034 -139309844 -653182226 -574107939 -274284400 -635151053 -1548399784 -1566921788 -1747034742 -170250664 -1963473417 -752732815 -1521269681 -1347420787 -895203452 -1262117610 -1190905355 -1464154677 -2115926688 -546700911 -1929621642 -649418674 -2072291183 -1871737210 -429639342 -1992004640 -933376004 -1071401003 -1789130811 -445929743 -809264055 -1584569620 -1036324244 -1802694996 -1114901368 -633950703 -286841615 -407394234 -480093923 -307203772 -629196542 -427310717 -1878336665 -1812653640 -215084709 -1379702275 -1959338304 -220029168 -505318934 -1378231989 -189324225 -601273025 -362170271 -1355355406 -966656346 -906203575 -144522435 -1549733557 -1828731468 -675626112 -625384414 -641476730 -472376887 -400859314 -1315274444 -2107573499 -1086035569 -1277243675 -102673761 -498204267 -1996684564 -524037430 -1339916712 -1748920694 -1329163456 -2057529922 -1167644629 -647202043 -429741617 -644816858 -1076063081 -848683553 -1608483043 -722929758 -1615586521 -72158627 -305434839 -165337021 -839107675 -1686133874 -1907911431 -1424752169 -2049884625 -95598889 -1283452965 -1507871622 -1982165897 -804293100 -1220333667 -587655589 -1509239253 -1015486081 -510319326 -2102342705 -1938115516 -1457477494 -1335953484 -320253652 -1911249842 -669470941 -1197836840 -1936377891 -1743560317 -1526083639 -1336095842 -1992886662 -1280377319 -47621339 -1376525530 -2114483017 -775053198 -1153411159 -984775739 -146301892 -217859346 -974146282 -1686201683 -684312237 -935575241 -1717619409 -676159587 -2044732291 -325031938 -1269116464 -1963770886 -663507254 -1749360430 -1577296486 -417730805 -1007073583 -33797863 -153048093 -998034057 -62830115 -783463990 -1379034746 -950017849 -2001200452 -2097234590 -361261943 -1638858151 -1490551067 -738685536 -1147868582 -1874446752 -450180092 -1098270690 -973421597 -532918727 -2112022026 -2137312385 -433315813 -418518584 -2083830786 -1787727134 -1907807070 -883528647 -1922614328 -1994105611 -851123424 -1922036040 -878431464 -495965166 -1183706182 -2132256492 -868199677 -1523490095 -1534366741 -488305458 -715902510 -1204015278 -1538229015 -37958120 -2044819044 -782100758 -1455163933 -771445491 -890996604 -812433900 -2073575906 -1509102120 -20193475 -1036163211 -1477958868 -1422027837 -1340913190 -1794658020 -520630890 -76700937 -1562199863 -192699922 -51198210 -228756043 -36513003 -1776748374 -1325636480 -1955039518 -545325403 -905578736 -152600286 -2066209600 -1775413870 -733984101 -6748351 -2116500429 -155859496 -1469672015 -1475644449 -182069082 -855586245 -1832407011 -198128026 -1609576996 -1834168494 -1838522490 -744811305 -434370628 -1330356158 -669729404 -1909718144 -982971994 -638785636 -279972861 -764040994 -87087128 -1883277337 -1157521215 -302354825 -1871930841 -1915682127 -1736059900 -496276526 -1775824841 -1011426922 -1918632021 -306233773 -1832970857 -580950754 -1388546716 -959114025 -417112292 -494700070 -480755265 -2125209562 -1570568754 -1902339426 -1918376468 -972720185 -943290983 -1767960493 -33423244 -822605154 -2126524027 -1243702427 -1540741826 -1951377854 -733476653 -1310389367 -664661815 -16921963 -1682345589 -525189582 -1150685699 -920120429 -89650033 -778720014 -469606255 -485470119 -370391868 -582241926 -297554450 -1626442863 -2113307749 -1107290731 -637126175 -195791553 -817956649 -1136933701 -1527421456 -945732052 -407019027 -1851144058 -22768866 -1025378896 -1103884228 -1118528663 -1308827711 -1797062632 -881467599 -1916993507 -16570194 -1386167239 -1068053540 -563554428 -2123781138 -1653666869 -446035477 -334543417 -1114555094 -442247466 -1050330236 -657058228 -1878457419 -1991495774 -1429354919 -213296204 -758036067 -1651359165 -1061518049 -2066161218 -1414207923 -885938485 -654953859 -1160512943 -1596566478 -1706621285 -1271224717 -1203533423 -275490071 -216730162 -222764447 -1631921401 -1818417574 -264114698 -1206155886 -1061892401 -1348885486 -1027218802 -1720162062 -1417951513 -1973194763 -2009798832 -1092306234 -2035752357 -2126242116 -121774000 -1508784989 -503395919 -864712182 -2087272360 -1277321980 -1112932854 -166148387 -615465251 -535153458 -1370274737 -1049335247 -127386675 -745378755 -249178659 -1404491762 -1539989091 -919061917 -1504889936 -484374348 -1763962871 -744237267 -1498584073 -1043799665 -1567582626 -120372826 -1060288813 -1135620094 -394042623 -673939191 -1308199630 -957614860 -1055687629 -1205290644 -1580519681 -20865036 -32011475 -1915352982 -1538159254 -1160173737 -2029866940 -297869098 -342063486 -1615396489 -1366540379 -515229764 -968134515 -833850611 -1674101664 -1980953401 -1207379225 -1436803764 -174384850 -1209892037 -1344001400 -813759669 -880407103 -2133347 -1057862950 -479378426 -686806421 -1520682189 -545094225 -1081585836 -477796026 -1886163330 -1245554671 -321993998 -1919583369 -2005054881 -308134579 -1974957533 -1820537604 -778793566 -1025539030 -477793157 -970890193 -712997872 -1725179668 -1830732408 -613529359 -1376179498 -797661895 -1125116660 -2027485539 -413733332 -1188795072 -1152658053 -1558931031 -1128584764 -1907078094 -1121395876 -2021770828 -2065420671 -294813100 -417049677 -28990799 -1074483465 -930810656 -408591603 -1028402758 -404866075 -1883661820 -325290524 -887832138 -446669555 -1188961944 -1490088251 -371943766 -1658941557 -948660600 -1502970603 -844180205 -253359016 -1405497708 -1884757001 -1551165877 -937167562 -633725180 -1479091917 -394189989 -2029656846 -809073182 -1328483569 -137991365 -983027648 -2126751739 -529333204 -150337966 -2042892557 -1396295365 -156960811 -884061622 -1466647222 -1216726543 -1808277272 -1139540709 -1289143959 -1035063037 -747237852 -699187511 -43902811 -413952789 -2080912538 -939110988 -2113258941 -541468179 -426239114 -3757680 -1559662372 -1612961280 -1808409362 -1454208590 -240134265 -1356742879 -636440904 -11497565 -623522623 -216451246 -444869164 -741025494 -2041430432 -1683700383 -1020998191 -975595750 -2061783685 -791279994 -544807927 -1455129140 -1170087820 -803122230 -600033258 -67874428 -861414954 -1164236034 -604513972 -855668781 -2065468078 -1953576625 -642811328 -573553042 -972380635 -78410211 -1857013270 -32283582 -247597272 -632657984 -164019660 -1988645768 -569866125 -106828160 -889041242 -589994150 -1496403843 -627008650 -1186424475 -1089642825 -1029473878 -1353432239 -55100470 -2128021970 -1555063811 -870211055 -827043256 -746617994 -315948592 -603437841 -1358323379 -147666338 -1545737076 -1956068826 -1634970761 -1615301359 -1916020202 -663304095 -1667198857 -19892644 -1203560793 -1708884929 -832280789 -1338304372 -1929913575 -1946213519 -700320492 -1563098806 -2040229806 -246048882 -1320744276 -958114106 -512735686 -187757211 -1181139571 -1997162113 -101884596 -409435661 -1951327492 -978797663 -1666581461 -739660204 -585230318 -1660399521 -1527380174 -265337843 -1873342560 -1471685662 -156543006 -1643600058 -2079856010 -1537880576 -591164384 -1520134395 -280371522 -1541721121 -1255682160 -1684298076 -1795509528 -958204191 -969142497 -1169503075 -619028234 -127031658 -358187431 -840691116 -1430365678 -1763803382 -81692302 -988814076 -1648638369 -533206101 -1247105271 -880060227 -874435881 -1314761427 -1288300668 -135356844 -1673714908 -470747628 -736956260 -1680245394 -1940511093 -1822410595 -1888220505 -1796184127 -767356740 -1030891483 -911439955 -1570682769 -176394620 -1999127721 -1318176443 -553810021 -1766708683 -1739031566 -1152870612 -1804722203 -720006110 -1877665128 -299898902 -642497135 -953389511 -234368065 -884886315 -953346621 -70599058 -267898534 -69969612 -213358112 -1330148002 -1002781191 -444128215 -194033189 -1366534343 -1751012237 -1925056591 -1349015110 -710833831 -67176562 -1989677061 -1144962169 -1724525858 -1074300668 -1862424942 -1831135391 -1519638970 -1508479159 -691710619 -1152561826 -1776907376 -330792297 -1735003835 -571913873 -109081969 -2144650720 -1571615945 -781720704 -1526049370 -522708374 -1723393945 -2096925230 -1575838288 -381891319 -1967458050 -128191180 -15264621 -1855992217 -1573197253 -2023613712 -1734614399 -68604017 -1378629143 -1682795575 -1414528615 -862884446 -573024774 -266261552 -1423639214 -594786342 -653548551 -775345665 -738881659 -2112321593 -1150608565 -394664535 -208236790 -690139864 -1490993762 -123620487 -433157790 -1442696964 -1869118844 -1773889298 -98319525 -1206390092 -37577570 -686712154 -1258401652 -689731123 -1717771501 -261653045 -1002103818 -1230989666 -1009562350 -1721413076 -472147699 -1672057153 -87248777 -1762325188 -654040018 -58572672 -1862173806 -565681876 -466353018 -1826954830 -831460600 -940359383 -532974825 -1842721649 -151333492 -1371516301 -1268173144 -1546967413 -906812863 -100077314 -1261553536 -1634849629 -267592551 -990510471 -650896432 -463015512 -571692111 -191855552 -688030609 -747629642 -1726223739 -600477902 -1181417357 -1811254570 -1957012319 -1654496076 -588200933 -1117756527 -375078779 -271321916 -1011126259 -278812137 -1436925357 -921374992 -717117315 -1060696357 -647566861 -1959287271 -884238878 -680538897 -1283366129 -145181215 -113221775 -470920964 -1030745371 -685518568 -2066451533 -2086956417 -377206183 -1717898129 -2089096067 -2010057298 -1225723697 -845612054 -648920224 -1099260427 -34794482 -1956126820 -314315478 -2053285680 -1133824038 -21389248 -1095541326 -434550013 -735891214 -680154439 -1890353495 -2045928996 -1778540681 -2040914781 -139185907 -828922529 -2143582251 -798742964 -1200831126 -392336178 -1180171844 -734093500 -970035152 -1082854026 -1447146831 -1190803319 -242255706 -645644963 -368123457 -1296097952 -39484517 -675168495 -1481673943 -448651778 -1958219970 -29653602 -1218550582 -380681534 -674185448 -453173852 -730203072 -888378984 -869731817 -1622858086 -37600544 -1227250292 -903776433 -286665591 -972432201 -1480023781 -148366910 -477994546 -87270835 -2116358856 -1206963419 -1508414985 -1027145810 -794289828 -1934613289 -2027242748 -350127017 -572382664 -1949700165 -1909053670 -569091874 -1163243317 -1140871300 -503974112 -1291395605 -1436648428 -809276456 -654196693 -899521529 -491184830 -355560126 -725273676 -1517889260 -255055848 -150901144 -285571409 -1995915674 -1578615594 -960509540 -1924416135 -80818357 -998574805 -1234818297 -1948715918 -335715992 -407338232 -198515425 -1882195988 -355079864 -1777860200 -1413994924 -1796300787 -310665455 -1832175712 -2063389035 -355827223 -1358767116 -1208131300 -1363477108 -270842593 -1495513018 -183070972 -1965873054 -857924069 -808500002 -1838585137 -1977247419 -1006476475 -2146276546 -1185794840 -2009652075 -1401333919 -1862290036 -1196102277 -1518491148 -1104249874 -1447639092 -1966615493 -2102759154 -1177950017 -1175852528 -1486010819 -570351679 -1629979228 -93987402 -5114060 -878975232 -2079506846 -622945444 -1243363704 -403955460 -1860452983 -1406437932 -782182721 -1161042045 -572148025 -1619540398 -533566406 -1863090771 -1359635656 -671092095 -1380501622 -1870686501 -1886068611 -1141337493 -925823612 -1354578859 -693156114 -1781370922 -2028513672 -889558597 -1891793940 -1199917825 -1402247546 -1076611070 -105724135 -1755190221 -1505342868 -791876198 -1555839117 -338856656 -356093208 -1649158032 -1012978043 -1679356962 -441400426 -1172837198 -1574664725 -1976830581 -14464969 -656216426 -798120086 -185589616 -177771287 -44125235 -1795907770 -862220124 -99479956 -1758303713 -1362144698 -63917942 -1427718200 -940414037 -553748629 -1458969496 -1920728646 -527747622 -1665344106 -1652676409 -1617349948 -1517833798 -904117025 -1591980305 -286532441 -544833283 -1967928355 -730675129 -577928774 -1568409342 -2049075599 -2033754513 -971012069 -2078387171 -1561025502 -1849930260 -1887487879 -651856529 -659854392 -1146517530 -1337023357 -842556374 -1093221553 -895333635 -1357124699 -1215426612 -1942290066 -73066829 -683562227 -1744091564 -1225936051 -1038024060 -1121418962 -1552449187 -128894687 -1039609563 -1138038366 -1996070097 -163522198 -95454661 -136883456 -208753405 -1288963009 -257911218 -353885535 -426858731 -14535786 -575072672 -1500513730 -114342047 -1931573183 -1263325058 -149065532 -1896476627 -697034874 -662099942 -42383451 -250211688 -2024945956 -1705151327 -1777687620 -1422685798 -581929050 -654528262 -1521977514 -769562455 -2052476522 -567355160 -156692706 -128952447 -2051581527 -244437562 -488787171 -2086945996 -705207687 -105234290 -1956991390 -712594424 -1081087911 -1581562042 -808577261 -1743156388 -650800084 -966540065 -1007413192 -877005609 -1189752626 -619600306 -481430369 -575225045 -1994425709 -901869777 -565800731 -1477040484 -1492372309 -171333890 -1873437237 -69122538 -218079139 -436827523 -1968849511 -989780742 -1377121447 -1598702022 -25776468 -310302420 -382894292 -856117299 -1770782659 -973272863 -1916828746 -1350773514 -712981076 -1844561354 -443973176 -834541135 -385862243 -645888076 -1982013299 -1195126377 -100936390 -403111108 -1574199191 -336541300 -396095779 -471437709 -232320438 -256610514 -963616547 -2038696287 -555566939 -1847931834 -1842753670 -850405899 -649968691 -1051457277 -1508415400 -1088812321 -1307929928 -2078809135 -1830311501 -469191954 -1643044260 -118360318 -1887274953 -670730778 -560186184 -524157971 -831110648 -683533351 -228193101 -370000419 -1073048018 -1304926989 -284387350 -243305723 -983326361 -1155746337 -153207158 -1070355746 -1049728079 -1762541667 -800065723 -1357126034 -949738733 -1902153909 -1360482924 -1605673665 -2108631302 -1292482679 -1043671504 -328655625 -615396429 -1845237492 -1862516074 -1647081533 -1627131223 -351873178 -13360332 -1852864695 -1668301266 -1626561260 -1099741236 -612383828 -1082946820 -1716268655 -1108811950 -1044906031 -2142772926 -467485606 -1322378188 -1624469284 -958475713 -1043813904 -1884372854 -442054749 -1386353267 -761135150 -1594259114 -982559445 -626485281 -575410850 -2083692784 -880325991 -677596581 -2019932464 -88325323 -1596781798 -168634616 -550021592 -110019408 -161717562 -217581202 -224370131 -1927651160 -746394489 -133709002 -439666194 -128199623 -566064689 -581839897 -483764857 -1782981879 -619670720 -1186749668 -549024074 -818949154 -1751706861 -265255716 -119602863 -819592305 -574493348 -2035115070 -65375150 -1410156639 -1327717577 -1084899449 -1391960827 -661211720 -807650229 -111756298 -1382222743 -1201701021 -477837560 -1011728700 -25100496 -184954528 -1583299513 -329738404 -1088190640 -1011465638 -2118036408 -1838108796 -16959813 -2043808773 -1714271246 -1805045931 -498679396 -177133202 -1331213739 -1410552188 -1950273149 -396375367 -1092710391 -1722060509 -1635095625 -606824780 -1809816412 -231968216 -1349960247 -1476113587 -250544064 -302652346 -923023429 -1529439264 -263877273 -185259225 -65864705 -959847712 -1258466362 -566225790 -1532297134 -1485761527 -1507828443 -1669934750 -1507596870 -913210060 -1851394246 -748843663 -1043748460 -1622672547 -2118918951 -355663123 -1835805781 -1717303496 -796271435 -772564030 -688458885 -1019123948 -796806456 -1554873250 -1389889911 -1446109254 -172081653 -312251881 -1478052781 -254388947 -1049845316 -122470461 -1414423038 -1481954328 -293433174 -1660648751 -419218001 -1847955003 -747957429 -212096210 -929774247 -1925082982 -937219425 -1767385714 -429882966 -2019357220 -537126833 -1049227491 -1370612980 -1217890510 -767456013 -1681992484 -195575558 -36491596 -1844269578 -260995967 -337601622 -1743060669 -697126989 -1541002096 -139783465 -1323635552 -134097471 -1512366409 -2119234197 -913546305 -855957287 -2077984882 -1424215948 -2075304330 -1456500105 -1175335789 -2113939165 -1754206178 -1109622328 -1639266374 -1455007941 -1133750821 -225640914 -1598880106 -1706381830 -1288593639 -1509423999 -2081640854 -1996730701 -1352022878 -832694119 -1511471584 -1607153388 -1785165035 -146480651 -1157339335 -1376862374 -767231266 -1066972125 -632426210 -2084804186 -128928023 -1452949634 -25869575 -1579943353 -743345365 -1038079141 -48905545 -827249544 -1318788757 -420033603 -1410765040 -792265037 -1684591040 -1217295379 -132957322 -543322263 -699663017 -309212434 -543473278 -415406505 -427731302 -1441967717 -380400361 -116727282 -1133774721 -32495326 -446582461 -1598145122 -855502120 -758309245 -265158106 -631585224 -379721750 -304511300 -1820141525 -196570489 -2006160299 -1838410053 -2078244571 -1519303354 -92766339 -1481426509 -84370399 -2047175855 -1696623877 -1110626951 -1052821998 -40140980 -725776724 -71478587 -334880253 -2005811631 -349919910 -1973998991 -1467133816 -1508081018 -201967992 -2123456246 -370406316 -462324490 -1180885064 -1422585722 -923477393 -1478231675 -1300975567 -1730973465 -1567885971 -1396645840 -1227145464 -687976188 -27675825 -825072193 -1916094303 -1916308447 -679338690 -33967896 -240505305 -1585435999 -1185682885 -613268233 -1959775221 -1643477270 -524589729 -1314346640 -287756628 diff --git a/examples/machsuite/merge/input1.data b/examples/machsuite/merge/input1.data deleted file mode 100644 index f165bf0dae..0000000000 --- a/examples/machsuite/merge/input1.data +++ /dev/null @@ -1,7 +0,0 @@ -%% -9 -8 -7 -6 -5 -%% \ No newline at end of file diff --git a/examples/machsuite/merge/testing.py b/examples/machsuite/merge/testing.py index 81ebeb83d2..289c630c9c 100644 --- a/examples/machsuite/merge/testing.py +++ b/examples/machsuite/merge/testing.py @@ -8,32 +8,19 @@ sys.path.insert(0, _dir) from mergesort import merge_sort -def read_data(filename): - with open(filename, 'r') as file: - lines = file.readlines() - data = [int(line.strip()) for line in lines if not line.startswith("%%")] - return data def main(): - input_data = read_data(os.path.join(_dir, "input.data")) - check_data = read_data(os.path.join(_dir, "check.data")) - - values = np.array(input_data).astype(np.int32) - - check = np.array(check_data).astype(np.int32) - + np.random.seed(42) + values = np.random.randint(0, 100000, size=2048).astype(np.int32) s = allo.customize(merge_sort) - mod = s.build() actual = mod(values) - - - np.testing.assert_allclose(actual, check, rtol=1e-5, atol=1e-5) - + expected = np.sort(values) + np.testing.assert_allclose(actual, expected, rtol=1e-5, atol=1e-5) + print("PASS!") if __name__ == "__main__": main() - diff --git a/examples/machsuite/nw/check.data b/examples/machsuite/nw/check.data deleted file mode 100644 index 18b4d513ca..0000000000 --- a/examples/machsuite/nw/check.data +++ /dev/null @@ -1,5 +0,0 @@ -%% -cggccgcttag-tgggtgcggtgctaagggggctagagggcttg-tc-gcggggcacgggacatgcg--gcg-t--cgtaaaccaaacat-g-gcgccgggag-attatgctcttgcacg-acag-ta----g-gat-aaagc---agc-t_________________________________________________________________________________________________________ -%% ---------tagct-ggtaccgt-ctaa-gtggc--ccggg-ttgagcggctgggca--gg-c-tg-gaag-gttagcgt-aaggagatatagtccg-cgggtgcagggtg-gctggcccgtacagctacctggcgctgtgcgcgggagctt_________________________________________________________________________________________________________ -%% diff --git a/examples/machsuite/nw/input.data b/examples/machsuite/nw/input.data deleted file mode 100644 index b1589b9473..0000000000 --- a/examples/machsuite/nw/input.data +++ /dev/null @@ -1,5 +0,0 @@ -%% -tcgacgaaataggatgacagcacgttctcgtattagagggccgcggtacaaaccaaatgctgcggcgtacagggcacggggcgctgttcgggagatcgggggaatcgtggcgtgggtgattcgccggc -%% -ttcgagggcgcgtgtcgcggtccatcgacatgcccggtcggtgggacgtgggcgcctgatatagaggaatgcgattggaaggtcggacgggtcggcgagttgggcccggtgaatctgccatggtcgat -%% diff --git a/examples/machsuite/nw/test_nw.py b/examples/machsuite/nw/test_nw.py index 3b5d4cd6ce..edf230243e 100644 --- a/examples/machsuite/nw/test_nw.py +++ b/examples/machsuite/nw/test_nw.py @@ -2,64 +2,112 @@ # SPDX-License-Identifier: Apache-2.0 import os +import sys import numpy as np import allo + +_dir = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, _dir) from nw import needwun, ALEN, BLEN, RESULT_LEN -def test_nw(): - data_dir = os.path.dirname(os.path.abspath(__file__)) - - # Read input sequences - input_path = os.path.join(data_dir, "input.data") - sections = [] - with open(input_path, 'r') as f: - current = [] - for line in f: - if line.strip() == '%%': - if current: - sections.append(''.join(current)) - current = [] + +def nw_reference(seq_a, seq_b): + """Python reference for Needleman-Wunsch alignment.""" + MATCH_SCORE = 1 + MISMATCH_SCORE = -1 + GAP_SCORE = -1 + ALIGN_VAL = 1 + SKIPA_VAL = 2 + SKIPB_VAL = 3 + + alen = len(seq_a) + blen = len(seq_b) + result_len = alen + blen + + M = np.zeros((blen + 1, alen + 1), dtype=np.int32) + ptr = np.zeros((blen + 1, alen + 1), dtype=np.int32) + + for i in range(alen + 1): + M[0, i] = i * GAP_SCORE + for j in range(blen + 1): + M[j, 0] = j * GAP_SCORE + + for bi in range(1, blen + 1): + for ai in range(1, alen + 1): + score = MATCH_SCORE if seq_a[ai - 1] == seq_b[bi - 1] else MISMATCH_SCORE + up_left = M[bi - 1, ai - 1] + score + up = M[bi - 1, ai] + GAP_SCORE + left = M[bi, ai - 1] + GAP_SCORE + + max_val = max(up_left, up, left) + M[bi, ai] = max_val + if max_val == left: + ptr[bi, ai] = SKIPB_VAL + elif max_val == up: + ptr[bi, ai] = SKIPA_VAL else: - current.append(line.strip()) - if current: - sections.append(''.join(current)) + ptr[bi, ai] = ALIGN_VAL + + result = np.zeros((2, result_len), dtype=np.int32) + a_idx, b_idx = alen, blen + idx = 0 + for _ in range(result_len): + if a_idx > 0 or b_idx > 0: + if a_idx == 0: + result[0, idx] = 45 # '-' + result[1, idx] = seq_b[b_idx - 1] + idx += 1 + b_idx -= 1 + elif b_idx == 0: + result[0, idx] = seq_a[a_idx - 1] + result[1, idx] = 45 # '-' + idx += 1 + a_idx -= 1 + else: + if ptr[b_idx, a_idx] == ALIGN_VAL: + result[0, idx] = seq_a[a_idx - 1] + result[1, idx] = seq_b[b_idx - 1] + idx += 1 + a_idx -= 1 + b_idx -= 1 + elif ptr[b_idx, a_idx] == SKIPB_VAL: + result[0, idx] = seq_a[a_idx - 1] + result[1, idx] = 45 # '-' + idx += 1 + a_idx -= 1 + else: + result[0, idx] = 45 # '-' + result[1, idx] = seq_b[b_idx - 1] + idx += 1 + b_idx -= 1 + + # Pad with '_' (95) + for i in range(result_len): + if result[0, i] == 0: + result[0, i] = 95 + if result[1, i] == 0: + result[1, i] = 95 + + return result - seq_a_str = sections[0][:ALEN] - seq_b_str = sections[1][:BLEN] - # Convert to int32 arrays (ASCII values) - seq_a = np.array([ord(c) for c in seq_a_str], dtype=np.int32) - seq_b = np.array([ord(c) for c in seq_b_str], dtype=np.int32) +def test_nw(): + np.random.seed(42) + + # Generate random DNA-like sequences + alphabet = [ord(c) for c in "ACGT"] + seq_a = np.array([alphabet[i] for i in np.random.randint(0, 4, size=ALEN)], dtype=np.int32) + seq_b = np.array([alphabet[i] for i in np.random.randint(0, 4, size=BLEN)], dtype=np.int32) # Build and run s = allo.customize(needwun) mod = s.build() out = mod(seq_a, seq_b) - # Convert result back to strings - aligned_a = ''.join(chr(c) for c in out[0]) - aligned_b = ''.join(chr(c) for c in out[1]) - - # Read expected output - check_path = os.path.join(data_dir, "check.data") - check_sections = [] - with open(check_path, 'r') as f: - current = [] - for line in f: - if line.strip() == '%%': - if current: - check_sections.append(''.join(current)) - current = [] - else: - current.append(line.strip()) - if current: - check_sections.append(''.join(current)) - - expected_a = check_sections[0][:RESULT_LEN] - expected_b = check_sections[1][:RESULT_LEN] + # Python reference + expected = nw_reference(seq_a, seq_b) - assert aligned_a == expected_a, f"AlignedA mismatch!\nGot: {aligned_a[:80]}...\nExpected: {expected_a[:80]}..." - assert aligned_b == expected_b, f"AlignedB mismatch!\nGot: {aligned_b[:80]}...\nExpected: {expected_b[:80]}..." + np.testing.assert_array_equal(out, expected) print("PASS!") if __name__ == "__main__": diff --git a/examples/machsuite/sort/radix/check.data b/examples/machsuite/sort/radix/check.data deleted file mode 100644 index d720516150..0000000000 --- a/examples/machsuite/sort/radix/check.data +++ /dev/null @@ -1,2049 +0,0 @@ -%% -2133347 -3755034 -3757680 -5114060 -6748351 -11497565 -13360332 -14464969 -14535786 -15264621 -16570194 -16921963 -16959813 -19892644 -20193475 -20865036 -21389248 -22768866 -25100496 -25776468 -25869575 -27666284 -27675825 -28990799 -29381863 -29653602 -30894415 -32011475 -32283582 -32495326 -33287680 -33423244 -33797863 -33967896 -34606601 -34794482 -36491596 -36513003 -37313539 -37577570 -37600544 -37958120 -39484517 -40140980 -41705353 -42383451 -43902811 -44125235 -47621339 -47866257 -48905545 -51198210 -51245290 -55100470 -58572672 -59206569 -60974523 -62624058 -62830115 -63917942 -65375150 -65864705 -66411149 -67176562 -67874428 -68604017 -69122538 -69969612 -70599058 -71478587 -72158627 -72460518 -73066829 -76115669 -76700937 -78410211 -80693604 -80818357 -81692302 -82876636 -83314681 -84370399 -85297387 -85901251 -87087128 -87248777 -87270835 -88325323 -89650033 -90635783 -92766339 -93482676 -93987402 -95454661 -95598889 -96657364 -98319525 -99479956 -100077314 -100936390 -101347165 -101884596 -102673761 -105234290 -105724135 -105877669 -106828160 -109081969 -110019408 -111155111 -111436477 -111756298 -111885734 -113221775 -114342047 -116727282 -118360318 -119602863 -120372826 -121774000 -122470461 -123620487 -127031658 -127386675 -127839099 -128191180 -128199623 -128894687 -128928023 -128952447 -132957322 -133709002 -134086399 -134097471 -135356844 -136883456 -137991365 -139185907 -139309844 -139783465 -144522435 -145125081 -145181215 -146301892 -146480651 -147666338 -148366910 -149065532 -150020171 -150337966 -150901144 -151035803 -151333492 -151499496 -152600286 -153048093 -153207158 -154698022 -155477576 -155859496 -156300070 -156543006 -156692706 -156960811 -160415738 -161717562 -163522198 -164019660 -165337021 -165449550 -165757953 -166148387 -168634616 -169996838 -170250664 -170391257 -170463985 -171333890 -172081653 -172179489 -174384850 -175276916 -176394620 -177133202 -177548100 -177623586 -177771287 -179816643 -180988319 -181874898 -182069082 -183070972 -184954528 -185259225 -185589616 -186545648 -186735955 -187577258 -187757211 -189071296 -189324225 -189486773 -190068440 -190526577 -191656740 -191855552 -192699922 -194033189 -194304077 -194961368 -195485565 -195575558 -195791553 -196570489 -198128026 -198515425 -199018542 -200930301 -201967992 -203588067 -206702553 -207237193 -208236790 -208753405 -212096210 -212764022 -213296204 -213358112 -215084709 -216451246 -216730162 -217581202 -217859346 -218079139 -220029168 -222764447 -222774002 -224370131 -225640914 -225891607 -227234597 -228193101 -228756043 -230054271 -230116054 -231968216 -232320438 -234368065 -236157269 -238322615 -239056365 -240134265 -240505305 -242255706 -243261054 -243305723 -244437562 -246048882 -247483746 -247597272 -248943784 -248987466 -249178659 -250211688 -250544064 -253359016 -254388947 -255055848 -256610514 -257004501 -257911218 -258103701 -260995967 -261522116 -261653045 -263877273 -264114698 -265158106 -265255716 -265337843 -266261552 -267592551 -267898534 -269286404 -269570899 -269644648 -270842593 -271001503 -271321916 -271463051 -274284400 -275490071 -277528908 -278812137 -278846449 -279972861 -280371522 -281450081 -284387350 -285571409 -286532441 -286665591 -286841615 -287756628 -288148609 -289705845 -291409102 -293433174 -294813100 -295984014 -297554450 -297823665 -297869098 -299389274 -299898902 -300761205 -302354825 -302652346 -303590601 -304511300 -305434839 -306233773 -306822213 -307203772 -308134579 -308994026 -309212434 -310302420 -310662211 -310665455 -311356082 -312251881 -314315478 -315948592 -320253652 -320990176 -321993998 -325031938 -325290524 -325464775 -328655625 -329738404 -330737581 -330792297 -332327337 -333247645 -334543417 -334880253 -334977553 -335715992 -336541300 -337601622 -338856656 -342063486 -342070919 -344296193 -349919910 -350127017 -351873178 -352228300 -353885535 -355079864 -355535304 -355560126 -355663123 -355827223 -356093208 -356194072 -358187431 -361261943 -362170271 -368123457 -370000419 -370391868 -370406316 -371167247 -371943766 -375078779 -377206183 -379721750 -379897203 -380400361 -380681534 -381891319 -382115769 -382894292 -384805441 -385862243 -392336178 -392961592 -394042623 -394189989 -394664535 -396095779 -396375367 -397615021 -400859314 -403111108 -403955460 -404866075 -407019027 -407338232 -407394234 -408591603 -409435661 -410327491 -413733332 -413952789 -415406505 -417049677 -417112292 -417730805 -418518584 -419218001 -420033603 -421766723 -422151624 -423694845 -424635729 -426239114 -426368885 -426858731 -427310717 -427731302 -429639342 -429741617 -429882966 -433157790 -433315813 -434370628 -434550013 -436827523 -439115595 -439420872 -439666194 -440638102 -440797705 -441400426 -442054749 -442247466 -443973176 -444128215 -444869164 -445929743 -446035477 -446582461 -446669555 -448651778 -449325307 -450180092 -453173852 -456679784 -460964936 -461038923 -461186368 -461386911 -462324490 -463015512 -466353018 -466890649 -467485606 -469191954 -469606255 -470747628 -470920964 -471437709 -472147699 -472376887 -474042834 -475239808 -477793157 -477796026 -477837560 -477994546 -479378426 -480093923 -480755265 -481430369 -483764857 -484374348 -485470119 -488305458 -488787171 -491184830 -494700070 -495965166 -495999182 -496276526 -496705994 -498204267 -498679396 -502743441 -503395919 -503974112 -505236584 -505318934 -505651416 -507333260 -509043494 -510319326 -510490837 -512010901 -512735686 -514380753 -515229764 -517175601 -520630890 -522708374 -524037430 -524157971 -524589729 -525189582 -526857678 -527155034 -527747622 -529333204 -530630168 -532918727 -532974825 -533206101 -533566406 -534440455 -535153458 -536145871 -537126833 -540184876 -541468179 -543322263 -543473278 -544807927 -544833283 -545094225 -545325403 -546700911 -549024074 -550021592 -553748629 -553810021 -555271126 -555566939 -556662332 -560186184 -561622493 -561858461 -563554428 -563762887 -565681876 -565800731 -566064689 -566225790 -566948716 -567355160 -568740973 -569091874 -569866125 -570351679 -571532202 -571692111 -571913873 -572148025 -572382664 -573024774 -573553042 -574107939 -574110884 -574493348 -575072672 -575225045 -575410850 -576622031 -576793022 -577928774 -578934327 -580950754 -581839897 -581929050 -582040172 -582241926 -582856665 -584977769 -585230318 -586080090 -587037925 -587655589 -587767534 -587916663 -588200933 -589330536 -589994150 -590784521 -590956460 -591164384 -593608013 -594786342 -597276011 -599711002 -600033258 -600477902 -601273025 -602854601 -603437841 -604513972 -606824780 -612383828 -613268233 -613529359 -615255022 -615396429 -615465251 -617601891 -619028234 -619433493 -619600306 -619670720 -620801916 -622945444 -623522623 -624009478 -625175432 -625384414 -626485281 -627008650 -629196542 -631585224 -632426210 -632657984 -633725180 -633950703 -634966326 -635151053 -636440904 -637126175 -638126241 -638785636 -640042407 -641476730 -642497135 -642811328 -644816858 -645644963 -645888076 -647202043 -647566861 -648920224 -649418674 -649968691 -650800084 -650896432 -651856529 -653182226 -653548551 -654040018 -654196693 -654528262 -654953859 -655371791 -656216426 -656363920 -657058228 -659854392 -661211720 -662099942 -663304095 -663507254 -664661815 -667549624 -669470941 -669729404 -670730778 -671092095 -673553453 -673939191 -674185448 -675168495 -675626112 -676159587 -677596581 -679338690 -680154439 -680538897 -682966620 -683533351 -683562227 -684312237 -684786026 -685518568 -686696903 -686712154 -686806421 -687976188 -688030609 -688349205 -688409711 -688458885 -689731123 -690139864 -690340275 -691710619 -693156114 -695452877 -697034874 -697126989 -698372168 -698735397 -699187511 -699663017 -700320492 -705207687 -708933711 -710833831 -712594424 -712973066 -712981076 -712997872 -714517701 -715522899 -715553437 -715902510 -716307040 -717117315 -719448316 -720006110 -722929758 -725038219 -725273676 -725776724 -730203072 -730675129 -730808830 -733476653 -733984101 -734093500 -735891214 -736956260 -738685536 -738881659 -739660204 -741025494 -741418432 -743345365 -744237267 -744357234 -744811305 -745378755 -746394489 -746617994 -747237852 -747629642 -747957429 -748843663 -750880416 -752732815 -757693590 -757956417 -758036067 -758299180 -758309245 -758747878 -760832339 -761135150 -761990740 -764040994 -767231266 -767356740 -767456013 -768137467 -769562455 -771445491 -772232460 -772564030 -775053198 -775345665 -775464769 -778720014 -778793566 -781720704 -782100758 -782182721 -783463990 -791279994 -791876198 -792265037 -794289828 -796271435 -796629791 -796806456 -797661895 -798120086 -798742964 -800065723 -803122230 -804293100 -807198688 -807487382 -807650229 -808500002 -808577261 -808830103 -809073182 -809264055 -809276456 -810284694 -811952156 -812433900 -813759669 -817956649 -818949154 -819592305 -820782732 -822154166 -822605154 -824100101 -825072193 -826107839 -827043256 -827249544 -828922529 -831110648 -831460600 -831989131 -832280789 -832694119 -833364330 -833850611 -834541135 -838266613 -839107675 -839148521 -840691116 -842556374 -844180205 -844692692 -845612054 -845863361 -846697057 -846871207 -848683553 -850405899 -850784234 -851123424 -852197140 -855502120 -855586245 -855668781 -855675633 -855879190 -855957287 -856117299 -856163730 -857924069 -859068360 -861414954 -862220124 -862884446 -864712182 -868199677 -869562959 -869731817 -870211055 -874435881 -877005609 -878151227 -878431464 -878975232 -880060227 -880325991 -880407103 -881467599 -883528647 -884061622 -884238878 -884886315 -885339106 -885938485 -886705747 -887832138 -887851153 -888016505 -888378984 -889041242 -889558597 -890214205 -890996604 -891002766 -892456149 -895203452 -895333635 -899241182 -899521529 -901869777 -903776433 -904117025 -904844916 -905578736 -906203575 -906811784 -906812863 -911439955 -913039220 -913210060 -913408239 -913546305 -915003592 -915056003 -915682031 -919030930 -919061917 -920120429 -921374992 -922348435 -923023429 -923477393 -923510154 -924717512 -925823612 -926141078 -928060762 -929515894 -929610229 -929774247 -930810656 -931278473 -932779695 -933376004 -935575241 -937167562 -937219425 -938525317 -938531752 -939110988 -940359383 -940414037 -943290983 -945732052 -948235397 -948583912 -948660600 -949308911 -949738733 -950017849 -950546871 -952105334 -953346621 -953389511 -957614860 -958114106 -958204191 -958475713 -959114025 -959591760 -959767948 -959847712 -960509540 -963616547 -964714143 -965216452 -966500528 -966540065 -966656346 -968134515 -969142497 -970035152 -970890193 -971012069 -972380635 -972432201 -972720185 -973272863 -973421597 -974146282 -974611758 -975595750 -976556402 -978797663 -978889362 -979882348 -982559445 -982971994 -983027648 -983036142 -983326361 -983769777 -984775739 -985667224 -986185740 -987100826 -988389331 -988814076 -989310069 -989780742 -990148370 -990510471 -998034057 -998574805 -1002103818 -1002382477 -1002781191 -1006476475 -1007073583 -1007413192 -1008080182 -1008917238 -1009562350 -1011126259 -1011426922 -1011465638 -1011728700 -1012978043 -1013596633 -1015486081 -1017605774 -1019123948 -1020998191 -1025378896 -1025539030 -1027145810 -1027218802 -1028402758 -1028943287 -1029044046 -1029473878 -1030745371 -1030891483 -1031661611 -1035063037 -1036163211 -1036324244 -1038024060 -1038079141 -1039609563 -1041291898 -1043514001 -1043671504 -1043748460 -1043799665 -1043813904 -1044906031 -1045155143 -1049227491 -1049335247 -1049728079 -1049845316 -1050330236 -1050997197 -1051457277 -1052821998 -1055687629 -1056661716 -1057862950 -1059798558 -1059806210 -1060288813 -1060696357 -1061518049 -1061892401 -1062922841 -1066649388 -1066972125 -1068053540 -1070355746 -1071401003 -1073048018 -1074097729 -1074286241 -1074300668 -1074483465 -1076063081 -1076611070 -1077160981 -1081087911 -1081585836 -1082854026 -1082946820 -1084899449 -1086035569 -1086200684 -1087460587 -1088190640 -1088812321 -1089642825 -1090531306 -1090974754 -1092306234 -1092710391 -1092953187 -1093221553 -1095075549 -1095541326 -1098270690 -1099260427 -1099741236 -1103884228 -1104249874 -1104858395 -1107290731 -1108017302 -1108811950 -1109418933 -1109622328 -1109855432 -1110626951 -1112932854 -1114555094 -1114901368 -1116883499 -1117756527 -1117811582 -1118528663 -1121395876 -1121418962 -1125116660 -1126356873 -1128584764 -1132845513 -1133750821 -1133774721 -1133824038 -1135598074 -1135620094 -1136933701 -1138038366 -1139318757 -1139540709 -1140779057 -1140871300 -1141337493 -1141625008 -1143906286 -1144962169 -1146517530 -1147868582 -1150608565 -1150685699 -1152561826 -1152658053 -1152870612 -1153411159 -1153831208 -1155746337 -1156777289 -1157339335 -1157521215 -1159311377 -1160173737 -1160512943 -1161042045 -1161314948 -1163243317 -1164236034 -1164772417 -1167644629 -1169503075 -1169798951 -1170087820 -1172837198 -1174834475 -1175335789 -1175852528 -1177950017 -1179092924 -1180171844 -1180885064 -1181139571 -1181417357 -1183706182 -1185682885 -1185794840 -1185820321 -1186424475 -1186749668 -1188795072 -1188961944 -1189752626 -1190803319 -1190905355 -1194156988 -1195126377 -1196073904 -1196102277 -1197836840 -1199917825 -1200831126 -1200952768 -1201701021 -1202350460 -1203533423 -1203560793 -1204015278 -1204603742 -1205290644 -1205463274 -1205578490 -1206155886 -1206390092 -1206963419 -1207379225 -1208131300 -1209892037 -1211066244 -1215426612 -1216726543 -1217295379 -1217890510 -1218550582 -1220333667 -1220504126 -1225723697 -1225936051 -1227145464 -1227250292 -1227437587 -1228449626 -1230989666 -1234319084 -1234818297 -1235930752 -1237457277 -1237975020 -1238195981 -1239022902 -1241008979 -1241623934 -1242283544 -1243363704 -1243702427 -1245554671 -1246420553 -1247105271 -1248644863 -1252662158 -1252894316 -1255682160 -1257913932 -1258401652 -1258466362 -1259656278 -1261553536 -1262117610 -1263325058 -1267194477 -1268173144 -1268605809 -1269116464 -1269130261 -1270135577 -1271224717 -1273404932 -1275248869 -1277243675 -1277321980 -1280088237 -1280377319 -1283366129 -1283452965 -1288300668 -1288593639 -1288963009 -1289143959 -1289636648 -1289710990 -1291395605 -1292482679 -1293750767 -1296097952 -1300663257 -1300801411 -1300975567 -1304926989 -1307929928 -1308135181 -1308199630 -1308827711 -1310389367 -1314346640 -1314379214 -1314761427 -1315274444 -1318176443 -1318724530 -1318788757 -1320744276 -1322378188 -1322899191 -1322903332 -1323635552 -1325636480 -1327244745 -1327717577 -1328483569 -1329163456 -1330148002 -1330356158 -1330750916 -1331213739 -1334292065 -1335953484 -1336095842 -1337023357 -1338304372 -1339916712 -1340913190 -1344001400 -1347420787 -1348885486 -1349015110 -1349960247 -1350773514 -1351690990 -1352022878 -1353432239 -1354578859 -1355355406 -1356742879 -1357124699 -1357126034 -1357403688 -1358323379 -1358767116 -1359635656 -1360170634 -1360482924 -1362144698 -1362843647 -1362978041 -1363477108 -1366155872 -1366534343 -1366540379 -1370274737 -1370612980 -1371516301 -1372082487 -1375376180 -1375996180 -1376179498 -1376525530 -1376862374 -1377121447 -1378231989 -1378629143 -1379034746 -1379702275 -1380501622 -1382222743 -1382277369 -1386167239 -1386353267 -1388546716 -1388983728 -1389889911 -1391960827 -1395863973 -1396295365 -1396645840 -1401333919 -1402247546 -1404491762 -1405497708 -1405789849 -1406437932 -1409507697 -1409829600 -1410156639 -1410552188 -1410765040 -1413994924 -1414207923 -1414423038 -1414528615 -1417951513 -1422027837 -1422585722 -1422685798 -1423639214 -1424215948 -1424752169 -1426697691 -1427718200 -1429354919 -1430036275 -1430365678 -1432518129 -1435813687 -1436648428 -1436803764 -1436923733 -1436925357 -1437804740 -1441967717 -1442696964 -1444528980 -1446109254 -1447146831 -1447529023 -1447639092 -1452760991 -1452949634 -1454208590 -1455007941 -1455129140 -1455163933 -1456500105 -1457477494 -1458969496 -1459936822 -1464154677 -1466255376 -1466647222 -1467133816 -1469672015 -1471685662 -1475644449 -1476113587 -1477040484 -1477125634 -1477958868 -1478052781 -1478231675 -1479091917 -1480023781 -1481426509 -1481673943 -1481954328 -1485761527 -1486010819 -1490088251 -1490293414 -1490551067 -1490855871 -1490993762 -1492372309 -1495513018 -1496403843 -1496856968 -1498584073 -1500513730 -1502453831 -1502970603 -1504889936 -1505342868 -1507596870 -1507828443 -1507871622 -1508081018 -1508414985 -1508415400 -1508479159 -1508784989 -1508899123 -1509102120 -1509239253 -1509423999 -1511282393 -1511471584 -1511975455 -1512337459 -1512366409 -1514185138 -1517833798 -1517889260 -1518491148 -1519303354 -1519638970 -1520134395 -1520682189 -1521269681 -1521856552 -1521977514 -1523490095 -1524089052 -1524439365 -1525501767 -1526049370 -1526083639 -1526265741 -1527380174 -1527421456 -1529439264 -1529777199 -1530083358 -1530120543 -1532297134 -1534366741 -1534846639 -1537880576 -1538159254 -1538229015 -1539989091 -1540741826 -1541002096 -1541074474 -1541111920 -1541721121 -1544221168 -1545737076 -1546967413 -1548221944 -1548399784 -1549529019 -1549733557 -1550538745 -1551165877 -1552449187 -1554873250 -1555063811 -1555839117 -1557213329 -1558931031 -1559662372 -1561025502 -1562199863 -1563098806 -1564028159 -1566921788 -1567582626 -1567885971 -1568409342 -1569699514 -1570568754 -1570682769 -1571401088 -1571615945 -1573197253 -1573306030 -1574199191 -1574664725 -1575838288 -1577296486 -1578225787 -1578615594 -1578783094 -1579943353 -1580519681 -1581562042 -1583299513 -1584569620 -1585435999 -1591980305 -1594259114 -1596482838 -1596566478 -1596781798 -1598145122 -1598474177 -1598702022 -1598880106 -1601476259 -1604608585 -1605673665 -1606094474 -1607153388 -1608483043 -1609576996 -1609966836 -1610106089 -1610212241 -1612961280 -1614633814 -1615301359 -1615396489 -1615586521 -1615644249 -1617349948 -1619540398 -1622220773 -1622566196 -1622672547 -1622858086 -1624464501 -1624469284 -1625624387 -1626442863 -1626561260 -1626835703 -1627131223 -1628704410 -1629979228 -1631921401 -1632359870 -1632447212 -1633900703 -1634092629 -1634849629 -1634970761 -1635095625 -1638858151 -1639101257 -1639266374 -1639375178 -1643044260 -1643477270 -1643600058 -1646270397 -1647081533 -1648638369 -1649158032 -1651359165 -1651757254 -1652676409 -1653666869 -1654496076 -1655987401 -1658941557 -1660130224 -1660399521 -1660648751 -1663738178 -1664461865 -1664938017 -1665344106 -1666581461 -1667198857 -1668027402 -1668301266 -1669934750 -1670756727 -1671375771 -1672057153 -1673714908 -1674101664 -1675299198 -1677345411 -1678071040 -1678802734 -1679356962 -1680245394 -1681992484 -1682345589 -1682795575 -1683700383 -1684298076 -1684591040 -1686133874 -1686201683 -1693046234 -1696623877 -1698620703 -1700597509 -1702429773 -1703593893 -1705151327 -1706381830 -1706621285 -1708884929 -1712530333 -1714271246 -1716268655 -1717303496 -1717619409 -1717771501 -1717784670 -1717898129 -1720162062 -1721413076 -1722060509 -1723393945 -1724525858 -1725179668 -1726223739 -1730973465 -1731352982 -1734614399 -1735003835 -1736059900 -1739031566 -1739709739 -1742200000 -1743060669 -1743156388 -1743560317 -1744091564 -1747034742 -1748920694 -1749360430 -1750705322 -1751012237 -1751481862 -1751706861 -1752801464 -1753942928 -1754206178 -1755190221 -1757516351 -1758303713 -1761029936 -1761115959 -1762325188 -1762541667 -1763803382 -1763962871 -1766708683 -1767102385 -1767385714 -1767960493 -1770782659 -1773889298 -1775413870 -1775824841 -1776748374 -1776907376 -1777087870 -1777687620 -1777860200 -1778540681 -1781370922 -1781463861 -1782981879 -1783108894 -1785165035 -1787046589 -1787727134 -1787922118 -1789130811 -1791501057 -1794023617 -1794658020 -1795509528 -1795907770 -1796184127 -1796300787 -1797062632 -1798205555 -1802694996 -1802842080 -1804722203 -1804991596 -1805045931 -1808063237 -1808277272 -1808409362 -1809053399 -1809816412 -1811254570 -1812653640 -1813623839 -1815633090 -1818417574 -1820141525 -1820537604 -1822410595 -1823946607 -1824181053 -1824488320 -1825081759 -1826954830 -1828731468 -1830311501 -1830732408 -1831135391 -1832175712 -1832407011 -1832970857 -1834168494 -1835805781 -1838108796 -1838410053 -1838522490 -1838585137 -1838827365 -1842721649 -1842753670 -1844269578 -1844561354 -1845237492 -1847931834 -1847955003 -1849441842 -1849930260 -1851144058 -1851394246 -1851918902 -1852864695 -1853098254 -1855992217 -1857013270 -1860452983 -1862173806 -1862290036 -1862424942 -1862516074 -1863090771 -1869118844 -1870686501 -1871737210 -1871930841 -1873231157 -1873342560 -1873437237 -1873914717 -1874050798 -1874446752 -1877665128 -1878336665 -1878457419 -1878652257 -1879212775 -1882195988 -1883277337 -1883661820 -1884372854 -1884757001 -1884958763 -1886068611 -1886163330 -1886436552 -1887274953 -1887487879 -1888071966 -1888220505 -1889248804 -1890353495 -1891793940 -1896019661 -1896476627 -1896647369 -1897820551 -1902153909 -1902254400 -1902339426 -1904253857 -1907078094 -1907538605 -1907580398 -1907807070 -1907911431 -1909053670 -1909718144 -1911249842 -1915352982 -1915682127 -1916020202 -1916094303 -1916259885 -1916308447 -1916828746 -1916908871 -1916993507 -1918376468 -1918632021 -1919583369 -1920728646 -1922036040 -1922614328 -1923924460 -1924416135 -1924633218 -1925056591 -1925082982 -1927651160 -1929621642 -1929913575 -1931573183 -1932716859 -1934613289 -1935068243 -1936377891 -1938115516 -1940511093 -1942290066 -1945580778 -1946213519 -1947409049 -1948715918 -1949700165 -1950213303 -1950273149 -1951327492 -1951377854 -1953285454 -1953576625 -1955039518 -1955293159 -1956068826 -1956126820 -1956991390 -1957012319 -1957602825 -1958219970 -1959287271 -1959338304 -1959775221 -1961650964 -1963473417 -1963770886 -1965873054 -1966615493 -1967364101 -1967458050 -1967928355 -1968849511 -1970429577 -1973194763 -1973998991 -1974957533 -1976452159 -1976830581 -1977247419 -1980953401 -1982013299 -1982165897 -1982312774 -1985493594 -1985953656 -1988645768 -1989365107 -1989677061 -1991495774 -1992004640 -1992319864 -1992886662 -1994105611 -1994425709 -1995915674 -1996070097 -1996684564 -1996730701 -1997162113 -1997623469 -1998377219 -1999127721 -2001200452 -2005054881 -2005811631 -2006160299 -2006982087 -2009652075 -2009798832 -2010057298 -2013001410 -2017315325 -2019357220 -2019932464 -2021770828 -2023037910 -2023613712 -2024107971 -2024945956 -2027242748 -2027485539 -2028513672 -2029183499 -2029656846 -2029866940 -2033017829 -2033754513 -2035115070 -2035742309 -2035752357 -2038696287 -2040229806 -2040360225 -2040914781 -2041430432 -2041922925 -2042693768 -2042892557 -2043808773 -2044732291 -2044819044 -2045928996 -2047175855 -2049075599 -2049884625 -2051581527 -2052223638 -2052476522 -2053285680 -2057529922 -2061783685 -2063389035 -2065420671 -2065468078 -2066152872 -2066161218 -2066209600 -2066451533 -2067955182 -2068587877 -2071142127 -2072291183 -2073205469 -2073575906 -2075304330 -2076257739 -2077984882 -2078244571 -2078387171 -2078588264 -2078809135 -2079506846 -2079856010 -2080912538 -2081640854 -2083692784 -2083830786 -2084230463 -2084376878 -2084381027 -2084804186 -2086945996 -2086956417 -2087272360 -2089096067 -2089420814 -2091020153 -2096925230 -2097234590 -2098333903 -2100035316 -2101153676 -2102342705 -2102759154 -2107573499 -2107879177 -2108631302 -2112022026 -2112321593 -2113258941 -2113307749 -2113939165 -2114483017 -2115926688 -2116358856 -2116500429 -2116642867 -2118036408 -2118454202 -2118918951 -2119234197 -2123456246 -2123781138 -2125209562 -2126242116 -2126524027 -2126751739 -2127559558 -2128021970 -2128389497 -2132256492 -2133026663 -2133146643 -2137312385 -2142772926 -2143582251 -2143642374 -2144650720 -2146276546 -2147208091 diff --git a/examples/machsuite/sort/radix/input.data b/examples/machsuite/sort/radix/input.data deleted file mode 100644 index 5a655a5227..0000000000 --- a/examples/machsuite/sort/radix/input.data +++ /dev/null @@ -1,2049 +0,0 @@ -%% -1109418933 -1238195981 -1655987401 -1435813687 -568740973 -194304077 -85901251 -90635783 -1521856552 -561622493 -1490293414 -1693046234 -978889362 -758747878 -238322615 -449325307 -111436477 -1663738178 -34606601 -2101153676 -807487382 -1239022902 -1622566196 -1916259885 -308994026 -1703593893 -1508899123 -1362978041 -325464775 -1670756727 -474042834 -906811784 -291409102 -440797705 -904844916 -2116642867 -582856665 -1432518129 -1375376180 -1237457277 -638126241 -576622031 -1624464501 -949308911 -979882348 -1825081759 -303590601 -269644648 -1185820321 -466890649 -924717512 -1525501767 -289705845 -1169798951 -332327337 -990148370 -1174834475 -1632359870 -230054271 -1066649388 -688349205 -892456149 -239056365 -757693590 -177623586 -1161314948 -461186368 -1322903332 -1202350460 -2040360225 -1598474177 -1382277369 -599711002 -154698022 -1767102385 -1712530333 -1808063237 -1117811582 -156300070 -859068360 -2089420814 -1897820551 -1017605774 -310662211 -2073205469 -1031661611 -1139318757 -1237975020 -1372082487 -299389274 -890214205 -690340275 -1252662158 -593608013 -151499496 -1308135181 -83314681 -1514185138 -1953285454 -1702429773 -885339106 -1628704410 -1660130224 -1104858395 -1664461865 -566948716 -1140779057 -76115669 -1041291898 -1280088237 -1008080182 -127839099 -1327244745 -1967364101 -574110884 -236157269 -1143906286 -715553437 -1056661716 -1791501057 -820782732 -1090531306 -1362843647 -47866257 -1512337459 -586080090 -1615644249 -1267194477 -719448316 -1717784670 -987100826 -758299180 -1530120543 -1606094474 -986185740 -1625624387 -281450081 -248943784 -1976452159 -1248644863 -1204603742 -37313539 -1289636648 -1228449626 -587916663 -509043494 -1787922118 -27666284 -456679784 -768137467 -145125081 -1873231157 -1664938017 -424635729 -1059806210 -561858461 -2017315325 -1351690990 -212764022 -1430036275 -655371791 -1293750767 -2071142127 -888016505 -1604608585 -330737581 -2091020153 -1750705322 -964714143 -295984014 -950546871 -526857678 -1270135577 -1823946607 -1557213329 -271463051 -922348435 -1639101257 -1752801464 -1043514001 -716307040 -928060762 -1992319864 -1477125634 -983769777 -96657364 -850784234 -625175432 -334977553 -846697057 -1935068243 -426368885 -1511975455 -1074286241 -1874050798 -1783108894 -576793022 -1013596633 -170463985 -3755034 -1314379214 -186735955 -243261054 -60974523 -1878652257 -1815633090 -66411149 -1614633814 -258103701 -686696903 -1802842080 -938525317 -1534846639 -1945580778 -725038219 -846871207 -151035803 -952105334 -1668027402 -852197140 -855879190 -1220504126 -688409711 -1886436552 -1268605809 -750880416 -59206569 -190068440 -1924633218 -2066152872 -571532202 -2133146643 -1550538745 -1108017302 -712973066 -1086200684 -989310069 -172179489 -1200952768 -1059798558 -1322899191 -1578225787 -502743441 -926141078 -155477576 -1838827365 -189486773 -105877669 -297823665 -796629791 -1809053399 -869562959 -300761205 -1300801411 -333247645 -2078588264 -744357234 -277528908 -1095075549 -1596482838 -1388983728 -1849441842 -111155111 -1622220773 -833364330 -1985493594 -248987466 -826107839 -180988319 -397615021 -1241008979 -2033017829 -775464769 -1409507697 -1851918902 -29381863 -1242283544 -1194156988 -530630168 -1132845513 -965216452 -1907580398 -379897203 -1330750916 -1002382477 -536145871 -356194072 -1610106089 -177548100 -1970429577 -1205463274 -948235397 -421766723 -514380753 -1698620703 -985667224 -983036142 -1997623469 -189071296 -1459936822 -831989131 -1896019661 -1626835703 -1259656278 -1781463861 -938531752 -2068587877 -288148609 -682966620 -1028943287 -698735397 -1571401088 -384805441 -1087460587 -2084376878 -1179092924 -1511282393 -206702553 -1126356873 -1777087870 -2067955182 -1159311377 -1544221168 -2128389497 -82876636 -2118454202 -540184876 -392961592 -1466255376 -948583912 -1234319084 -1549529019 -1907538605 -371167247 -190526577 -80693604 -1639375178 -1541074474 -1074097729 -1196073904 -807198688 -2052223638 -93482676 -1742200000 -1375996180 -615255022 -1436923733 -619433493 -1998377219 -1050997197 -1090974754 -929610229 -741418432 -855675633 -2084230463 -199018542 -582040172 -708933711 -915682031 -1950213303 -30894415 -355535304 -673553453 -181874898 -1888071966 -2133026663 -1541111920 -760832339 -620801916 -1961650964 -461386911 -1257913932 -33287680 -1437804740 -1904253857 -1246420553 -1633900703 -974611758 -1062922841 -278846449 -1490855871 -440638102 -757956417 -761990740 -1273404932 -410327491 -656363920 -1357403688 -1395863973 -2041922925 -839148521 -1678802734 -2076257739 -534440455 -1530083358 -1269130261 -247483746 -1447529023 -822154166 -1824488320 -1804991596 -475239808 -556662332 -988389331 -423694845 -730808830 -1573306030 -344296193 -810284694 -1156777289 -342070919 -1879212775 -2100035316 -1955293159 -590784521 -1761029936 -1896647369 -1610212241 -887851153 -915056003 -269570899 -1211066244 -194961368 -51245290 -1502453831 -311356082 -811952156 -602854601 -306822213 -1205578490 -915003592 -923510154 -222774002 -931278473 -1677345411 -1318724530 -932779695 -225891607 -891002766 -808830103 -2029183499 -507333260 -2013001410 -1564028159 -2024107971 -584977769 -1651757254 -257004501 -1923924460 -563762887 -101347165 -634966326 -1524439365 -2084381027 -1813623839 -838266613 -1902254400 -976556402 -1794023617 -1731352982 -684786026 -495999182 -1824181053 -856163730 -461038923 -195485565 -1526265741 -587767534 -1289710990 -845863361 -200930301 -1787046589 -1947409049 -929515894 -186545648 -72460518 -207237193 -578934327 -1889248804 -966500528 -959591760 -772232460 -624009478 -439115595 -517175601 -1548221944 -1409829600 -1916908871 -1761115959 -1753942928 -1153831208 -1932716859 -41705353 -1529777199 -1008917238 -227234597 -1452760991 -886705747 -617601891 -505236584 -269286404 -2143642374 -597276011 -695452877 -1496856968 -1426697691 -1985953656 -1601476259 -165757953 -261522116 -1989365107 -2127559558 -1077160981 -111885734 -1678071040 -1164772417 -844692692 -170391257 -1957602825 -1235930752 -175276916 -899241182 -1569699514 -1092953187 -2147208091 -1757516351 -1109855432 -160415738 -1135598074 -271001503 -1405789849 -439420872 -352228300 -2035742309 -1798205555 -187577258 -1632447212 -1029044046 -1116883499 -1275248869 -1873914717 -2006982087 -715522899 -2023037910 -2042693768 -824100101 -1751481862 -1739709739 -587037925 -1578783094 -1853098254 -422151624 -640042407 -919030930 -169996838 -1634092629 -698372168 -460964936 -878151227 -667549624 -1524089052 -959767948 -714517701 -555271126 -1444528980 -191656740 -1700597509 -382115769 -1241623934 -1675299198 -1252894316 -62624058 -1671375771 -1227437587 -150020171 -203588067 -1982312774 -2098333903 -590956460 -1884958763 -179816643 -512010901 -1300663257 -1360170634 -134086399 -496705994 -1045155143 -913408239 -320990176 -1334292065 -230116054 -1366155872 -85297387 -2107879177 -165449550 -1141625008 -510490837 -1646270397 -505651416 -913039220 -589330536 -1609966836 -527155034 -139309844 -653182226 -574107939 -274284400 -635151053 -1548399784 -1566921788 -1747034742 -170250664 -1963473417 -752732815 -1521269681 -1347420787 -895203452 -1262117610 -1190905355 -1464154677 -2115926688 -546700911 -1929621642 -649418674 -2072291183 -1871737210 -429639342 -1992004640 -933376004 -1071401003 -1789130811 -445929743 -809264055 -1584569620 -1036324244 -1802694996 -1114901368 -633950703 -286841615 -407394234 -480093923 -307203772 -629196542 -427310717 -1878336665 -1812653640 -215084709 -1379702275 -1959338304 -220029168 -505318934 -1378231989 -189324225 -601273025 -362170271 -1355355406 -966656346 -906203575 -144522435 -1549733557 -1828731468 -675626112 -625384414 -641476730 -472376887 -400859314 -1315274444 -2107573499 -1086035569 -1277243675 -102673761 -498204267 -1996684564 -524037430 -1339916712 -1748920694 -1329163456 -2057529922 -1167644629 -647202043 -429741617 -644816858 -1076063081 -848683553 -1608483043 -722929758 -1615586521 -72158627 -305434839 -165337021 -839107675 -1686133874 -1907911431 -1424752169 -2049884625 -95598889 -1283452965 -1507871622 -1982165897 -804293100 -1220333667 -587655589 -1509239253 -1015486081 -510319326 -2102342705 -1938115516 -1457477494 -1335953484 -320253652 -1911249842 -669470941 -1197836840 -1936377891 -1743560317 -1526083639 -1336095842 -1992886662 -1280377319 -47621339 -1376525530 -2114483017 -775053198 -1153411159 -984775739 -146301892 -217859346 -974146282 -1686201683 -684312237 -935575241 -1717619409 -676159587 -2044732291 -325031938 -1269116464 -1963770886 -663507254 -1749360430 -1577296486 -417730805 -1007073583 -33797863 -153048093 -998034057 -62830115 -783463990 -1379034746 -950017849 -2001200452 -2097234590 -361261943 -1638858151 -1490551067 -738685536 -1147868582 -1874446752 -450180092 -1098270690 -973421597 -532918727 -2112022026 -2137312385 -433315813 -418518584 -2083830786 -1787727134 -1907807070 -883528647 -1922614328 -1994105611 -851123424 -1922036040 -878431464 -495965166 -1183706182 -2132256492 -868199677 -1523490095 -1534366741 -488305458 -715902510 -1204015278 -1538229015 -37958120 -2044819044 -782100758 -1455163933 -771445491 -890996604 -812433900 -2073575906 -1509102120 -20193475 -1036163211 -1477958868 -1422027837 -1340913190 -1794658020 -520630890 -76700937 -1562199863 -192699922 -51198210 -228756043 -36513003 -1776748374 -1325636480 -1955039518 -545325403 -905578736 -152600286 -2066209600 -1775413870 -733984101 -6748351 -2116500429 -155859496 -1469672015 -1475644449 -182069082 -855586245 -1832407011 -198128026 -1609576996 -1834168494 -1838522490 -744811305 -434370628 -1330356158 -669729404 -1909718144 -982971994 -638785636 -279972861 -764040994 -87087128 -1883277337 -1157521215 -302354825 -1871930841 -1915682127 -1736059900 -496276526 -1775824841 -1011426922 -1918632021 -306233773 -1832970857 -580950754 -1388546716 -959114025 -417112292 -494700070 -480755265 -2125209562 -1570568754 -1902339426 -1918376468 -972720185 -943290983 -1767960493 -33423244 -822605154 -2126524027 -1243702427 -1540741826 -1951377854 -733476653 -1310389367 -664661815 -16921963 -1682345589 -525189582 -1150685699 -920120429 -89650033 -778720014 -469606255 -485470119 -370391868 -582241926 -297554450 -1626442863 -2113307749 -1107290731 -637126175 -195791553 -817956649 -1136933701 -1527421456 -945732052 -407019027 -1851144058 -22768866 -1025378896 -1103884228 -1118528663 -1308827711 -1797062632 -881467599 -1916993507 -16570194 -1386167239 -1068053540 -563554428 -2123781138 -1653666869 -446035477 -334543417 -1114555094 -442247466 -1050330236 -657058228 -1878457419 -1991495774 -1429354919 -213296204 -758036067 -1651359165 -1061518049 -2066161218 -1414207923 -885938485 -654953859 -1160512943 -1596566478 -1706621285 -1271224717 -1203533423 -275490071 -216730162 -222764447 -1631921401 -1818417574 -264114698 -1206155886 -1061892401 -1348885486 -1027218802 -1720162062 -1417951513 -1973194763 -2009798832 -1092306234 -2035752357 -2126242116 -121774000 -1508784989 -503395919 -864712182 -2087272360 -1277321980 -1112932854 -166148387 -615465251 -535153458 -1370274737 -1049335247 -127386675 -745378755 -249178659 -1404491762 -1539989091 -919061917 -1504889936 -484374348 -1763962871 -744237267 -1498584073 -1043799665 -1567582626 -120372826 -1060288813 -1135620094 -394042623 -673939191 -1308199630 -957614860 -1055687629 -1205290644 -1580519681 -20865036 -32011475 -1915352982 -1538159254 -1160173737 -2029866940 -297869098 -342063486 -1615396489 -1366540379 -515229764 -968134515 -833850611 -1674101664 -1980953401 -1207379225 -1436803764 -174384850 -1209892037 -1344001400 -813759669 -880407103 -2133347 -1057862950 -479378426 -686806421 -1520682189 -545094225 -1081585836 -477796026 -1886163330 -1245554671 -321993998 -1919583369 -2005054881 -308134579 -1974957533 -1820537604 -778793566 -1025539030 -477793157 -970890193 -712997872 -1725179668 -1830732408 -613529359 -1376179498 -797661895 -1125116660 -2027485539 -413733332 -1188795072 -1152658053 -1558931031 -1128584764 -1907078094 -1121395876 -2021770828 -2065420671 -294813100 -417049677 -28990799 -1074483465 -930810656 -408591603 -1028402758 -404866075 -1883661820 -325290524 -887832138 -446669555 -1188961944 -1490088251 -371943766 -1658941557 -948660600 -1502970603 -844180205 -253359016 -1405497708 -1884757001 -1551165877 -937167562 -633725180 -1479091917 -394189989 -2029656846 -809073182 -1328483569 -137991365 -983027648 -2126751739 -529333204 -150337966 -2042892557 -1396295365 -156960811 -884061622 -1466647222 -1216726543 -1808277272 -1139540709 -1289143959 -1035063037 -747237852 -699187511 -43902811 -413952789 -2080912538 -939110988 -2113258941 -541468179 -426239114 -3757680 -1559662372 -1612961280 -1808409362 -1454208590 -240134265 -1356742879 -636440904 -11497565 -623522623 -216451246 -444869164 -741025494 -2041430432 -1683700383 -1020998191 -975595750 -2061783685 -791279994 -544807927 -1455129140 -1170087820 -803122230 -600033258 -67874428 -861414954 -1164236034 -604513972 -855668781 -2065468078 -1953576625 -642811328 -573553042 -972380635 -78410211 -1857013270 -32283582 -247597272 -632657984 -164019660 -1988645768 -569866125 -106828160 -889041242 -589994150 -1496403843 -627008650 -1186424475 -1089642825 -1029473878 -1353432239 -55100470 -2128021970 -1555063811 -870211055 -827043256 -746617994 -315948592 -603437841 -1358323379 -147666338 -1545737076 -1956068826 -1634970761 -1615301359 -1916020202 -663304095 -1667198857 -19892644 -1203560793 -1708884929 -832280789 -1338304372 -1929913575 -1946213519 -700320492 -1563098806 -2040229806 -246048882 -1320744276 -958114106 -512735686 -187757211 -1181139571 -1997162113 -101884596 -409435661 -1951327492 -978797663 -1666581461 -739660204 -585230318 -1660399521 -1527380174 -265337843 -1873342560 -1471685662 -156543006 -1643600058 -2079856010 -1537880576 -591164384 -1520134395 -280371522 -1541721121 -1255682160 -1684298076 -1795509528 -958204191 -969142497 -1169503075 -619028234 -127031658 -358187431 -840691116 -1430365678 -1763803382 -81692302 -988814076 -1648638369 -533206101 -1247105271 -880060227 -874435881 -1314761427 -1288300668 -135356844 -1673714908 -470747628 -736956260 -1680245394 -1940511093 -1822410595 -1888220505 -1796184127 -767356740 -1030891483 -911439955 -1570682769 -176394620 -1999127721 -1318176443 -553810021 -1766708683 -1739031566 -1152870612 -1804722203 -720006110 -1877665128 -299898902 -642497135 -953389511 -234368065 -884886315 -953346621 -70599058 -267898534 -69969612 -213358112 -1330148002 -1002781191 -444128215 -194033189 -1366534343 -1751012237 -1925056591 -1349015110 -710833831 -67176562 -1989677061 -1144962169 -1724525858 -1074300668 -1862424942 -1831135391 -1519638970 -1508479159 -691710619 -1152561826 -1776907376 -330792297 -1735003835 -571913873 -109081969 -2144650720 -1571615945 -781720704 -1526049370 -522708374 -1723393945 -2096925230 -1575838288 -381891319 -1967458050 -128191180 -15264621 -1855992217 -1573197253 -2023613712 -1734614399 -68604017 -1378629143 -1682795575 -1414528615 -862884446 -573024774 -266261552 -1423639214 -594786342 -653548551 -775345665 -738881659 -2112321593 -1150608565 -394664535 -208236790 -690139864 -1490993762 -123620487 -433157790 -1442696964 -1869118844 -1773889298 -98319525 -1206390092 -37577570 -686712154 -1258401652 -689731123 -1717771501 -261653045 -1002103818 -1230989666 -1009562350 -1721413076 -472147699 -1672057153 -87248777 -1762325188 -654040018 -58572672 -1862173806 -565681876 -466353018 -1826954830 -831460600 -940359383 -532974825 -1842721649 -151333492 -1371516301 -1268173144 -1546967413 -906812863 -100077314 -1261553536 -1634849629 -267592551 -990510471 -650896432 -463015512 -571692111 -191855552 -688030609 -747629642 -1726223739 -600477902 -1181417357 -1811254570 -1957012319 -1654496076 -588200933 -1117756527 -375078779 -271321916 -1011126259 -278812137 -1436925357 -921374992 -717117315 -1060696357 -647566861 -1959287271 -884238878 -680538897 -1283366129 -145181215 -113221775 -470920964 -1030745371 -685518568 -2066451533 -2086956417 -377206183 -1717898129 -2089096067 -2010057298 -1225723697 -845612054 -648920224 -1099260427 -34794482 -1956126820 -314315478 -2053285680 -1133824038 -21389248 -1095541326 -434550013 -735891214 -680154439 -1890353495 -2045928996 -1778540681 -2040914781 -139185907 -828922529 -2143582251 -798742964 -1200831126 -392336178 -1180171844 -734093500 -970035152 -1082854026 -1447146831 -1190803319 -242255706 -645644963 -368123457 -1296097952 -39484517 -675168495 -1481673943 -448651778 -1958219970 -29653602 -1218550582 -380681534 -674185448 -453173852 -730203072 -888378984 -869731817 -1622858086 -37600544 -1227250292 -903776433 -286665591 -972432201 -1480023781 -148366910 -477994546 -87270835 -2116358856 -1206963419 -1508414985 -1027145810 -794289828 -1934613289 -2027242748 -350127017 -572382664 -1949700165 -1909053670 -569091874 -1163243317 -1140871300 -503974112 -1291395605 -1436648428 -809276456 -654196693 -899521529 -491184830 -355560126 -725273676 -1517889260 -255055848 -150901144 -285571409 -1995915674 -1578615594 -960509540 -1924416135 -80818357 -998574805 -1234818297 -1948715918 -335715992 -407338232 -198515425 -1882195988 -355079864 -1777860200 -1413994924 -1796300787 -310665455 -1832175712 -2063389035 -355827223 -1358767116 -1208131300 -1363477108 -270842593 -1495513018 -183070972 -1965873054 -857924069 -808500002 -1838585137 -1977247419 -1006476475 -2146276546 -1185794840 -2009652075 -1401333919 -1862290036 -1196102277 -1518491148 -1104249874 -1447639092 -1966615493 -2102759154 -1177950017 -1175852528 -1486010819 -570351679 -1629979228 -93987402 -5114060 -878975232 -2079506846 -622945444 -1243363704 -403955460 -1860452983 -1406437932 -782182721 -1161042045 -572148025 -1619540398 -533566406 -1863090771 -1359635656 -671092095 -1380501622 -1870686501 -1886068611 -1141337493 -925823612 -1354578859 -693156114 -1781370922 -2028513672 -889558597 -1891793940 -1199917825 -1402247546 -1076611070 -105724135 -1755190221 -1505342868 -791876198 -1555839117 -338856656 -356093208 -1649158032 -1012978043 -1679356962 -441400426 -1172837198 -1574664725 -1976830581 -14464969 -656216426 -798120086 -185589616 -177771287 -44125235 -1795907770 -862220124 -99479956 -1758303713 -1362144698 -63917942 -1427718200 -940414037 -553748629 -1458969496 -1920728646 -527747622 -1665344106 -1652676409 -1617349948 -1517833798 -904117025 -1591980305 -286532441 -544833283 -1967928355 -730675129 -577928774 -1568409342 -2049075599 -2033754513 -971012069 -2078387171 -1561025502 -1849930260 -1887487879 -651856529 -659854392 -1146517530 -1337023357 -842556374 -1093221553 -895333635 -1357124699 -1215426612 -1942290066 -73066829 -683562227 -1744091564 -1225936051 -1038024060 -1121418962 -1552449187 -128894687 -1039609563 -1138038366 -1996070097 -163522198 -95454661 -136883456 -208753405 -1288963009 -257911218 -353885535 -426858731 -14535786 -575072672 -1500513730 -114342047 -1931573183 -1263325058 -149065532 -1896476627 -697034874 -662099942 -42383451 -250211688 -2024945956 -1705151327 -1777687620 -1422685798 -581929050 -654528262 -1521977514 -769562455 -2052476522 -567355160 -156692706 -128952447 -2051581527 -244437562 -488787171 -2086945996 -705207687 -105234290 -1956991390 -712594424 -1081087911 -1581562042 -808577261 -1743156388 -650800084 -966540065 -1007413192 -877005609 -1189752626 -619600306 -481430369 -575225045 -1994425709 -901869777 -565800731 -1477040484 -1492372309 -171333890 -1873437237 -69122538 -218079139 -436827523 -1968849511 -989780742 -1377121447 -1598702022 -25776468 -310302420 -382894292 -856117299 -1770782659 -973272863 -1916828746 -1350773514 -712981076 -1844561354 -443973176 -834541135 -385862243 -645888076 -1982013299 -1195126377 -100936390 -403111108 -1574199191 -336541300 -396095779 -471437709 -232320438 -256610514 -963616547 -2038696287 -555566939 -1847931834 -1842753670 -850405899 -649968691 -1051457277 -1508415400 -1088812321 -1307929928 -2078809135 -1830311501 -469191954 -1643044260 -118360318 -1887274953 -670730778 -560186184 -524157971 -831110648 -683533351 -228193101 -370000419 -1073048018 -1304926989 -284387350 -243305723 -983326361 -1155746337 -153207158 -1070355746 -1049728079 -1762541667 -800065723 -1357126034 -949738733 -1902153909 -1360482924 -1605673665 -2108631302 -1292482679 -1043671504 -328655625 -615396429 -1845237492 -1862516074 -1647081533 -1627131223 -351873178 -13360332 -1852864695 -1668301266 -1626561260 -1099741236 -612383828 -1082946820 -1716268655 -1108811950 -1044906031 -2142772926 -467485606 -1322378188 -1624469284 -958475713 -1043813904 -1884372854 -442054749 -1386353267 -761135150 -1594259114 -982559445 -626485281 -575410850 -2083692784 -880325991 -677596581 -2019932464 -88325323 -1596781798 -168634616 -550021592 -110019408 -161717562 -217581202 -224370131 -1927651160 -746394489 -133709002 -439666194 -128199623 -566064689 -581839897 -483764857 -1782981879 -619670720 -1186749668 -549024074 -818949154 -1751706861 -265255716 -119602863 -819592305 -574493348 -2035115070 -65375150 -1410156639 -1327717577 -1084899449 -1391960827 -661211720 -807650229 -111756298 -1382222743 -1201701021 -477837560 -1011728700 -25100496 -184954528 -1583299513 -329738404 -1088190640 -1011465638 -2118036408 -1838108796 -16959813 -2043808773 -1714271246 -1805045931 -498679396 -177133202 -1331213739 -1410552188 -1950273149 -396375367 -1092710391 -1722060509 -1635095625 -606824780 -1809816412 -231968216 -1349960247 -1476113587 -250544064 -302652346 -923023429 -1529439264 -263877273 -185259225 -65864705 -959847712 -1258466362 -566225790 -1532297134 -1485761527 -1507828443 -1669934750 -1507596870 -913210060 -1851394246 -748843663 -1043748460 -1622672547 -2118918951 -355663123 -1835805781 -1717303496 -796271435 -772564030 -688458885 -1019123948 -796806456 -1554873250 -1389889911 -1446109254 -172081653 -312251881 -1478052781 -254388947 -1049845316 -122470461 -1414423038 -1481954328 -293433174 -1660648751 -419218001 -1847955003 -747957429 -212096210 -929774247 -1925082982 -937219425 -1767385714 -429882966 -2019357220 -537126833 -1049227491 -1370612980 -1217890510 -767456013 -1681992484 -195575558 -36491596 -1844269578 -260995967 -337601622 -1743060669 -697126989 -1541002096 -139783465 -1323635552 -134097471 -1512366409 -2119234197 -913546305 -855957287 -2077984882 -1424215948 -2075304330 -1456500105 -1175335789 -2113939165 -1754206178 -1109622328 -1639266374 -1455007941 -1133750821 -225640914 -1598880106 -1706381830 -1288593639 -1509423999 -2081640854 -1996730701 -1352022878 -832694119 -1511471584 -1607153388 -1785165035 -146480651 -1157339335 -1376862374 -767231266 -1066972125 -632426210 -2084804186 -128928023 -1452949634 -25869575 -1579943353 -743345365 -1038079141 -48905545 -827249544 -1318788757 -420033603 -1410765040 -792265037 -1684591040 -1217295379 -132957322 -543322263 -699663017 -309212434 -543473278 -415406505 -427731302 -1441967717 -380400361 -116727282 -1133774721 -32495326 -446582461 -1598145122 -855502120 -758309245 -265158106 -631585224 -379721750 -304511300 -1820141525 -196570489 -2006160299 -1838410053 -2078244571 -1519303354 -92766339 -1481426509 -84370399 -2047175855 -1696623877 -1110626951 -1052821998 -40140980 -725776724 -71478587 -334880253 -2005811631 -349919910 -1973998991 -1467133816 -1508081018 -201967992 -2123456246 -370406316 -462324490 -1180885064 -1422585722 -923477393 -1478231675 -1300975567 -1730973465 -1567885971 -1396645840 -1227145464 -687976188 -27675825 -825072193 -1916094303 -1916308447 -679338690 -33967896 -240505305 -1585435999 -1185682885 -613268233 -1959775221 -1643477270 -524589729 -1314346640 -287756628 diff --git a/examples/machsuite/sort/radix/test_radix.py b/examples/machsuite/sort/radix/test_radix.py index 4c534e05df..50461710b5 100644 --- a/examples/machsuite/sort/radix/test_radix.py +++ b/examples/machsuite/sort/radix/test_radix.py @@ -2,47 +2,24 @@ # SPDX-License-Identifier: Apache-2.0 import os +import sys import numpy as np import allo + +_dir = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, _dir) from radix_sort import ss_sort, SIZE def test_radix_sort(): - data_dir = os.path.dirname(os.path.abspath(__file__)) - - # Read input data - input_path = os.path.join(data_dir, "input.data") - values = [] - reading = False - with open(input_path, 'r') as f: - for line in f: - if line.strip() == '%%': - reading = True - continue - if reading: - values.append(int(line.strip())) - - np_input = np.array(values[:SIZE], dtype=np.int32) - - # Read expected output - check_path = os.path.join(data_dir, "check.data") - expected = [] - reading = False - with open(check_path, 'r') as f: - for line in f: - if line.strip() == '%%': - reading = True - continue - if reading: - expected.append(int(line.strip())) - - np_expected = np.array(expected[:SIZE], dtype=np.int32) + np.random.seed(42) + np_input = np.random.randint(0, 100000, size=SIZE).astype(np.int32) - # Build and run s = allo.customize(ss_sort) mod = s.build() result = mod(np_input) - np.testing.assert_array_equal(result, np_expected) + expected = np.sort(np_input) + np.testing.assert_array_equal(result, expected) print("PASS!") if __name__ == "__main__": diff --git a/examples/machsuite/spmv/crs/check.data b/examples/machsuite/spmv/crs/check.data deleted file mode 100644 index 47b9666f9d..0000000000 --- a/examples/machsuite/spmv/crs/check.data +++ /dev/null @@ -1,495 +0,0 @@ -%% -1871.7848080859318998 --8.8439346286551412 --4.1057636527807517 -289.6985128226187953 --11.3888136769930313 --307.8727521860603247 --192.7076542348153225 -3.3739865325637135 --3.7889578481137649 --3.0030200188998841 -8.0089633919431567 --3.3878017418294029 --3.0507008083914444 -59.2886936321243780 -2.9780958415066543 --158.1087480869031481 --40.3262360397810298 --0.9998784011311241 --8.6790677362391619 --3.6421228254484515 -3.8221319552663089 -28.1578751222559660 --22.8084561065140434 -14.1462897791780868 --27.0101605289843931 --33.4278312802921320 --15.4282590237712292 -102.0737627182930538 --122.9141674420853576 -177.5731832035259004 --194.6708453104239425 --9.5877871247874005 --0.5910436133885639 --7.4448808984098021 --21.2901834471117652 -6.5296397343814405 -207.7696636653149085 --82.8785136868552854 --627.8396077027809952 --4.5538964512164206 --4.8696341365514755 -18.8627359579027427 --13.4001854927612971 --1.1962227013482489 --24.7211712469747376 --62.8975685233145612 -20.7683449290265152 --1456.6387643549214772 -51.3752220577458871 --150.1990543825074838 --0.5786378479182659 --29.5124032253664268 --133.3076202113051067 -110.1763257597252306 --234.5138421221315923 --24.8925210009502003 --11.0773106295720893 --28.3848223330828553 --17.6783022552457716 -11.4499164125633826 --12.7091616872776072 --1.5614053746095236 -6.8041196526507148 -4.9259887100509641 --11.3506549539871635 -1190.9436075001278823 --2484.5111002742546589 --110.2096940987770068 --11.9447166291469706 --74.2937020753856672 --24.3940727044116699 --8.8416055446615545 --0.3193098789636171 --4.8323913872224225 -31.6010612222814871 --14.2357972762354450 --16.4245656655571004 --11.4073779417708359 --3.3683862158863089 --0.5831733830976340 --28.1555167811446907 --21.0448917754093010 --3.4837296605126014 -9.5905875806634455 --10.7108437322303942 --2.4630859330493071 --30.9994367236274364 --13.2741097589108961 -109.1759648784947103 --831.5751831466451449 --54.2097201844439525 --10.7368018292021077 --9.0510378505474502 -596.6175577306246396 --81.7191777681538269 --33.1422416862454199 --31.7594411557345140 -168.6614422223490806 --43.5252908408722732 --95.1344962278169106 --25.0744583969294759 --15.2923513744222141 -4.6992766898660987 -66.1447600745041342 --18.5332104250914220 --15.6392125648504408 --6.6174697666645255 --1.0879563968423296 --4.8853220326143560 --15.4712344386299527 --30.1430410773888227 --0.2481221561805920 --47.5276662794670912 --2.8305404462721935 -19.7919632674200727 -3.0205207835020609 -5.7608975154015045 -217.5469408419017157 --265.0008164051230892 --14.1798142706209820 --2.2002285117553266 --8.0793180083037104 --7.0930533216017135 -104.1196140123579141 --116.6557205310090808 -124.6351416292567080 --82.7524326735291140 --26.4842704123301473 -2.0349001696593234 --12.7480204773969277 -19.1486987216882341 -60.8196984735684865 --7.8963423184519606 -11.3250281729143616 --8.0721066338425551 --1.9329324366658569 -31.6559865113579377 -392.8591952594022132 --193.1217106521979758 --796.6479203536769091 --39.5458760918757619 --99.5606132752340898 -62.3359925628013940 --8.1001851626878789 --37.8182719517499280 --15.9080533562545163 --45.5361469446285270 -73.9836670420719145 --152.2360106684313621 --22.8908134766747509 --0.8971288764742744 -1.6748021950719214 -30.9084340367891777 --29.8387648959012708 --48.4172596268893045 -6.9620768652454332 --5.5179177328512674 -12.5569742548993322 --0.9179957634002185 --19.8778311347448877 -11.7887306408715222 --20.8678667499200401 --32.3227983968563208 --26.1615889856070964 --5.2857544551806335 --2.9183908628467439 -13.0042084086873135 --1.4060534467112857 --1.5314522771159977 --6.9603370186869240 --6.1349795939893799 --23.0237310261970762 --18.0955620222033389 --3.8714606901731021 --4.5687398489700506 --1.7641704717111413 --26.0744876339404286 --41.8864955933674779 -0.0842325156402604 -7.2387011463599933 -171.5920167232028746 --318.1415275909248521 --462.6796794455115105 --56.5291503888484073 --17.9800390649588522 -53.6292862354133248 --58.5439720406343369 -142.2734603500565811 -580.0664146297856405 --203.2063609329190683 -86.7562082412331677 -25.7648797354961268 --27.2634049872177400 --19.4942694467464044 -3.3362938341511645 --5.0681806125144071 -1.2745978051065041 --16.0787286512922414 -20.9676353947546197 -6.7952369035818938 --2.2131175656875501 --48.1202955747272227 -12.9561102587239390 --39.4560642896417164 --3660.9006748120191332 -4027.9694847203504651 -134.3972912874223766 --20.7228805656372117 --14.8924085218783269 --13.0587457803110016 -65.5436963885441486 --204.7246445215849917 -0.7280292482259990 -1.9692169463096698 -111.5192436130447504 --176.8751606241443142 --959.3073635761014657 --20.7620597623385521 --7.3897091677512412 -1010.1690013903163390 -36.2534606878878662 --14.0346306179491389 --75.8835561414735196 -141.3986934054079825 --18.7427766081788540 -9.9605941180847282 -2.3599058214195114 -20.6191828535223607 --11.1235304599698104 -2.9833005939198873 --60.7609350399250516 -17.4346349701559049 --20.5765762708552202 -7.5919997675561497 -36.2202688256436289 --1.6647136078425038 -1.8663411854113692 -109.5142131389502964 --16.2008695270493597 --22.5255419909889234 --44.4648440265346636 --41.9690445502082454 --7.7149806638302678 -6.9277556462491425 -19.8987672590675402 --25.6095329507658178 --7.2696315110631664 --54.0561117761851122 -26.0731812026484207 -90.6100033717952300 --117.1523140441187252 --1358.1360510674574016 --66.7277613631491135 -1112.8348382090882751 --142.0859836352898640 --74.7653244881297212 -106.5968714819060068 -2.3316076458121895 --24.9494763887881703 -0.7030289941015688 -0.4420052213994232 -23.0081504119473763 -167.2100554452262884 --217.4999358314942128 -111.4107260136770066 --8.3333961174175712 --48.9593151816018448 -21.7515415610445864 -319.2133211513757374 --16.8436937217716647 -1.6133803025361830 --15.9204693708605500 --9.8535831028968666 --10.1033966404954612 --2.5909967530970111 -7.8008828616401971 --29.3540362142419191 -40.3306272905754071 -5.8816614585927383 -20.3634143186272922 --41.7604202286373507 --3.7771106316670915 --23.8688734189802432 -44.9083790983060851 --26.6538280112725658 --5.9368211167880318 --66.1272829898980916 -63.0096926875636001 --22.6072880203460862 --2.6636053785806633 -0.7136416170167985 -114.5682170441557730 --154.5188872580180259 --106.2992824087824886 -0.1076961886411922 -1.7999643732687751 -6.9205708732205569 --73.1659541184407232 --9.5358595584767336 -9034.6811655120600335 -6428.3482987614233934 --2.7130028388457679 -48.5318295127536388 --57.3406342522616228 -131.9520669424607604 --55.6731111450469456 -295.0214800996614031 --177.3227928764624721 --99.1454563287276756 -220.0600401365433925 --36.3624458451291446 -19.2224774922722581 -2.8685377665355274 -17.3636158236268834 --11.1766483537520696 --6.3240649121962180 -94.1677260348064920 -517.6258969709534767 --58.7840871654754693 --11.8055048737910617 --19.7050764733324755 -38.4544032094926536 --21.8527509282711598 -6.4051121067341246 --15.7230499761801905 --96.8796388432965614 -144.5883880520403011 --108.5270895292474762 -37.9985191216638540 --11.7136032458725090 -197.0852836008277222 -34.3564214089367468 --17.3964645156189910 -95.8439119078080637 --71.7636963382541069 -53.9478574544632039 -79.6300976596169789 -15.9527846947069722 -52.8035210663891945 -0.0645350270188201 --5.3314174515736248 -23.6571395564440152 --6.2471523518731011 -77.7876444768589010 --675.2627969379977912 -211.9190754900325260 --3216.8360208307267385 --2045.5501719175044855 --493.5133056841480084 --443.9102052257845799 --42.4060244738823826 -1293.7815179533238279 -487.5841811759120219 --54.8133813095899782 -1020.3673465704118826 --535.0255687071303328 --19.7308611248566343 -1614.0070384548191669 --319.7381410863234805 --404.8324165665175087 --438.3024782236904002 --66.9186257294047806 --63.4642744302176496 --57.9036519695690899 --25.9383281933588350 --47.0603903494329430 --29.4326163521255495 -54.3524640596935456 -730.0789231412579738 -36.0587461239678078 --5.0519624357748576 --2.9250423725631514 -1535.8211661286259186 --3774.7541075839271798 -892.0568778648539592 --1.0153272322639033 -293.5008571439258276 -23.7234488268187498 -52.2504514282590264 -15.5571868983889132 -2.5029395641808936 -0.4732728443675525 -23.2301053969714815 -38.1078926443680430 -6.0613899268872107 --2.3799962203020524 -44.6857690567703756 --14.6747050577247720 --31.7282452452638672 -44.0722759469662151 --40.9224988054577423 --23.5383332758564876 -31.6529293986003779 -8.2240783290234845 -11.7269400267686343 --143.0022284810266342 -71.6059294474964787 --75.7633251173143947 --11.3162489857358999 --40.6462848628561986 --11.3776308232304935 --16.7677548059059447 -10.5180077638598881 -19.7343566114501741 --7.6854950852902775 --2.6995362232872404 -26.8527358639635452 -19.8774656644438252 --137.8851900039671250 --51.4184208952680279 -26.6312969236649479 --22.0369035264292066 -101.0392158710919830 -135.5635316703188664 --80.1084874449653483 -64.2733412417919681 --15.1081092270946016 --86.1886924398141332 -57.9064531820786357 --121.6972419986612124 -6.9148477624079021 -324.2818730558734046 -2.2759148462490337 --1.6466880240586437 -383.0918086953634543 --34.7333847880945541 --4.0805110580642285 -156.1638214898648016 -148.1792339293115219 --5.5957897580932130 -4773.2500243420108745 --0.5087160669729016 -73.3022182442790893 --6.9129742379189594 --17.0037918576874816 -72.9286085661630068 --83.1542460309150471 -121.2064124325577694 -60.1949231164581420 --12.3034432377556033 --5.6863836584204810 --17.4413799734767636 -36.5534795786125812 -220.3473852268654127 --1.6294110602065643 -120.3441861874725021 -4387.1376633766303712 --15.4668571077764234 -52.1487279212117016 -9.9111460108396603 -17.4448144397329798 -18.7000019332348586 --22.8773695371921733 -4.7619535334250003 --1.0212201350424337 -1553.3595396478458497 --2644.9605837905137378 -2.2508517239483838 --9.3185695179376893 -0.4685151300908785 -3892.5228487948334077 --6023.6472088138989420 --3754.5350769937749646 --19.8387615821018706 --4.5337270471402755 -9392.4641462224717543 -7.4425275565646194 -60.1587583693673054 -3828.2284715210594186 --8705.7219818705398211 --349.6691446384469373 --94.2542749549050995 -4.9444842990352171 --1.4883262417015199 --22.7782566675297105 -262.9228196612849047 --41.4939436943127689 --93.2106691274442767 --54.0862563070921851 -137.2328473295738149 -3289.7010045606616586 -421.7222858299887207 --35.7612002805023792 --29.6145667077643822 -51.4469089457480422 --93.3746342238168836 -53.2095284717940018 -86.3360563783271573 --101.2096472194543537 --1.6900237078904561 --37.3756946065164684 --2.5774958040035170 --58.2295810103489302 -110.2558197718876016 diff --git a/examples/machsuite/spmv/crs/input.data b/examples/machsuite/spmv/crs/input.data deleted file mode 100644 index a9a1367255..0000000000 --- a/examples/machsuite/spmv/crs/input.data +++ /dev/null @@ -1,4325 +0,0 @@ -%% -2220.8739999999997963 --9.9601590000000009 --9.9601590000000009 --8.1967210000000001 --8.1967210000000001 --4.0518640000000001 --4.0518640000000001 -5.4106699999999996 --5.4106699999999996 --5.4106699999999996 -13.5708599999999997 --5.6657229999999998 --5.6657229999999998 --7.9051380000000000 --7.9051380000000000 -618.3967999999999847 --91.9963199999999972 --91.9963199999999972 --100.0000000000000000 --100.0000000000000000 --294.1175999999999817 --294.1175999999999817 --53.5045500000000018 --53.5045500000000018 --73.3675700000000006 --73.3675700000000006 -8.0000000000000000 --8.0000000000000000 --8.0000000000000000 -5.2511120000000000 --1.5267180000000000 --1.5267180000000000 --3.7243949999999999 --3.7243949999999999 -12.5098099999999999 --0.5000000000000000 --0.5000000000000000 --2.6191719999999998 --2.6191719999999998 --3.6036039999999998 --3.6036039999999998 --5.7870369999999998 --5.7870369999999998 -91.9963199999999972 -10.2144999999999992 --10.2144999999999992 --10.2144999999999992 -277.3765999999999963 --127.2265000000000015 --127.2265000000000015 --150.1501000000000090 --150.1501000000000090 -79.8003400000000056 --50.3018100000000032 --50.3018100000000032 --29.4985299999999988 --29.4985299999999988 -13.0155700000000003 --1.3333330000000001 --1.3333330000000001 --2.1584289999999999 --2.1584289999999999 --9.5238090000000000 --9.5238090000000000 -1.3333330000000001 -2.1584289999999999 -7.0126229999999996 --7.0126229999999996 --7.0126229999999996 -60.1257599999999996 --21.7864900000000006 --21.7864900000000006 --7.0372969999999997 --7.0372969999999997 --4.8053819999999998 --4.8053819999999998 -100.1223999999999990 --17.6056300000000014 --17.6056300000000014 --17.6056300000000014 --17.6056300000000014 --14.3061500000000006 --14.3061500000000006 --28.8184499999999986 --28.8184499999999986 -0.5000000000000000 -7.0372969999999997 -17.6056300000000014 -17.6056300000000014 -105.8066000000000031 --37.3134299999999968 --37.3134299999999968 --68.4931500000000000 --68.4931500000000000 -238.1596000000000117 --81.9672199999999975 --81.9672199999999975 --108.6955999999999989 --108.6955999999999989 --10.1832999999999991 --10.1832999999999991 -7.8064020000000003 --7.8064020000000003 --7.8064020000000003 -25.0479899999999986 --4.7415839999999996 --4.7415839999999996 --12.5000000000000000 --12.5000000000000000 -72.5843600000000038 --42.3728800000000021 --42.3728800000000021 --30.2114800000000017 --30.2114800000000017 -423.7287999999999784 --423.7287999999999784 --423.7287999999999784 -1022.7340000000000373 --3.7674720000000002 --3.7674720000000002 --595.2381000000000313 --595.2381000000000313 -7.6136960000000000 --4.3878890000000004 --4.3878890000000004 --3.2258060000000000 --3.2258060000000000 -5.4288819999999998 --5.4288819999999998 --5.4288819999999998 -28.9126800000000017 --17.0940200000000004 --17.0940200000000004 --6.3897769999999996 --6.3897769999999996 -16.3765700000000010 --5.0000000000000000 --5.0000000000000000 --11.3765599999999996 --11.3765599999999996 -106.1646999999999963 --62.1118000000000023 --62.1118000000000023 --44.0528600000000026 --44.0528600000000026 -62.1118000000000023 -13.6054399999999998 --13.6054399999999998 --13.6054399999999998 -1122.9039999999999964 --1111.1110000000001037 --1111.1110000000001037 --11.7924500000000005 --11.7924500000000005 -208.5615999999999985 --8.5616439999999994 --8.5616439999999994 --200.0000000000000000 --200.0000000000000000 -19.2869600000000005 --11.0497200000000007 --11.0497200000000007 --8.2372320000000006 --8.2372320000000006 -50.4298100000000034 --22.5733600000000010 --22.5733600000000010 --16.8067199999999985 --16.8067199999999985 -107.3191000000000059 --84.7457600000000042 --84.7457600000000042 -1125.3079999999999927 --11.6550100000000008 --11.6550100000000008 --1111.1110000000001037 --1111.1110000000001037 --2.5419420000000001 --2.5419420000000001 -40.6302400000000006 --34.8432000000000031 --34.8432000000000031 --5.7870369999999998 --5.7870369999999998 -32.2580600000000004 --32.2580600000000004 --32.2580600000000004 -50.4519400000000005 --11.9904100000000007 --11.9904100000000007 --38.4615399999999994 --38.4615399999999994 -21.8901100000000000 --6.2932660000000000 --6.2932660000000000 --4.9975009999999997 --4.9975009999999997 --5.3361789999999996 --5.3361789999999996 --5.2631579999999998 --5.2631579999999998 -14.9534800000000008 --6.7567570000000003 --6.7567570000000003 -29.2795300000000012 --3.4199730000000002 --3.4199730000000002 --14.2045499999999993 --14.2045499999999993 -1682.9860000000001037 --114.0250999999999948 --114.0250999999999948 --1333.3330000000000837 --1333.3330000000000837 --180.1802000000000135 --180.1802000000000135 --55.4477400000000031 --55.4477400000000031 -65.3933700000000044 --47.6190500000000014 --47.6190500000000014 --6.0096150000000002 --6.0096150000000002 --11.7647099999999991 --11.7647099999999991 -168.4124999999999943 --111.1110999999999933 --111.1110999999999933 --5.0761419999999999 --5.0761419999999999 --4.6061730000000001 --4.6061730000000001 -39.4463500000000025 --24.2718400000000010 --24.2718400000000010 --15.1745099999999997 --15.1745099999999997 -10.4849999999999994 --4.8192769999999996 --4.8192769999999996 -89.1608399999999932 --37.8787900000000022 --37.8787900000000022 --51.2820499999999981 --51.2820499999999981 -14.7029499999999995 --6.8965519999999998 --6.8965519999999998 --7.8064020000000003 --7.8064020000000003 -40.8459500000000020 --21.9780200000000008 --21.9780200000000008 --18.8679300000000012 --18.8679300000000012 -20.8446800000000003 --9.6339109999999994 --9.6339109999999994 --11.2107600000000005 --11.2107600000000005 -19.2146100000000004 --14.4092199999999995 --14.4092199999999995 -8.2908159999999995 --6.2500000000000000 --6.2500000000000000 --2.0408160000000000 --2.0408160000000000 -63.9985399999999984 --13.8888900000000000 --13.8888900000000000 --43.8596500000000020 --43.8596500000000020 -2.0408160000000000 -25.7062700000000000 --18.1818199999999983 --18.1818199999999983 --7.5244549999999997 --7.5244549999999997 -8.0840739999999993 --8.0840739999999993 --8.0840739999999993 -17.0013800000000010 --0.6702413000000000 --0.6702413000000000 --3.3411300000000002 --3.3411300000000002 --9.5238090000000000 --9.5238090000000000 --3.4662039999999998 --3.4662039999999998 -0.6702413000000000 -68.6351099999999974 --56.1797800000000009 --56.1797800000000009 --5.6433410000000004 --5.6433410000000004 --6.8119889999999996 --6.8119889999999996 -56.1797800000000009 -794.4358999999999469 --9.7276270000000000 --9.7276270000000000 --714.2857999999999947 --714.2857999999999947 --70.4225299999999947 --70.4225299999999947 -63.7407899999999970 --23.4192000000000000 --23.4192000000000000 --15.0761400000000005 --15.0761400000000005 --10.7526899999999994 --10.7526899999999994 --14.4927499999999991 --14.4927499999999991 -9.7276270000000000 -898.1735999999999649 --64.1025700000000001 --64.1025700000000001 --8.4674010000000006 --8.4674010000000006 --49.6277899999999974 --49.6277899999999974 --15.0150100000000002 --15.0150100000000002 --23.2558100000000003 --23.2558100000000003 -309.7513999999999896 --22.5225200000000001 --22.5225200000000001 --22.5225200000000001 --22.5225200000000001 --27.0270299999999999 --27.0270299999999999 --57.4712600000000009 --57.4712600000000009 --45.6829600000000013 --45.6829600000000013 -44.6596100000000007 --8.2918740000000000 --8.2918740000000000 --8.4245999999999999 --8.4245999999999999 --2.1739130000000002 --2.1739130000000002 --2.2256840000000002 --2.2256840000000002 -10.7526899999999994 -22.5225200000000001 -22.5225200000000001 -27.0270299999999999 -43.2569599999999994 --11.6279100000000000 --11.6279100000000000 --25.6410300000000007 --25.6410300000000007 --5.9880240000000002 --5.9880240000000002 -14.9548600000000000 --1.3241520000000000 --1.3241520000000000 --2.0028039999999998 --2.0028039999999998 -59.7835899999999967 --18.9933499999999995 --18.9933499999999995 --18.5185199999999988 --18.5185199999999988 --22.2717199999999984 --22.2717199999999984 -76.9893200000000064 --9.7656250000000000 --9.7656250000000000 --3.3322229999999999 --3.3322229999999999 --9.6618359999999992 --9.6618359999999992 --33.3333399999999997 --33.3333399999999997 --1.9029499999999999 --1.9029499999999999 -54.8651300000000006 --34.2465699999999984 --34.2465699999999984 --20.6185599999999987 --20.6185599999999987 -130.6547999999999945 --106.3829999999999956 --106.3829999999999956 -8.6511689999999994 --4.8804299999999996 --4.8804299999999996 --3.7707389999999998 --3.7707389999999998 -18.5295400000000008 --4.1203130000000003 --4.1203130000000003 -318.4947000000000230 --294.1175999999999817 --294.1175999999999817 --14.0252499999999998 --14.0252499999999998 --3.5448420000000000 --3.5448420000000000 --3.0395140000000000 --3.0395140000000000 -11.6143999999999998 --11.6143999999999998 --11.6143999999999998 -55.8730199999999968 --40.0000000000000000 --40.0000000000000000 --15.8730200000000004 --15.8730200000000004 -345.7321000000000026 -8.1511340000000008 --4.8100050000000003 --4.8100050000000003 -215.0901000000000067 --125.0000000000000000 --125.0000000000000000 --90.0901000000000067 --90.0901000000000067 -295.4284999999999854 --38.7596899999999991 --38.7596899999999991 --38.9105100000000022 --38.9105100000000022 --11.5340299999999996 --11.5340299999999996 --23.7529700000000012 --23.7529700000000012 -79.7815099999999973 --74.6268699999999967 --74.6268699999999967 --5.1546390000000004 --5.1546390000000004 -38.7596899999999991 -38.9105100000000022 -94.0535600000000045 --7.8926600000000002 --7.8926600000000002 -7.8926600000000002 -17.5513300000000001 --10.7991399999999995 --10.7991399999999995 --6.7521940000000003 --6.7521940000000003 -15.5732900000000001 --5.8927519999999998 --5.8927519999999998 --9.6805420000000009 --9.6805420000000009 -76.2711900000000043 --33.8982999999999990 --33.8982999999999990 -1230.3369999999999891 --116.2790999999999997 --116.2790999999999997 --769.2308000000000447 --769.2308000000000447 --344.8276000000000181 --344.8276000000000181 -26.0416699999999999 --26.0416699999999999 --26.0416699999999999 -79.6698899999999952 --22.4719100000000012 --22.4719100000000012 --10.0000000000000000 --10.0000000000000000 --9.1659030000000001 --9.1659030000000001 -104.4050000000000011 --55.6482999999999990 --55.6482999999999990 --48.7567099999999982 --48.7567099999999982 -85.5357900000000058 --4.7169809999999996 --4.7169809999999996 --17.7935899999999982 --17.7935899999999982 --18.3823499999999989 --18.3823499999999989 --44.6428599999999989 --44.6428599999999989 -4.7169809999999996 -14.4092199999999995 --14.4092199999999995 --14.4092199999999995 -41.1329500000000010 --20.0803200000000004 --20.0803200000000004 --21.0526300000000006 --21.0526300000000006 -91.6945300000000003 --72.4637699999999967 --72.4637699999999967 --19.2307699999999997 --19.2307699999999997 -9.7847360000000005 --9.7847360000000005 --9.7847360000000005 -1.0298659999999999 --1.0298659999999999 --1.0298659999999999 -2.1645020000000001 --2.1645020000000001 --2.1645020000000001 -26.6899599999999992 --3.4928400000000002 --3.4928400000000002 --6.8027210000000000 --6.8027210000000000 --3.4152999999999998 --3.4152999999999998 -140.1105000000000018 --36.7647100000000009 --36.7647100000000009 --37.3134299999999968 --37.3134299999999968 --46.9483600000000010 --46.9483600000000010 --19.0839700000000008 --19.0839700000000008 -14.0104399999999991 --2.6041669999999999 --2.6041669999999999 --5.3966539999999998 --5.3966539999999998 -13.9848300000000005 --3.3806630000000002 --3.3806630000000002 -32.2401800000000023 --18.2149399999999986 --18.2149399999999986 -36.7678099999999972 --18.5528799999999983 --18.5528799999999983 -29.7563299999999984 --19.0839700000000008 --19.0839700000000008 --10.6723599999999994 --10.6723599999999994 -28.7154799999999994 --10.1625999999999994 --10.1625999999999994 -176.9231000000000051 --76.9230699999999956 --76.9230699999999956 -16.9491499999999995 --16.9491499999999995 --16.9491499999999995 -33.9419600000000017 --5.7836900000000000 --5.7836900000000000 --12.9032300000000006 --12.9032300000000006 --9.6339109999999994 --9.6339109999999994 --5.6211349999999998 --5.6211349999999998 -38.0870499999999979 --7.5187970000000002 --7.5187970000000002 --3.0184120000000001 --3.0184120000000001 -28.7178800000000010 -3.2948930000000001 --3.2948930000000001 --3.2948930000000001 -10.2830100000000009 --6.9881209999999996 --6.9881209999999996 -39.1090900000000019 --19.8412700000000015 --19.8412700000000015 --19.2678200000000004 --19.2678200000000004 -56.2528300000000030 --18.9393899999999995 --18.9393899999999995 --37.3134299999999968 --37.3134299999999968 -19.8412700000000015 -15.9744399999999995 --15.9744399999999995 --15.9744399999999995 -15.9744399999999995 --15.9744399999999995 --15.9744399999999995 -18.3823499999999989 --18.3823499999999989 --18.3823499999999989 -62.1118000000000023 --62.1118000000000023 --62.1118000000000023 -54.3478199999999987 --54.3478199999999987 --54.3478199999999987 -22.5733600000000010 --22.5733600000000010 --22.5733600000000010 -405.7851999999999748 --333.3333000000000084 --333.3333000000000084 --59.1715999999999980 --59.1715999999999980 --13.2802100000000003 --13.2802100000000003 -444.0341000000000236 --370.3704000000000178 --370.3704000000000178 --60.2409600000000012 --60.2409600000000012 --13.4228199999999998 --13.4228199999999998 -125.4902000000000015 --58.8235200000000020 --58.8235200000000020 --66.6666699999999963 --66.6666699999999963 -13.5685199999999995 --13.5685199999999995 --13.5685199999999995 -173.0337000000000103 -754.0348999999999933 -643.3153999999999542 --188.6792000000000087 --188.6792000000000087 --188.6792000000000087 --188.6792000000000087 --12.1802700000000002 --12.1802700000000002 --22.6244399999999999 --22.6244399999999999 -274.5828000000000202 --31.5556899999999985 --31.5556899999999985 -13.2802100000000003 -13.4228199999999998 -86.1757400000000047 --8.5763289999999994 --8.5763289999999994 --6.8780520000000003 --6.8780520000000003 --70.7213600000000042 --70.7213600000000042 -31.8957900000000016 -19.6078399999999995 --9.8039220000000000 --9.8039220000000000 --9.8039220000000000 --9.8039220000000000 -36.0613499999999974 --20.6077900000000014 --20.6077900000000014 --15.4535599999999995 --15.4535599999999995 -38.1282700000000006 --10.1010100000000005 --10.1010100000000005 -52.8684799999999981 --5.3714350000000000 --5.3714350000000000 --2.4520019999999998 --2.4520019999999998 --45.0450500000000034 --45.0450500000000034 -55.5094899999999996 --5.4436580000000001 --5.4436580000000001 --2.4467829999999999 --2.4467829999999999 --47.6190500000000014 --47.6190500000000014 -29.8600700000000003 --15.6250000000000000 --15.6250000000000000 -4.8987850000000002 -218.7209000000000003 --17.3611100000000000 --17.3611100000000000 -10009.6800000000002910 --10000.0000000000000000 --10000.0000000000000000 -10004.7399999999997817 -410.3967000000000098 -95.7427899999999994 --40.7346799999999973 --40.7346799999999973 --10.0230499999999996 --10.0230499999999996 --21.1685000000000016 --21.1685000000000016 --16.4636199999999988 --16.4636199999999988 --7.3529410000000004 --7.3529410000000004 -202.0149999999999864 --19.4363500000000009 --19.4363500000000009 --141.8439999999999941 --141.8439999999999941 -2.2099449999999998 --2.2099449999999998 --2.2099449999999998 -8.6686589999999999 --1.7721070000000001 --1.7721070000000001 -132.4125999999999976 --22.5225200000000001 --22.5225200000000001 --109.8901000000000039 --109.8901000000000039 -1076.9710000000000036 --999.9999000000000251 --999.9999000000000251 --15.5981900000000007 --15.5981900000000007 --27.3597800000000007 --27.3597800000000007 --34.0135999999999967 --34.0135999999999967 -2.6191719999999998 -11.8660899999999998 --8.0710250000000006 --8.0710250000000006 --3.7950659999999998 --3.7950659999999998 -1022.5220000000000482 -66.8002699999999976 --66.8002699999999976 --66.8002699999999976 -77.0498999999999938 --4.9731449999999997 --4.9731449999999997 --5.2764879999999996 --5.2764879999999996 -179.1666999999999916 --166.6666999999999916 --166.6666999999999916 -76.9230699999999956 --76.9230699999999956 --76.9230699999999956 -111.7663000000000011 -618.7910000000000537 --19.4325699999999983 --19.4325699999999983 -41.1108499999999992 --9.2421330000000008 --9.2421330000000008 --25.5754500000000000 --25.5754500000000000 -41.5001999999999995 -3.6764700000000001 --3.6764700000000001 --3.6764700000000001 -5.4200540000000004 --5.4200540000000004 --5.4200540000000004 -36.9436899999999966 --14.4717800000000008 --14.4717800000000008 -14.3215199999999996 -14.6412899999999997 --14.6412899999999997 --14.6412899999999997 -89.8292600000000050 --75.1879700000000071 --75.1879700000000071 -17.0940200000000004 -48.7011499999999984 --3.3199429999999999 --3.3199429999999999 --10.1760500000000000 --10.1760500000000000 --16.6057799999999993 --16.6057799999999993 -3.3199429999999999 -10.1760500000000000 -14.2949199999999994 -38.5442499999999981 -4.0978130000000004 --2.4283630000000000 --2.4283630000000000 --1.6694490000000000 --1.6694490000000000 -0.1703577000000000 --0.1703577000000000 --0.1703577000000000 -12.4391599999999993 --2.7449900000000000 --2.7449900000000000 -209.3358000000000061 --8.0000000000000000 --8.0000000000000000 --12.0149000000000008 --12.0149000000000008 --17.8444000000000003 --17.8444000000000003 --30.4878000000000000 --30.4878000000000000 --14.1683199999999996 --14.1683199999999996 --36.5630700000000033 --36.5630700000000033 -29.5478300000000011 --10.2009600000000002 --10.2009600000000002 --11.3468699999999991 --11.3468699999999991 -10.2009600000000002 -11.3468699999999991 -12.0149000000000008 -17.8444000000000003 -28.4983199999999997 --18.3150200000000005 --18.3150200000000005 -10.6116700000000002 --8.1833069999999992 --8.1833069999999992 -101.3766999999999996 --42.5531900000000007 --42.5531900000000007 -4.8053819999999998 --4.8053819999999998 --4.8053819999999998 -8.1833069999999992 -40.3137600000000020 --20.8811900000000001 --20.8811900000000001 -124.7891999999999939 --104.1667000000000058 --104.1667000000000058 -1214.5329999999999018 --1123.5950000000000273 --1123.5950000000000273 --5.7583789999999997 --5.7583789999999997 --85.1788800000000066 --85.1788800000000066 -1543.6079999999999472 --15.4987100000000009 --15.4987100000000009 --93.2835800000000006 --93.2835800000000006 --53.1067499999999981 --53.1067499999999981 --16.8719399999999986 --16.8719399999999986 -5.7583789999999997 -149.5704000000000065 --64.3914900000000046 --64.3914900000000046 -21.7773600000000016 --6.2786460000000002 --6.2786460000000002 -6.2786460000000002 -8.7950739999999996 --8.7950739999999996 --8.7950739999999996 -45.5701499999999982 --20.8768300000000018 --20.8768300000000018 --15.8982500000000009 --15.8982500000000009 -9.9613230000000001 -16.7371499999999997 --8.3125509999999991 --8.3125509999999991 -33.0112700000000032 -10.2947299999999995 --5.7012539999999996 --5.7012539999999996 --4.5934770000000000 --4.5934770000000000 -243.9951000000000079 --181.8181999999999903 --181.8181999999999903 --11.4155300000000004 --11.4155300000000004 --50.7614200000000011 --50.7614200000000011 -278.1383999999999901 --46.6635599999999968 --46.6635599999999968 --5.4674690000000004 --5.4674690000000004 --28.7356300000000005 --28.7356300000000005 -11.4155300000000004 -77.5710799999999949 --26.8096500000000013 --26.8096500000000013 -978.0082999999999629 --59.5238099999999974 --59.5238099999999974 --149.2537000000000091 --149.2537000000000091 -14.1752699999999994 --10.5042000000000009 --10.5042000000000009 --3.6710720000000001 --3.6710720000000001 -24.7521300000000011 --3.9936099999999999 --3.9936099999999999 --7.1530760000000004 --7.1530760000000004 -27.5141400000000012 --14.7058800000000005 --14.7058800000000005 --5.7110219999999998 --5.7110219999999998 --7.0972320000000000 --7.0972320000000000 -74.1440000000000055 --24.3902399999999986 --24.3902399999999986 --4.6446820000000004 --4.6446820000000004 -238.1673999999999864 --200.0000000000000000 --200.0000000000000000 --8.1168829999999996 --8.1168829999999996 --11.1111100000000000 --11.1111100000000000 -224.6879000000000133 -15.2439000000000000 --15.2439000000000000 --15.2439000000000000 -19.7585799999999985 --4.5146730000000002 --4.5146730000000002 -36.4963499999999996 --36.4963499999999996 --36.4963499999999996 -95.4541600000000017 --55.2486200000000025 --55.2486200000000025 --3.7091989999999999 --3.7091989999999999 -100.6927000000000021 --19.3050199999999990 --19.3050199999999990 --65.7894699999999943 --65.7894699999999943 -329.6231000000000222 --200.0000000000000000 --200.0000000000000000 --11.9760500000000008 --11.9760500000000008 --117.6470000000000056 --117.6470000000000056 -285.1879999999999882 -11.9760500000000008 -144.4567000000000121 -165.7238000000000113 --62.2083999999999975 --62.2083999999999975 --87.6424200000000013 --87.6424200000000013 -82.1884399999999999 --58.0046400000000020 --58.0046400000000020 --24.1838000000000015 --24.1838000000000015 -151.4336999999999875 --40.3225800000000021 --40.3225800000000021 -48.5151600000000016 --4.4622940000000000 --4.4622940000000000 -8.2308979999999998 --4.2372880000000004 --4.2372880000000004 -26.7507799999999989 --9.3896709999999999 --9.3896709999999999 -329.2194000000000074 --186.5672000000000139 --186.5672000000000139 --38.5802499999999995 --38.5802499999999995 --72.5163100000000043 --72.5163100000000043 -28.6242400000000004 --27.1739099999999993 --27.1739099999999993 --1.4503260000000000 --1.4503260000000000 -27.1739099999999993 -36.9804000000000030 --30.1023500000000013 --30.1023500000000013 -129.9704000000000121 -99.0061900000000037 --78.1250000000000000 --78.1250000000000000 -45.4867599999999968 --7.7124790000000001 --7.7124790000000001 -20007.7099999999991269 --10000.0000000000000000 --10000.0000000000000000 --10000.0000000000000000 --10000.0000000000000000 -10000.0000000000000000 -10000.0000000000000000 -10.8453700000000008 --7.5131480000000002 --7.5131480000000002 -14.7567599999999999 --8.0000000000000000 --8.0000000000000000 -1.4598540000000000 --1.4598540000000000 --1.4598540000000000 -103.4287999999999954 --40.0000000000000000 --40.0000000000000000 --49.0196100000000001 --49.0196100000000001 -49.4598500000000030 -141.7923000000000116 --10.9673200000000008 --10.9673200000000008 --22.2717199999999984 --22.2717199999999984 --48.1540899999999965 --48.1540899999999965 --42.0168099999999995 --42.0168099999999995 -545.1684000000000196 --90.7441000000000031 --90.7441000000000031 --90.0090000000000003 --90.0090000000000003 --89.1265599999999978 --89.1265599999999978 --28.6615099999999998 --28.6615099999999998 --60.0600600000000000 --60.0600600000000000 -90.7441000000000031 -90.0090000000000003 -89.1265599999999978 -204.9044000000000096 --4.9043650000000003 --4.9043650000000003 -172.7262000000000057 --63.6942700000000031 --63.6942700000000031 --27.6243100000000013 --27.6243100000000013 -26.7418000000000013 --5.7836900000000000 --5.7836900000000000 -10.8049099999999996 -10.9673200000000008 -12.3300099999999997 --8.2781459999999996 --8.2781459999999996 -6.8027210000000000 --6.8027210000000000 --6.8027210000000000 -33.4146599999999978 --4.6339199999999998 --4.6339199999999998 -146.1641999999999939 --72.2543299999999959 --72.2543299999999959 --73.9098299999999995 --73.9098299999999995 -1493.0409999999999400 --17.2413799999999995 --17.2413799999999995 --26.8817200000000014 --26.8817200000000014 --18.1818199999999983 --18.1818199999999983 -43.9259500000000003 --13.3155800000000006 --13.3155800000000006 --13.3689800000000005 --13.3689800000000005 -13.3155800000000006 -13.3689800000000005 -27.8209699999999991 --9.5419850000000004 --9.5419850000000004 --8.3402829999999994 --8.3402829999999994 --6.3938620000000004 --6.3938620000000004 -12.3225300000000004 --4.6772689999999999 --4.6772689999999999 --7.6452600000000004 --7.6452600000000004 -278.5131000000000085 --81.6993499999999955 --81.6993499999999955 -273.0466000000000122 --86.2068900000000014 --86.2068900000000014 --104.1667000000000058 --104.1667000000000058 --18.2815399999999997 --18.2815399999999997 -86.2068900000000014 -15.7582799999999992 --10.9528999999999996 --10.9528999999999996 -42.0657799999999966 -8.1168829999999996 -273.4637999999999920 -39.0280300000000011 --3.4928400000000002 --3.4928400000000002 --18.0831799999999987 --18.0831799999999987 --17.4520100000000014 --17.4520100000000014 -151.9719000000000051 --49.0196100000000001 --49.0196100000000001 --49.0196100000000001 --49.0196100000000001 -65.0280800000000028 --5.9665869999999996 --5.9665869999999996 --5.9665869999999996 --5.9665869999999996 -124.4662000000000006 -17.4520100000000014 -59.0678300000000007 --4.0816330000000001 --4.0816330000000001 -59.0678300000000007 --4.0816330000000001 --4.0816330000000001 -4.0816330000000001 -4.0816330000000001 -10.7991399999999995 --10.7991399999999995 --10.7991399999999995 -81.4247399999999999 --30.3030299999999997 --30.3030299999999997 -39.0625000000000000 --39.0625000000000000 --39.0625000000000000 -507.6857999999999720 --5.6818179999999998 --5.6818179999999998 --500.0000000000000000 --500.0000000000000000 --2.0040079999999998 --2.0040079999999998 -328.2355999999999767 --212.7659999999999911 --212.7659999999999911 -503.4153000000000020 -2.0040079999999998 -100.9094000000000051 --12.8024600000000000 --12.8024600000000000 -5112.3850000000002183 --2000.0000000000000000 --2000.0000000000000000 --2000.0000000000000000 --2000.0000000000000000 --500.0000000000000000 --500.0000000000000000 --500.0000000000000000 --500.0000000000000000 --8.5106380000000001 --8.5106380000000001 --41.6666700000000034 --41.6666700000000034 -2077.7860000000000582 --11.5606899999999992 --11.5606899999999992 --66.2251700000000056 --66.2251700000000056 -11.5606899999999992 -2077.7860000000000582 --11.5606899999999992 --11.5606899999999992 --66.2251700000000056 --66.2251700000000056 -11.5606899999999992 -1166.6520000000000437 --555.5555000000000518 --555.5555000000000518 -17.5979300000000016 --13.2100399999999993 --13.2100399999999993 -57.2854200000000020 --33.1016199999999969 --33.1016199999999969 -46.6991999999999976 --45.2488699999999966 --45.2488699999999966 -2286.1529999999997926 --370.3704000000000178 --370.3704000000000178 --370.3704000000000178 --370.3704000000000178 --370.3704000000000178 --370.3704000000000178 --41.3223199999999977 --41.3223199999999977 -238.1108000000000118 --60.2409600000000012 --60.2409600000000012 --60.2409600000000012 --60.2409600000000012 --60.2409600000000012 --60.2409600000000012 --42.3728800000000021 --42.3728800000000021 -13.4228199999999998 --13.4228199999999998 --13.4228199999999998 -13.4228199999999998 --13.4228199999999998 --13.4228199999999998 -13.4228199999999998 --13.4228199999999998 --13.4228199999999998 -59.9258799999999994 -9.6608129999999992 --6.4350069999999997 --6.4350069999999997 -444.0341000000000236 -444.0341000000000236 -444.0341000000000236 -69.4748500000000035 --3.8461539999999999 --3.8461539999999999 -13.5643300000000000 --9.7181730000000002 --9.7181730000000002 -16.5104900000000008 --12.0481900000000000 --12.0481900000000000 -10029.6299999999991996 --9.0744089999999993 --9.0744089999999993 --10000.0000000000000000 --10000.0000000000000000 -18.1818199999999983 --18.1818199999999983 --18.1818199999999983 -1295.9590000000000600 -15.6091400000000000 -3.1055899999999999 --3.1055899999999999 --3.1055899999999999 -1120.0039999999999054 -74.3247400000000056 --64.9350699999999961 --64.9350699999999961 -4.5871560000000002 --4.5871560000000002 --4.5871560000000002 -9.6632990000000003 -23.8961000000000006 --5.7142860000000004 --5.7142860000000004 -92.8092900000000043 --14.6842900000000007 --14.6842900000000007 -49.8710799999999992 -12.2331900000000005 --6.5189050000000002 --6.5189050000000002 -85.9659900000000050 -81.9562999999999988 --44.6428599999999989 --44.6428599999999989 -2.1645020000000001 --2.1645020000000001 --2.1645020000000001 -74.3359099999999984 --3.6145450000000001 --3.6145450000000001 -90.2128600000000063 -10.4691100000000006 --2.3980820000000000 --2.3980820000000000 -3.6145450000000001 -63.8367199999999997 --19.1938600000000008 --19.1938600000000008 -4.9731449999999997 -90.8585199999999986 --3.6205650000000000 --3.6205650000000000 --12.0336900000000000 --12.0336900000000000 --29.0697699999999983 --29.0697699999999983 --21.8866300000000003 --21.8866300000000003 -86.7836900000000071 --24.2130800000000015 --24.2130800000000015 --3.8109760000000001 --3.8109760000000001 --12.1951199999999993 --12.1951199999999993 --21.7391299999999994 --21.7391299999999994 --3.9904229999999998 --3.9904229999999998 -38.1019700000000014 -3.6205650000000000 -3.8109760000000001 -12.0336900000000000 -12.1951199999999993 -49.9031000000000020 --20.8333300000000001 --20.8333300000000001 -10089.3099999999994907 --10000.0000000000000000 --10000.0000000000000000 -9.4302689999999991 --6.0496070000000000 --6.0496070000000000 -11.4339399999999998 -192.3077000000000112 --192.3077000000000112 --192.3077000000000112 -141.2346000000000004 --15.7853200000000005 --15.7853200000000005 --7.3588930000000001 --7.3588930000000001 --7.8733950000000004 --7.8733950000000004 --57.1102199999999982 --57.1102199999999982 -32.0484399999999994 --8.1672650000000004 --8.1672650000000004 --8.0958550000000002 --8.0958550000000002 -7.3588930000000001 -8.1672650000000004 -7.8733950000000004 -8.0958550000000002 -26.3810700000000011 -42.5531900000000007 -21.2314200000000000 --21.2314200000000000 --21.2314200000000000 -1.1697270000000000 --1.1697270000000000 --1.1697270000000000 -30.3739699999999999 --3.5223670000000000 --3.5223670000000000 --11.5740700000000007 --11.5740700000000007 -262.9839000000000055 --188.6792000000000087 --188.6792000000000087 --13.6986299999999996 --13.6986299999999996 --60.6060599999999994 --60.6060599999999994 -277.7794000000000096 --26.3088599999999992 --26.3088599999999992 --26.4830499999999986 --26.4830499999999986 -13.6986299999999996 -84.3590300000000042 -111.3657000000000039 -108.6042999999999950 --49.0196100000000001 --49.0196100000000001 -123.0803999999999974 --92.5925900000000013 --92.5925900000000013 -12.3307099999999998 -8.5223669999999991 -121.0169999999999959 --23.4741800000000005 --23.4741800000000005 -74.5726700000000022 -127.6411999999999978 --35.2112699999999990 --35.2112699999999990 --84.0336199999999991 --84.0336199999999991 --8.3963059999999992 --8.3963059999999992 -78.4239000000000033 --9.8135429999999992 --9.8135429999999992 -249.7547999999999888 --153.8461000000000070 --153.8461000000000070 --11.8750699999999991 --11.8750699999999991 -123.4568000000000012 --123.4568000000000012 --123.4568000000000012 -8.3963059999999992 -133.2702999999999918 -248.3154000000000110 -109.3950999999999993 -10.0350699999999993 -18.1129099999999994 --1.6492940000000000 --1.6492940000000000 -1.6492940000000000 -8.2201459999999997 --2.5188920000000001 --2.5188920000000001 -386.1499000000000024 -209.3694000000000131 --138.3126000000000033 --138.3126000000000033 -38.3333399999999997 --5.0000000000000000 --5.0000000000000000 -13.2759699999999992 -44.3075100000000006 -133.2931000000000097 --10.5820100000000004 --10.5820100000000004 --23.5294099999999986 --23.5294099999999986 -14.9202899999999996 -13.9482499999999998 -286.5966000000000236 -19.0886400000000016 --13.8121500000000008 --13.8121500000000008 -12.4631600000000002 -85.6072800000000029 --37.4531899999999993 --37.4531899999999993 -10037.4500000000007276 -212.2223999999999933 -4.2354930000000000 --4.2354930000000000 --4.2354930000000000 -12.0418900000000004 -21.7692399999999999 -117.2840000000000060 --24.6913599999999995 --24.6913599999999995 -60.4233800000000016 -12.3725500000000004 --10.1625999999999994 --10.1625999999999994 -31.5656600000000012 --31.5656600000000012 --31.5656600000000012 -83.2819099999999963 --1.4144470000000000 --1.4144470000000000 -2.5419420000000001 -119.8662999999999954 --8.3333340000000007 --8.3333340000000007 --34.0135999999999967 --34.0135999999999967 --77.5193799999999982 --77.5193799999999982 -8.3333340000000007 -108.8545000000000016 -343.4710999999999785 -17.6870599999999989 -42.0954800000000020 -19.0460400000000014 --8.4817640000000001 --8.4817640000000001 -51.3229299999999995 --6.7795009999999998 --6.7795009999999998 --22.2717199999999984 --22.2717199999999984 -32.6174099999999996 -9.9638869999999997 -8.4817640000000001 -30.2114800000000017 -17.3611100000000000 -66.7081699999999955 -12.0783500000000004 -490.5504999999999995 --240.9638999999999953 --240.9638999999999953 -91.8750799999999970 --80.0000000000000000 --80.0000000000000000 -492.3722999999999956 -155.0669000000000040 -3.7243949999999999 -39.5029600000000016 --9.9700900000000008 --9.9700900000000008 -10032.6200000000008004 --10.3448499999999992 --10.3448499999999992 -57.5176400000000001 -13.2874900000000000 -66.6289400000000001 -7.5188920000000001 -6.7673899999999998 -7.7579520000000004 --7.7579520000000004 --7.7579520000000004 -26.1762799999999984 -14.7082899999999999 -19.6891199999999991 -69.8580699999999979 --27.2479599999999991 --27.2479599999999991 --26.4550300000000007 --26.4550300000000007 --16.1550900000000013 --16.1550900000000013 -83.5518299999999954 --39.0625000000000000 --39.0625000000000000 --17.2413799999999995 --17.2413799999999995 -82.7588999999999970 --17.2413799999999995 --17.2413799999999995 -10000.0000000000000000 --10000.0000000000000000 --10000.0000000000000000 -185.1031999999999869 --6.6225170000000002 --6.6225170000000002 --6.5359480000000003 --6.5359480000000003 --6.5359480000000003 --6.5359480000000003 -10039.0599999999994907 -6.6225170000000002 -6.5359480000000003 -6.5359480000000003 -73.4736699999999985 --65.7894699999999943 --65.7894699999999943 -112.0369000000000028 -10219.7099999999991269 --6.9444450000000000 --6.9444450000000000 --10000.0000000000000000 --10000.0000000000000000 -80.4967999999999932 --9.2592590000000001 --9.2592590000000001 --2.2727270000000002 --2.2727270000000002 --2.2727270000000002 --2.2727270000000002 --3.7807189999999999 --3.7807189999999999 --3.8895369999999998 --3.8895369999999998 -10000.0000000000000000 -9.2592590000000001 -2.2727270000000002 -2.2727270000000002 -3.7807189999999999 -3.8895369999999998 -9.5732269999999993 -57.7426800000000000 -6796.3400000000001455 --69.6136500000000069 --69.6136500000000069 --6666.6670000000003711 --6666.6670000000003711 -313.5160999999999945 --243.9024000000000001 --243.9024000000000001 -78.3364899999999977 --68.0272099999999966 --68.0272099999999966 --10.3092799999999993 --10.3092799999999993 -56.0289100000000033 --11.9760500000000008 --11.9760500000000008 --44.0528600000000026 --44.0528600000000026 -69.9848300000000023 --35.9712299999999985 --35.9712299999999985 -60.1258199999999974 --24.1545899999999989 --24.1545899999999989 -92.1817900000000066 -418.9938999999999965 --33.8982999999999990 --33.8982999999999990 --29.7619100000000003 --29.7619100000000003 --44.4444400000000002 --44.4444400000000002 --44.4444400000000002 --44.4444400000000002 -33.8982999999999990 -29.7619100000000003 -44.4444400000000002 -44.4444400000000002 -66.5424100000000038 -18.2815399999999997 -6841.9049999999997453 --32.0512799999999984 --32.0512799999999984 --70.6713799999999992 --70.6713799999999992 -662.7050000000000409 --265.6041999999999916 --265.6041999999999916 --32.2580600000000004 --32.2580600000000004 --88.8888900000000035 --88.8888900000000035 -318.8808000000000220 --53.2764999999999986 --53.2764999999999986 -204.9703000000000088 --51.0204099999999983 --51.0204099999999983 --51.0204099999999983 --51.0204099999999983 -51.0204099999999983 -51.0204099999999983 -142.1654000000000053 -22.6244399999999999 -162.3037999999999954 --72.1678500000000014 --72.1678500000000014 --45.4132600000000011 --45.4132600000000011 --44.7227200000000025 --44.7227200000000025 -64.7997500000000031 --44.0528600000000026 --44.0528600000000026 --20.7468900000000005 --20.7468900000000005 -170.2747999999999990 --54.0540499999999966 --54.0540499999999966 -20.7468900000000005 -54.0540499999999966 -111.6384000000000043 -110.9479000000000042 -%% -0 -15 -45 -266 -1 -3 -2 -51 -185 -1 -3 -7 -119 -157 -428 -431 -4 -114 -5 -149 -432 -6 -17 -164 -366 -425 -3 -7 -8 -421 -9 -204 -276 -10 -411 -435 -11 -12 -13 -15 -11 -12 -11 -13 -14 -15 -0 -11 -14 -15 -16 -18 -56 -15 -16 -19 -20 -280 -333 -6 -17 -15 -18 -16 -19 -16 -20 -21 -22 -139 -21 -22 -139 -154 -196 -23 -24 -23 -24 -156 -169 -25 -98 -424 -26 -27 -26 -27 -84 -172 -28 -306 -315 -29 -30 -29 -30 -181 -185 -31 -375 -443 -32 -33 -238 -32 -33 -34 -221 -35 -324 -418 -36 -146 -261 -37 -38 -397 -37 -38 -39 -280 -38 -39 -416 -40 -46 -327 -412 -41 -171 -327 -42 -174 -43 -101 -285 -44 -173 -202 -263 -284 -0 -45 -252 -40 -46 -152 -284 -47 -204 -270 -282 -305 -48 -49 -113 -454 -48 -49 -237 -330 -441 -50 -81 -408 -2 -51 -396 -52 -270 -309 -53 -161 -405 -54 -268 -362 -55 -123 -223 -15 -56 -83 -57 -58 -59 -57 -58 -346 -376 -57 -59 -60 -331 -417 -61 -437 -62 -63 -88 -189 -393 -62 -63 -64 -65 -427 -435 -64 -65 -66 -68 -69 -70 -67 -69 -71 -72 -213 -66 -68 -66 -67 -69 -70 -71 -141 -310 -319 -66 -69 -70 -73 -74 -75 -90 -352 -67 -69 -71 -211 -212 -439 -463 -67 -72 -70 -73 -70 -74 -70 -75 -76 -77 -186 -263 -76 -77 -122 -264 -78 -79 -213 -420 -78 -79 -146 -251 -354 -392 -436 -80 -395 -456 -50 -81 -286 -82 -386 -422 -56 -83 -172 -27 -84 -87 -115 -274 -453 -85 -87 -86 -87 -235 -84 -85 -86 -87 -62 -88 -325 -89 -90 -385 -70 -89 -90 -92 -93 -94 -370 -91 -94 -386 -90 -92 -90 -93 -90 -91 -94 -95 -94 -95 -96 -325 -421 -97 -149 -155 -25 -98 -223 -99 -157 -219 -390 -100 -101 -43 -100 -101 -177 -232 -285 -102 -305 -428 -103 -104 -190 -256 -262 -103 -104 -105 -254 -106 -245 -333 -107 -190 -379 -108 -111 -109 -111 -110 -111 -108 -109 -110 -111 -122 -178 -297 -112 -262 -336 -377 -415 -48 -113 -114 -284 -4 -113 -114 -353 -84 -115 -116 -115 -116 -118 -117 -123 -345 -116 -118 -345 -3 -119 -428 -120 -122 -121 -122 -186 -263 -296 -77 -111 -120 -121 -122 -178 -264 -55 -117 -123 -124 -125 -124 -125 -384 -126 -128 -225 -127 -224 -437 -126 -128 -129 -140 -130 -140 -131 -140 -132 -141 -133 -142 -134 -139 -135 -140 -141 -143 -136 -140 -141 -144 -137 -198 -339 -138 -146 -21 -22 -134 -139 -129 -130 -131 -135 -136 -140 -69 -132 -135 -136 -141 -142 -472 -477 -486 -133 -141 -142 -241 -135 -143 -136 -144 -145 -182 -244 -338 -36 -79 -138 -146 -147 -433 -442 -148 -149 -216 -5 -97 -148 -149 -396 -150 -152 -153 -154 -151 -152 -153 -154 -46 -150 -151 -152 -202 -150 -151 -153 -22 -150 -151 -154 -240 -97 -155 -156 -24 -155 -156 -3 -99 -157 -158 -159 -182 -247 -387 -391 -158 -159 -368 -398 -160 -409 -53 -161 -354 -162 -166 -245 -163 -166 -230 -416 -469 -6 -164 -165 -340 -422 -162 -163 -166 -167 -168 -167 -168 -343 -399 -24 -169 -324 -170 -171 -41 -170 -171 -27 -83 -172 -201 -44 -173 -174 -284 -42 -173 -174 -175 -463 -176 -225 -101 -177 -339 -111 -122 -178 -179 -180 -179 -180 -232 -30 -181 -145 -158 -182 -183 -184 -247 -182 -183 -182 -184 -2 -30 -185 -76 -121 -186 -187 -197 -211 -188 -189 -62 -188 -189 -400 -103 -107 -190 -191 -194 -195 -373 -379 -415 -190 -191 -192 -193 -191 -192 -191 -193 -190 -194 -190 -195 -22 -196 -464 -187 -197 -200 -137 -198 -363 -199 -279 -197 -200 -172 -201 -246 -44 -152 -202 -296 -203 -204 -205 -206 -9 -47 -203 -204 -207 -282 -356 -368 -203 -205 -203 -206 -277 -204 -207 -208 -207 -208 -209 -210 -209 -210 -456 -464 -71 -187 -211 -71 -212 -443 -67 -78 -213 -214 -389 -439 -215 -216 -217 -218 -148 -215 -216 -276 -285 -428 -215 -217 -215 -218 -234 -99 -219 -270 -448 -220 -366 -463 -34 -221 -239 -435 -222 -344 -397 -406 -55 -98 -223 -376 -453 -127 -224 -225 -281 -376 -126 -176 -224 -225 -226 -227 -226 -227 -419 -228 -229 -228 -229 -314 -435 -163 -230 -385 -472 -231 -232 -233 -234 -101 -180 -231 -232 -231 -233 -218 -231 -234 -86 -235 -300 -398 -236 -299 -307 -49 -237 -293 -32 -238 -321 -221 -239 -421 -154 -240 -328 -142 -241 -257 -430 -479 -242 -243 -308 -242 -243 -145 -244 -299 -106 -162 -245 -201 -246 -332 -158 -182 -247 -248 -247 -248 -249 -250 -248 -249 -248 -250 -79 -251 -362 -45 -252 -255 -253 -255 -105 -254 -255 -384 -252 -253 -254 -255 -103 -256 -265 -335 -401 -426 -241 -257 -258 -259 -260 -430 -465 -257 -258 -257 -259 -257 -260 -36 -261 -442 -103 -112 -262 -335 -377 -44 -76 -121 -263 -264 -77 -122 -263 -264 -256 -265 -0 -266 -406 -267 -268 -54 -267 -268 -421 -269 -371 -403 -47 -52 -219 -270 -271 -309 -376 -270 -271 -272 -273 -271 -272 -271 -273 -84 -274 -344 -374 -406 -275 -314 -393 -9 -216 -276 -431 -206 -277 -278 -430 -478 -277 -278 -199 -279 -280 -16 -38 -279 -280 -224 -281 -47 -204 -282 -283 -284 -286 -287 -44 -46 -113 -173 -283 -284 -288 -289 -43 -101 -216 -285 -288 -289 -81 -283 -286 -283 -287 -284 -285 -288 -290 -284 -285 -289 -291 -288 -290 -289 -291 -292 -293 -237 -292 -293 -418 -294 -446 -295 -296 -297 -298 -121 -202 -295 -296 -455 -111 -295 -297 -295 -298 -236 -244 -299 -371 -235 -300 -301 -303 -305 -309 -322 -428 -300 -301 -302 -492 -301 -302 -300 -303 -304 -493 -303 -304 -47 -102 -300 -305 -309 -28 -306 -433 -236 -307 -372 -242 -308 -408 -52 -270 -300 -305 -309 -316 -317 -318 -390 -69 -310 -316 -317 -318 -319 -311 -316 -312 -317 -313 -318 -229 -275 -314 -28 -315 -427 -309 -310 -311 -316 -309 -310 -312 -317 -309 -310 -313 -318 -69 -310 -319 -320 -319 -320 -400 -238 -321 -322 -300 -321 -322 -339 -434 -323 -324 -35 -169 -323 -324 -88 -96 -325 -326 -327 -40 -41 -326 -327 -240 -328 -395 -329 -330 -49 -329 -330 -60 -331 -334 -246 -332 -391 -16 -106 -333 -331 -334 -433 -256 -262 -335 -112 -336 -342 -337 -393 -145 -338 -341 -137 -177 -322 -339 -165 -340 -422 -338 -341 -336 -342 -415 -168 -343 -222 -274 -344 -347 -349 -351 -352 -117 -118 -345 -346 -348 -350 -352 -374 -58 -345 -346 -344 -347 -345 -348 -344 -349 -345 -350 -344 -351 -394 -70 -344 -345 -352 -402 -114 -353 -419 -79 -161 -354 -355 -384 -204 -356 -357 -358 -360 -398 -356 -357 -359 -361 -356 -358 -357 -359 -356 -360 -357 -361 -54 -251 -362 -198 -363 -364 -437 -365 -366 -6 -220 -365 -366 -375 -425 -367 -368 -369 -370 -159 -204 -367 -368 -371 -372 -367 -369 -90 -367 -370 -269 -299 -368 -371 -307 -368 -372 -391 -190 -373 -407 -274 -345 -374 -31 -366 -375 -58 -223 -224 -270 -376 -394 -112 -262 -377 -378 -379 -380 -382 -107 -190 -378 -379 -383 -378 -380 -416 -429 -381 -383 -378 -382 -379 -381 -383 -125 -254 -355 -384 -89 -230 -385 -82 -91 -386 -158 -387 -388 -387 -388 -214 -389 -438 -99 -309 -390 -158 -332 -372 -391 -403 -79 -392 -438 -62 -275 -337 -393 -351 -376 -394 -80 -328 -395 -456 -464 -51 -149 -396 -37 -222 -397 -159 -235 -356 -398 -168 -399 -441 -189 -320 -400 -256 -401 -402 -352 -401 -402 -269 -391 -403 -404 -405 -53 -404 -405 -222 -266 -274 -406 -373 -407 -426 -50 -308 -408 -160 -409 -417 -410 -411 -10 -410 -411 -436 -40 -412 -413 -414 -415 -416 -413 -414 -112 -190 -342 -413 -415 -39 -163 -380 -413 -416 -60 -409 -417 -35 -293 -418 -227 -353 -419 -423 -78 -420 -421 -434 -8 -96 -239 -268 -420 -421 -82 -165 -340 -422 -419 -423 -25 -424 -6 -366 -425 -256 -407 -426 -64 -315 -427 -3 -102 -119 -216 -300 -428 -430 -380 -429 -430 -241 -257 -277 -428 -429 -430 -3 -276 -431 -5 -432 -147 -306 -334 -433 -436 -322 -420 -434 -435 -10 -64 -221 -229 -434 -435 -79 -411 -433 -436 -61 -127 -364 -437 -389 -392 -438 -71 -214 -439 -440 -441 -49 -399 -440 -441 -147 -261 -442 -31 -212 -443 -444 -445 -446 -448 -444 -445 -449 -454 -294 -444 -446 -454 -447 -449 -219 -444 -448 -450 -451 -452 -445 -447 -449 -448 -450 -448 -451 -448 -452 -84 -223 -453 -454 -48 -445 -446 -453 -454 -296 -455 -456 -457 -80 -210 -395 -455 -456 -458 -459 -460 -461 -462 -455 -457 -456 -458 -456 -459 -456 -460 -456 -461 -456 -462 -71 -175 -220 -463 -196 -210 -395 -464 -257 -465 -466 -479 -465 -466 -480 -467 -471 -477 -468 -472 -477 -163 -469 -470 -469 -470 -471 -467 -470 -471 -141 -230 -468 -472 -473 -474 -475 -476 -472 -473 -472 -474 -472 -475 -472 -476 -141 -467 -468 -477 -277 -478 -241 -465 -479 -480 -482 -466 -479 -480 -481 -482 -485 -480 -481 -485 -479 -480 -482 -483 -484 -482 -483 -482 -484 -480 -481 -485 -141 -486 -487 -489 -492 -493 -488 -489 -490 -487 -488 -489 -491 -488 -490 -489 -491 -301 -487 -492 -303 -487 -493 -%% -0 -4 -6 -9 -16 -18 -21 -26 -28 -30 -33 -36 -40 -42 -44 -46 -53 -59 -61 -63 -65 -67 -70 -75 -77 -81 -84 -86 -90 -93 -95 -99 -102 -105 -107 -109 -112 -115 -118 -122 -125 -129 -132 -134 -137 -142 -145 -149 -154 -158 -163 -166 -169 -172 -175 -178 -181 -184 -187 -191 -193 -196 -198 -203 -205 -209 -211 -215 -220 -222 -230 -238 -245 -247 -249 -251 -253 -257 -261 -265 -272 -275 -278 -281 -284 -290 -292 -295 -299 -302 -305 -312 -315 -317 -319 -323 -325 -328 -331 -334 -338 -340 -346 -349 -354 -356 -358 -361 -364 -366 -368 -370 -377 -382 -386 -390 -393 -396 -399 -402 -405 -407 -412 -419 -422 -424 -427 -430 -433 -435 -437 -439 -441 -443 -445 -447 -451 -455 -458 -460 -464 -470 -479 -483 -485 -487 -491 -495 -498 -501 -506 -510 -514 -519 -522 -527 -530 -533 -536 -542 -546 -548 -551 -554 -559 -561 -564 -567 -569 -573 -576 -578 -581 -585 -589 -592 -594 -596 -599 -602 -604 -607 -609 -615 -617 -619 -622 -625 -628 -630 -634 -643 -647 -649 -651 -653 -655 -658 -661 -664 -666 -668 -671 -675 -679 -687 -689 -692 -695 -697 -699 -703 -706 -709 -712 -715 -719 -725 -727 -730 -734 -737 -741 -745 -750 -755 -759 -761 -764 -766 -770 -774 -778 -782 -784 -787 -791 -794 -797 -800 -803 -806 -811 -814 -816 -819 -822 -825 -829 -833 -835 -837 -840 -843 -845 -849 -853 -859 -866 -868 -870 -872 -875 -880 -885 -889 -891 -894 -896 -900 -903 -910 -914 -916 -918 -923 -926 -930 -935 -937 -940 -944 -946 -949 -953 -961 -967 -970 -972 -976 -980 -982 -984 -986 -990 -992 -996 -1001 -1004 -1006 -1010 -1018 -1022 -1024 -1028 -1030 -1035 -1038 -1041 -1044 -1053 -1059 -1061 -1063 -1065 -1068 -1071 -1075 -1079 -1083 -1087 -1090 -1093 -1098 -1100 -1104 -1107 -1109 -1113 -1116 -1118 -1121 -1124 -1127 -1130 -1133 -1136 -1139 -1141 -1144 -1148 -1151 -1153 -1156 -1158 -1165 -1173 -1176 -1178 -1180 -1182 -1184 -1187 -1192 -1195 -1198 -1200 -1206 -1210 -1212 -1214 -1216 -1218 -1221 -1223 -1225 -1227 -1233 -1237 -1243 -1245 -1248 -1252 -1256 -1259 -1262 -1265 -1271 -1274 -1278 -1283 -1287 -1289 -1291 -1294 -1298 -1301 -1304 -1307 -1309 -1312 -1315 -1320 -1323 -1327 -1330 -1335 -1338 -1341 -1345 -1348 -1351 -1354 -1357 -1360 -1362 -1365 -1369 -1372 -1375 -1378 -1380 -1384 -1386 -1390 -1392 -1397 -1402 -1405 -1408 -1412 -1416 -1422 -1426 -1428 -1430 -1433 -1436 -1439 -1446 -1449 -1455 -1458 -1460 -1465 -1469 -1475 -1479 -1483 -1486 -1489 -1491 -1495 -1498 -1501 -1505 -1509 -1513 -1515 -1521 -1524 -1526 -1528 -1530 -1534 -1539 -1543 -1553 -1555 -1557 -1559 -1561 -1563 -1565 -1569 -1573 -1577 -1580 -1583 -1586 -1589 -1592 -1595 -1603 -1605 -1607 -1609 -1611 -1615 -1617 -1622 -1628 -1631 -1636 -1638 -1640 -1643 -1645 -1649 -1652 -1656 -1658 -1660 -1663 -1666 -%% -0.8483178396146527 -0.6706497803768818 -0.9316474009271629 -0.8259915659051159 -0.0749141099239747 -0.6127769850532617 -0.3243126095086337 -0.4042432493346517 -0.4889216894177568 -0.0563064540342341 -0.2003220013219365 -0.4506809985950107 -0.2465207945154783 -0.6728182306226016 -0.5009444841545747 -0.2093887700710019 -0.3833875674814791 -0.2629049630806244 -0.8638473264891788 -0.0068903568874143 -0.4270323830861616 -0.6741981263711310 -0.0263683207747022 -0.8026358879744457 -0.1798125277440863 -0.6615563839200532 -0.5388504032397917 -0.2011487589490933 -0.9782153590525915 -0.2966113305625048 -0.8309093043465101 -0.5350148999623799 -0.8577368190902865 -0.7123884593841227 -0.9543748287741737 -0.8801106496231675 -0.8490474371089849 -0.1057599762765537 -0.3694121479802369 -0.7736908773165471 -0.3352441047664209 -0.1150862062662503 -0.7552438928694989 -0.3439478131991411 -0.2817087394018067 -0.2162976539518998 -0.4852360002861091 -0.0057640498417387 -0.7268004045533238 -0.5205619338920122 -0.6343918397825450 -0.1837588835868946 -0.2104079488356254 -0.1072048133407638 -0.0395947057002634 -0.9330220583897403 -0.0400209978161234 -0.0781877556303664 -0.2976758337005888 -0.6604415374454923 -0.9521082225628823 -0.0055543256941696 -0.1866873697274503 -0.2113213532549362 -0.7358651200871347 -0.4166371044168225 -0.1361097436415447 -0.2489126317221700 -0.9090931683964897 -0.8804237290693118 -0.4604792296588825 -0.9114630717835008 -0.5769636562652027 -0.2122197185028387 -0.8616704275858206 -0.1872496047054253 -0.8767687582692533 -0.0283493571356546 -0.0279669403183254 -0.0011739769717719 -0.8816612565392817 -0.2587451230366413 -0.1866195592416753 -0.6134283988672150 -0.7633503369248252 -0.7960136720771441 -0.2150746941951263 -0.4417212743517567 -0.1339641300308199 -0.3538190365232776 -0.7161428864829403 -0.4820827424201957 -0.1365021466723779 -0.7270079301991990 -0.5001932391978972 -0.5540293780631791 -0.8470236345937937 -0.6844720529281880 -0.4470622249540837 -0.7395825773469121 -0.7140811894103265 -0.1689867872929229 -0.0127652175460312 -0.7390011771948182 -0.3876666127209407 -0.3889554660143338 -0.9958895038034786 -0.0158743815304996 -0.0926458725571736 -0.2794561312296530 -0.9676672240567189 -0.5488249778351199 -0.3736362838672994 -0.9939879360511114 -0.0488822949430138 -0.3265921768161898 -0.4076365668481068 -0.7380059200028429 -0.4603180906842517 -0.2686659846029050 -0.2873166763901486 -0.0140301867513706 -0.4365584272465929 -0.0345076306283345 -0.5850196896009423 -0.7098586658566393 -0.9590813817633715 -0.8804033136216555 -0.9980595552286854 -0.1311251822393278 -0.6068136140773602 -0.1738269702011150 -0.7043815368917442 -0.9467849911595574 -0.1974515966674346 -0.0635165505526809 -0.6575472564589070 -0.8045666146925562 -0.9454611044982865 -0.5500252055448300 -0.5747363779881197 -0.2960850128458551 -0.2194919783622648 -0.3791679357611623 -0.5763745454924379 -0.3318679405186607 -0.7153851752905834 -0.1383370271666072 -0.8911010718686341 -0.9622471231685127 -0.5206280483477259 -0.0008209235817533 -0.1501220678649025 -0.2858982586997720 -0.3812301813733660 -0.9627033012525220 -0.0463248309608765 -0.5536461903980735 -0.4254903780644615 -0.0203918495292208 -0.4973494195501764 -0.2673520692161342 -0.4281354730441760 -0.3587292238852842 -0.1142915128435944 -0.0093934765497702 -0.0804645407448647 -0.0284739994461690 -0.4373515560814680 -0.5054042027492341 -0.2582268915654431 -0.8181935096212357 -0.7683934478079263 -0.5459306504169178 -0.0766898881091194 -0.9984011518683296 -0.8463122892926332 -0.4788924934998232 -0.1107166721271598 -0.9047358057561707 -0.5840612962298976 -0.6958031753814037 -0.8557126220464411 -0.0826713344650157 -0.4838001677368423 -0.2449075192032626 -0.0621016340325793 -0.4332419552713540 -0.1310235740565679 -0.7481090411770011 -0.3776118887938892 -0.3337436210362408 -0.3530460812272584 -0.1288111479371150 -0.4149216674120018 -0.1393425109365868 -0.2064459122797230 -0.3694359018085516 -0.8343916891700796 -0.2161886277610609 -0.0932775064851222 -0.0868289540623030 -0.2731170192259920 -0.2809660913222927 -0.3356228717457055 -0.6834390896658262 -0.3267963290017710 -0.6599492802927122 -0.0435681404918652 -0.0703576285531474 -0.7228303690021292 -0.8851721422324230 -0.2107907960557750 -0.0784159016220343 -0.9615694238266003 -0.6775815611931443 -0.9326414560282523 -0.8723857873635551 -0.9394618799882867 -0.3442387428829488 -0.1764777376547630 -0.7488398469947676 -0.3732788212737727 -0.6865869483303326 -0.4000735922705779 -0.5721400649461029 -0.1120309369903489 -0.5113942038836549 -0.0511100243190568 -0.7175259320021290 -0.8575182783261570 -0.5784878853002242 -0.1349654718909908 -0.1192925964151463 -0.9723092959416103 -0.3728264511453223 -0.8067179481103881 -0.3324480279209299 -0.4657453752075365 -0.7348138089866270 -0.8214647023258758 -0.9113418227917187 -0.6642716262994925 -0.0133558732261029 -0.2924958180021960 -0.0444334379695671 -0.9396144243758447 -0.7655890089284283 -0.6692048055281263 -0.8380837128929514 -0.4554570494036198 -0.6909078386850797 -0.0154017302137861 -0.8479124776327206 -0.9462209557130911 -0.7677202200246880 -0.9279331770197743 -0.5153327254961750 -0.8926116198429296 -0.8930457828966226 -0.9844385803033128 -0.6018790515210961 -0.8235301034352464 -0.0665720402909682 -0.1171662519206369 -0.5962448507692394 -0.9738432213333370 -0.3392590904124880 -0.1702801969466125 -0.1112857249315309 -0.9700813330218533 -0.5367884989765819 -0.3431322540111262 -0.9916240181373843 -0.3521808070203251 -0.8331481345246642 -0.6456496860574097 -0.2994661478507417 -0.0078332098488572 -0.8627726556183214 -0.2780721231188467 -0.6182353827040976 -0.9308493287741327 -0.6149876265111006 -0.3391027675786487 -0.3531793653091488 -0.6387221774977941 -0.5143005186400568 -0.1387668025077644 -0.5926468898446244 -0.3193379819348149 -0.3649024825358713 -0.2938847760898528 -0.5343363005946771 -0.3760463174887679 -0.5725036130122593 -0.1542553433051521 -0.3174075718189375 -0.6639159037834084 -0.3751798269431847 -0.3564936178023257 -0.6578860801973966 -0.4878134574691712 -0.9332728824329765 -0.0345427675439928 -0.1146445520498136 -0.5848943772682992 -0.1662239710723725 -0.0693781648667100 -0.8694019864172604 -0.2191364932019932 -0.7499672365062569 -0.2761112415673199 -0.7271363734624335 -0.2440285243758249 -0.9430020624479579 -0.1440250692777039 -0.4132824422670823 -0.7614656056422392 -0.4837363618225233 -0.9809620066037130 -0.4671709271543480 -0.9348033021342805 -0.4537214639120629 -0.7552137859210596 -0.7954668379373012 -0.6065311722051752 -0.2438654997599063 -0.5503350398133949 -0.4419460762806375 -0.6275061460415338 -0.6777206266673230 -0.0111472337609468 -0.9957734162654772 -0.1246312888209616 -0.2480800843375707 -0.4231461451579110 -0.1280403970412000 -0.6484414922888584 -0.3644668863337679 -0.2337922181906040 -0.9616873414436868 -0.6779685516426726 -0.1868708749314857 -0.8782741573686651 -0.6930411666732398 -0.6177010100415349 -0.5780037143603487 -0.2939854446950563 -0.5608423882500977 -0.8761871775505162 -0.6441989655644730 -0.1810071211477334 -0.9713249811202351 -0.8720289503655566 -0.4294390166286234 -0.2532811225707449 -0.8969774741365252 -0.6100117892988954 -0.1960699631492769 -0.9301354739598914 -0.7224530353170772 -0.5191027833281141 -0.1268089950416111 -0.1431706944572742 -0.9397683680282519 -0.1708568797583734 -0.5315018323429732 -0.6242359909565518 -0.2254886187046609 -0.9782736794109049 -0.0429141142621825 -0.9891683505866096 -0.2024717685614631 -0.0196826080659797 -0.6910933955316909 -0.2768293352286383 -0.7314732999603543 -0.0768308861291690 -0.1551093873719042 -0.6270659160444320 -0.6743060895480667 -0.3147389465422545 -0.4556540188327001 -0.5336071033488232 -0.4432436833380574 -0.0120537996182269 -0.5606860679844500 -0.5307654724048916 -0.6319108687982481 -0.5153605911637142 -0.0116703069980435 -0.7528566241924224 -0.2322452408551318 -0.7033589194426896 -0.3536862332363362 -0.3209196647064811 -0.1158322695030433 -0.4410043195102882 -0.9634522939857088 -0.0111739864620048 -0.8487323055999937 -0.2863026779679601 -0.4353499310626945 -0.2683100918304755 -0.6302969530620972 -0.2979827363431253 -0.1274088565446815 -0.3721852873425603 -0.2453010715007161 -0.1633665685261703 -0.7126333281485220 -0.6533281645944697 -0.5808262573450925 -0.2843454312853405 -0.5096368273743479 -0.9051319563159713 -0.4906882869254115 -0.5983082899373767 -0.6495880834323012 -0.5757792223158209 -0.0233123321742689 -0.2692903346720601 -0.0041469810558323 -0.6096013896981760 -0.8805597089399800 -0.0901025770439411 -0.2018707114365797 -0.4634050247425767 -0.3379314576230700 -0.6204605185689965 -0.4753747255809189 -0.5112592424386806 -0.6616274253970083 -0.4937665420329518 -0.3197317654981836 -0.4695717035134276 -0.2874055811093641 -0.9097122918366112 -0.0698162859045715 -0.3201641400746201 -0.5185972464080254 -0.9905173479273656 -0.3712390779666960 -0.0056370341850618 -0.0395522598727142 -0.3921534977584564 -0.8522029796288904 -0.3346194563079505 -0.6429233013492220 -0.6360433801365077 -0.1716043134564161 -0.5201155310158935 -0.0245860778925260 -0.4362019819492165 -0.1192679823597833 -0.3809198621760362 -0.2251123162515863 -0.5670535082271564 -0.2278627039406244 -0.0529453230927324 -0.6021001931781610 -0.6790772399224166 -0.7716493715297760 -0.2868627608072348 -0.7086536443199765 -0.9392660254042972 -0.6378488996151952 -0.5753465166316099 -0.9778896639349272 -0.6541005362632644 -0.6175561601799165 -0.2817555840484371 -0.1438112390964338 -0.6612642174687781 -0.5655215638728978 -0.9423159385445181 -0.8964914023258709 -0.9174747407529212 -0.4929803186620192 -0.9779240481377166 -0.3181047984817529 -0.2986892413220574 -0.2571762285898997 -0.1916000764166038 -0.5341139182822019 -0.7468217076566656 -0.4481070842468913 -0.5936366233299584 -0.7442557099061952 -0.5410113779987784 -0.0755455037462515 -0.0748945408290509 -0.0881736635594114 diff --git a/examples/machsuite/spmv/crs/run_test.py b/examples/machsuite/spmv/crs/run_test.py index 243feb3cea..57089ef5f8 100644 --- a/examples/machsuite/spmv/crs/run_test.py +++ b/examples/machsuite/spmv/crs/run_test.py @@ -5,41 +5,46 @@ _dir = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, _dir) -from crs import crs +from crs import crs, N, NNZ -def parse_data(file): - data_arrays = [] - current_array = [] - with open(file, 'r') as f: - for line in f: - if line.strip() == '%%': - if current_array: - data_arrays.append(current_array) - current_array = [] - else: - num = float(line.strip()) - current_array.append(num) +def generate_sparse_crs(n, nnz, rng): + """Generate a random sparse matrix in CRS format.""" + entries_per_row = nnz // n + extra = nnz - entries_per_row * n - data_arrays.append(current_array) - return data_arrays + values = rng.random(nnz).astype(np.float64) + columns = np.zeros(nnz, dtype=np.int32) + rows = np.zeros(n + 1, dtype=np.int32) + idx = 0 + for i in range(n): + count = entries_per_row + (1 if i < extra else 0) + cols = np.sort(rng.choice(n, size=count, replace=False)) + for c in cols: + columns[idx] = c + idx += 1 + rows[i + 1] = idx + + return values, columns, rows -if __name__ == "__main__": - input = parse_data(os.path.join(_dir, "input.data")) - check = parse_data(os.path.join(_dir, "check.data")) +if __name__ == "__main__": + rng = np.random.default_rng(42) - values = np.array(input[0]).astype(np.float64) - columns = np.array(input[1]).astype(np.int32) - rows = np.array(input[2]).astype(np.int32) - vector = np.array(input[3]).astype(np.float64) + values, columns, rows = generate_sparse_crs(N, NNZ, rng) + vector = rng.random(N).astype(np.float64) - check = np.array(check[0]).astype(np.float64) + # Python reference: dense matmul + dense = np.zeros((N, N), dtype=np.float64) + for i in range(N): + for j in range(rows[i], rows[i + 1]): + dense[i, columns[j]] = values[j] + expected = dense @ vector - ## Building s = allo.customize(crs) mod = s.build() - actual = mod(values, columns, rows, vector) - np.testing.assert_allclose(actual, check, rtol=1e-5, atol=1e-5) \ No newline at end of file + + np.testing.assert_allclose(actual, expected, rtol=1e-5, atol=1e-5) + print("PASS!") diff --git a/examples/machsuite/spmv/ellpack/check.data b/examples/machsuite/spmv/ellpack/check.data deleted file mode 100644 index 47b9666f9d..0000000000 --- a/examples/machsuite/spmv/ellpack/check.data +++ /dev/null @@ -1,495 +0,0 @@ -%% -1871.7848080859318998 --8.8439346286551412 --4.1057636527807517 -289.6985128226187953 --11.3888136769930313 --307.8727521860603247 --192.7076542348153225 -3.3739865325637135 --3.7889578481137649 --3.0030200188998841 -8.0089633919431567 --3.3878017418294029 --3.0507008083914444 -59.2886936321243780 -2.9780958415066543 --158.1087480869031481 --40.3262360397810298 --0.9998784011311241 --8.6790677362391619 --3.6421228254484515 -3.8221319552663089 -28.1578751222559660 --22.8084561065140434 -14.1462897791780868 --27.0101605289843931 --33.4278312802921320 --15.4282590237712292 -102.0737627182930538 --122.9141674420853576 -177.5731832035259004 --194.6708453104239425 --9.5877871247874005 --0.5910436133885639 --7.4448808984098021 --21.2901834471117652 -6.5296397343814405 -207.7696636653149085 --82.8785136868552854 --627.8396077027809952 --4.5538964512164206 --4.8696341365514755 -18.8627359579027427 --13.4001854927612971 --1.1962227013482489 --24.7211712469747376 --62.8975685233145612 -20.7683449290265152 --1456.6387643549214772 -51.3752220577458871 --150.1990543825074838 --0.5786378479182659 --29.5124032253664268 --133.3076202113051067 -110.1763257597252306 --234.5138421221315923 --24.8925210009502003 --11.0773106295720893 --28.3848223330828553 --17.6783022552457716 -11.4499164125633826 --12.7091616872776072 --1.5614053746095236 -6.8041196526507148 -4.9259887100509641 --11.3506549539871635 -1190.9436075001278823 --2484.5111002742546589 --110.2096940987770068 --11.9447166291469706 --74.2937020753856672 --24.3940727044116699 --8.8416055446615545 --0.3193098789636171 --4.8323913872224225 -31.6010612222814871 --14.2357972762354450 --16.4245656655571004 --11.4073779417708359 --3.3683862158863089 --0.5831733830976340 --28.1555167811446907 --21.0448917754093010 --3.4837296605126014 -9.5905875806634455 --10.7108437322303942 --2.4630859330493071 --30.9994367236274364 --13.2741097589108961 -109.1759648784947103 --831.5751831466451449 --54.2097201844439525 --10.7368018292021077 --9.0510378505474502 -596.6175577306246396 --81.7191777681538269 --33.1422416862454199 --31.7594411557345140 -168.6614422223490806 --43.5252908408722732 --95.1344962278169106 --25.0744583969294759 --15.2923513744222141 -4.6992766898660987 -66.1447600745041342 --18.5332104250914220 --15.6392125648504408 --6.6174697666645255 --1.0879563968423296 --4.8853220326143560 --15.4712344386299527 --30.1430410773888227 --0.2481221561805920 --47.5276662794670912 --2.8305404462721935 -19.7919632674200727 -3.0205207835020609 -5.7608975154015045 -217.5469408419017157 --265.0008164051230892 --14.1798142706209820 --2.2002285117553266 --8.0793180083037104 --7.0930533216017135 -104.1196140123579141 --116.6557205310090808 -124.6351416292567080 --82.7524326735291140 --26.4842704123301473 -2.0349001696593234 --12.7480204773969277 -19.1486987216882341 -60.8196984735684865 --7.8963423184519606 -11.3250281729143616 --8.0721066338425551 --1.9329324366658569 -31.6559865113579377 -392.8591952594022132 --193.1217106521979758 --796.6479203536769091 --39.5458760918757619 --99.5606132752340898 -62.3359925628013940 --8.1001851626878789 --37.8182719517499280 --15.9080533562545163 --45.5361469446285270 -73.9836670420719145 --152.2360106684313621 --22.8908134766747509 --0.8971288764742744 -1.6748021950719214 -30.9084340367891777 --29.8387648959012708 --48.4172596268893045 -6.9620768652454332 --5.5179177328512674 -12.5569742548993322 --0.9179957634002185 --19.8778311347448877 -11.7887306408715222 --20.8678667499200401 --32.3227983968563208 --26.1615889856070964 --5.2857544551806335 --2.9183908628467439 -13.0042084086873135 --1.4060534467112857 --1.5314522771159977 --6.9603370186869240 --6.1349795939893799 --23.0237310261970762 --18.0955620222033389 --3.8714606901731021 --4.5687398489700506 --1.7641704717111413 --26.0744876339404286 --41.8864955933674779 -0.0842325156402604 -7.2387011463599933 -171.5920167232028746 --318.1415275909248521 --462.6796794455115105 --56.5291503888484073 --17.9800390649588522 -53.6292862354133248 --58.5439720406343369 -142.2734603500565811 -580.0664146297856405 --203.2063609329190683 -86.7562082412331677 -25.7648797354961268 --27.2634049872177400 --19.4942694467464044 -3.3362938341511645 --5.0681806125144071 -1.2745978051065041 --16.0787286512922414 -20.9676353947546197 -6.7952369035818938 --2.2131175656875501 --48.1202955747272227 -12.9561102587239390 --39.4560642896417164 --3660.9006748120191332 -4027.9694847203504651 -134.3972912874223766 --20.7228805656372117 --14.8924085218783269 --13.0587457803110016 -65.5436963885441486 --204.7246445215849917 -0.7280292482259990 -1.9692169463096698 -111.5192436130447504 --176.8751606241443142 --959.3073635761014657 --20.7620597623385521 --7.3897091677512412 -1010.1690013903163390 -36.2534606878878662 --14.0346306179491389 --75.8835561414735196 -141.3986934054079825 --18.7427766081788540 -9.9605941180847282 -2.3599058214195114 -20.6191828535223607 --11.1235304599698104 -2.9833005939198873 --60.7609350399250516 -17.4346349701559049 --20.5765762708552202 -7.5919997675561497 -36.2202688256436289 --1.6647136078425038 -1.8663411854113692 -109.5142131389502964 --16.2008695270493597 --22.5255419909889234 --44.4648440265346636 --41.9690445502082454 --7.7149806638302678 -6.9277556462491425 -19.8987672590675402 --25.6095329507658178 --7.2696315110631664 --54.0561117761851122 -26.0731812026484207 -90.6100033717952300 --117.1523140441187252 --1358.1360510674574016 --66.7277613631491135 -1112.8348382090882751 --142.0859836352898640 --74.7653244881297212 -106.5968714819060068 -2.3316076458121895 --24.9494763887881703 -0.7030289941015688 -0.4420052213994232 -23.0081504119473763 -167.2100554452262884 --217.4999358314942128 -111.4107260136770066 --8.3333961174175712 --48.9593151816018448 -21.7515415610445864 -319.2133211513757374 --16.8436937217716647 -1.6133803025361830 --15.9204693708605500 --9.8535831028968666 --10.1033966404954612 --2.5909967530970111 -7.8008828616401971 --29.3540362142419191 -40.3306272905754071 -5.8816614585927383 -20.3634143186272922 --41.7604202286373507 --3.7771106316670915 --23.8688734189802432 -44.9083790983060851 --26.6538280112725658 --5.9368211167880318 --66.1272829898980916 -63.0096926875636001 --22.6072880203460862 --2.6636053785806633 -0.7136416170167985 -114.5682170441557730 --154.5188872580180259 --106.2992824087824886 -0.1076961886411922 -1.7999643732687751 -6.9205708732205569 --73.1659541184407232 --9.5358595584767336 -9034.6811655120600335 -6428.3482987614233934 --2.7130028388457679 -48.5318295127536388 --57.3406342522616228 -131.9520669424607604 --55.6731111450469456 -295.0214800996614031 --177.3227928764624721 --99.1454563287276756 -220.0600401365433925 --36.3624458451291446 -19.2224774922722581 -2.8685377665355274 -17.3636158236268834 --11.1766483537520696 --6.3240649121962180 -94.1677260348064920 -517.6258969709534767 --58.7840871654754693 --11.8055048737910617 --19.7050764733324755 -38.4544032094926536 --21.8527509282711598 -6.4051121067341246 --15.7230499761801905 --96.8796388432965614 -144.5883880520403011 --108.5270895292474762 -37.9985191216638540 --11.7136032458725090 -197.0852836008277222 -34.3564214089367468 --17.3964645156189910 -95.8439119078080637 --71.7636963382541069 -53.9478574544632039 -79.6300976596169789 -15.9527846947069722 -52.8035210663891945 -0.0645350270188201 --5.3314174515736248 -23.6571395564440152 --6.2471523518731011 -77.7876444768589010 --675.2627969379977912 -211.9190754900325260 --3216.8360208307267385 --2045.5501719175044855 --493.5133056841480084 --443.9102052257845799 --42.4060244738823826 -1293.7815179533238279 -487.5841811759120219 --54.8133813095899782 -1020.3673465704118826 --535.0255687071303328 --19.7308611248566343 -1614.0070384548191669 --319.7381410863234805 --404.8324165665175087 --438.3024782236904002 --66.9186257294047806 --63.4642744302176496 --57.9036519695690899 --25.9383281933588350 --47.0603903494329430 --29.4326163521255495 -54.3524640596935456 -730.0789231412579738 -36.0587461239678078 --5.0519624357748576 --2.9250423725631514 -1535.8211661286259186 --3774.7541075839271798 -892.0568778648539592 --1.0153272322639033 -293.5008571439258276 -23.7234488268187498 -52.2504514282590264 -15.5571868983889132 -2.5029395641808936 -0.4732728443675525 -23.2301053969714815 -38.1078926443680430 -6.0613899268872107 --2.3799962203020524 -44.6857690567703756 --14.6747050577247720 --31.7282452452638672 -44.0722759469662151 --40.9224988054577423 --23.5383332758564876 -31.6529293986003779 -8.2240783290234845 -11.7269400267686343 --143.0022284810266342 -71.6059294474964787 --75.7633251173143947 --11.3162489857358999 --40.6462848628561986 --11.3776308232304935 --16.7677548059059447 -10.5180077638598881 -19.7343566114501741 --7.6854950852902775 --2.6995362232872404 -26.8527358639635452 -19.8774656644438252 --137.8851900039671250 --51.4184208952680279 -26.6312969236649479 --22.0369035264292066 -101.0392158710919830 -135.5635316703188664 --80.1084874449653483 -64.2733412417919681 --15.1081092270946016 --86.1886924398141332 -57.9064531820786357 --121.6972419986612124 -6.9148477624079021 -324.2818730558734046 -2.2759148462490337 --1.6466880240586437 -383.0918086953634543 --34.7333847880945541 --4.0805110580642285 -156.1638214898648016 -148.1792339293115219 --5.5957897580932130 -4773.2500243420108745 --0.5087160669729016 -73.3022182442790893 --6.9129742379189594 --17.0037918576874816 -72.9286085661630068 --83.1542460309150471 -121.2064124325577694 -60.1949231164581420 --12.3034432377556033 --5.6863836584204810 --17.4413799734767636 -36.5534795786125812 -220.3473852268654127 --1.6294110602065643 -120.3441861874725021 -4387.1376633766303712 --15.4668571077764234 -52.1487279212117016 -9.9111460108396603 -17.4448144397329798 -18.7000019332348586 --22.8773695371921733 -4.7619535334250003 --1.0212201350424337 -1553.3595396478458497 --2644.9605837905137378 -2.2508517239483838 --9.3185695179376893 -0.4685151300908785 -3892.5228487948334077 --6023.6472088138989420 --3754.5350769937749646 --19.8387615821018706 --4.5337270471402755 -9392.4641462224717543 -7.4425275565646194 -60.1587583693673054 -3828.2284715210594186 --8705.7219818705398211 --349.6691446384469373 --94.2542749549050995 -4.9444842990352171 --1.4883262417015199 --22.7782566675297105 -262.9228196612849047 --41.4939436943127689 --93.2106691274442767 --54.0862563070921851 -137.2328473295738149 -3289.7010045606616586 -421.7222858299887207 --35.7612002805023792 --29.6145667077643822 -51.4469089457480422 --93.3746342238168836 -53.2095284717940018 -86.3360563783271573 --101.2096472194543537 --1.6900237078904561 --37.3756946065164684 --2.5774958040035170 --58.2295810103489302 -110.2558197718876016 diff --git a/examples/machsuite/spmv/ellpack/input.data b/examples/machsuite/spmv/ellpack/input.data deleted file mode 100644 index 902fd17ae5..0000000000 --- a/examples/machsuite/spmv/ellpack/input.data +++ /dev/null @@ -1,10377 +0,0 @@ -%% -2220.8739999999997963 --9.9601590000000009 --9.9601590000000009 --8.1967210000000001 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --8.1967210000000001 --4.0518640000000001 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --4.0518640000000001 -5.4106699999999996 --5.4106699999999996 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --5.4106699999999996 -13.5708599999999997 --5.6657229999999998 --5.6657229999999998 --7.9051380000000000 --7.9051380000000000 -618.3967999999999847 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --91.9963199999999972 --91.9963199999999972 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --100.0000000000000000 --100.0000000000000000 --294.1175999999999817 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --294.1175999999999817 --53.5045500000000018 --53.5045500000000018 --73.3675700000000006 --73.3675700000000006 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -8.0000000000000000 --8.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --8.0000000000000000 -5.2511120000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --1.5267180000000000 --1.5267180000000000 --3.7243949999999999 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --3.7243949999999999 -12.5098099999999999 --0.5000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.5000000000000000 --2.6191719999999998 --2.6191719999999998 --3.6036039999999998 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --3.6036039999999998 --5.7870369999999998 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --5.7870369999999998 -91.9963199999999972 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -10.2144999999999992 --10.2144999999999992 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --10.2144999999999992 -277.3765999999999963 --127.2265000000000015 --127.2265000000000015 --150.1501000000000090 --150.1501000000000090 -79.8003400000000056 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --50.3018100000000032 --50.3018100000000032 --29.4985299999999988 --29.4985299999999988 -13.0155700000000003 --1.3333330000000001 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --1.3333330000000001 --2.1584289999999999 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --2.1584289999999999 --9.5238090000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --9.5238090000000000 -1.3333330000000001 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -2.1584289999999999 -7.0126229999999996 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --7.0126229999999996 --7.0126229999999996 -60.1257599999999996 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --21.7864900000000006 --21.7864900000000006 --7.0372969999999997 --7.0372969999999997 --4.8053819999999998 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --4.8053819999999998 -100.1223999999999990 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --17.6056300000000014 --17.6056300000000014 --17.6056300000000014 --17.6056300000000014 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --14.3061500000000006 --14.3061500000000006 --28.8184499999999986 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --28.8184499999999986 -0.5000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.0372969999999997 -17.6056300000000014 -17.6056300000000014 -105.8066000000000031 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --37.3134299999999968 --37.3134299999999968 --68.4931500000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --68.4931500000000000 -238.1596000000000117 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --81.9672199999999975 --81.9672199999999975 --108.6955999999999989 --108.6955999999999989 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --10.1832999999999991 --10.1832999999999991 -7.8064020000000003 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --7.8064020000000003 --7.8064020000000003 -25.0479899999999986 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --4.7415839999999996 --4.7415839999999996 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --12.5000000000000000 --12.5000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -72.5843600000000038 --42.3728800000000021 --42.3728800000000021 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --30.2114800000000017 --30.2114800000000017 -423.7287999999999784 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --423.7287999999999784 --423.7287999999999784 -1022.7340000000000373 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --3.7674720000000002 --3.7674720000000002 --595.2381000000000313 --595.2381000000000313 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.6136960000000000 --4.3878890000000004 --4.3878890000000004 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --3.2258060000000000 --3.2258060000000000 -5.4288819999999998 --5.4288819999999998 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --5.4288819999999998 -28.9126800000000017 --17.0940200000000004 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --17.0940200000000004 --6.3897769999999996 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --6.3897769999999996 -16.3765700000000010 --5.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --5.0000000000000000 --11.3765599999999996 --11.3765599999999996 -106.1646999999999963 --62.1118000000000023 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --62.1118000000000023 --44.0528600000000026 --44.0528600000000026 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -62.1118000000000023 -13.6054399999999998 --13.6054399999999998 --13.6054399999999998 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1122.9039999999999964 --1111.1110000000001037 --1111.1110000000001037 --11.7924500000000005 --11.7924500000000005 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -208.5615999999999985 --8.5616439999999994 --8.5616439999999994 --200.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --200.0000000000000000 -19.2869600000000005 --11.0497200000000007 --11.0497200000000007 --8.2372320000000006 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --8.2372320000000006 -50.4298100000000034 --22.5733600000000010 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --22.5733600000000010 --16.8067199999999985 --16.8067199999999985 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -107.3191000000000059 --84.7457600000000042 --84.7457600000000042 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1125.3079999999999927 --11.6550100000000008 --11.6550100000000008 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --1111.1110000000001037 --1111.1110000000001037 --2.5419420000000001 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --2.5419420000000001 -40.6302400000000006 --34.8432000000000031 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --34.8432000000000031 --5.7870369999999998 --5.7870369999999998 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -32.2580600000000004 --32.2580600000000004 --32.2580600000000004 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -50.4519400000000005 --11.9904100000000007 --11.9904100000000007 --38.4615399999999994 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --38.4615399999999994 -21.8901100000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --6.2932660000000000 --6.2932660000000000 --4.9975009999999997 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --4.9975009999999997 --5.3361789999999996 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --5.3361789999999996 --5.2631579999999998 --5.2631579999999998 -14.9534800000000008 --6.7567570000000003 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --6.7567570000000003 -29.2795300000000012 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --3.4199730000000002 --3.4199730000000002 --14.2045499999999993 --14.2045499999999993 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1682.9860000000001037 --114.0250999999999948 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --114.0250999999999948 --1333.3330000000000837 --1333.3330000000000837 --180.1802000000000135 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --180.1802000000000135 --55.4477400000000031 --55.4477400000000031 -65.3933700000000044 --47.6190500000000014 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --47.6190500000000014 --6.0096150000000002 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --6.0096150000000002 --11.7647099999999991 --11.7647099999999991 -168.4124999999999943 --111.1110999999999933 --111.1110999999999933 --5.0761419999999999 --5.0761419999999999 -0.0000000000000000 -0.0000000000000000 --4.6061730000000001 --4.6061730000000001 -39.4463500000000025 --24.2718400000000010 --24.2718400000000010 --15.1745099999999997 --15.1745099999999997 -10.4849999999999994 -0.0000000000000000 -0.0000000000000000 --4.8192769999999996 --4.8192769999999996 -89.1608399999999932 --37.8787900000000022 --37.8787900000000022 --51.2820499999999981 --51.2820499999999981 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -14.7029499999999995 --6.8965519999999998 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --6.8965519999999998 --7.8064020000000003 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --7.8064020000000003 -40.8459500000000020 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --21.9780200000000008 --21.9780200000000008 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --18.8679300000000012 --18.8679300000000012 -20.8446800000000003 --9.6339109999999994 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --9.6339109999999994 --11.2107600000000005 --11.2107600000000005 -19.2146100000000004 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --14.4092199999999995 --14.4092199999999995 -8.2908159999999995 --6.2500000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --6.2500000000000000 --2.0408160000000000 --2.0408160000000000 -63.9985399999999984 --13.8888900000000000 --13.8888900000000000 --43.8596500000000020 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --43.8596500000000020 -2.0408160000000000 -25.7062700000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --18.1818199999999983 --18.1818199999999983 --7.5244549999999997 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --7.5244549999999997 -8.0840739999999993 --8.0840739999999993 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --8.0840739999999993 -17.0013800000000010 --0.6702413000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.6702413000000000 --3.3411300000000002 --3.3411300000000002 --9.5238090000000000 --9.5238090000000000 --3.4662039999999998 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --3.4662039999999998 -0.6702413000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -68.6351099999999974 --56.1797800000000009 --56.1797800000000009 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --5.6433410000000004 --5.6433410000000004 --6.8119889999999996 --6.8119889999999996 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -56.1797800000000009 -794.4358999999999469 --9.7276270000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --9.7276270000000000 --714.2857999999999947 --714.2857999999999947 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --70.4225299999999947 --70.4225299999999947 -63.7407899999999970 --23.4192000000000000 --23.4192000000000000 --15.0761400000000005 --15.0761400000000005 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --10.7526899999999994 --10.7526899999999994 --14.4927499999999991 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --14.4927499999999991 -9.7276270000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -898.1735999999999649 --64.1025700000000001 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --64.1025700000000001 --8.4674010000000006 --8.4674010000000006 --49.6277899999999974 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --49.6277899999999974 --15.0150100000000002 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --15.0150100000000002 --23.2558100000000003 --23.2558100000000003 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -309.7513999999999896 --22.5225200000000001 --22.5225200000000001 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --22.5225200000000001 --22.5225200000000001 --27.0270299999999999 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --27.0270299999999999 --57.4712600000000009 --57.4712600000000009 --45.6829600000000013 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --45.6829600000000013 -44.6596100000000007 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --8.2918740000000000 --8.2918740000000000 --8.4245999999999999 --8.4245999999999999 --2.1739130000000002 --2.1739130000000002 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --2.2256840000000002 --2.2256840000000002 -10.7526899999999994 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -22.5225200000000001 -22.5225200000000001 -27.0270299999999999 -43.2569599999999994 --11.6279100000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --11.6279100000000000 --25.6410300000000007 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --25.6410300000000007 --5.9880240000000002 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --5.9880240000000002 -14.9548600000000000 --1.3241520000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --1.3241520000000000 --2.0028039999999998 --2.0028039999999998 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -59.7835899999999967 --18.9933499999999995 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --18.9933499999999995 --18.5185199999999988 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --18.5185199999999988 --22.2717199999999984 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --22.2717199999999984 -76.9893200000000064 --9.7656250000000000 --9.7656250000000000 --3.3322229999999999 --3.3322229999999999 --9.6618359999999992 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --9.6618359999999992 --33.3333399999999997 --33.3333399999999997 --1.9029499999999999 --1.9029499999999999 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -54.8651300000000006 --34.2465699999999984 --34.2465699999999984 --20.6185599999999987 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --20.6185599999999987 -130.6547999999999945 --106.3829999999999956 --106.3829999999999956 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -8.6511689999999994 --4.8804299999999996 --4.8804299999999996 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --3.7707389999999998 --3.7707389999999998 -18.5295400000000008 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --4.1203130000000003 --4.1203130000000003 -318.4947000000000230 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --294.1175999999999817 --294.1175999999999817 --14.0252499999999998 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --14.0252499999999998 --3.5448420000000000 --3.5448420000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --3.0395140000000000 --3.0395140000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -11.6143999999999998 --11.6143999999999998 --11.6143999999999998 -55.8730199999999968 --40.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --40.0000000000000000 --15.8730200000000004 --15.8730200000000004 -345.7321000000000026 -8.1511340000000008 --4.8100050000000003 --4.8100050000000003 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -215.0901000000000067 --125.0000000000000000 --125.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --90.0901000000000067 --90.0901000000000067 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -295.4284999999999854 --38.7596899999999991 --38.7596899999999991 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --38.9105100000000022 --38.9105100000000022 --11.5340299999999996 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --11.5340299999999996 --23.7529700000000012 --23.7529700000000012 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -79.7815099999999973 --74.6268699999999967 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --74.6268699999999967 --5.1546390000000004 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --5.1546390000000004 -38.7596899999999991 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -38.9105100000000022 -94.0535600000000045 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --7.8926600000000002 --7.8926600000000002 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.8926600000000002 -17.5513300000000001 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --10.7991399999999995 --10.7991399999999995 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --6.7521940000000003 --6.7521940000000003 -15.5732900000000001 --5.8927519999999998 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --5.8927519999999998 --9.6805420000000009 --9.6805420000000009 -76.2711900000000043 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --33.8982999999999990 --33.8982999999999990 -1230.3369999999999891 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --116.2790999999999997 --116.2790999999999997 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --769.2308000000000447 --769.2308000000000447 --344.8276000000000181 --344.8276000000000181 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -26.0416699999999999 --26.0416699999999999 --26.0416699999999999 -79.6698899999999952 --22.4719100000000012 --22.4719100000000012 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --10.0000000000000000 --10.0000000000000000 --9.1659030000000001 --9.1659030000000001 -104.4050000000000011 --55.6482999999999990 --55.6482999999999990 --48.7567099999999982 --48.7567099999999982 -0.0000000000000000 -85.5357900000000058 --4.7169809999999996 --4.7169809999999996 --17.7935899999999982 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --17.7935899999999982 --18.3823499999999989 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --18.3823499999999989 --44.6428599999999989 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --44.6428599999999989 -4.7169809999999996 -14.4092199999999995 --14.4092199999999995 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --14.4092199999999995 -41.1329500000000010 --20.0803200000000004 --20.0803200000000004 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --21.0526300000000006 --21.0526300000000006 -91.6945300000000003 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --72.4637699999999967 --72.4637699999999967 --19.2307699999999997 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --19.2307699999999997 -9.7847360000000005 --9.7847360000000005 --9.7847360000000005 -1.0298659999999999 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --1.0298659999999999 --1.0298659999999999 -2.1645020000000001 --2.1645020000000001 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --2.1645020000000001 -26.6899599999999992 --3.4928400000000002 --3.4928400000000002 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --6.8027210000000000 --6.8027210000000000 --3.4152999999999998 --3.4152999999999998 -140.1105000000000018 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --36.7647100000000009 --36.7647100000000009 --37.3134299999999968 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --37.3134299999999968 --46.9483600000000010 --46.9483600000000010 --19.0839700000000008 --19.0839700000000008 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -14.0104399999999991 --2.6041669999999999 --2.6041669999999999 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --5.3966539999999998 --5.3966539999999998 -13.9848300000000005 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --3.3806630000000002 --3.3806630000000002 -32.2401800000000023 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --18.2149399999999986 --18.2149399999999986 -36.7678099999999972 --18.5528799999999983 --18.5528799999999983 -29.7563299999999984 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --19.0839700000000008 --19.0839700000000008 --10.6723599999999994 --10.6723599999999994 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -28.7154799999999994 --10.1625999999999994 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --10.1625999999999994 -176.9231000000000051 --76.9230699999999956 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --76.9230699999999956 -16.9491499999999995 --16.9491499999999995 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --16.9491499999999995 -33.9419600000000017 --5.7836900000000000 --5.7836900000000000 --12.9032300000000006 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --12.9032300000000006 --9.6339109999999994 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --9.6339109999999994 --5.6211349999999998 --5.6211349999999998 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -38.0870499999999979 --7.5187970000000002 --7.5187970000000002 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --3.0184120000000001 --3.0184120000000001 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -28.7178800000000010 -3.2948930000000001 --3.2948930000000001 --3.2948930000000001 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -10.2830100000000009 --6.9881209999999996 --6.9881209999999996 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -39.1090900000000019 --19.8412700000000015 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --19.8412700000000015 --19.2678200000000004 --19.2678200000000004 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -56.2528300000000030 --18.9393899999999995 --18.9393899999999995 --37.3134299999999968 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --37.3134299999999968 -19.8412700000000015 -15.9744399999999995 --15.9744399999999995 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --15.9744399999999995 -15.9744399999999995 --15.9744399999999995 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --15.9744399999999995 -18.3823499999999989 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --18.3823499999999989 --18.3823499999999989 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -62.1118000000000023 --62.1118000000000023 --62.1118000000000023 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -54.3478199999999987 --54.3478199999999987 --54.3478199999999987 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -22.5733600000000010 --22.5733600000000010 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --22.5733600000000010 -405.7851999999999748 --333.3333000000000084 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --333.3333000000000084 --59.1715999999999980 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --59.1715999999999980 --13.2802100000000003 --13.2802100000000003 -444.0341000000000236 --370.3704000000000178 --370.3704000000000178 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --60.2409600000000012 --60.2409600000000012 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --13.4228199999999998 --13.4228199999999998 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -125.4902000000000015 --58.8235200000000020 --58.8235200000000020 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --66.6666699999999963 --66.6666699999999963 -13.5685199999999995 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --13.5685199999999995 --13.5685199999999995 -173.0337000000000103 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -754.0348999999999933 -643.3153999999999542 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --188.6792000000000087 --188.6792000000000087 --188.6792000000000087 --188.6792000000000087 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --12.1802700000000002 --12.1802700000000002 --22.6244399999999999 --22.6244399999999999 -274.5828000000000202 --31.5556899999999985 --31.5556899999999985 -13.2802100000000003 -13.4228199999999998 -0.0000000000000000 -86.1757400000000047 --8.5763289999999994 --8.5763289999999994 --6.8780520000000003 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --6.8780520000000003 --70.7213600000000042 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --70.7213600000000042 -31.8957900000000016 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -19.6078399999999995 --9.8039220000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --9.8039220000000000 --9.8039220000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --9.8039220000000000 -36.0613499999999974 --20.6077900000000014 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --20.6077900000000014 --15.4535599999999995 --15.4535599999999995 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -38.1282700000000006 --10.1010100000000005 --10.1010100000000005 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -52.8684799999999981 --5.3714350000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --5.3714350000000000 --2.4520019999999998 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --2.4520019999999998 --45.0450500000000034 --45.0450500000000034 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -55.5094899999999996 --5.4436580000000001 --5.4436580000000001 --2.4467829999999999 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --2.4467829999999999 --47.6190500000000014 --47.6190500000000014 -29.8600700000000003 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --15.6250000000000000 --15.6250000000000000 -4.8987850000000002 -218.7209000000000003 --17.3611100000000000 --17.3611100000000000 -10009.6800000000002910 --10000.0000000000000000 -0.0000000000000000 -0.0000000000000000 --10000.0000000000000000 -10004.7399999999997817 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -410.3967000000000098 -95.7427899999999994 --40.7346799999999973 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --40.7346799999999973 --10.0230499999999996 --10.0230499999999996 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --21.1685000000000016 --21.1685000000000016 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --16.4636199999999988 --16.4636199999999988 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --7.3529410000000004 --7.3529410000000004 -202.0149999999999864 --19.4363500000000009 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --19.4363500000000009 --141.8439999999999941 --141.8439999999999941 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -2.2099449999999998 --2.2099449999999998 --2.2099449999999998 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -8.6686589999999999 --1.7721070000000001 --1.7721070000000001 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -132.4125999999999976 --22.5225200000000001 --22.5225200000000001 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --109.8901000000000039 --109.8901000000000039 -1076.9710000000000036 --999.9999000000000251 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --999.9999000000000251 --15.5981900000000007 --15.5981900000000007 --27.3597800000000007 --27.3597800000000007 --34.0135999999999967 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --34.0135999999999967 -2.6191719999999998 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -11.8660899999999998 --8.0710250000000006 --8.0710250000000006 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --3.7950659999999998 --3.7950659999999998 -1022.5220000000000482 -66.8002699999999976 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --66.8002699999999976 --66.8002699999999976 -77.0498999999999938 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --4.9731449999999997 --4.9731449999999997 --5.2764879999999996 --5.2764879999999996 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -179.1666999999999916 --166.6666999999999916 --166.6666999999999916 -76.9230699999999956 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --76.9230699999999956 --76.9230699999999956 -111.7663000000000011 -618.7910000000000537 --19.4325699999999983 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --19.4325699999999983 -41.1108499999999992 --9.2421330000000008 --9.2421330000000008 --25.5754500000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --25.5754500000000000 -41.5001999999999995 -3.6764700000000001 --3.6764700000000001 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --3.6764700000000001 -5.4200540000000004 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --5.4200540000000004 --5.4200540000000004 -36.9436899999999966 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --14.4717800000000008 --14.4717800000000008 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -14.3215199999999996 -14.6412899999999997 --14.6412899999999997 --14.6412899999999997 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -89.8292600000000050 --75.1879700000000071 --75.1879700000000071 -17.0940200000000004 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -48.7011499999999984 --3.3199429999999999 --3.3199429999999999 --10.1760500000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --10.1760500000000000 --16.6057799999999993 --16.6057799999999993 -3.3199429999999999 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -10.1760500000000000 -14.2949199999999994 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -38.5442499999999981 -4.0978130000000004 --2.4283630000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --2.4283630000000000 --1.6694490000000000 --1.6694490000000000 -0.1703577000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --0.1703577000000000 --0.1703577000000000 -12.4391599999999993 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --2.7449900000000000 --2.7449900000000000 -209.3358000000000061 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --8.0000000000000000 --8.0000000000000000 --12.0149000000000008 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --12.0149000000000008 --17.8444000000000003 --17.8444000000000003 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --30.4878000000000000 --30.4878000000000000 --14.1683199999999996 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --14.1683199999999996 --36.5630700000000033 --36.5630700000000033 -29.5478300000000011 --10.2009600000000002 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --10.2009600000000002 --11.3468699999999991 --11.3468699999999991 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -10.2009600000000002 -11.3468699999999991 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -12.0149000000000008 -17.8444000000000003 -28.4983199999999997 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --18.3150200000000005 --18.3150200000000005 -10.6116700000000002 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --8.1833069999999992 --8.1833069999999992 -101.3766999999999996 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --42.5531900000000007 --42.5531900000000007 -4.8053819999999998 --4.8053819999999998 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --4.8053819999999998 -8.1833069999999992 -40.3137600000000020 --20.8811900000000001 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --20.8811900000000001 -124.7891999999999939 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --104.1667000000000058 --104.1667000000000058 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1214.5329999999999018 --1123.5950000000000273 --1123.5950000000000273 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --5.7583789999999997 --5.7583789999999997 --85.1788800000000066 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --85.1788800000000066 -1543.6079999999999472 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --15.4987100000000009 --15.4987100000000009 --93.2835800000000006 --93.2835800000000006 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --53.1067499999999981 --53.1067499999999981 --16.8719399999999986 --16.8719399999999986 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -5.7583789999999997 -149.5704000000000065 --64.3914900000000046 --64.3914900000000046 -21.7773600000000016 --6.2786460000000002 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --6.2786460000000002 -6.2786460000000002 -8.7950739999999996 --8.7950739999999996 --8.7950739999999996 -45.5701499999999982 --20.8768300000000018 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --20.8768300000000018 --15.8982500000000009 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --15.8982500000000009 -9.9613230000000001 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -16.7371499999999997 --8.3125509999999991 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --8.3125509999999991 -33.0112700000000032 -10.2947299999999995 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --5.7012539999999996 --5.7012539999999996 --4.5934770000000000 --4.5934770000000000 -243.9951000000000079 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --181.8181999999999903 --181.8181999999999903 --11.4155300000000004 --11.4155300000000004 --50.7614200000000011 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --50.7614200000000011 -278.1383999999999901 --46.6635599999999968 --46.6635599999999968 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --5.4674690000000004 --5.4674690000000004 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --28.7356300000000005 --28.7356300000000005 -11.4155300000000004 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -77.5710799999999949 --26.8096500000000013 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --26.8096500000000013 -978.0082999999999629 --59.5238099999999974 --59.5238099999999974 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --149.2537000000000091 --149.2537000000000091 -14.1752699999999994 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --10.5042000000000009 --10.5042000000000009 --3.6710720000000001 --3.6710720000000001 -24.7521300000000011 --3.9936099999999999 --3.9936099999999999 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --7.1530760000000004 --7.1530760000000004 -27.5141400000000012 --14.7058800000000005 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --14.7058800000000005 --5.7110219999999998 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --5.7110219999999998 --7.0972320000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --7.0972320000000000 -74.1440000000000055 --24.3902399999999986 --24.3902399999999986 --4.6446820000000004 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --4.6446820000000004 -238.1673999999999864 --200.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --200.0000000000000000 --8.1168829999999996 --8.1168829999999996 --11.1111100000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --11.1111100000000000 -224.6879000000000133 -15.2439000000000000 --15.2439000000000000 --15.2439000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -19.7585799999999985 --4.5146730000000002 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --4.5146730000000002 -36.4963499999999996 --36.4963499999999996 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --36.4963499999999996 -95.4541600000000017 --55.2486200000000025 --55.2486200000000025 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --3.7091989999999999 --3.7091989999999999 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -100.6927000000000021 --19.3050199999999990 --19.3050199999999990 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --65.7894699999999943 --65.7894699999999943 -329.6231000000000222 --200.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --200.0000000000000000 --11.9760500000000008 --11.9760500000000008 --117.6470000000000056 --117.6470000000000056 -285.1879999999999882 -11.9760500000000008 -144.4567000000000121 -0.0000000000000000 -0.0000000000000000 -165.7238000000000113 --62.2083999999999975 --62.2083999999999975 --87.6424200000000013 --87.6424200000000013 -82.1884399999999999 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --58.0046400000000020 --58.0046400000000020 --24.1838000000000015 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --24.1838000000000015 -151.4336999999999875 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --40.3225800000000021 --40.3225800000000021 -48.5151600000000016 --4.4622940000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --4.4622940000000000 -8.2308979999999998 --4.2372880000000004 --4.2372880000000004 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -26.7507799999999989 --9.3896709999999999 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --9.3896709999999999 -329.2194000000000074 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --186.5672000000000139 --186.5672000000000139 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --38.5802499999999995 --38.5802499999999995 --72.5163100000000043 --72.5163100000000043 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -28.6242400000000004 --27.1739099999999993 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --27.1739099999999993 --1.4503260000000000 --1.4503260000000000 -27.1739099999999993 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -36.9804000000000030 --30.1023500000000013 --30.1023500000000013 -129.9704000000000121 -99.0061900000000037 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --78.1250000000000000 --78.1250000000000000 -45.4867599999999968 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --7.7124790000000001 --7.7124790000000001 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -20007.7099999999991269 --10000.0000000000000000 --10000.0000000000000000 --10000.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --10000.0000000000000000 -10000.0000000000000000 -10000.0000000000000000 -10.8453700000000008 --7.5131480000000002 --7.5131480000000002 -14.7567599999999999 --8.0000000000000000 -0.0000000000000000 -0.0000000000000000 --8.0000000000000000 -1.4598540000000000 --1.4598540000000000 --1.4598540000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -103.4287999999999954 --40.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --40.0000000000000000 --49.0196100000000001 --49.0196100000000001 -49.4598500000000030 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -141.7923000000000116 --10.9673200000000008 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --10.9673200000000008 --22.2717199999999984 --22.2717199999999984 --48.1540899999999965 --48.1540899999999965 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --42.0168099999999995 --42.0168099999999995 -545.1684000000000196 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --90.7441000000000031 --90.7441000000000031 --90.0090000000000003 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --90.0090000000000003 --89.1265599999999978 --89.1265599999999978 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --28.6615099999999998 --28.6615099999999998 --60.0600600000000000 --60.0600600000000000 -90.7441000000000031 -90.0090000000000003 -89.1265599999999978 -204.9044000000000096 --4.9043650000000003 -0.0000000000000000 --4.9043650000000003 -172.7262000000000057 --63.6942700000000031 --63.6942700000000031 --27.6243100000000013 --27.6243100000000013 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -26.7418000000000013 --5.7836900000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --5.7836900000000000 -10.8049099999999996 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -10.9673200000000008 -12.3300099999999997 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --8.2781459999999996 --8.2781459999999996 -6.8027210000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --6.8027210000000000 --6.8027210000000000 -33.4146599999999978 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --4.6339199999999998 --4.6339199999999998 -146.1641999999999939 --72.2543299999999959 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --72.2543299999999959 --73.9098299999999995 --73.9098299999999995 -1493.0409999999999400 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --17.2413799999999995 --17.2413799999999995 --26.8817200000000014 --26.8817200000000014 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --18.1818199999999983 --18.1818199999999983 -43.9259500000000003 --13.3155800000000006 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --13.3155800000000006 --13.3689800000000005 --13.3689800000000005 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -13.3155800000000006 -13.3689800000000005 -27.8209699999999991 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --9.5419850000000004 --9.5419850000000004 --8.3402829999999994 --8.3402829999999994 --6.3938620000000004 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --6.3938620000000004 -12.3225300000000004 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --4.6772689999999999 --4.6772689999999999 --7.6452600000000004 --7.6452600000000004 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -278.5131000000000085 --81.6993499999999955 --81.6993499999999955 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -273.0466000000000122 --86.2068900000000014 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --86.2068900000000014 --104.1667000000000058 --104.1667000000000058 --18.2815399999999997 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --18.2815399999999997 -86.2068900000000014 -15.7582799999999992 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --10.9528999999999996 --10.9528999999999996 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -42.0657799999999966 -8.1168829999999996 -273.4637999999999920 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -39.0280300000000011 --3.4928400000000002 --3.4928400000000002 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --18.0831799999999987 --18.0831799999999987 --17.4520100000000014 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --17.4520100000000014 -151.9719000000000051 --49.0196100000000001 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --49.0196100000000001 --49.0196100000000001 --49.0196100000000001 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -65.0280800000000028 --5.9665869999999996 --5.9665869999999996 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --5.9665869999999996 --5.9665869999999996 -124.4662000000000006 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -17.4520100000000014 -59.0678300000000007 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --4.0816330000000001 --4.0816330000000001 -59.0678300000000007 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --4.0816330000000001 --4.0816330000000001 -4.0816330000000001 -4.0816330000000001 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -10.7991399999999995 --10.7991399999999995 --10.7991399999999995 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -81.4247399999999999 --30.3030299999999997 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --30.3030299999999997 -39.0625000000000000 --39.0625000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --39.0625000000000000 -507.6857999999999720 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --5.6818179999999998 --5.6818179999999998 --500.0000000000000000 --500.0000000000000000 --2.0040079999999998 --2.0040079999999998 -328.2355999999999767 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --212.7659999999999911 --212.7659999999999911 -503.4153000000000020 -2.0040079999999998 -100.9094000000000051 --12.8024600000000000 --12.8024600000000000 -5112.3850000000002183 -0.0000000000000000 -0.0000000000000000 --2000.0000000000000000 --2000.0000000000000000 --2000.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --2000.0000000000000000 --500.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --500.0000000000000000 --500.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --500.0000000000000000 --8.5106380000000001 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --8.5106380000000001 --41.6666700000000034 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --41.6666700000000034 -2077.7860000000000582 --11.5606899999999992 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --11.5606899999999992 --66.2251700000000056 --66.2251700000000056 -11.5606899999999992 -2077.7860000000000582 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --11.5606899999999992 --11.5606899999999992 --66.2251700000000056 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --66.2251700000000056 -11.5606899999999992 -1166.6520000000000437 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --555.5555000000000518 --555.5555000000000518 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -17.5979300000000016 --13.2100399999999993 --13.2100399999999993 -57.2854200000000020 --33.1016199999999969 --33.1016199999999969 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -46.6991999999999976 --45.2488699999999966 --45.2488699999999966 -2286.1529999999997926 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --370.3704000000000178 --370.3704000000000178 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --370.3704000000000178 --370.3704000000000178 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --370.3704000000000178 --370.3704000000000178 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --41.3223199999999977 --41.3223199999999977 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -238.1108000000000118 --60.2409600000000012 --60.2409600000000012 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --60.2409600000000012 --60.2409600000000012 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --60.2409600000000012 --60.2409600000000012 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --42.3728800000000021 --42.3728800000000021 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -13.4228199999999998 --13.4228199999999998 --13.4228199999999998 -13.4228199999999998 --13.4228199999999998 --13.4228199999999998 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -13.4228199999999998 --13.4228199999999998 --13.4228199999999998 -59.9258799999999994 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -9.6608129999999992 --6.4350069999999997 --6.4350069999999997 -444.0341000000000236 -444.0341000000000236 -444.0341000000000236 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -69.4748500000000035 --3.8461539999999999 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --3.8461539999999999 -13.5643300000000000 --9.7181730000000002 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --9.7181730000000002 -16.5104900000000008 --12.0481900000000000 --12.0481900000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -10029.6299999999991996 --9.0744089999999993 --9.0744089999999993 --10000.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --10000.0000000000000000 -18.1818199999999983 --18.1818199999999983 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --18.1818199999999983 -1295.9590000000000600 -15.6091400000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -3.1055899999999999 --3.1055899999999999 --3.1055899999999999 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -1120.0039999999999054 -74.3247400000000056 --64.9350699999999961 --64.9350699999999961 -4.5871560000000002 --4.5871560000000002 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --4.5871560000000002 -9.6632990000000003 -23.8961000000000006 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --5.7142860000000004 --5.7142860000000004 -92.8092900000000043 --14.6842900000000007 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --14.6842900000000007 -49.8710799999999992 -12.2331900000000005 --6.5189050000000002 --6.5189050000000002 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -85.9659900000000050 -81.9562999999999988 --44.6428599999999989 --44.6428599999999989 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -2.1645020000000001 --2.1645020000000001 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --2.1645020000000001 -74.3359099999999984 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --3.6145450000000001 --3.6145450000000001 -90.2128600000000063 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -10.4691100000000006 --2.3980820000000000 --2.3980820000000000 -3.6145450000000001 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -63.8367199999999997 --19.1938600000000008 --19.1938600000000008 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -4.9731449999999997 -90.8585199999999986 --3.6205650000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --3.6205650000000000 --12.0336900000000000 --12.0336900000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --29.0697699999999983 --29.0697699999999983 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --21.8866300000000003 --21.8866300000000003 -86.7836900000000071 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --24.2130800000000015 --24.2130800000000015 --3.8109760000000001 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --3.8109760000000001 --12.1951199999999993 --12.1951199999999993 --21.7391299999999994 --21.7391299999999994 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --3.9904229999999998 --3.9904229999999998 -38.1019700000000014 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -3.6205650000000000 -3.8109760000000001 -12.0336900000000000 -12.1951199999999993 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -49.9031000000000020 --20.8333300000000001 --20.8333300000000001 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -10089.3099999999994907 --10000.0000000000000000 --10000.0000000000000000 -9.4302689999999991 --6.0496070000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --6.0496070000000000 -11.4339399999999998 -192.3077000000000112 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --192.3077000000000112 --192.3077000000000112 -141.2346000000000004 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --15.7853200000000005 --15.7853200000000005 --7.3588930000000001 --7.3588930000000001 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --7.8733950000000004 --7.8733950000000004 --57.1102199999999982 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --57.1102199999999982 -32.0484399999999994 --8.1672650000000004 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --8.1672650000000004 --8.0958550000000002 --8.0958550000000002 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.3588930000000001 -8.1672650000000004 -7.8733950000000004 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -8.0958550000000002 -26.3810700000000011 -42.5531900000000007 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -21.2314200000000000 --21.2314200000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --21.2314200000000000 -1.1697270000000000 --1.1697270000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --1.1697270000000000 -30.3739699999999999 --3.5223670000000000 --3.5223670000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --11.5740700000000007 --11.5740700000000007 -262.9839000000000055 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --188.6792000000000087 --188.6792000000000087 --13.6986299999999996 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --13.6986299999999996 --60.6060599999999994 --60.6060599999999994 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -277.7794000000000096 --26.3088599999999992 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --26.3088599999999992 --26.4830499999999986 --26.4830499999999986 -13.6986299999999996 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -84.3590300000000042 -111.3657000000000039 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -108.6042999999999950 --49.0196100000000001 --49.0196100000000001 -123.0803999999999974 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --92.5925900000000013 --92.5925900000000013 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -12.3307099999999998 -8.5223669999999991 -121.0169999999999959 --23.4741800000000005 --23.4741800000000005 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -74.5726700000000022 -127.6411999999999978 --35.2112699999999990 --35.2112699999999990 --84.0336199999999991 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --84.0336199999999991 --8.3963059999999992 --8.3963059999999992 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -78.4239000000000033 --9.8135429999999992 --9.8135429999999992 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -249.7547999999999888 --153.8461000000000070 --153.8461000000000070 --11.8750699999999991 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --11.8750699999999991 -123.4568000000000012 --123.4568000000000012 --123.4568000000000012 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -8.3963059999999992 -133.2702999999999918 -248.3154000000000110 -109.3950999999999993 -10.0350699999999993 -18.1129099999999994 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --1.6492940000000000 --1.6492940000000000 -1.6492940000000000 -8.2201459999999997 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --2.5188920000000001 --2.5188920000000001 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -386.1499000000000024 -209.3694000000000131 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --138.3126000000000033 --138.3126000000000033 -38.3333399999999997 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --5.0000000000000000 --5.0000000000000000 -13.2759699999999992 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -44.3075100000000006 -133.2931000000000097 --10.5820100000000004 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --10.5820100000000004 --23.5294099999999986 --23.5294099999999986 -14.9202899999999996 -13.9482499999999998 -286.5966000000000236 -19.0886400000000016 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --13.8121500000000008 --13.8121500000000008 -12.4631600000000002 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -85.6072800000000029 --37.4531899999999993 --37.4531899999999993 -10037.4500000000007276 -212.2223999999999933 -4.2354930000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --4.2354930000000000 --4.2354930000000000 -12.0418900000000004 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -21.7692399999999999 -117.2840000000000060 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --24.6913599999999995 --24.6913599999999995 -60.4233800000000016 -12.3725500000000004 --10.1625999999999994 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --10.1625999999999994 -31.5656600000000012 --31.5656600000000012 --31.5656600000000012 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -83.2819099999999963 --1.4144470000000000 --1.4144470000000000 -2.5419420000000001 -119.8662999999999954 --8.3333340000000007 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --8.3333340000000007 --34.0135999999999967 --34.0135999999999967 --77.5193799999999982 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --77.5193799999999982 -8.3333340000000007 -108.8545000000000016 -343.4710999999999785 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -17.6870599999999989 -42.0954800000000020 -19.0460400000000014 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --8.4817640000000001 --8.4817640000000001 -51.3229299999999995 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --6.7795009999999998 --6.7795009999999998 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --22.2717199999999984 --22.2717199999999984 -32.6174099999999996 -9.9638869999999997 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -8.4817640000000001 -30.2114800000000017 -17.3611100000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -66.7081699999999955 -12.0783500000000004 -490.5504999999999995 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --240.9638999999999953 --240.9638999999999953 -91.8750799999999970 --80.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --80.0000000000000000 -492.3722999999999956 -155.0669000000000040 -3.7243949999999999 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -39.5029600000000016 --9.9700900000000008 --9.9700900000000008 -10032.6200000000008004 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --10.3448499999999992 --10.3448499999999992 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -57.5176400000000001 -13.2874900000000000 -66.6289400000000001 -7.5188920000000001 -6.7673899999999998 -7.7579520000000004 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --7.7579520000000004 --7.7579520000000004 -26.1762799999999984 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -14.7082899999999999 -19.6891199999999991 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -69.8580699999999979 --27.2479599999999991 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --27.2479599999999991 --26.4550300000000007 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --26.4550300000000007 --16.1550900000000013 --16.1550900000000013 -83.5518299999999954 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --39.0625000000000000 --39.0625000000000000 --17.2413799999999995 --17.2413799999999995 -82.7588999999999970 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --17.2413799999999995 --17.2413799999999995 -10000.0000000000000000 --10000.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --10000.0000000000000000 -185.1031999999999869 --6.6225170000000002 --6.6225170000000002 --6.5359480000000003 --6.5359480000000003 --6.5359480000000003 --6.5359480000000003 -10039.0599999999994907 -6.6225170000000002 -6.5359480000000003 -6.5359480000000003 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -73.4736699999999985 --65.7894699999999943 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --65.7894699999999943 -112.0369000000000028 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -10219.7099999999991269 --6.9444450000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --6.9444450000000000 --10000.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --10000.0000000000000000 -80.4967999999999932 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --9.2592590000000001 --9.2592590000000001 --2.2727270000000002 --2.2727270000000002 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --2.2727270000000002 --2.2727270000000002 --3.7807189999999999 --3.7807189999999999 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --3.8895369999999998 --3.8895369999999998 -10000.0000000000000000 -9.2592590000000001 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -2.2727270000000002 -2.2727270000000002 -3.7807189999999999 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -3.8895369999999998 -9.5732269999999993 -57.7426800000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -6796.3400000000001455 --69.6136500000000069 --69.6136500000000069 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --6666.6670000000003711 --6666.6670000000003711 -313.5160999999999945 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --243.9024000000000001 --243.9024000000000001 -78.3364899999999977 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --68.0272099999999966 --68.0272099999999966 --10.3092799999999993 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --10.3092799999999993 -56.0289100000000033 --11.9760500000000008 --11.9760500000000008 --44.0528600000000026 --44.0528600000000026 -69.9848300000000023 --35.9712299999999985 -0.0000000000000000 -0.0000000000000000 --35.9712299999999985 -60.1258199999999974 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --24.1545899999999989 --24.1545899999999989 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -92.1817900000000066 -418.9938999999999965 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --33.8982999999999990 --33.8982999999999990 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --29.7619100000000003 --29.7619100000000003 --44.4444400000000002 --44.4444400000000002 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --44.4444400000000002 --44.4444400000000002 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -33.8982999999999990 -29.7619100000000003 -44.4444400000000002 -44.4444400000000002 -66.5424100000000038 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -18.2815399999999997 -6841.9049999999997453 --32.0512799999999984 --32.0512799999999984 --70.6713799999999992 --70.6713799999999992 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -662.7050000000000409 --265.6041999999999916 --265.6041999999999916 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --32.2580600000000004 --32.2580600000000004 --88.8888900000000035 --88.8888900000000035 -318.8808000000000220 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --53.2764999999999986 --53.2764999999999986 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -204.9703000000000088 --51.0204099999999983 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --51.0204099999999983 --51.0204099999999983 --51.0204099999999983 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -51.0204099999999983 -51.0204099999999983 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -142.1654000000000053 -22.6244399999999999 -162.3037999999999954 --72.1678500000000014 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --72.1678500000000014 --45.4132600000000011 --45.4132600000000011 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --44.7227200000000025 --44.7227200000000025 -64.7997500000000031 --44.0528600000000026 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --44.0528600000000026 --20.7468900000000005 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --20.7468900000000005 -170.2747999999999990 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 --54.0540499999999966 --54.0540499999999966 -20.7468900000000005 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -54.0540499999999966 -111.6384000000000043 -110.9479000000000042 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -%% -0 -15 -45 -266 -0 -0 -0 -0 -0 -0 -1 -3 -0 -0 -0 -0 -0 -0 -0 -0 -2 -51 -185 -0 -0 -0 -0 -0 -0 -0 -1 -3 -7 -119 -157 -428 -431 -0 -0 -0 -4 -114 -0 -0 -0 -0 -0 -0 -0 -0 -5 -149 -432 -0 -0 -0 -0 -0 -0 -0 -6 -17 -164 -366 -425 -0 -0 -0 -0 -0 -3 -7 -0 -0 -0 -0 -0 -0 -0 -0 -8 -421 -0 -0 -0 -0 -0 -0 -0 -0 -9 -204 -276 -0 -0 -0 -0 -0 -0 -0 -10 -411 -435 -0 -0 -0 -0 -0 -0 -0 -11 -12 -13 -15 -0 -0 -0 -0 -0 -0 -11 -12 -0 -0 -0 -0 -0 -0 -0 -0 -11 -13 -0 -0 -0 -0 -0 -0 -0 -0 -14 -15 -0 -0 -0 -0 -0 -0 -0 -0 -0 -11 -14 -15 -16 -18 -56 -0 -0 -0 -15 -16 -19 -20 -280 -333 -0 -0 -0 -0 -6 -17 -0 -0 -0 -0 -0 -0 -0 -0 -15 -18 -0 -0 -0 -0 -0 -0 -0 -0 -16 -19 -0 -0 -0 -0 -0 -0 -0 -0 -16 -20 -0 -0 -0 -0 -0 -0 -0 -0 -21 -22 -139 -0 -0 -0 -0 -0 -0 -0 -21 -22 -139 -154 -196 -0 -0 -0 -0 -0 -23 -24 -0 -0 -0 -0 -0 -0 -0 -0 -23 -24 -156 -169 -0 -0 -0 -0 -0 -0 -25 -98 -424 -0 -0 -0 -0 -0 -0 -0 -26 -27 -0 -0 -0 -0 -0 -0 -0 -0 -26 -27 -84 -172 -0 -0 -0 -0 -0 -0 -28 -306 -315 -0 -0 -0 -0 -0 -0 -0 -29 -30 -0 -0 -0 -0 -0 -0 -0 -0 -29 -30 -181 -185 -0 -0 -0 -0 -0 -0 -31 -375 -443 -0 -0 -0 -0 -0 -0 -0 -32 -33 -238 -0 -0 -0 -0 -0 -0 -0 -32 -33 -0 -0 -0 -0 -0 -0 -0 -0 -34 -221 -0 -0 -0 -0 -0 -0 -0 -0 -35 -324 -418 -0 -0 -0 -0 -0 -0 -0 -36 -146 -261 -0 -0 -0 -0 -0 -0 -0 -37 -38 -397 -0 -0 -0 -0 -0 -0 -0 -37 -38 -39 -280 -0 -0 -0 -0 -0 -0 -38 -39 -416 -0 -0 -0 -0 -0 -0 -0 -40 -46 -327 -412 -0 -0 -0 -0 -0 -0 -41 -171 -327 -0 -0 -0 -0 -0 -0 -0 -42 -174 -0 -0 -0 -0 -0 -0 -0 -0 -43 -101 -285 -0 -0 -0 -0 -0 -0 -0 -44 -173 -202 -263 -284 -0 -0 -0 -0 -0 -0 -45 -252 -0 -0 -0 -0 -0 -0 -0 -40 -46 -152 -284 -0 -0 -0 -0 -0 -0 -47 -204 -270 -282 -305 -0 -0 -0 -0 -0 -48 -49 -113 -454 -0 -0 -0 -0 -0 -0 -48 -49 -237 -330 -441 -0 -0 -0 -0 -0 -50 -81 -408 -0 -0 -0 -0 -0 -0 -0 -2 -51 -396 -0 -0 -0 -0 -0 -0 -0 -52 -270 -309 -0 -0 -0 -0 -0 -0 -0 -53 -161 -405 -0 -0 -0 -0 -0 -0 -0 -54 -268 -362 -0 -0 -0 -0 -0 -0 -0 -55 -123 -223 -0 -0 -0 -0 -0 -0 -0 -15 -56 -83 -0 -0 -0 -0 -0 -0 -0 -57 -58 -59 -0 -0 -0 -0 -0 -0 -0 -57 -58 -346 -376 -0 -0 -0 -0 -0 -0 -57 -59 -0 -0 -0 -0 -0 -0 -0 -0 -60 -331 -417 -0 -0 -0 -0 -0 -0 -0 -61 -437 -0 -0 -0 -0 -0 -0 -0 -0 -62 -63 -88 -189 -393 -0 -0 -0 -0 -0 -62 -63 -0 -0 -0 -0 -0 -0 -0 -0 -64 -65 -427 -435 -0 -0 -0 -0 -0 -0 -64 -65 -0 -0 -0 -0 -0 -0 -0 -0 -66 -68 -69 -70 -0 -0 -0 -0 -0 -0 -67 -69 -71 -72 -213 -0 -0 -0 -0 -0 -66 -68 -0 -0 -0 -0 -0 -0 -0 -0 -66 -67 -69 -70 -71 -141 -310 -319 -0 -0 -66 -69 -70 -73 -74 -75 -90 -352 -0 -0 -67 -69 -71 -211 -212 -439 -463 -0 -0 -0 -67 -72 -0 -0 -0 -0 -0 -0 -0 -0 -70 -73 -0 -0 -0 -0 -0 -0 -0 -0 -70 -74 -0 -0 -0 -0 -0 -0 -0 -0 -70 -75 -0 -0 -0 -0 -0 -0 -0 -0 -76 -77 -186 -263 -0 -0 -0 -0 -0 -0 -76 -77 -122 -264 -0 -0 -0 -0 -0 -0 -78 -79 -213 -420 -0 -0 -0 -0 -0 -0 -78 -79 -146 -251 -354 -392 -436 -0 -0 -0 -80 -395 -456 -0 -0 -0 -0 -0 -0 -0 -50 -81 -286 -0 -0 -0 -0 -0 -0 -0 -82 -386 -422 -0 -0 -0 -0 -0 -0 -0 -56 -83 -172 -0 -0 -0 -0 -0 -0 -0 -27 -84 -87 -115 -274 -453 -0 -0 -0 -0 -85 -87 -0 -0 -0 -0 -0 -0 -0 -0 -86 -87 -235 -0 -0 -0 -0 -0 -0 -0 -84 -85 -86 -87 -0 -0 -0 -0 -0 -0 -62 -88 -325 -0 -0 -0 -0 -0 -0 -0 -89 -90 -385 -0 -0 -0 -0 -0 -0 -0 -70 -89 -90 -92 -93 -94 -370 -0 -0 -0 -91 -94 -386 -0 -0 -0 -0 -0 -0 -0 -90 -92 -0 -0 -0 -0 -0 -0 -0 -0 -90 -93 -0 -0 -0 -0 -0 -0 -0 -0 -90 -91 -94 -95 -0 -0 -0 -0 -0 -0 -94 -95 -0 -0 -0 -0 -0 -0 -0 -0 -96 -325 -421 -0 -0 -0 -0 -0 -0 -0 -97 -149 -155 -0 -0 -0 -0 -0 -0 -0 -25 -98 -223 -0 -0 -0 -0 -0 -0 -0 -99 -157 -219 -390 -0 -0 -0 -0 -0 -0 -100 -101 -0 -0 -0 -0 -0 -0 -0 -0 -43 -100 -101 -177 -232 -285 -0 -0 -0 -0 -102 -305 -428 -0 -0 -0 -0 -0 -0 -0 -103 -104 -190 -256 -262 -0 -0 -0 -0 -0 -103 -104 -0 -0 -0 -0 -0 -0 -0 -0 -105 -254 -0 -0 -0 -0 -0 -0 -0 -0 -106 -245 -333 -0 -0 -0 -0 -0 -0 -0 -107 -190 -379 -0 -0 -0 -0 -0 -0 -0 -108 -111 -0 -0 -0 -0 -0 -0 -0 -0 -109 -111 -0 -0 -0 -0 -0 -0 -0 -0 -110 -111 -0 -0 -0 -0 -0 -0 -0 -0 -108 -109 -110 -111 -122 -178 -297 -0 -0 -0 -112 -262 -336 -377 -415 -0 -0 -0 -0 -0 -48 -113 -114 -284 -0 -0 -0 -0 -0 -0 -4 -113 -114 -353 -0 -0 -0 -0 -0 -0 -84 -115 -116 -0 -0 -0 -0 -0 -0 -0 -115 -116 -118 -0 -0 -0 -0 -0 -0 -0 -117 -123 -345 -0 -0 -0 -0 -0 -0 -0 -116 -118 -345 -0 -0 -0 -0 -0 -0 -0 -3 -119 -428 -0 -0 -0 -0 -0 -0 -0 -120 -122 -0 -0 -0 -0 -0 -0 -0 -0 -121 -122 -186 -263 -296 -0 -0 -0 -0 -0 -77 -111 -120 -121 -122 -178 -264 -0 -0 -0 -55 -117 -123 -0 -0 -0 -0 -0 -0 -0 -124 -125 -0 -0 -0 -0 -0 -0 -0 -0 -124 -125 -384 -0 -0 -0 -0 -0 -0 -0 -126 -128 -225 -0 -0 -0 -0 -0 -0 -0 -127 -224 -437 -0 -0 -0 -0 -0 -0 -0 -126 -128 -0 -0 -0 -0 -0 -0 -0 -0 -129 -140 -0 -0 -0 -0 -0 -0 -0 -0 -130 -140 -0 -0 -0 -0 -0 -0 -0 -0 -131 -140 -0 -0 -0 -0 -0 -0 -0 -0 -132 -141 -0 -0 -0 -0 -0 -0 -0 -0 -133 -142 -0 -0 -0 -0 -0 -0 -0 -0 -134 -139 -0 -0 -0 -0 -0 -0 -0 -0 -135 -140 -141 -143 -0 -0 -0 -0 -0 -0 -136 -140 -141 -144 -0 -0 -0 -0 -0 -0 -137 -198 -339 -0 -0 -0 -0 -0 -0 -0 -138 -146 -0 -0 -0 -0 -0 -0 -0 -0 -21 -22 -134 -139 -0 -0 -0 -0 -0 -0 -129 -130 -131 -135 -136 -140 -0 -0 -0 -0 -69 -132 -135 -136 -141 -142 -472 -477 -486 -0 -133 -141 -142 -241 -0 -0 -0 -0 -0 -0 -135 -143 -0 -0 -0 -0 -0 -0 -0 -0 -136 -144 -0 -0 -0 -0 -0 -0 -0 -0 -145 -182 -244 -338 -0 -0 -0 -0 -0 -0 -36 -79 -138 -146 -0 -0 -0 -0 -0 -0 -147 -433 -442 -0 -0 -0 -0 -0 -0 -0 -148 -149 -216 -0 -0 -0 -0 -0 -0 -0 -5 -97 -148 -149 -396 -0 -0 -0 -0 -0 -150 -152 -153 -154 -0 -0 -0 -0 -0 -0 -151 -152 -153 -154 -0 -0 -0 -0 -0 -0 -46 -150 -151 -152 -202 -0 -0 -0 -0 -0 -150 -151 -153 -0 -0 -0 -0 -0 -0 -0 -22 -150 -151 -154 -240 -0 -0 -0 -0 -0 -97 -155 -156 -0 -0 -0 -0 -0 -0 -0 -24 -155 -156 -0 -0 -0 -0 -0 -0 -0 -3 -99 -157 -0 -0 -0 -0 -0 -0 -0 -158 -159 -182 -247 -387 -391 -0 -0 -0 -0 -158 -159 -368 -398 -0 -0 -0 -0 -0 -0 -160 -409 -0 -0 -0 -0 -0 -0 -0 -0 -53 -161 -354 -0 -0 -0 -0 -0 -0 -0 -162 -166 -245 -0 -0 -0 -0 -0 -0 -0 -163 -166 -230 -416 -469 -0 -0 -0 -0 -0 -6 -164 -0 -0 -0 -0 -0 -0 -0 -0 -165 -340 -422 -0 -0 -0 -0 -0 -0 -0 -162 -163 -166 -0 -0 -0 -0 -0 -0 -0 -167 -168 -0 -0 -0 -0 -0 -0 -0 -0 -167 -168 -343 -399 -0 -0 -0 -0 -0 -0 -24 -169 -324 -0 -0 -0 -0 -0 -0 -0 -170 -171 -0 -0 -0 -0 -0 -0 -0 -0 -41 -170 -171 -0 -0 -0 -0 -0 -0 -0 -27 -83 -172 -201 -0 -0 -0 -0 -0 -0 -44 -173 -174 -284 -0 -0 -0 -0 -0 -0 -42 -173 -174 -0 -0 -0 -0 -0 -0 -0 -175 -463 -0 -0 -0 -0 -0 -0 -0 -0 -176 -225 -0 -0 -0 -0 -0 -0 -0 -0 -101 -177 -339 -0 -0 -0 -0 -0 -0 -0 -111 -122 -178 -0 -0 -0 -0 -0 -0 -0 -179 -180 -0 -0 -0 -0 -0 -0 -0 -0 -179 -180 -232 -0 -0 -0 -0 -0 -0 -0 -30 -181 -0 -0 -0 -0 -0 -0 -0 -0 -145 -158 -182 -183 -184 -247 -0 -0 -0 -0 -182 -183 -0 -0 -0 -0 -0 -0 -0 -0 -182 -184 -0 -0 -0 -0 -0 -0 -0 -0 -2 -30 -185 -0 -0 -0 -0 -0 -0 -0 -76 -121 -186 -0 -0 -0 -0 -0 -0 -0 -187 -197 -211 -0 -0 -0 -0 -0 -0 -0 -188 -189 -0 -0 -0 -0 -0 -0 -0 -0 -62 -188 -189 -400 -0 -0 -0 -0 -0 -0 -103 -107 -190 -191 -194 -195 -373 -379 -415 -0 -190 -191 -192 -193 -0 -0 -0 -0 -0 -0 -191 -192 -0 -0 -0 -0 -0 -0 -0 -0 -191 -193 -0 -0 -0 -0 -0 -0 -0 -0 -190 -194 -0 -0 -0 -0 -0 -0 -0 -0 -190 -195 -0 -0 -0 -0 -0 -0 -0 -0 -22 -196 -464 -0 -0 -0 -0 -0 -0 -0 -187 -197 -200 -0 -0 -0 -0 -0 -0 -0 -137 -198 -363 -0 -0 -0 -0 -0 -0 -0 -199 -279 -0 -0 -0 -0 -0 -0 -0 -0 -197 -200 -0 -0 -0 -0 -0 -0 -0 -0 -172 -201 -246 -0 -0 -0 -0 -0 -0 -0 -44 -152 -202 -296 -0 -0 -0 -0 -0 -0 -203 -204 -205 -206 -0 -0 -0 -0 -0 -0 -9 -47 -203 -204 -207 -282 -356 -368 -0 -0 -203 -205 -0 -0 -0 -0 -0 -0 -0 -0 -203 -206 -277 -0 -0 -0 -0 -0 -0 -0 -204 -207 -208 -0 -0 -0 -0 -0 -0 -0 -207 -208 -0 -0 -0 -0 -0 -0 -0 -0 -209 -210 -0 -0 -0 -0 -0 -0 -0 -0 -209 -210 -456 -464 -0 -0 -0 -0 -0 -0 -71 -187 -211 -0 -0 -0 -0 -0 -0 -0 -71 -212 -443 -0 -0 -0 -0 -0 -0 -0 -67 -78 -213 -0 -0 -0 -0 -0 -0 -0 -214 -389 -439 -0 -0 -0 -0 -0 -0 -0 -215 -216 -217 -218 -0 -0 -0 -0 -0 -0 -148 -215 -216 -276 -285 -428 -0 -0 -0 -0 -215 -217 -0 -0 -0 -0 -0 -0 -0 -0 -215 -218 -234 -0 -0 -0 -0 -0 -0 -0 -99 -219 -270 -448 -0 -0 -0 -0 -0 -0 -220 -366 -463 -0 -0 -0 -0 -0 -0 -0 -34 -221 -239 -435 -0 -0 -0 -0 -0 -0 -222 -344 -397 -406 -0 -0 -0 -0 -0 -0 -55 -98 -223 -376 -453 -0 -0 -0 -0 -0 -127 -224 -225 -281 -376 -0 -0 -0 -0 -0 -126 -176 -224 -225 -0 -0 -0 -0 -0 -0 -226 -227 -0 -0 -0 -0 -0 -0 -0 -0 -226 -227 -419 -0 -0 -0 -0 -0 -0 -0 -228 -229 -0 -0 -0 -0 -0 -0 -0 -0 -228 -229 -314 -435 -0 -0 -0 -0 -0 -0 -163 -230 -385 -472 -0 -0 -0 -0 -0 -0 -231 -232 -233 -234 -0 -0 -0 -0 -0 -0 -101 -180 -231 -232 -0 -0 -0 -0 -0 -0 -231 -233 -0 -0 -0 -0 -0 -0 -0 -0 -218 -231 -234 -0 -0 -0 -0 -0 -0 -0 -86 -235 -300 -398 -0 -0 -0 -0 -0 -0 -236 -299 -307 -0 -0 -0 -0 -0 -0 -0 -49 -237 -293 -0 -0 -0 -0 -0 -0 -0 -32 -238 -321 -0 -0 -0 -0 -0 -0 -0 -221 -239 -421 -0 -0 -0 -0 -0 -0 -0 -154 -240 -328 -0 -0 -0 -0 -0 -0 -0 -142 -241 -257 -430 -479 -0 -0 -0 -0 -0 -242 -243 -308 -0 -0 -0 -0 -0 -0 -0 -242 -243 -0 -0 -0 -0 -0 -0 -0 -0 -145 -244 -299 -0 -0 -0 -0 -0 -0 -0 -106 -162 -245 -0 -0 -0 -0 -0 -0 -0 -201 -246 -332 -0 -0 -0 -0 -0 -0 -0 -158 -182 -247 -248 -0 -0 -0 -0 -0 -0 -247 -248 -249 -250 -0 -0 -0 -0 -0 -0 -248 -249 -0 -0 -0 -0 -0 -0 -0 -0 -248 -250 -0 -0 -0 -0 -0 -0 -0 -0 -79 -251 -362 -0 -0 -0 -0 -0 -0 -0 -45 -252 -255 -0 -0 -0 -0 -0 -0 -0 -253 -255 -0 -0 -0 -0 -0 -0 -0 -0 -105 -254 -255 -384 -0 -0 -0 -0 -0 -0 -252 -253 -254 -255 -0 -0 -0 -0 -0 -0 -103 -256 -265 -335 -401 -426 -0 -0 -0 -0 -241 -257 -258 -259 -260 -430 -465 -0 -0 -0 -257 -258 -0 -0 -0 -0 -0 -0 -0 -0 -257 -259 -0 -0 -0 -0 -0 -0 -0 -0 -257 -260 -0 -0 -0 -0 -0 -0 -0 -0 -36 -261 -442 -0 -0 -0 -0 -0 -0 -0 -103 -112 -262 -335 -377 -0 -0 -0 -0 -0 -44 -76 -121 -263 -264 -0 -0 -0 -0 -0 -77 -122 -263 -264 -0 -0 -0 -0 -0 -0 -256 -265 -0 -0 -0 -0 -0 -0 -0 -0 -0 -266 -406 -0 -0 -0 -0 -0 -0 -0 -267 -268 -0 -0 -0 -0 -0 -0 -0 -0 -54 -267 -268 -421 -0 -0 -0 -0 -0 -0 -269 -371 -403 -0 -0 -0 -0 -0 -0 -0 -47 -52 -219 -270 -271 -309 -376 -0 -0 -0 -270 -271 -272 -273 -0 -0 -0 -0 -0 -0 -271 -272 -0 -0 -0 -0 -0 -0 -0 -0 -271 -273 -0 -0 -0 -0 -0 -0 -0 -0 -84 -274 -344 -374 -406 -0 -0 -0 -0 -0 -275 -314 -393 -0 -0 -0 -0 -0 -0 -0 -9 -216 -276 -431 -0 -0 -0 -0 -0 -0 -206 -277 -278 -430 -478 -0 -0 -0 -0 -0 -277 -278 -0 -0 -0 -0 -0 -0 -0 -0 -199 -279 -280 -0 -0 -0 -0 -0 -0 -0 -16 -38 -279 -280 -0 -0 -0 -0 -0 -0 -224 -281 -0 -0 -0 -0 -0 -0 -0 -0 -47 -204 -282 -0 -0 -0 -0 -0 -0 -0 -283 -284 -286 -287 -0 -0 -0 -0 -0 -0 -44 -46 -113 -173 -283 -284 -288 -289 -0 -0 -43 -101 -216 -285 -288 -289 -0 -0 -0 -0 -81 -283 -286 -0 -0 -0 -0 -0 -0 -0 -283 -287 -0 -0 -0 -0 -0 -0 -0 -0 -284 -285 -288 -290 -0 -0 -0 -0 -0 -0 -284 -285 -289 -291 -0 -0 -0 -0 -0 -0 -288 -290 -0 -0 -0 -0 -0 -0 -0 -0 -289 -291 -0 -0 -0 -0 -0 -0 -0 -0 -292 -293 -0 -0 -0 -0 -0 -0 -0 -0 -237 -292 -293 -418 -0 -0 -0 -0 -0 -0 -294 -446 -0 -0 -0 -0 -0 -0 -0 -0 -295 -296 -297 -298 -0 -0 -0 -0 -0 -0 -121 -202 -295 -296 -455 -0 -0 -0 -0 -0 -111 -295 -297 -0 -0 -0 -0 -0 -0 -0 -295 -298 -0 -0 -0 -0 -0 -0 -0 -0 -236 -244 -299 -371 -0 -0 -0 -0 -0 -0 -235 -300 -301 -303 -305 -309 -322 -428 -0 -0 -300 -301 -302 -492 -0 -0 -0 -0 -0 -0 -301 -302 -0 -0 -0 -0 -0 -0 -0 -0 -300 -303 -304 -493 -0 -0 -0 -0 -0 -0 -303 -304 -0 -0 -0 -0 -0 -0 -0 -0 -47 -102 -300 -305 -309 -0 -0 -0 -0 -0 -28 -306 -433 -0 -0 -0 -0 -0 -0 -0 -236 -307 -372 -0 -0 -0 -0 -0 -0 -0 -242 -308 -408 -0 -0 -0 -0 -0 -0 -0 -52 -270 -300 -305 -309 -316 -317 -318 -390 -0 -69 -310 -316 -317 -318 -319 -0 -0 -0 -0 -311 -316 -0 -0 -0 -0 -0 -0 -0 -0 -312 -317 -0 -0 -0 -0 -0 -0 -0 -0 -313 -318 -0 -0 -0 -0 -0 -0 -0 -0 -229 -275 -314 -0 -0 -0 -0 -0 -0 -0 -28 -315 -427 -0 -0 -0 -0 -0 -0 -0 -309 -310 -311 -316 -0 -0 -0 -0 -0 -0 -309 -310 -312 -317 -0 -0 -0 -0 -0 -0 -309 -310 -313 -318 -0 -0 -0 -0 -0 -0 -69 -310 -319 -320 -0 -0 -0 -0 -0 -0 -319 -320 -400 -0 -0 -0 -0 -0 -0 -0 -238 -321 -322 -0 -0 -0 -0 -0 -0 -0 -300 -321 -322 -339 -434 -0 -0 -0 -0 -0 -323 -324 -0 -0 -0 -0 -0 -0 -0 -0 -35 -169 -323 -324 -0 -0 -0 -0 -0 -0 -88 -96 -325 -0 -0 -0 -0 -0 -0 -0 -326 -327 -0 -0 -0 -0 -0 -0 -0 -0 -40 -41 -326 -327 -0 -0 -0 -0 -0 -0 -240 -328 -395 -0 -0 -0 -0 -0 -0 -0 -329 -330 -0 -0 -0 -0 -0 -0 -0 -0 -49 -329 -330 -0 -0 -0 -0 -0 -0 -0 -60 -331 -334 -0 -0 -0 -0 -0 -0 -0 -246 -332 -391 -0 -0 -0 -0 -0 -0 -0 -16 -106 -333 -0 -0 -0 -0 -0 -0 -0 -331 -334 -433 -0 -0 -0 -0 -0 -0 -0 -256 -262 -335 -0 -0 -0 -0 -0 -0 -0 -112 -336 -342 -0 -0 -0 -0 -0 -0 -0 -337 -393 -0 -0 -0 -0 -0 -0 -0 -0 -145 -338 -341 -0 -0 -0 -0 -0 -0 -0 -137 -177 -322 -339 -0 -0 -0 -0 -0 -0 -165 -340 -422 -0 -0 -0 -0 -0 -0 -0 -338 -341 -0 -0 -0 -0 -0 -0 -0 -0 -336 -342 -415 -0 -0 -0 -0 -0 -0 -0 -168 -343 -0 -0 -0 -0 -0 -0 -0 -0 -222 -274 -344 -347 -349 -351 -352 -0 -0 -0 -117 -118 -345 -346 -348 -350 -352 -374 -0 -0 -58 -345 -346 -0 -0 -0 -0 -0 -0 -0 -344 -347 -0 -0 -0 -0 -0 -0 -0 -0 -345 -348 -0 -0 -0 -0 -0 -0 -0 -0 -344 -349 -0 -0 -0 -0 -0 -0 -0 -0 -345 -350 -0 -0 -0 -0 -0 -0 -0 -0 -344 -351 -394 -0 -0 -0 -0 -0 -0 -0 -70 -344 -345 -352 -402 -0 -0 -0 -0 -0 -114 -353 -419 -0 -0 -0 -0 -0 -0 -0 -79 -161 -354 -0 -0 -0 -0 -0 -0 -0 -355 -384 -0 -0 -0 -0 -0 -0 -0 -0 -204 -356 -357 -358 -360 -398 -0 -0 -0 -0 -356 -357 -359 -361 -0 -0 -0 -0 -0 -0 -356 -358 -0 -0 -0 -0 -0 -0 -0 -0 -357 -359 -0 -0 -0 -0 -0 -0 -0 -0 -356 -360 -0 -0 -0 -0 -0 -0 -0 -0 -357 -361 -0 -0 -0 -0 -0 -0 -0 -0 -54 -251 -362 -0 -0 -0 -0 -0 -0 -0 -198 -363 -0 -0 -0 -0 -0 -0 -0 -0 -364 -437 -0 -0 -0 -0 -0 -0 -0 -0 -365 -366 -0 -0 -0 -0 -0 -0 -0 -0 -6 -220 -365 -366 -375 -425 -0 -0 -0 -0 -367 -368 -369 -370 -0 -0 -0 -0 -0 -0 -159 -204 -367 -368 -371 -372 -0 -0 -0 -0 -367 -369 -0 -0 -0 -0 -0 -0 -0 -0 -90 -367 -370 -0 -0 -0 -0 -0 -0 -0 -269 -299 -368 -371 -0 -0 -0 -0 -0 -0 -307 -368 -372 -391 -0 -0 -0 -0 -0 -0 -190 -373 -407 -0 -0 -0 -0 -0 -0 -0 -274 -345 -374 -0 -0 -0 -0 -0 -0 -0 -31 -366 -375 -0 -0 -0 -0 -0 -0 -0 -58 -223 -224 -270 -376 -394 -0 -0 -0 -0 -112 -262 -377 -0 -0 -0 -0 -0 -0 -0 -378 -379 -380 -382 -0 -0 -0 -0 -0 -0 -107 -190 -378 -379 -383 -0 -0 -0 -0 -0 -378 -380 -416 -429 -0 -0 -0 -0 -0 -0 -381 -383 -0 -0 -0 -0 -0 -0 -0 -0 -378 -382 -0 -0 -0 -0 -0 -0 -0 -0 -379 -381 -383 -0 -0 -0 -0 -0 -0 -0 -125 -254 -355 -384 -0 -0 -0 -0 -0 -0 -89 -230 -385 -0 -0 -0 -0 -0 -0 -0 -82 -91 -386 -0 -0 -0 -0 -0 -0 -0 -158 -387 -388 -0 -0 -0 -0 -0 -0 -0 -387 -388 -0 -0 -0 -0 -0 -0 -0 -0 -214 -389 -438 -0 -0 -0 -0 -0 -0 -0 -99 -309 -390 -0 -0 -0 -0 -0 -0 -0 -158 -332 -372 -391 -403 -0 -0 -0 -0 -0 -79 -392 -438 -0 -0 -0 -0 -0 -0 -0 -62 -275 -337 -393 -0 -0 -0 -0 -0 -0 -351 -376 -394 -0 -0 -0 -0 -0 -0 -0 -80 -328 -395 -456 -464 -0 -0 -0 -0 -0 -51 -149 -396 -0 -0 -0 -0 -0 -0 -0 -37 -222 -397 -0 -0 -0 -0 -0 -0 -0 -159 -235 -356 -398 -0 -0 -0 -0 -0 -0 -168 -399 -441 -0 -0 -0 -0 -0 -0 -0 -189 -320 -400 -0 -0 -0 -0 -0 -0 -0 -256 -401 -402 -0 -0 -0 -0 -0 -0 -0 -352 -401 -402 -0 -0 -0 -0 -0 -0 -0 -269 -391 -403 -0 -0 -0 -0 -0 -0 -0 -404 -405 -0 -0 -0 -0 -0 -0 -0 -0 -53 -404 -405 -0 -0 -0 -0 -0 -0 -0 -222 -266 -274 -406 -0 -0 -0 -0 -0 -0 -373 -407 -426 -0 -0 -0 -0 -0 -0 -0 -50 -308 -408 -0 -0 -0 -0 -0 -0 -0 -160 -409 -417 -0 -0 -0 -0 -0 -0 -0 -410 -411 -0 -0 -0 -0 -0 -0 -0 -0 -10 -410 -411 -436 -0 -0 -0 -0 -0 -0 -40 -412 -0 -0 -0 -0 -0 -0 -0 -0 -413 -414 -415 -416 -0 -0 -0 -0 -0 -0 -413 -414 -0 -0 -0 -0 -0 -0 -0 -0 -112 -190 -342 -413 -415 -0 -0 -0 -0 -0 -39 -163 -380 -413 -416 -0 -0 -0 -0 -0 -60 -409 -417 -0 -0 -0 -0 -0 -0 -0 -35 -293 -418 -0 -0 -0 -0 -0 -0 -0 -227 -353 -419 -423 -0 -0 -0 -0 -0 -0 -78 -420 -421 -434 -0 -0 -0 -0 -0 -0 -8 -96 -239 -268 -420 -421 -0 -0 -0 -0 -82 -165 -340 -422 -0 -0 -0 -0 -0 -0 -419 -423 -0 -0 -0 -0 -0 -0 -0 -0 -25 -424 -0 -0 -0 -0 -0 -0 -0 -0 -6 -366 -425 -0 -0 -0 -0 -0 -0 -0 -256 -407 -426 -0 -0 -0 -0 -0 -0 -0 -64 -315 -427 -0 -0 -0 -0 -0 -0 -0 -3 -102 -119 -216 -300 -428 -430 -0 -0 -0 -380 -429 -430 -0 -0 -0 -0 -0 -0 -0 -241 -257 -277 -428 -429 -430 -0 -0 -0 -0 -3 -276 -431 -0 -0 -0 -0 -0 -0 -0 -5 -432 -0 -0 -0 -0 -0 -0 -0 -0 -147 -306 -334 -433 -436 -0 -0 -0 -0 -0 -322 -420 -434 -435 -0 -0 -0 -0 -0 -0 -10 -64 -221 -229 -434 -435 -0 -0 -0 -0 -79 -411 -433 -436 -0 -0 -0 -0 -0 -0 -61 -127 -364 -437 -0 -0 -0 -0 -0 -0 -389 -392 -438 -0 -0 -0 -0 -0 -0 -0 -71 -214 -439 -0 -0 -0 -0 -0 -0 -0 -440 -441 -0 -0 -0 -0 -0 -0 -0 -0 -49 -399 -440 -441 -0 -0 -0 -0 -0 -0 -147 -261 -442 -0 -0 -0 -0 -0 -0 -0 -31 -212 -443 -0 -0 -0 -0 -0 -0 -0 -444 -445 -446 -448 -0 -0 -0 -0 -0 -0 -444 -445 -449 -454 -0 -0 -0 -0 -0 -0 -294 -444 -446 -454 -0 -0 -0 -0 -0 -0 -447 -449 -0 -0 -0 -0 -0 -0 -0 -0 -219 -444 -448 -450 -451 -452 -0 -0 -0 -0 -445 -447 -449 -0 -0 -0 -0 -0 -0 -0 -448 -450 -0 -0 -0 -0 -0 -0 -0 -0 -448 -451 -0 -0 -0 -0 -0 -0 -0 -0 -448 -452 -0 -0 -0 -0 -0 -0 -0 -0 -84 -223 -453 -454 -0 -0 -0 -0 -0 -0 -48 -445 -446 -453 -454 -0 -0 -0 -0 -0 -296 -455 -456 -457 -0 -0 -0 -0 -0 -0 -80 -210 -395 -455 -456 -458 -459 -460 -461 -462 -455 -457 -0 -0 -0 -0 -0 -0 -0 -0 -456 -458 -0 -0 -0 -0 -0 -0 -0 -0 -456 -459 -0 -0 -0 -0 -0 -0 -0 -0 -456 -460 -0 -0 -0 -0 -0 -0 -0 -0 -456 -461 -0 -0 -0 -0 -0 -0 -0 -0 -456 -462 -0 -0 -0 -0 -0 -0 -0 -0 -71 -175 -220 -463 -0 -0 -0 -0 -0 -0 -196 -210 -395 -464 -0 -0 -0 -0 -0 -0 -257 -465 -466 -479 -0 -0 -0 -0 -0 -0 -465 -466 -480 -0 -0 -0 -0 -0 -0 -0 -467 -471 -477 -0 -0 -0 -0 -0 -0 -0 -468 -472 -477 -0 -0 -0 -0 -0 -0 -0 -163 -469 -470 -0 -0 -0 -0 -0 -0 -0 -469 -470 -471 -0 -0 -0 -0 -0 -0 -0 -467 -470 -471 -0 -0 -0 -0 -0 -0 -0 -141 -230 -468 -472 -473 -474 -475 -476 -0 -0 -472 -473 -0 -0 -0 -0 -0 -0 -0 -0 -472 -474 -0 -0 -0 -0 -0 -0 -0 -0 -472 -475 -0 -0 -0 -0 -0 -0 -0 -0 -472 -476 -0 -0 -0 -0 -0 -0 -0 -0 -141 -467 -468 -477 -0 -0 -0 -0 -0 -0 -277 -478 -0 -0 -0 -0 -0 -0 -0 -0 -241 -465 -479 -480 -482 -0 -0 -0 -0 -0 -466 -479 -480 -481 -482 -485 -0 -0 -0 -0 -480 -481 -485 -0 -0 -0 -0 -0 -0 -0 -479 -480 -482 -483 -484 -0 -0 -0 -0 -0 -482 -483 -0 -0 -0 -0 -0 -0 -0 -0 -482 -484 -0 -0 -0 -0 -0 -0 -0 -0 -480 -481 -485 -0 -0 -0 -0 -0 -0 -0 -141 -486 -0 -0 -0 -0 -0 -0 -0 -0 -487 -489 -492 -493 -0 -0 -0 -0 -0 -0 -488 -489 -490 -0 -0 -0 -0 -0 -0 -0 -487 -488 -489 -491 -0 -0 -0 -0 -0 -0 -488 -490 -0 -0 -0 -0 -0 -0 -0 -0 -489 -491 -0 -0 -0 -0 -0 -0 -0 -0 -301 -487 -492 -0 -0 -0 -0 -0 -0 -0 -303 -487 -493 -0 -0 -0 -0 -0 -0 -0 -%% -0.8483178396146527 -0.6706497803768818 -0.9316474009271629 -0.8259915659051159 -0.0749141099239747 -0.6127769850532617 -0.3243126095086337 -0.4042432493346517 -0.4889216894177568 -0.0563064540342341 -0.2003220013219365 -0.4506809985950107 -0.2465207945154783 -0.6728182306226016 -0.5009444841545747 -0.2093887700710019 -0.3833875674814791 -0.2629049630806244 -0.8638473264891788 -0.0068903568874143 -0.4270323830861616 -0.6741981263711310 -0.0263683207747022 -0.8026358879744457 -0.1798125277440863 -0.6615563839200532 -0.5388504032397917 -0.2011487589490933 -0.9782153590525915 -0.2966113305625048 -0.8309093043465101 -0.5350148999623799 -0.8577368190902865 -0.7123884593841227 -0.9543748287741737 -0.8801106496231675 -0.8490474371089849 -0.1057599762765537 -0.3694121479802369 -0.7736908773165471 -0.3352441047664209 -0.1150862062662503 -0.7552438928694989 -0.3439478131991411 -0.2817087394018067 -0.2162976539518998 -0.4852360002861091 -0.0057640498417387 -0.7268004045533238 -0.5205619338920122 -0.6343918397825450 -0.1837588835868946 -0.2104079488356254 -0.1072048133407638 -0.0395947057002634 -0.9330220583897403 -0.0400209978161234 -0.0781877556303664 -0.2976758337005888 -0.6604415374454923 -0.9521082225628823 -0.0055543256941696 -0.1866873697274503 -0.2113213532549362 -0.7358651200871347 -0.4166371044168225 -0.1361097436415447 -0.2489126317221700 -0.9090931683964897 -0.8804237290693118 -0.4604792296588825 -0.9114630717835008 -0.5769636562652027 -0.2122197185028387 -0.8616704275858206 -0.1872496047054253 -0.8767687582692533 -0.0283493571356546 -0.0279669403183254 -0.0011739769717719 -0.8816612565392817 -0.2587451230366413 -0.1866195592416753 -0.6134283988672150 -0.7633503369248252 -0.7960136720771441 -0.2150746941951263 -0.4417212743517567 -0.1339641300308199 -0.3538190365232776 -0.7161428864829403 -0.4820827424201957 -0.1365021466723779 -0.7270079301991990 -0.5001932391978972 -0.5540293780631791 -0.8470236345937937 -0.6844720529281880 -0.4470622249540837 -0.7395825773469121 -0.7140811894103265 -0.1689867872929229 -0.0127652175460312 -0.7390011771948182 -0.3876666127209407 -0.3889554660143338 -0.9958895038034786 -0.0158743815304996 -0.0926458725571736 -0.2794561312296530 -0.9676672240567189 -0.5488249778351199 -0.3736362838672994 -0.9939879360511114 -0.0488822949430138 -0.3265921768161898 -0.4076365668481068 -0.7380059200028429 -0.4603180906842517 -0.2686659846029050 -0.2873166763901486 -0.0140301867513706 -0.4365584272465929 -0.0345076306283345 -0.5850196896009423 -0.7098586658566393 -0.9590813817633715 -0.8804033136216555 -0.9980595552286854 -0.1311251822393278 -0.6068136140773602 -0.1738269702011150 -0.7043815368917442 -0.9467849911595574 -0.1974515966674346 -0.0635165505526809 -0.6575472564589070 -0.8045666146925562 -0.9454611044982865 -0.5500252055448300 -0.5747363779881197 -0.2960850128458551 -0.2194919783622648 -0.3791679357611623 -0.5763745454924379 -0.3318679405186607 -0.7153851752905834 -0.1383370271666072 -0.8911010718686341 -0.9622471231685127 -0.5206280483477259 -0.0008209235817533 -0.1501220678649025 -0.2858982586997720 -0.3812301813733660 -0.9627033012525220 -0.0463248309608765 -0.5536461903980735 -0.4254903780644615 -0.0203918495292208 -0.4973494195501764 -0.2673520692161342 -0.4281354730441760 -0.3587292238852842 -0.1142915128435944 -0.0093934765497702 -0.0804645407448647 -0.0284739994461690 -0.4373515560814680 -0.5054042027492341 -0.2582268915654431 -0.8181935096212357 -0.7683934478079263 -0.5459306504169178 -0.0766898881091194 -0.9984011518683296 -0.8463122892926332 -0.4788924934998232 -0.1107166721271598 -0.9047358057561707 -0.5840612962298976 -0.6958031753814037 -0.8557126220464411 -0.0826713344650157 -0.4838001677368423 -0.2449075192032626 -0.0621016340325793 -0.4332419552713540 -0.1310235740565679 -0.7481090411770011 -0.3776118887938892 -0.3337436210362408 -0.3530460812272584 -0.1288111479371150 -0.4149216674120018 -0.1393425109365868 -0.2064459122797230 -0.3694359018085516 -0.8343916891700796 -0.2161886277610609 -0.0932775064851222 -0.0868289540623030 -0.2731170192259920 -0.2809660913222927 -0.3356228717457055 -0.6834390896658262 -0.3267963290017710 -0.6599492802927122 -0.0435681404918652 -0.0703576285531474 -0.7228303690021292 -0.8851721422324230 -0.2107907960557750 -0.0784159016220343 -0.9615694238266003 -0.6775815611931443 -0.9326414560282523 -0.8723857873635551 -0.9394618799882867 -0.3442387428829488 -0.1764777376547630 -0.7488398469947676 -0.3732788212737727 -0.6865869483303326 -0.4000735922705779 -0.5721400649461029 -0.1120309369903489 -0.5113942038836549 -0.0511100243190568 -0.7175259320021290 -0.8575182783261570 -0.5784878853002242 -0.1349654718909908 -0.1192925964151463 -0.9723092959416103 -0.3728264511453223 -0.8067179481103881 -0.3324480279209299 -0.4657453752075365 -0.7348138089866270 -0.8214647023258758 -0.9113418227917187 -0.6642716262994925 -0.0133558732261029 -0.2924958180021960 -0.0444334379695671 -0.9396144243758447 -0.7655890089284283 -0.6692048055281263 -0.8380837128929514 -0.4554570494036198 -0.6909078386850797 -0.0154017302137861 -0.8479124776327206 -0.9462209557130911 -0.7677202200246880 -0.9279331770197743 -0.5153327254961750 -0.8926116198429296 -0.8930457828966226 -0.9844385803033128 -0.6018790515210961 -0.8235301034352464 -0.0665720402909682 -0.1171662519206369 -0.5962448507692394 -0.9738432213333370 -0.3392590904124880 -0.1702801969466125 -0.1112857249315309 -0.9700813330218533 -0.5367884989765819 -0.3431322540111262 -0.9916240181373843 -0.3521808070203251 -0.8331481345246642 -0.6456496860574097 -0.2994661478507417 -0.0078332098488572 -0.8627726556183214 -0.2780721231188467 -0.6182353827040976 -0.9308493287741327 -0.6149876265111006 -0.3391027675786487 -0.3531793653091488 -0.6387221774977941 -0.5143005186400568 -0.1387668025077644 -0.5926468898446244 -0.3193379819348149 -0.3649024825358713 -0.2938847760898528 -0.5343363005946771 -0.3760463174887679 -0.5725036130122593 -0.1542553433051521 -0.3174075718189375 -0.6639159037834084 -0.3751798269431847 -0.3564936178023257 -0.6578860801973966 -0.4878134574691712 -0.9332728824329765 -0.0345427675439928 -0.1146445520498136 -0.5848943772682992 -0.1662239710723725 -0.0693781648667100 -0.8694019864172604 -0.2191364932019932 -0.7499672365062569 -0.2761112415673199 -0.7271363734624335 -0.2440285243758249 -0.9430020624479579 -0.1440250692777039 -0.4132824422670823 -0.7614656056422392 -0.4837363618225233 -0.9809620066037130 -0.4671709271543480 -0.9348033021342805 -0.4537214639120629 -0.7552137859210596 -0.7954668379373012 -0.6065311722051752 -0.2438654997599063 -0.5503350398133949 -0.4419460762806375 -0.6275061460415338 -0.6777206266673230 -0.0111472337609468 -0.9957734162654772 -0.1246312888209616 -0.2480800843375707 -0.4231461451579110 -0.1280403970412000 -0.6484414922888584 -0.3644668863337679 -0.2337922181906040 -0.9616873414436868 -0.6779685516426726 -0.1868708749314857 -0.8782741573686651 -0.6930411666732398 -0.6177010100415349 -0.5780037143603487 -0.2939854446950563 -0.5608423882500977 -0.8761871775505162 -0.6441989655644730 -0.1810071211477334 -0.9713249811202351 -0.8720289503655566 -0.4294390166286234 -0.2532811225707449 -0.8969774741365252 -0.6100117892988954 -0.1960699631492769 -0.9301354739598914 -0.7224530353170772 -0.5191027833281141 -0.1268089950416111 -0.1431706944572742 -0.9397683680282519 -0.1708568797583734 -0.5315018323429732 -0.6242359909565518 -0.2254886187046609 -0.9782736794109049 -0.0429141142621825 -0.9891683505866096 -0.2024717685614631 -0.0196826080659797 -0.6910933955316909 -0.2768293352286383 -0.7314732999603543 -0.0768308861291690 -0.1551093873719042 -0.6270659160444320 -0.6743060895480667 -0.3147389465422545 -0.4556540188327001 -0.5336071033488232 -0.4432436833380574 -0.0120537996182269 -0.5606860679844500 -0.5307654724048916 -0.6319108687982481 -0.5153605911637142 -0.0116703069980435 -0.7528566241924224 -0.2322452408551318 -0.7033589194426896 -0.3536862332363362 -0.3209196647064811 -0.1158322695030433 -0.4410043195102882 -0.9634522939857088 -0.0111739864620048 -0.8487323055999937 -0.2863026779679601 -0.4353499310626945 -0.2683100918304755 -0.6302969530620972 -0.2979827363431253 -0.1274088565446815 -0.3721852873425603 -0.2453010715007161 -0.1633665685261703 -0.7126333281485220 -0.6533281645944697 -0.5808262573450925 -0.2843454312853405 -0.5096368273743479 -0.9051319563159713 -0.4906882869254115 -0.5983082899373767 -0.6495880834323012 -0.5757792223158209 -0.0233123321742689 -0.2692903346720601 -0.0041469810558323 -0.6096013896981760 -0.8805597089399800 -0.0901025770439411 -0.2018707114365797 -0.4634050247425767 -0.3379314576230700 -0.6204605185689965 -0.4753747255809189 -0.5112592424386806 -0.6616274253970083 -0.4937665420329518 -0.3197317654981836 -0.4695717035134276 -0.2874055811093641 -0.9097122918366112 -0.0698162859045715 -0.3201641400746201 -0.5185972464080254 -0.9905173479273656 -0.3712390779666960 -0.0056370341850618 -0.0395522598727142 -0.3921534977584564 -0.8522029796288904 -0.3346194563079505 -0.6429233013492220 -0.6360433801365077 -0.1716043134564161 -0.5201155310158935 -0.0245860778925260 -0.4362019819492165 -0.1192679823597833 -0.3809198621760362 -0.2251123162515863 -0.5670535082271564 -0.2278627039406244 -0.0529453230927324 -0.6021001931781610 -0.6790772399224166 -0.7716493715297760 -0.2868627608072348 -0.7086536443199765 -0.9392660254042972 -0.6378488996151952 -0.5753465166316099 -0.9778896639349272 -0.6541005362632644 -0.6175561601799165 -0.2817555840484371 -0.1438112390964338 -0.6612642174687781 -0.5655215638728978 -0.9423159385445181 -0.8964914023258709 -0.9174747407529212 -0.4929803186620192 -0.9779240481377166 -0.3181047984817529 -0.2986892413220574 -0.2571762285898997 -0.1916000764166038 -0.5341139182822019 -0.7468217076566656 -0.4481070842468913 -0.5936366233299584 -0.7442557099061952 -0.5410113779987784 -0.0755455037462515 -0.0748945408290509 -0.0881736635594114 diff --git a/examples/machsuite/spmv/ellpack/run_test.py b/examples/machsuite/spmv/ellpack/run_test.py index 819eba696d..ccf5b5efce 100644 --- a/examples/machsuite/spmv/ellpack/run_test.py +++ b/examples/machsuite/spmv/ellpack/run_test.py @@ -5,38 +5,39 @@ _dir = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, _dir) -from ellpack import ellpack +from ellpack import ellpack, N, L -def parse_data(file): - data_arrays = [] - current_array = [] - with open(file, 'r') as f: - for line in f: - if line.strip() == '%%': - if current_array: - data_arrays.append(current_array) - current_array = [] - else: - num = float(line.strip()) - current_array.append(num) +def generate_sparse_ellpack(n, l, rng): + """Generate a random sparse matrix in ELLPACK format.""" + values = np.zeros(n * l, dtype=np.float64) + columns = np.zeros(n * l, dtype=np.int32) + + for i in range(n): + cols = np.sort(rng.choice(n, size=l, replace=False)) + for j in range(l): + values[i * l + j] = rng.random() + columns[i * l + j] = cols[j] + + return values, columns - data_arrays.append(current_array) - return data_arrays if __name__ == "__main__": - input = parse_data(os.path.join(_dir, "input.data")) - check = parse_data(os.path.join(_dir, "check.data")) + rng = np.random.default_rng(42) - values = np.array(input[0]).astype(np.float64) - columns = np.array(input[1]).astype(np.int32) - vector = np.array(input[2]).astype(np.float64) + values, columns = generate_sparse_ellpack(N, L, rng) + vector = rng.random(N).astype(np.float64) - check = np.array(check[0]).astype(np.float64) + # Python reference: dense matmul + dense = np.zeros((N, N), dtype=np.float64) + for i in range(N): + for j in range(L): + dense[i, columns[i * L + j]] = values[i * L + j] + expected = dense @ vector - ##Building s = allo.customize(ellpack) mod = s.build() - observed = mod(values, columns, vector) - np.testing.assert_allclose(observed, check, rtol=1e-5, atol=1e-5) \ No newline at end of file + + np.testing.assert_allclose(observed, expected, rtol=1e-5, atol=1e-5) + print("PASS!") diff --git a/examples/machsuite/stencil/stencil2d.py b/examples/machsuite/stencil/stencil2d.py index 29f7941562..9c8d311212 100644 --- a/examples/machsuite/stencil/stencil2d.py +++ b/examples/machsuite/stencil/stencil2d.py @@ -17,81 +17,23 @@ def stencil2d(orig: int32[row_size, col_size], filter: int32[f_size] ) -> int32[ return sol s = allo.customize(stencil2d) - -print(s.module) - mod = s.build(target="llvm") -# np_orig = np.random.randint(0, 100, (row_size, col_size)).astype(np.int32) -# np_filter = np.random.randint(0, 100, (f_size)).astype(np.int32) - -# np_sol = mod(np_orig, np_filter) - -# test_sol = np.zeros((row_size - 2, col_size - 2)) -# for r in range(row_size - 2): -# for c in range(col_size - 2): -# test_temp = 0 -# for k1 in range(3): -# for k2 in range(3): -# test_mul = np_filter[k1, k2] * np_orig[r + k1, c + k2] -# test_temp += test_mul -# test_sol[r, c] = test_temp - -# np.testing.assert_allclose(np_sol, test_sol, rtol=1e-5, atol=1e-5) - -import numpy as np - -def read_data(file_path): - with open(file_path, 'r') as file: - content = file.read() - - start_index1 = content.find("%%") - if start_index1 == -1: - raise ValueError("Cannot find first '%%' in the file.") - - start_index2 = content.find("%%", start_index1 + 2) - if start_index2 == -1: - raise ValueError("Cannot find second '%%' in the file.") - - data_str1 = content[start_index1 + 2:start_index2].strip() - data_list1 = [np.int32(line) for line in data_str1.split('\n')] - - np_orig = np.array(data_list1, dtype=np.int32).reshape(128, 64) - - data_str2 = content[start_index2 + 2:].strip() - data_list2 = [np.int32(line) for line in data_str2.split('\n')] - - np_filter = np.array(data_list2, dtype=np.int32) - - return np_orig, np_filter - -def read_check_data(file_path): - with open(file_path, 'r') as file: - content = file.read() - - start_index = content.find("%%") - if start_index == -1: - raise ValueError("Cannot find '%%' in the file.") - - data_str = content[start_index + 2:].strip() - data_list = [np.int32(line) for line in data_str.split('\n')] - - check_sol = np.array(data_list, dtype=np.int32).reshape(128, 64) - - return check_sol - -import os -_dir = os.path.dirname(os.path.abspath(__file__)) -file_path_data = os.path.join(_dir, "stencil2d_input.data") -file_path_check = os.path.join(_dir, "stencil2d_check.data") -np_orig, np_filter = read_data(file_path_data) -check_sol = read_check_data(file_path_check) -# print("np_orig:") -# print(np_orig) -# print("\nnp_filter:") -# print(np_filter) -# print("\ncheck_sol:") -# print(check_sol) +np.random.seed(42) +np_orig = np.random.randint(0, 100, (row_size, col_size)).astype(np.int32) +np_filter = np.random.randint(0, 10, (f_size,)).astype(np.int32) np_sol = mod(np_orig, np_filter) -np.testing.assert_allclose(np_sol, check_sol, rtol=1e-5, atol=1e-5) \ No newline at end of file + +# Python reference +ref_sol = np.zeros((row_size, col_size), dtype=np.int32) +for r in range(row_size - 2): + for c in range(col_size - 2): + temp = 0 + for k1 in range(3): + for k2 in range(3): + temp += np_filter[k1 * 3 + k2] * np_orig[r + k1, c + k2] + ref_sol[r, c] = temp + +np.testing.assert_allclose(np_sol, ref_sol, rtol=1e-5, atol=1e-5) +print("PASS!") diff --git a/examples/machsuite/stencil/stencil2d_check.data b/examples/machsuite/stencil/stencil2d_check.data deleted file mode 100644 index 9c72761e58..0000000000 --- a/examples/machsuite/stencil/stencil2d_check.data +++ /dev/null @@ -1,8193 +0,0 @@ -%% -2501539 -2506758 -3021781 -3316400 -3105008 -2539296 -1877901 -1836104 -2112399 -2195073 -2504732 -2211127 -1956876 -2249738 -2145414 -2816561 -2924333 -2646688 -3333344 -3288566 -2279277 -2194175 -2980482 -2715988 -2104650 -1883486 -2145395 -2339185 -2514319 -2603514 -2649825 -3145672 -3057879 -2319516 -2071749 -1862281 -2206018 -3452082 -3394413 -2009114 -1665114 -2801470 -3744874 -3577742 -3247847 -2501923 -2990068 -3685600 -3054832 -2923979 -2941918 -2768059 -3634103 -3041200 -2712496 -2750052 -2609961 -2924927 -2848672 -2825345 -3587977 -3325056 -0 -0 -3352092 -2663409 -2779534 -3500315 -3149215 -2413806 -2269635 -1706429 -1528544 -2549342 -2928503 -2070389 -2090464 -3000127 -3249937 -3098130 -2629914 -2333172 -2896556 -3269588 -2909023 -2035666 -2146145 -2830187 -2656026 -2412736 -2912989 -2561370 -2533767 -3074362 -2508242 -2696409 -3300971 -3148498 -1965072 -1700707 -2554958 -3189608 -2759467 -1583305 -1173376 -2117986 -2869102 -3010219 -2977511 -2312066 -3256940 -4189564 -3446206 -2562852 -2172556 -2721955 -3943811 -3580242 -2210223 -2062615 -2993105 -3201102 -2755304 -3131518 -3261786 -3347949 -0 -0 -3093849 -3524058 -2989719 -3061771 -2845222 -2667001 -2728922 -2542840 -1992206 -2245768 -2820663 -2581577 -2712660 -3168622 -3723164 -3643641 -2926219 -2723963 -2576252 -2839720 -2766644 -1839755 -1485824 -2619882 -3530640 -2892993 -2376600 -1957030 -1981206 -3113907 -2957375 -2662778 -3042808 -2884464 -2692694 -2760682 -2520347 -2397723 -2850050 -2395788 -1728371 -2755155 -2921466 -2814796 -2634539 -2614846 -3170087 -3537378 -2934705 -2313072 -2115756 -2474034 -3370819 -3230011 -1500658 -1298345 -2358469 -3137500 -3029223 -2673368 -3029137 -3235730 -0 -0 -2649359 -2754158 -2651602 -2641544 -2459826 -2296338 -2557540 -3304426 -2433621 -2127191 -2595021 -2533619 -3364252 -3417456 -3631010 -3467184 -2675405 -2681138 -2828370 -3007205 -2166608 -1456463 -1388932 -2337580 -3147825 -2713882 -2491783 -2862667 -2938761 -2894950 -2429662 -2418282 -2526455 -3090374 -2514640 -2252190 -2761665 -3056716 -3015214 -2087840 -2074574 -3272908 -3124747 -2612805 -2655872 -1856700 -2111883 -2510987 -3038947 -2936550 -2355726 -2528571 -3150212 -3175651 -2099527 -1859594 -2245762 -2399970 -2603966 -3021353 -3071014 -2317717 -0 -0 -2522880 -2704911 -3004190 -2454718 -2065173 -2336867 -2671030 -3363616 -3287042 -2188063 -1926673 -2500505 -2932173 -3295731 -3293395 -2504549 -2579614 -2394917 -2500664 -3062234 -2454978 -1824184 -2015598 -2004021 -2566718 -2742957 -2344096 -2524594 -2885020 -2335792 -2356576 -2029618 -2206912 -2395562 -2526272 -2839950 -2796265 -3416260 -3106322 -2441919 -2934229 -3929426 -3380225 -2655712 -2481787 -2415478 -1951965 -1998437 -2446458 -2438312 -2441507 -2531594 -2285526 -2307436 -2517616 -2067296 -2064915 -2470734 -2050265 -2087178 -2919183 -2902498 -0 -0 -2590946 -2528554 -2692865 -2437546 -2809035 -2323548 -2032622 -2668424 -3236504 -1911461 -1640731 -2294294 -2642641 -3188723 -2874074 -3015623 -3001042 -2494663 -2691626 -3375010 -2727357 -1893971 -1954469 -2250250 -2549813 -2845979 -2912422 -2862774 -2904858 -2682798 -2401797 -2268534 -1974978 -1972141 -2218720 -2156194 -2243915 -3116583 -2485236 -2537119 -3276787 -3598982 -2950764 -1896764 -1970215 -2596276 -2387754 -1793116 -2099725 -2427664 -2805125 -2881687 -2201735 -1574714 -2033655 -2129891 -2493052 -2998161 -2308607 -1743018 -2398658 -2349138 -0 -0 -3461006 -3266958 -2567872 -2408154 -3067054 -2705121 -2253357 -2754698 -3654632 -2991161 -2602873 -3073440 -3038013 -2355944 -2584258 -2773729 -2368849 -2092884 -2098145 -2962260 -3054304 -2439013 -2321540 -2347182 -2433272 -2797667 -3468350 -2904296 -2480180 -2393172 -2373870 -1913920 -1796642 -2107764 -2856240 -2891211 -2611950 -3254507 -2911029 -2929230 -3683972 -3440199 -3279418 -2469612 -1309928 -2190725 -2805112 -2540483 -2270085 -2266043 -2265841 -2240313 -2468049 -1675336 -1550995 -1362990 -1925007 -3284781 -2950084 -2502333 -2232137 -1996786 -0 -0 -3728261 -3422048 -2482489 -1623421 -2361847 -3025640 -2178552 -1906487 -2686799 -2878070 -2875532 -3339152 -3110214 -2411762 -2054661 -2218832 -2433462 -2148133 -1670471 -2514185 -2984075 -2720372 -2555955 -1802768 -2343134 -2680564 -2649057 -2869597 -2997843 -3248495 -3357783 -2564035 -1878642 -2245605 -2703743 -3391885 -2908446 -2486052 -2112748 -2371289 -2932239 -3237264 -3256612 -2739619 -1761510 -1637828 -3134676 -3502178 -2721486 -2402879 -3082357 -3005829 -2844872 -2095653 -1365448 -1637618 -2095123 -2597173 -3641659 -3458141 -2207298 -1662139 -0 -0 -3694797 -3845784 -2662682 -1378918 -2283565 -2640188 -2360376 -1726291 -2439154 -3425472 -3578075 -3596776 -3040829 -2160826 -2337983 -2550808 -2285206 -1878642 -1591229 -2254445 -2559062 -2976449 -2655533 -1726345 -2029790 -1919500 -2138584 -2907900 -3496693 -3395724 -3728917 -2868804 -2317509 -2883515 -3256427 -3113517 -2862853 -2429968 -2425828 -2528503 -2943523 -3030922 -3056254 -2923820 -2205751 -1541725 -2198541 -2942866 -2701812 -2350384 -3093639 -2995690 -3314394 -2974638 -2033234 -1918482 -2061193 -2488253 -3116261 -3381528 -2200182 -1792748 -0 -0 -2863027 -3104771 -2943412 -1868164 -1520889 -2554269 -2714423 -1704488 -2249720 -2316592 -2348404 -3196422 -2927702 -2423255 -3010396 -2343369 -1875125 -2291305 -2404603 -2304547 -3151151 -3189735 -2536889 -2299050 -1729655 -2106634 -2458676 -2216320 -2935203 -4006812 -3870694 -3169668 -2680806 -2977646 -3126980 -3037572 -3086970 -2340379 -1363840 -1735102 -2056706 -2949479 -3389336 -3375778 -2877320 -1775508 -1971838 -2994143 -2724178 -2315702 -2782859 -2889717 -2866971 -3287931 -2543746 -2236869 -2255075 -2310326 -3402336 -3500520 -2679346 -2167601 -0 -0 -2856327 -2385237 -1953772 -1485775 -1306762 -2181736 -2934611 -2787218 -2790793 -2811225 -2801252 -2913778 -2701620 -2594576 -3249530 -2873972 -2095942 -2225562 -2240970 -3036918 -3519931 -2715346 -2318474 -1994779 -1503500 -2134948 -3195107 -2760194 -3094475 -3268203 -2467289 -2714878 -3302171 -3213970 -3264681 -2862954 -2453286 -2304253 -1854116 -2469501 -2929737 -2800433 -3117247 -3642674 -3526554 -2382914 -1502858 -1994778 -2573035 -2596243 -2625756 -2021809 -2093291 -3079150 -3087379 -1864323 -1694626 -2835861 -3186060 -3034300 -2937921 -2094858 -0 -0 -3605087 -2084243 -1599279 -1505654 -1457559 -2017210 -2129891 -2378204 -3028950 -2798989 -2845724 -2847205 -2655146 -2303710 -2695900 -2858859 -2228674 -1659169 -1658948 -2092182 -2802565 -3053414 -2602396 -2489893 -2533988 -2936232 -2893990 -2233833 -2497947 -2865819 -2299841 -2717518 -3511308 -2710478 -2307338 -2692513 -2456923 -2353416 -2611711 -2520831 -2417407 -2347809 -2785846 -3514790 -4095712 -3093999 -2292927 -2398331 -2593204 -3030621 -2392759 -1659082 -1489758 -2493246 -3019938 -2410518 -1887381 -2197944 -2832234 -3404877 -3161646 -2675244 -0 -0 -3651225 -2610844 -1641659 -1130249 -1418871 -1790353 -2241666 -2391061 -2440621 -2315479 -3110907 -3690893 -2593813 -1928467 -2531679 -3465791 -3327743 -2851420 -1970272 -1609129 -2448111 -2914246 -2744918 -2270635 -2554469 -2589696 -2318938 -1717383 -1966125 -2046013 -1928497 -2669568 -3098378 -2243313 -1698745 -2855134 -2535459 -2535469 -2540756 -2712589 -3216626 -2399955 -1713517 -2125438 -3019772 -2973998 -2485644 -2425192 -2767059 -2503248 -2490457 -2220930 -1897441 -2202971 -2595221 -2234394 -1604137 -2015862 -2923743 -3143170 -2363137 -2310325 -0 -0 -3172149 -2665935 -2414860 -2034724 -2051092 -2071145 -1949195 -1820463 -2405209 -2372095 -2765845 -3141633 -3149970 -2501209 -2169218 -3094094 -3908260 -3541072 -2338474 -1571334 -1544495 -2681418 -3188940 -3089207 -3105888 -2727578 -2724056 -1492986 -1316638 -2368143 -2433581 -2500481 -2465749 -1457883 -1852658 -2731140 -2326387 -2488688 -2950783 -2839142 -2491918 -2324774 -1846983 -1306460 -1757814 -2223221 -2460400 -2999296 -3023951 -2791169 -2924879 -2801096 -2038470 -1856827 -2478677 -2886735 -2468522 -2044454 -2645618 -3243955 -2878427 -2772967 -0 -0 -2651238 -2974973 -3007075 -2896752 -2452889 -1649679 -2172154 -2550574 -1788176 -1958835 -2128095 -2205013 -2598642 -2258184 -2214219 -3167651 -3375472 -3214732 -2704156 -2205780 -1937710 -2320891 -2509482 -2905816 -2821701 -2882787 -3005538 -2333327 -1674288 -1870822 -1716119 -2435920 -2508131 -1732557 -2764983 -3539019 -2719979 -2479727 -2838142 -2689012 -2311640 -2651334 -2511380 -1528640 -1266819 -1524580 -2639646 -3503484 -3196664 -2532336 -2632724 -2457399 -2024193 -2166914 -2893822 -2684674 -2498068 -2685197 -2878950 -3028690 -2291024 -2025121 -0 -0 -2951694 -3111051 -3207337 -3660936 -3311375 -1795876 -1904517 -2749286 -2403294 -2903853 -3043333 -2103247 -2046867 -1844995 -2135221 -2793675 -2513889 -2177833 -2479561 -2860935 -2270118 -1983238 -2647513 -2935218 -3044223 -3144659 -3383610 -3071418 -2125526 -2519955 -2536072 -2549610 -2438202 -2240585 -2755053 -3000867 -2465573 -1804788 -2377334 -3036328 -2801091 -2775839 -2944807 -2528214 -1201667 -1497572 -2898456 -3182996 -2862212 -2760292 -2541532 -2418018 -1352105 -2114664 -3450092 -3324598 -3235140 -2761344 -2418099 -2088455 -1989834 -2619125 -0 -0 -2667131 -2887480 -2536959 -3108997 -3373389 -2286564 -1984358 -2560710 -2594140 -2554849 -3033391 -2594966 -1983783 -1821637 -2491673 -3531196 -2793548 -1507696 -1986664 -3234068 -3198414 -2766696 -2978872 -2859074 -2359878 -2750408 -3072565 -2901035 -2688689 -2633407 -2347704 -2887384 -3137390 -2978896 -3197045 -2979443 -2461587 -2393403 -2494064 -3058143 -3546599 -3030132 -2871009 -3138610 -2285766 -2000399 -2948367 -3014682 -2617775 -2458193 -2308984 -2724171 -2210790 -2780257 -3859743 -3912786 -3181051 -3011791 -2667565 -1902522 -1230739 -1730101 -0 -0 -3353389 -3149541 -2140268 -2779973 -3496039 -3227508 -2812675 -2943061 -3018532 -3486567 -3591721 -2387481 -2257327 -2746069 -2819829 -3676534 -3219342 -1877164 -2993227 -3732720 -3203006 -2870507 -3187511 -3115144 -2063449 -2442263 -2902987 -2739238 -3107910 -3664346 -3575282 -3638681 -3210193 -2676100 -3219027 -2737139 -2247949 -2442373 -2730838 -2530734 -3061338 -3220811 -3224987 -3534821 -2825451 -1991992 -2876629 -2824506 -2457828 -2344667 -2910748 -3520196 -2766628 -2354818 -3605505 -4140000 -3083865 -2328756 -2112522 -1567162 -1113897 -1854241 -0 -0 -2426015 -2696169 -2092169 -2119802 -2809443 -3373016 -3886912 -3196254 -3207989 -3506815 -2940737 -1901730 -2052145 -2945203 -3301476 -3457718 -2834416 -2794987 -3173292 -3339935 -2768635 -2997682 -3601616 -3215762 -1977910 -2161802 -2491405 -2776986 -2947685 -3600074 -3609362 -3861024 -3732388 -3224172 -3200448 -2739667 -2021647 -1856384 -3214711 -3512469 -2736494 -2890085 -3525485 -3678471 -3338383 -2529314 -2934421 -3174177 -2751799 -2558652 -2815841 -3505381 -2829133 -2443877 -2685258 -2808087 -2585330 -2334472 -2538311 -2633608 -2528389 -2608105 -0 -0 -1900483 -2552272 -2383449 -1911621 -2173084 -2993300 -3771446 -3618097 -3731920 -3626294 -3101549 -2056159 -1375453 -2249802 -2811590 -2500791 -2535977 -2917072 -3604234 -3355165 -2994198 -2989454 -3045247 -2902753 -2504153 -1572229 -2262557 -3004830 -3117298 -3569554 -3541723 -3902677 -3241802 -2809606 -2919555 -2398764 -2313133 -2820381 -3316897 -3110355 -2693422 -2705371 -3207480 -3912831 -3226326 -3014061 -2732447 -2300018 -2571079 -2200157 -2742905 -3548401 -2775040 -1866925 -1398099 -1932251 -1847063 -1834842 -2109541 -2388723 -2277744 -2798853 -0 -0 -1787846 -2052655 -2700324 -2187718 -2409412 -2653120 -2692191 -2618313 -3257967 -3496253 -3579993 -2943269 -1862671 -1660174 -1428362 -1945271 -2620585 -2963725 -3218588 -3633733 -3184074 -2553920 -2701137 -2863015 -2527750 -1723087 -1943229 -2757528 -3233200 -3052003 -3382423 -3460148 -2750496 -2565837 -2744562 -2497847 -2239435 -2505510 -2773918 -3067089 -3072322 -2712287 -3011504 -3385672 -2987508 -2620944 -2057438 -2025609 -2811028 -3027449 -2936279 -3333493 -2880434 -2116132 -1661591 -1622182 -2275075 -2463417 -2842391 -3396358 -3096524 -2733203 -0 -0 -2458742 -2807089 -2971182 -2578187 -3045339 -2536920 -1772456 -1924424 -2668395 -3003112 -3346873 -3173094 -2524064 -1596206 -1366808 -1614830 -2348641 -2391604 -2985347 -3724573 -3462031 -2569275 -2458919 -2327349 -2591817 -2099974 -1775724 -2807469 -3614215 -3171812 -3126162 -2854488 -2933972 -2575004 -2695832 -3392111 -3059675 -2711397 -2740233 -2204775 -2446814 -2680502 -2592357 -2840961 -2392849 -2071355 -1913643 -1943632 -2464861 -2477458 -2588596 -3267826 -2778283 -2507806 -2301316 -2176513 -2741220 -2806093 -2857782 -3737027 -3118391 -1953201 -0 -0 -3068236 -3536781 -3046723 -2505499 -2956077 -2663642 -2115024 -2162762 -1700244 -2280533 -3009294 -3415720 -2711230 -2274364 -1994706 -1912964 -3105690 -2960379 -2466719 -3168044 -2921019 -2302215 -2227048 -2145535 -2605116 -2704828 -2638230 -2758999 -3148438 -3385905 -3177152 -2897275 -2504564 -1997921 -2331878 -3478184 -3162822 -3141440 -2565636 -2399380 -2427416 -2406230 -3057939 -3037416 -2103814 -1370790 -1641251 -2412880 -3394703 -3020310 -2453246 -2402357 -1981368 -2159887 -2786736 -3196013 -3420610 -3643821 -3005727 -3648107 -3586097 -2331188 -0 -0 -2192312 -2909384 -3110479 -2936988 -2745609 -1771495 -1333852 -1823907 -1881057 -1654052 -2814934 -3088168 -2346323 -2516786 -2722683 -2775423 -2999221 -2436988 -1723926 -1808383 -2471985 -3085372 -3139787 -3139917 -3084769 -2888665 -2698613 -2929312 -2930493 -2975982 -2745332 -2978778 -2920144 -2863763 -2863603 -2853490 -2939828 -2645023 -2382305 -2143223 -2297686 -2661827 -2608737 -2983694 -2187027 -2020083 -2355964 -2357182 -2553981 -1896705 -1712115 -2243698 -2453185 -2134267 -2702777 -3351924 -3402005 -3656657 -3333147 -3563793 -3351881 -2120968 -0 -0 -1822785 -2103239 -2972507 -3042986 -2971967 -2469827 -1485617 -1567366 -1585813 -1544913 -2613455 -3049205 -2106303 -2148418 -2996920 -3284821 -2828362 -2875972 -1935958 -933119 -1603873 -1924027 -2607749 -3468608 -3636007 -3486576 -3218591 -3014531 -3395973 -3015904 -2416326 -2723042 -2633259 -2446005 -2843956 -2748177 -1898775 -1551636 -1870853 -2281264 -2783143 -2529864 -2890751 -2672569 -2159173 -2344106 -2672334 -2682323 -2783073 -2327822 -2221427 -2837326 -2976454 -2248174 -2747575 -3547969 -3302317 -3303686 -3178652 -2515696 -2619182 -2066619 -0 -0 -1772523 -1575327 -2381481 -3172085 -3636790 -3080817 -1794982 -882588 -1799190 -2391830 -2953203 -2986799 -2084367 -2438288 -2890545 -2853628 -2894705 -2756327 -1566300 -566137 -909372 -1573204 -2177724 -2749088 -3404715 -3467417 -2535326 -2489802 -3159567 -3397679 -2645676 -2056397 -2281093 -2739853 -3223039 -2944469 -2025923 -996580 -950446 -1769184 -2139271 -2241015 -1958575 -2064107 -2336132 -2672642 -3033491 -2012311 -2026244 -2326098 -2848076 -3412982 -2952752 -2546412 -2413805 -2903661 -3004921 -3131380 -3074943 -2511951 -2404900 -2871136 -0 -0 -2597660 -2203686 -2150722 -2354933 -3090784 -3742094 -2432046 -1741643 -2548220 -2862399 -3232145 -2871109 -2208509 -2790366 -3096437 -3147032 -3042041 -3326174 -2701200 -1260214 -892010 -1009229 -1173999 -2441952 -3054416 -3209462 -3246855 -2382816 -2324422 -3276936 -3338608 -1952324 -1572960 -2227401 -2172474 -2079229 -1804430 -1535172 -1813775 -3000354 -3238260 -2758204 -2242739 -1782683 -1916207 -2372256 -2314364 -2294261 -2665188 -2719690 -3555431 -2998429 -2557094 -2757763 -2246070 -2882367 -3040658 -2239049 -2762200 -2829984 -1998103 -2512455 -0 -0 -3260752 -2758894 -1867678 -2232683 -2972191 -2663670 -2255036 -2122180 -2436070 -3213241 -3926058 -3257467 -3088831 -3659699 -3854339 -3462996 -2920760 -2929091 -2225684 -1175324 -1292625 -2032611 -2356464 -2384143 -2051198 -2379122 -2764618 -1818175 -1202265 -2609106 -3325556 -1974933 -2052906 -2572891 -2252173 -2083724 -2302942 -2358527 -2128250 -2492441 -3295253 -3273991 -2244501 -1695963 -1715339 -2096245 -1819177 -2300409 -2362284 -2569499 -2985653 -2318687 -2175516 -2635984 -2078015 -2443024 -2836461 -2367471 -2466308 -3322229 -3003302 -2770849 -0 -0 -3001428 -2582229 -1988207 -2300697 -2355619 -2398646 -1798343 -1898398 -2303098 -2669723 -3052763 -3102264 -2822104 -2499043 -3205842 -3878666 -3436923 -2858318 -2105785 -1729483 -1592038 -2256427 -2588053 -2587164 -2297693 -2826436 -3387623 -2527506 -1384135 -2395251 -2662476 -1896896 -2511060 -3168159 -2545907 -1812194 -2482607 -3038498 -2665295 -2431437 -3152518 -3638811 -3372249 -2447442 -2013525 -2148392 -1332005 -2195684 -2657899 -2248863 -2726569 -2093460 -2465153 -3246078 -2587592 -2084833 -2720470 -2420713 -2194314 -3087386 -3238645 -2111193 -0 -0 -2421197 -2556654 -1947185 -1974012 -2557361 -2317134 -1636000 -1976213 -2041005 -2407393 -2925741 -3306965 -2693555 -2007587 -2540467 -2901644 -2980865 -2260637 -1555877 -942233 -1312017 -2792494 -3512244 -3033466 -2658588 -2684357 -2639363 -2075632 -1843317 -2349234 -2467910 -2425875 -2684887 -2664551 -2748254 -2914639 -3370368 -3613642 -2643017 -1735094 -2216300 -2647896 -2968814 -2999583 -2859562 -2968827 -2432229 -2615726 -2993421 -2610207 -1834531 -1697427 -2129247 -2767358 -2870987 -2270204 -2368030 -3322189 -3169900 -2937316 -2464395 -2303601 -0 -0 -2044557 -2063614 -1956137 -2275270 -1873364 -1786894 -1996497 -2732540 -2955756 -3022942 -2815636 -2828718 -2280894 -1949254 -1967628 -2764431 -3060070 -2668674 -2497823 -2165268 -2431845 -2733702 -2893281 -3177280 -3266565 -2636284 -2280840 -2865320 -2894262 -2876760 -2682983 -2834587 -2971586 -2429623 -2511693 -2676403 -2912274 -3525822 -2835230 -2108098 -1934724 -2758259 -3718025 -3855858 -2976677 -3369203 -3482975 -2932662 -2983447 -2294959 -1750612 -2112726 -2636329 -2683997 -2639341 -2519951 -2766775 -3760672 -4000350 -3261510 -2068678 -1738051 -0 -0 -3079881 -2878119 -2046304 -1677287 -1485679 -1798585 -2051167 -2576318 -2643418 -2847631 -3383853 -3144980 -3152846 -2897325 -2217348 -2521310 -2783399 -2792002 -3002976 -3238985 -3106333 -3624422 -3860762 -3195436 -3445598 -2721231 -1535200 -2021008 -2884229 -2714010 -2372935 -2559643 -2882294 -2327227 -2897328 -3130948 -2981793 -3772872 -3329888 -2657899 -2787471 -2877092 -3096615 -3253427 -3133197 -2900535 -3562773 -3217089 -2500643 -2144543 -1593412 -1673661 -2109195 -1938445 -2134424 -2678337 -2828641 -3603725 -4029839 -3552366 -2703633 -2247001 -0 -0 -2786236 -2230430 -2081739 -2092673 -1596583 -1782814 -2255689 -2638385 -2857356 -3090566 -2911688 -2896359 -3598758 -3203790 -2527382 -2832441 -3650698 -3690713 -3617368 -3908327 -3629996 -3321669 -3172398 -2588086 -3041220 -2877071 -2061904 -2306239 -2459638 -2900075 -2668294 -2459432 -2919587 -2146572 -2496364 -2940393 -2727565 -3739400 -3414553 -2730696 -2643192 -3090680 -3525252 -3453323 -2314936 -1963255 -2898579 -3033742 -2765952 -1908837 -1697781 -2520453 -2953990 -2121897 -1554424 -2267791 -2494793 -2620103 -2824487 -3231501 -3784469 -2803155 -0 -0 -2270305 -1983531 -2135058 -1581637 -1319860 -2169002 -2380926 -2703540 -2554084 -2511942 -3236556 -2962403 -2679302 -3038211 -2728098 -2932156 -3545675 -3705807 -3372964 -3743468 -3850368 -3824607 -3270516 -2012587 -2847907 -3327746 -2790197 -2380152 -2223783 -2502234 -2343441 -2987853 -3009733 -2002292 -2794959 -3097788 -3256391 -3863743 -3189077 -3022792 -3114903 -2571503 -2879532 -2848541 -2231839 -2298293 -1976723 -2825808 -3176218 -1969554 -2373967 -2774911 -1871417 -1549583 -1714704 -2042420 -1682962 -1824416 -2460549 -2786788 -3567971 -3556513 -0 -0 -1735950 -1558456 -1743795 -1797588 -2156949 -2176017 -2282493 -3307360 -3413748 -3217620 -2859813 -2549078 -2673446 -3024199 -3091517 -2523011 -2422746 -2638622 -3198784 -3450830 -3601925 -3219630 -2929657 -2097204 -2101950 -3197935 -3463102 -2885006 -2378997 -2468883 -2719658 -2702808 -2700441 -2204490 -2231165 -3161581 -3301171 -2792475 -2453063 -2908146 -2598295 -2464146 -2958366 -2625980 -2062579 -2141695 -2219870 -2426220 -2799970 -2523618 -2569997 -2792427 -2664127 -1843424 -2153473 -2329766 -1796363 -1792332 -2992466 -3062673 -2698698 -2541538 -0 -0 -1757526 -1610040 -1713111 -1557521 -2192480 -2859346 -2514703 -2852624 -3158765 -2658246 -2747874 -2743737 -2157593 -2835324 -2900611 -2298878 -2253283 -1793610 -2267117 -3171961 -3245658 -2744031 -3022739 -2521564 -1661293 -2289249 -3251713 -3122271 -2571194 -3086837 -2332926 -1939339 -2963970 -2700760 -2716729 -3323494 -3502334 -2842270 -2548850 -2779084 -2846245 -2947532 -2463272 -2255793 -1718750 -2765992 -3159215 -2219494 -2221248 -2688366 -2833870 -3001834 -2067521 -1813972 -2523053 -3256675 -2065025 -1834191 -3395168 -3147755 -2204484 -2862320 -0 -0 -2810943 -2322083 -2254135 -1745176 -2309967 -3254080 -2860571 -3267085 -3271653 -2735133 -2251625 -1695755 -2122233 -2704772 -2663618 -2500089 -2004629 -1757567 -2390134 -2955830 -2704452 -2644834 -3117386 -3200443 -2085902 -2035743 -3365988 -3498782 -2580642 -2240722 -2071448 -1838947 -2561705 -3086568 -2825071 -3127605 -3222734 -2788276 -2856791 -2971467 -2792935 -2643628 -2545561 -2342967 -2033129 -2508447 -2986730 -2412023 -1804164 -2531620 -3394616 -3111064 -2891912 -2473769 -2950716 -3623492 -3322925 -2732299 -3200611 -3267372 -2163600 -2380186 -0 -0 -3105902 -2987572 -2901488 -2125902 -1810485 -2539235 -3018345 -3487089 -2748430 -2438835 -2772177 -2295683 -1717293 -2131202 -2632088 -2304310 -2431567 -2572096 -3153275 -3351940 -3005377 -3498079 -3552265 -3544135 -2655163 -2404273 -3194473 -3725186 -3090251 -2155936 -1691862 -1811197 -2696659 -3675411 -3311222 -2854497 -2879433 -3638527 -3845145 -2971494 -2290897 -2921385 -2701350 -2535100 -2906588 -3005254 -3273490 -2408413 -1596480 -2778049 -3712738 -3008353 -2574026 -3138851 -3172545 -3228366 -3653779 -2920280 -3383903 -3242356 -2123749 -2667719 -0 -0 -3033285 -3349579 -3468583 -2694701 -1980245 -1994470 -2774404 -3582282 -3283611 -2436383 -2738071 -1877999 -1480371 -2204078 -2626882 -2090683 -2521084 -3473395 -3215295 -3074765 -3381178 -3663320 -4576689 -4225839 -3530975 -3274797 -3282214 -3308383 -3292206 -2000989 -2047180 -2265217 -2676982 -3662873 -3574368 -2830118 -2754620 -2820214 -3502126 -3511257 -3073021 -3309486 -2679619 -2900215 -3399121 -3410641 -2190816 -1984673 -2380219 -2995355 -3255433 -2425218 -2746302 -3411817 -2493481 -2474779 -2925346 -3061104 -3787552 -3145008 -2038324 -1526230 -0 -0 -2801298 -2886893 -3074587 -2818187 -1942885 -2823886 -2687647 -2815514 -3037365 -2745180 -3330604 -3022125 -1969632 -2273249 -2569758 -1604038 -2009279 -2706335 -2847649 -3712446 -3553267 -3132671 -3628250 -3815899 -2754661 -2988889 -3217986 -3167105 -2808857 -2273527 -2653599 -2949750 -2131245 -2547693 -3200354 -2998314 -2429490 -1878357 -2990136 -3748043 -2884004 -2673011 -3058645 -3083985 -3115378 -2875933 -2131177 -1961687 -2937905 -3512059 -2546256 -1320310 -1723130 -2328145 -1794730 -1479590 -1566271 -2380670 -3464146 -2871420 -1463476 -1782519 -0 -0 -3136741 -2547646 -3094320 -2913214 -2060304 -2495636 -2795962 -3232826 -3408538 -2616044 -2707328 -3119936 -2083710 -2604828 -3389725 -2826469 -2597230 -2664116 -2777482 -2744762 -2897241 -2524239 -3017773 -3386586 -3058085 -2902442 -2473904 -2162351 -1884500 -1661235 -2098346 -2453418 -2193017 -2460566 -2757332 -2835305 -3037981 -2278937 -2446962 -2986289 -2287160 -2181738 -2817492 -3075911 -2537692 -2752674 -2818362 -2436473 -2910116 -3489780 -3094760 -2023810 -1600878 -1675914 -1716512 -1368342 -1411595 -2026881 -2962035 -2290757 -1227159 -1619893 -0 -0 -3261987 -2879108 -2749900 -2820805 -1939059 -2311144 -3317032 -3272181 -3293313 -2491127 -2672479 -3413520 -2597553 -2826394 -3696383 -3327152 -2827342 -2541062 -1882170 -2434373 -3257095 -2984494 -2774534 -2847967 -2641051 -2228226 -1679191 -1628071 -1779905 -1971984 -1794526 -1990938 -1777660 -2190549 -2654336 -3107678 -2775324 -1868031 -1977883 -2417484 -2093378 -2261277 -2960060 -2883837 -2142167 -2763136 -3701280 -3326925 -2969515 -3582096 -3184381 -2278793 -2000221 -1897719 -2240177 -2700046 -2534251 -2684868 -2586874 -2166467 -1824188 -1997592 -0 -0 -3820675 -2896736 -2473253 -2949970 -2262769 -2067912 -2967096 -3383750 -2891320 -2328501 -2638634 -2892467 -2755477 -2733827 -3323390 -3432433 -3450450 -2329335 -1436593 -2195224 -2763152 -2384830 -2306558 -2656511 -3073404 -2392398 -1772403 -1608778 -1647000 -1979535 -2139602 -2039134 -2258471 -2605436 -2830544 -3051632 -3047906 -2405845 -2118546 -1998052 -1641863 -2291273 -3275327 -3013806 -2597421 -3213812 -3911470 -3474968 -2664733 -2687183 -2855015 -3363046 -3116847 -2452319 -2966508 -3650865 -3233209 -2802864 -2720604 -2060857 -1784896 -2052489 -0 -0 -3347330 -3134840 -1603887 -2265915 -2623516 -2494834 -3400932 -3440557 -2449402 -1999173 -2374144 -2553534 -2860926 -3204330 -2940424 -2684336 -3420668 -2661914 -1334015 -1692505 -2948994 -2901357 -2261717 -2566117 -2082204 -1862382 -2122650 -2136865 -2013948 -2195004 -2610472 -3143824 -2690231 -2202910 -2220953 -2842694 -3090073 -1927526 -1958706 -2323601 -1671041 -2048945 -3010229 -2829630 -2673928 -2823939 -3279792 -3560984 -3193886 -3087583 -2982029 -2993999 -3150172 -2879845 -2818239 -3410211 -2758803 -2688572 -2254183 -2184995 -2791922 -2955218 -0 -0 -2853905 -2754851 -1678373 -1555460 -1952596 -1944996 -2549186 -3121795 -3090954 -2538938 -2146759 -2455380 -2598376 -3106331 -3046253 -2479646 -3444184 -3040557 -1708957 -1666295 -3179348 -3508491 -2654129 -2016252 -2556697 -2603307 -2121953 -2310560 -2707315 -2452472 -2477805 -2748971 -3024029 -3073486 -2220290 -2472245 -2692094 -2194842 -2866614 -3175704 -2336358 -1870936 -1997456 -2381391 -2637697 -2457409 -2603931 -3325943 -3530396 -3409631 -3132626 -2913802 -2734791 -2596439 -2847909 -2826089 -2384964 -2308366 -2157128 -2785439 -2273475 -2761090 -0 -0 -1613797 -2816382 -2244270 -1660237 -2248359 -1847945 -2007210 -3485169 -3423014 -2339672 -2329830 -2664190 -2116182 -2297653 -2869977 -3104933 -3197784 -3225785 -2570014 -1712978 -2577080 -3326691 -2736481 -3140870 -3104647 -2624142 -2264757 -2090524 -2278444 -2491658 -1985536 -2107681 -3086861 -2762194 -2179033 -2549711 -2809158 -2575543 -3145365 -3311417 -2874516 -2133546 -1792669 -1852971 -2198468 -2490163 -2004808 -2813933 -3996042 -4279403 -3964181 -2608036 -2245619 -2402802 -2419012 -2722473 -2571577 -1859226 -2235078 -3200600 -3173426 -2821691 -0 -0 -1520202 -2654180 -3083190 -2455480 -2065158 -2002382 -2180353 -2168059 -2044215 -1940473 -2622786 -3388075 -3083154 -2775577 -3338309 -3666463 -3079825 -3240828 -2976235 -1894480 -2697900 -2891474 -2269165 -2348138 -2971076 -3030714 -2426288 -1555022 -1263224 -2174074 -2634038 -2587604 -2557690 -2240144 -2586707 -3037350 -3093854 -2889376 -2692023 -2564155 -3606827 -3136801 -2306481 -2570632 -2532962 -2170545 -1924214 -2373114 -3453794 -3477063 -3337124 -2649208 -2429744 -2092037 -1801420 -2769416 -2589913 -1901489 -2712383 -3361489 -2738778 -2252369 -0 -0 -1766511 -2934468 -3442808 -2639328 -1768214 -2383851 -2562242 -2434436 -2083817 -1133216 -2115285 -3498514 -3177948 -2333864 -2696434 -3550890 -3695349 -3593088 -3376051 -2212295 -1401262 -1651638 -1449629 -1885451 -2750834 -2627826 -1694862 -2040302 -2081633 -2212268 -2315900 -2641894 -2871699 -2767718 -3187307 -3581505 -3200485 -3101039 -3054603 -2538835 -2995887 -3524691 -2916387 -3034506 -2659219 -2155631 -2119627 -2544621 -2470428 -2765637 -3248873 -2041346 -2065772 -2828678 -2538445 -3038276 -3031646 -2366799 -2820881 -3199251 -3351316 -2969885 -0 -0 -2539717 -2278549 -2429022 -2266617 -1781347 -2004608 -2844392 -2745941 -2173943 -1370468 -2355005 -4019202 -4127865 -3432637 -3197201 -3364908 -3458421 -3774349 -3381847 -2065266 -1535357 -1528159 -1194997 -1247155 -2192534 -2306016 -1762484 -2055154 -2133204 -2576080 -2626072 -2676728 -2487362 -2515809 -3068891 -3869438 -3625041 -3121851 -3067521 -2747451 -3607619 -3691966 -3600614 -4281633 -3243357 -1786400 -1920503 -2514902 -2320043 -2470121 -2845418 -2183130 -1978881 -2712645 -2858476 -2413944 -2478877 -2945211 -2770283 -2450312 -2789392 -3038005 -0 -0 -2293835 -2509739 -1905381 -1756825 -1872599 -1885877 -2556828 -3048761 -3425532 -2140634 -2288177 -3475490 -3359633 -2421425 -2275443 -2919961 -3192652 -3372638 -2858973 -2220941 -1821875 -1539818 -1481423 -1926616 -2675160 -2960925 -2922426 -2792124 -2619343 -2956459 -3020563 -2736109 -2505125 -2222140 -2486440 -3364562 -3494040 -2546392 -2721643 -3443717 -3616969 -3060855 -3216716 -3795429 -3752705 -2755444 -2157186 -2531400 -2671155 -2734249 -3341100 -2470576 -1632987 -3162802 -4050092 -3577971 -3515393 -3504976 -2669481 -2222611 -3009656 -3707652 -0 -0 -2736040 -3267142 -2519646 -2541924 -2521604 -2163252 -2300228 -2521985 -3146179 -2494072 -2372988 -2822306 -3249577 -2876611 -2684761 -2700701 -2292603 -2126920 -2303522 -2197746 -2245214 -1821456 -2058835 -2435771 -2990330 -3054216 -3214606 -3182506 -2438350 -2662772 -2690325 -2731810 -2391948 -1277988 -1294568 -2612468 -3020530 -2443209 -2409792 -2902026 -2922244 -2658055 -2766115 -3076116 -3476744 -3562512 -2871400 -2695623 -3184873 -3203179 -3351760 -2335513 -1581404 -2215368 -3116204 -3325012 -3038380 -2949829 -2532867 -1667387 -2365898 -2985746 -0 -0 -2256801 -3214315 -3454031 -3020513 -2540624 -2720804 -2476529 -2249401 -2931467 -2317327 -2147699 -2655129 -2606633 -2439266 -2161294 -2401707 -2452136 -2736234 -2333004 -2603428 -3302673 -2462537 -2102217 -2817914 -2814789 -2649546 -3224077 -3080498 -3045300 -2842277 -2568155 -3002020 -2855627 -2287418 -1664930 -2373462 -3202767 -2170133 -1647695 -2979514 -2879852 -2083431 -2056458 -2118598 -2996871 -3826596 -3364989 -3263642 -4012172 -3872174 -3168692 -2630920 -2166853 -2343566 -2846783 -3433544 -3339406 -3083242 -2643252 -2261703 -2300668 -2135846 -0 -0 -1600798 -3218372 -4103798 -3482549 -2977641 -2869692 -2149312 -2575569 -2844875 -2638822 -2945718 -2689894 -3065225 -3030126 -2996258 -3064640 -2902115 -3229428 -2595778 -2388258 -2866040 -2319329 -1884204 -2122373 -2448627 -2384691 -2447320 -2337606 -2885370 -3010666 -2791971 -1692748 -2304670 -2900537 -2508813 -3211792 -3472533 -2220544 -1461445 -1836648 -2060177 -2387212 -2200695 -2321874 -3263719 -3825646 -3251185 -3483245 -4145552 -3719346 -3529024 -2929174 -1810553 -1529288 -1792724 -2321395 -2081019 -1785199 -1898322 -1891903 -1892245 -1646561 -0 -0 -2074432 -3146573 -3375188 -2646045 -2142370 -1983322 -2512478 -3345094 -3317654 -2455021 -2597582 -3209804 -2749643 -2685433 -2759348 -3318446 -3684967 -3746612 -3051272 -2483237 -2703101 -3246405 -2837971 -2441653 -1978349 -2085858 -2394036 -2807689 -2889273 -3334980 -2769991 -2209176 -2781414 -2713902 -2787608 -3665312 -3347060 -2096760 -1481102 -1672849 -2511845 -2528282 -2171988 -2350254 -2668696 -3729035 -3880192 -3600522 -3704607 -3797154 -3565930 -2479853 -2259082 -2471124 -2171574 -1697501 -1513127 -1970387 -1696033 -1577873 -2300333 -2008359 -0 -0 -2233756 -3368253 -3154017 -2713420 -2720116 -1954070 -1990387 -2808028 -2664887 -2280573 -3247206 -3409300 -3254268 -3219084 -2951533 -3294728 -3692830 -3056850 -2518269 -2321317 -2288197 -2405841 -2815703 -2552280 -2266388 -2720244 -2859157 -3049542 -2750287 -2376962 -1936839 -1974715 -2654522 -2653810 -2826656 -2989353 -2500292 -1738648 -1189285 -1720518 -2985004 -2941673 -2282741 -2097244 -2125032 -3274588 -3676591 -2950949 -2950457 -3000016 -3063084 -2495230 -2070360 -2198145 -1874161 -1790763 -1084310 -1518427 -1851059 -1914166 -2103818 -2255974 -0 -0 -2706148 -2502547 -2368654 -2658992 -2551040 -2246808 -1948682 -2203426 -2565027 -2420386 -2614570 -2944823 -3255136 -3169378 -2710399 -2796968 -3186254 -2772296 -2156333 -2054905 -2410195 -2229369 -3149284 -3385692 -2577730 -2652612 -2751011 -2540872 -2875031 -3001960 -2564494 -1923181 -2668803 -3162397 -2858383 -2820957 -2795344 -2081990 -2047746 -3103878 -3821563 -3093571 -2251953 -2056349 -1972283 -2759513 -2646160 -1881359 -2204685 -2693934 -2420184 -1723893 -1805055 -2324691 -2865085 -2351362 -1006614 -1884700 -3060279 -2444272 -2050847 -2410606 -0 -0 -3173437 -2530768 -2971351 -3170581 -2949090 -2792171 -2704420 -2595959 -2459170 -2064785 -2242768 -3107630 -3402272 -3190824 -2758589 -2384067 -2532964 -2324250 -2019640 -2602338 -2396302 -1872366 -2823716 -3251525 -2616202 -3221591 -2971580 -1713241 -1628049 -2139618 -2135277 -1589584 -2027136 -2960082 -2774713 -2447725 -2081985 -1902869 -2386701 -3580235 -3982752 -3301224 -3243984 -2478567 -2005760 -2488753 -2588807 -1789973 -1866910 -1954948 -1888120 -2060097 -1558136 -1688088 -2470458 -2953987 -2291572 -2592478 -3622628 -3173735 -2239191 -2704809 -0 -0 -3661193 -3275822 -2948026 -3292212 -2082461 -1830786 -3041970 -3319346 -2878238 -2538311 -2955444 -2872380 -2758734 -2472909 -2757969 -2869685 -2050566 -2007584 -2399490 -2565853 -2390901 -1927857 -1998407 -2545920 -2751908 -3204828 -2660991 -1874361 -2142187 -2698152 -3263544 -2745678 -2448984 -2606553 -2293095 -2348068 -2627171 -2435792 -2784641 -3198182 -3402397 -2818563 -2438934 -2441526 -2830728 -2968332 -2647191 -1885416 -1444060 -2135222 -2119552 -1603911 -1604378 -2061639 -2628230 -2988707 -2640043 -2826695 -3806337 -2936864 -2708712 -3127402 -0 -0 -4102035 -3842553 -3349398 -3472461 -2650443 -2099809 -3121762 -3621927 -3297275 -2367244 -2510418 -3021654 -2709898 -2376709 -2891225 -2279969 -1971641 -2115043 -1835622 -2150206 -2272994 -2084902 -2090692 -2340232 -2708339 -2789742 -2719036 -2635530 -2311064 -2595950 -2469391 -2288458 -1909565 -2200788 -2071248 -2245135 -2123947 -1870598 -2187374 -1904129 -2255295 -2128361 -2231577 -2454731 -2652670 -2801449 -3148460 -3030422 -2263584 -1971265 -2449842 -2438762 -2046296 -2121716 -2057006 -2312830 -2751895 -3209588 -3874850 -3660529 -3565932 -3920954 -0 -0 -2925155 -2678883 -2453278 -2604376 -2222109 -2140824 -2430302 -3115537 -3453791 -2482786 -2465945 -2675856 -2138717 -2077611 -2562198 -2284810 -2064145 -2175831 -2048854 -1787135 -1757762 -2291327 -1931139 -2320678 -2657077 -2355461 -2505104 -2810300 -2980777 -2926436 -2816316 -2311933 -1900580 -2095296 -2571911 -2826351 -2760728 -2304084 -2149557 -2044170 -1767818 -1782289 -2024773 -2356146 -2843066 -3130593 -2898579 -2809748 -2978184 -2747233 -2649518 -2674263 -2138145 -1994458 -2312905 -2301545 -1941565 -1948254 -2821150 -2903409 -2700075 -3004000 -0 -0 -2386860 -2170181 -1555485 -2064027 -2650648 -2161686 -1981187 -2306149 -2860115 -2320926 -2311367 -2720722 -2931345 -2439191 -1627511 -1774248 -2577543 -2501320 -1907810 -1799444 -2035191 -2515462 -2982316 -3028091 -2998300 -2479444 -2488180 -3498531 -3294254 -3244956 -2736778 -1234815 -998717 -1473390 -2053975 -2776848 -2606332 -2209716 -3008046 -3114189 -1887922 -1430236 -1847583 -2308260 -2080968 -2592869 -3373823 -3308588 -3180384 -2118095 -2632372 -3770299 -2840120 -1948736 -1588064 -1734148 -2062691 -2308371 -2279247 -2466650 -2787543 -3009925 -0 -0 -1649437 -1051300 -1383818 -2201217 -2411003 -2450662 -2008869 -2088278 -2815727 -2534861 -2056593 -2432013 -2832261 -2415938 -1863104 -1483529 -2058273 -2193671 -2152595 -2825826 -2405820 -2694674 -3549750 -2591118 -2727149 -3356935 -2961572 -3311601 -3139332 -2731869 -3036478 -2082262 -1392733 -2169724 -2540798 -2524607 -2635791 -2837305 -2704094 -2733414 -2681664 -2266170 -1780166 -1863695 -2173025 -2841571 -3208114 -2599489 -2488535 -2040160 -1914390 -2945698 -3497930 -2698497 -1160207 -1600000 -2806517 -2601631 -1717210 -2353901 -2612507 -2260052 -0 -0 -2583875 -2344714 -2158425 -2296866 -2583433 -2154252 -1870835 -1677784 -2043033 -1935992 -1936079 -3334904 -3220066 -2734688 -2339309 -1883400 -2382590 -2695615 -2744514 -2769281 -2254147 -2469385 -3062912 -2277871 -2388560 -3332557 -3433904 -3741134 -3558402 -2983498 -3194927 -2700001 -2183198 -2674438 -2274752 -2239887 -2372632 -2171048 -2454554 -2487708 -2072483 -2616295 -2273370 -1458945 -2085380 -2540045 -2991396 -2988868 -2372044 -1364229 -1503769 -2331361 -3572178 -3504569 -2126137 -1616072 -2184552 -2653137 -2668050 -2790420 -2926023 -2536016 -0 -0 -2534440 -2915441 -3016245 -3267420 -3181784 -2576214 -2207573 -1668999 -1538185 -1760506 -1734792 -2234890 -2579087 -1863605 -2186970 -2572134 -2640326 -2474242 -3193747 -3674840 -2842463 -2096890 -2493651 -2258657 -2413084 -3557329 -3450235 -3039958 -2642301 -2508279 -2785140 -3391803 -3262175 -2743545 -2203792 -2410972 -2742177 -2540028 -2098592 -2229612 -2385267 -3218234 -3189303 -2148916 -2214302 -2678056 -2416043 -2369783 -2740683 -2403786 -1413698 -1750293 -3051864 -3555518 -2749397 -2059011 -1605854 -2349976 -2991251 -3120493 -3555158 -2781602 -0 -0 -2316324 -3337174 -3279999 -2404768 -2474367 -2361206 -2058843 -1905470 -1720768 -1238647 -1294375 -2422012 -2641704 -2355979 -2320636 -3282306 -3287575 -2915904 -3525392 -3571094 -2872574 -1814444 -2241851 -1999226 -2701610 -3667978 -3469674 -2830544 -2491302 -2220098 -2878382 -3759068 -3190312 -2302254 -2325064 -2276506 -2665012 -2621561 -2437535 -2902616 -2553360 -2488159 -2582540 -1954320 -1998230 -1708302 -1659741 -2228784 -2676713 -2597950 -1683383 -1258398 -2197200 -3081299 -3730216 -2927742 -1375531 -2072178 -2960455 -3682755 -3718834 -2943299 -0 -0 -2758391 -3036809 -3320506 -2905947 -3081629 -3699770 -3268312 -2286407 -1778765 -1828176 -2309436 -2420448 -3248142 -3069301 -2807064 -3443278 -3112175 -3177155 -3690328 -3674559 -3156512 -2294186 -1675460 -2220217 -3179152 -3204050 -2669475 -2573313 -1898942 -1737787 -3066989 -3587735 -3126599 -2514995 -2488223 -2798790 -2663191 -3104959 -3194311 -3197762 -3169268 -2946309 -2700890 -1982798 -2201821 -2404688 -2392421 -2260399 -2957514 -3256610 -2102812 -1405411 -1581715 -2075142 -3083102 -2946701 -1834355 -1956118 -2889376 -3445359 -2876217 -2749745 -0 -0 -3138803 -3018215 -3089723 -2759406 -3059219 -3795579 -3660046 -2811489 -2200258 -2112354 -2335702 -3063351 -3125740 -3156323 -3033504 -3585001 -3416124 -3704736 -3818716 -2903952 -2815461 -2383374 -1471248 -1489116 -1798809 -2002997 -2470627 -2797523 -2743737 -2536771 -2846840 -2797199 -2638271 -2369208 -2852253 -3378703 -2203552 -2617684 -3560810 -3376929 -3344974 -3109881 -2373818 -1864077 -2543923 -2480143 -1725804 -2218290 -2945663 -3347424 -2836210 -2372392 -1705596 -1516081 -3226721 -3504246 -2493288 -2302473 -2583000 -3456646 -2834341 -2044073 -0 -0 -2639953 -2960031 -3548554 -3486984 -3894336 -4341275 -3935476 -2708184 -2571118 -2279304 -2475727 -2954921 -3125591 -2381933 -2120340 -3314206 -3714573 -3798422 -3569037 -2181274 -1898769 -2166136 -1622976 -1521583 -2280602 -1943054 -1344724 -2034341 -2247017 -2555846 -2853459 -2306603 -2628930 -2466149 -2093922 -2541288 -2790040 -2997048 -2899879 -3371255 -4031892 -3550614 -3188442 -3106910 -2933834 -2433487 -2426136 -2251678 -2312683 -3104136 -2926438 -2046669 -1929340 -2524502 -3186935 -3188881 -2402953 -1827935 -2022168 -2512901 -1763514 -1181643 -0 -0 -2941440 -2351419 -2497105 -3387849 -3732664 -4102720 -3901617 -3319051 -3267545 -2700367 -1861769 -2273090 -2699592 -2612809 -2517929 -3270652 -3872075 -3977531 -3094812 -1817156 -1397519 -1819332 -1939869 -1918970 -2128457 -1652235 -1503324 -2136772 -2571462 -2503575 -2508766 -2165947 -2085449 -2098053 -2224646 -2125914 -2280100 -2408514 -2627194 -2865153 -3420664 -3303023 -3376495 -3240315 -2936898 -2456164 -2022840 -1911427 -1953964 -3017528 -2981122 -1792519 -2234692 -3003515 -3627016 -3318099 -2764491 -2504306 -2325927 -2023623 -1790963 -1762367 -0 -0 -2948995 -2735159 -2998379 -3088387 -3324378 -3721261 -3808779 -3263921 -3058074 -2987743 -2415052 -1832969 -2389802 -2930857 -2625390 -3185305 -3682788 -3683411 -3251108 -2300025 -1717115 -2189416 -2140698 -2411348 -2527451 -2879586 -2158132 -2111704 -2298749 -2211260 -2482570 -2336814 -2481991 -2451651 -1584833 -1147355 -1905744 -2950670 -2720372 -2272015 -2774895 -3230202 -3316605 -3472888 -3809308 -3070317 -2347027 -2981096 -3138115 -2934757 -2434440 -1304368 -1281880 -2905169 -3548075 -2707984 -2651569 -3015572 -2741069 -2137486 -2038328 -2363381 -0 -0 -3783385 -3548969 -2299489 -2168853 -2782165 -2762032 -3311023 -3542584 -2572429 -2159157 -2087479 -1728663 -2181821 -2677491 -2843175 -2836857 -3163744 -3829515 -3617314 -2587205 -2173362 -2229964 -2686075 -2939152 -2351452 -2615819 -2471607 -2770472 -2547101 -2201566 -2493396 -2973937 -2990754 -2953648 -2612765 -1537808 -1060636 -1628700 -2289271 -2445565 -3035189 -3220184 -2689990 -2722121 -3287508 -3252388 -2571551 -3092011 -3451555 -3407615 -3155100 -2164929 -1067943 -1857792 -2478648 -2164476 -2750342 -3613130 -3518549 -3292496 -3365500 -3043247 -0 -0 -3835847 -3268485 -2315747 -1799767 -1831547 -2447703 -2736334 -2965249 -2896336 -2118342 -1543012 -1762314 -1817913 -1690880 -2208660 -2660647 -2580495 -2787533 -3272725 -3144500 -2780424 -2803907 -2927002 -3106613 -2664629 -2785120 -3303973 -3084427 -3131692 -2885237 -3189605 -3464792 -2843220 -2923933 -2511062 -1857355 -1960724 -1981343 -2114024 -2617631 -3329143 -2907325 -2412440 -2402143 -2597994 -2705470 -2873256 -3211942 -2864325 -2989820 -2727466 -2582516 -1765475 -1462514 -2417550 -2346679 -2002411 -2551950 -3354772 -3868683 -4318364 -3696741 -0 -0 -3496253 -2953327 -2124577 -1839642 -2116815 -2228310 -2458868 -2466222 -3128242 -2650028 -1369651 -1521205 -2075356 -1825693 -2181832 -2433995 -2138459 -1856077 -2714270 -3011916 -2481455 -3034213 -3400318 -3514393 -2532175 -2353091 -2904828 -3316442 -3261736 -2646600 -2760638 -2712067 -2276893 -2401265 -2356564 -2379376 -2780997 -2289719 -1481199 -1897971 -2815833 -2747447 -1892929 -1612031 -1952843 -1878503 -2620479 -3330580 -2811095 -2658974 -2628087 -3430021 -3135033 -2356919 -2584835 -2770864 -2395298 -2566556 -3335560 -3578524 -4008077 -3262726 -0 -0 -2786515 -2920617 -2760782 -2728382 -2331252 -2487386 -2542686 -2959201 -3139964 -2658849 -1751960 -1798856 -2438113 -2124565 -1851998 -2494864 -2434432 -1782354 -2437498 -2862342 -3120308 -3557821 -3941493 -3557202 -2899068 -1700671 -1864847 -3053420 -3682836 -2796808 -2868121 -2718183 -1784064 -2025987 -2483414 -2214877 -2434467 -2667114 -2005562 -2139711 -2516046 -2481565 -2632930 -2616879 -2163793 -2199857 -2688356 -3470827 -2664070 -2693879 -2813446 -3006905 -2982415 -2330034 -2438570 -3255835 -3133073 -2636136 -2451096 -2678352 -3099726 -2573420 -0 -0 -2847868 -2997979 -3569702 -3226892 -2699505 -2153569 -2626300 -2930105 -2845388 -2506671 -1690041 -1934016 -2693234 -2600030 -2628732 -3046783 -2598781 -2341142 -2832162 -3053287 -2975646 -3033062 -3898634 -3563479 -2817315 -2174881 -1588614 -2366436 -2598447 -2160278 -1991758 -2410635 -2497073 -2581763 -2539825 -1631956 -1856848 -2769705 -2983398 -3106475 -2578551 -2510818 -2817111 -2337159 -2957647 -2746635 -2359655 -2889259 -3013060 -3125182 -3608551 -3110915 -2551992 -2126837 -2379905 -3115242 -3586443 -3198153 -2722417 -2689093 -2453187 -2219224 -0 -0 -2195776 -2762960 -3847971 -3493200 -2193772 -1769328 -2204218 -2986322 -2887897 -2068759 -1383489 -1862656 -2281240 -2405757 -2710685 -2741460 -2531571 -2615868 -3429217 -3506398 -3390350 -3354486 -3314876 -2444991 -2540232 -2200918 -2324852 -2532942 -2144349 -1872217 -2269905 -2872555 -2799496 -2966118 -2510835 -1722306 -1961851 -2533543 -2707050 -3730042 -3162510 -2910417 -3582451 -3164215 -2733537 -3391166 -2514451 -2368004 -2769436 -2436271 -3224644 -3288395 -1844846 -1595964 -2149935 -2527338 -3098491 -2419299 -2028345 -2361849 -2097595 -2396292 -0 -0 -2884974 -2357814 -3475267 -3339619 -1930862 -1508823 -2274097 -2759982 -2598074 -2501525 -1453431 -1259041 -1641567 -2571801 -3317862 -3062330 -2379756 -2401936 -3192016 -3039161 -2959981 -2865580 -2719722 -2302646 -2357056 -3018516 -3416436 -2960245 -1856923 -1817207 -2387976 -2481062 -2990757 -2645240 -1302474 -737795 -1637195 -2836438 -3076919 -3134483 -2645858 -2875482 -3227328 -2414082 -2138685 -3103630 -2465218 -1452271 -2169338 -2662244 -2844036 -2656037 -2145327 -2578777 -3105473 -2689086 -2620904 -3102464 -2736225 -2524571 -2704359 -2874196 -0 -0 -1768400 -1261810 -2982923 -3438569 -2160810 -1977863 -1917019 -2030614 -2493142 -2517735 -1715813 -1748979 -1192197 -1652865 -3246419 -2376823 -1607855 -2091637 -2382527 -2812104 -3161980 -2872010 -2560920 -2254730 -2555904 -2786438 -3223438 -2672774 -2074300 -2451632 -2861152 -2435931 -2668118 -2741543 -1613719 -940907 -2023496 -2307299 -1825229 -2054571 -2607285 -2490977 -2483989 -2323661 -1525796 -1941769 -2535778 -1689446 -1803579 -2316108 -1774125 -1972500 -2397432 -2603860 -2862316 -2375675 -1961568 -2478662 -2177962 -1507986 -2304828 -3016073 -0 -0 -2293070 -1749763 -2743338 -2932412 -2627546 -2677695 -1933042 -1727133 -2161341 -2974612 -2792368 -2728786 -2210510 -1786450 -2870938 -2992452 -2484340 -2680130 -2329342 -2072537 -2823390 -2949910 -2450061 -2513295 -2649273 -2751347 -3032384 -2589734 -2377337 -3510258 -3009194 -2141885 -2609931 -2888571 -2526976 -2393685 -2609870 -2163172 -1798470 -2391878 -3028859 -3001652 -2622428 -2127008 -1890404 -1681268 -2101395 -2064001 -1881418 -2542310 -2269497 -2076940 -2656423 -2813733 -2398433 -2022646 -1671715 -2583348 -3017567 -2008673 -1960395 -3065687 -0 -0 -1503597 -2082948 -2947467 -2302258 -2113893 -2779868 -2524367 -1934533 -1875908 -2415589 -2984440 -3620430 -3567997 -2555436 -2417278 -2711055 -3175457 -3290381 -2734163 -2190298 -3122064 -2780934 -2236732 -2054176 -2065541 -1999747 -2488072 -2486955 -2661579 -3903601 -3307921 -2086450 -2458839 -3050752 -3158129 -2754219 -2938471 -2080753 -1190760 -2198511 -3555763 -2892464 -2053259 -1965956 -1988890 -1846362 -2060904 -2342105 -1762863 -1636181 -2140832 -2575728 -2581997 -2500689 -1789665 -1855122 -1828495 -2482838 -2568282 -2095839 -2174979 -2878068 -0 -0 -1823525 -2360021 -2885594 -2177556 -1992009 -2314720 -1936083 -1797228 -1842154 -2398280 -3464586 -3500978 -3404438 -2339889 -1641230 -2506504 -2960000 -3354823 -3178546 -2686531 -2094555 -1971176 -2355019 -2621116 -2330175 -2317622 -2434833 -2294973 -2403449 -3065471 -2889412 -1664176 -1769566 -2343592 -2998854 -3220179 -3414456 -1984029 -1507501 -2456108 -2572673 -2629182 -2941320 -2516127 -2759501 -2823665 -2339146 -2018842 -2171892 -2104003 -2383902 -2806626 -2469876 -2559188 -2130453 -2186996 -2463708 -2848752 -3258462 -3416495 -3305362 -3019285 -0 -0 -1714093 -1902679 -3067967 -2671729 -2250472 -2503294 -1792670 -1524319 -1610204 -2544941 -3280825 -3190839 -3000933 -2529347 -2382040 -1894249 -2147376 -2815213 -3106599 -2963830 -2563781 -1645411 -2008398 -3210282 -2929151 -3066107 -3224556 -2478189 -1874768 -2121272 -2529970 -1722496 -1741958 -2813363 -3123108 -3004195 -2973623 -2210141 -1536487 -2067776 -2070446 -2458392 -2919724 -2798352 -2582645 -2959607 -2536923 -1874075 -2178572 -2474372 -2541920 -2302238 -2017779 -2043527 -2227806 -2932968 -3473488 -3602809 -3348908 -3537240 -3340059 -2591317 -0 -0 -2146135 -1897617 -2748758 -2599926 -3045463 -2996212 -2346419 -1796816 -2591197 -3091429 -2869051 -2880347 -2216075 -1850739 -1904332 -1763919 -2264626 -3077686 -3135073 -2699789 -2414653 -2193691 -2151382 -3143657 -3457692 -3312307 -3135386 -2998615 -1924139 -1205697 -1576914 -1338854 -1816529 -2750180 -3299295 -3582636 -3763906 -2573557 -1560082 -2303854 -1947415 -2109214 -3769686 -3227712 -2983874 -3242431 -2071156 -1498096 -2184662 -3049239 -2923985 -2641985 -2501375 -2155290 -2383549 -2895959 -3262934 -2700767 -3140702 -3714381 -2952246 -2344199 -0 -0 -2853664 -2604874 -2642557 -2528405 -3430727 -3605633 -2932089 -2774844 -2852275 -3198031 -2842368 -2192124 -1814671 -2044781 -2525731 -1961202 -2066473 -2807983 -2513374 -2017825 -2532377 -2379613 -2095227 -2679259 -3575263 -3480043 -3369233 -3464577 -2844776 -1940192 -1523032 -1255800 -1915478 -3199154 -3535410 -3816179 -3543616 -2364452 -2248589 -2505824 -1746987 -2024250 -3345595 -3052229 -2497119 -2733855 -2117053 -1985615 -2421167 -3240860 -3302234 -2539256 -1924048 -1872951 -2694340 -3810848 -3209472 -2612444 -2659161 -2234813 -2113508 -2491253 -0 -0 -3079886 -2511347 -2092517 -2142363 -3163160 -2932299 -3234900 -3335887 -3351651 -3069835 -2315761 -1755780 -2166445 -2773501 -2736193 -1957275 -2278123 -2262290 -1817988 -1875267 -2411855 -2334811 -1493506 -1942149 -3098148 -3169399 -2972668 -2888792 -2883803 -2691705 -1741115 -743840 -1718786 -3279013 -3393575 -3897200 -3490567 -2316578 -2138676 -1848806 -1669236 -2097533 -3182544 -3392045 -3151962 -2160675 -1608782 -2492582 -3096652 -2904779 -3002557 -2860499 -3085541 -2731538 -2766358 -3258350 -2887441 -2284511 -2256144 -1962791 -2197482 -2811935 -0 -0 -3039322 -2289573 -2395566 -2779506 -2948776 -2959699 -2097460 -2787542 -3006543 -2397268 -2124000 -2151329 -2578326 -2842039 -3368426 -2678129 -2208924 -2016800 -1599770 -2193796 -2738613 -1480419 -1348350 -2003137 -2394051 -3103944 -3071301 -2560723 -3166016 -3696721 -2438156 -1351692 -2001634 -2872523 -3760292 -3914755 -2893148 -1688797 -1777554 -2165073 -1346378 -1888203 -3434105 -3703215 -3239326 -2039592 -1956291 -2839778 -3420398 -3685653 -3390931 -3029508 -2389764 -2274148 -2999368 -3128776 -2497424 -2695041 -2667010 -1882882 -2210735 -2935920 -0 -0 -2909817 -2244892 -2199985 -2213225 -2620696 -2837236 -2299965 -2189390 -2589079 -2159786 -1872778 -2372352 -2462599 -3319427 -3662496 -2422966 -2601829 -2974198 -2205914 -2719406 -3527558 -2570277 -2334820 -1967971 -1874718 -2101711 -1851443 -2494444 -3104632 -2527061 -2080094 -1877994 -2363006 -3058478 -4085320 -3879574 -2829853 -2443517 -1959766 -1452338 -1334430 -2468420 -3486841 -3923723 -3092505 -1808509 -2022003 -2386992 -2884364 -2945851 -2746897 -2707329 -2548534 -2443149 -3035018 -3222685 -2566302 -2408591 -2159219 -2460380 -3045506 -2800557 -0 -0 -3373900 -3328189 -3122147 -2851607 -2961073 -2846464 -1788098 -1897576 -2887966 -2164247 -1266967 -1963780 -2926421 -3287849 -3186929 -2841211 -2723121 -2471123 -2211533 -2511167 -3301408 -2570318 -2104249 -1850254 -1362103 -1810581 -1964162 -2418548 -3167126 -2986648 -2292290 -2031791 -3132085 -3335817 -3938834 -3330544 -2291263 -2595424 -2294653 -1864065 -2372780 -2846087 -3362226 -2974819 -2241231 -2585924 -2670994 -2374024 -2578632 -2221381 -2467391 -2979246 -2955417 -2552512 -3302637 -3927808 -3143545 -2430148 -2209765 -2732307 -2920775 -3482535 -0 -0 -3600659 -3232545 -2863173 -2981778 -2799905 -2503398 -2210362 -2094581 -2011208 -1766213 -1495299 -2394907 -3353819 -3372137 -2990268 -2999097 -2281734 -2065490 -2101748 -2151103 -2762701 -2271375 -2108102 -1837797 -1506314 -2295486 -2351628 -2469945 -3282462 -3209196 -2518346 -2620589 -3157940 -3529935 -4463800 -3783732 -2189285 -2831909 -3543397 -2893335 -2794468 -3084147 -3455057 -2832474 -2764299 -2947470 -3206232 -3050663 -2453988 -2400514 -2218220 -2405266 -2151100 -2852615 -3741772 -3653104 -3268866 -2527416 -1903977 -3003766 -3503894 -3299368 -0 -0 -4191697 -3352715 -2866224 -2971365 -3124730 -2585139 -1690941 -2096555 -2209052 -1787820 -1677860 -2900064 -3751728 -3469737 -3383885 -3223903 -2777911 -2410422 -1905471 -1585404 -1638560 -1783934 -1888869 -1470510 -1881203 -2351596 -2543291 -3138182 -3685232 -3271906 -2626548 -2695518 -3020442 -2869414 -3382128 -3142007 -2202713 -2537827 -3221002 -3314679 -2962206 -3057480 -3141502 -3310246 -3089106 -3068683 -3844926 -3604711 -3156189 -2590236 -2896001 -3207936 -3142403 -3398762 -3743021 -3185511 -3310048 -2656162 -1967910 -2671646 -2841239 -3008022 -0 -0 -3777848 -3036913 -2240921 -3015140 -3422023 -2895372 -2300367 -1970287 -1884944 -2027717 -2370036 -2829207 -3190898 -3304598 -2839889 -2875063 -3131587 -2667899 -2239792 -2118748 -1575098 -1851566 -2492038 -2782667 -2887943 -2998625 -3181768 -2636766 -3060614 -3072561 -2416892 -2914574 -2419023 -1843170 -2590036 -2914983 -3094907 -2655556 -2824945 -2756942 -2508605 -2222574 -2649332 -3617760 -3151815 -3025634 -3521500 -3272344 -2608679 -2811353 -2534808 -2680521 -3425104 -3293655 -2735134 -2426196 -2687810 -2781992 -2707052 -2505789 -2709175 -2444347 -0 -0 -3521665 -3035560 -2686529 -2756602 -2720076 -2741216 -2908483 -2520591 -2508431 -2828902 -2057617 -2002140 -2602021 -2493181 -3001433 -3538821 -3648379 -3305530 -2967961 -2776562 -1521635 -1897206 -3241564 -3465881 -3778436 -3209004 -2156695 -2291888 -3151934 -2741600 -2114897 -2313928 -2055419 -1883915 -1730358 -2202175 -3011135 -2799242 -1998881 -1603315 -2015299 -1870636 -2323236 -3192076 -2760305 -3232152 -3887416 -3330296 -2543032 -2450745 -2519665 -3565518 -4089609 -3485189 -2903553 -2170607 -2658646 -3653911 -3299200 -3020566 -2859806 -2781953 -0 -0 -2801118 -3279291 -2636978 -2743237 -2498565 -2743774 -3453863 -2741282 -2476371 -2668001 -2336658 -2079095 -2366846 -2633582 -2892136 -3196266 -3427608 -3429350 -2898891 -3104173 -2506994 -2727190 -3247579 -3707280 -4193993 -3729353 -2886092 -2432930 -2197371 -2465857 -3046913 -2404558 -1798535 -1901797 -1758537 -2037964 -2913893 -3052540 -2452914 -2293526 -2184700 -2180162 -2674348 -3033590 -2201574 -2356558 -2840511 -2290584 -2192450 -2618854 -2141990 -2994647 -3422496 -3274844 -3254971 -2357941 -2360251 -2870674 -3128767 -2983632 -3459351 -2785304 -0 -0 -2597985 -3023810 -3057450 -3179639 -2326279 -1974902 -2365438 -2957007 -3265810 -2614666 -2135533 -2408325 -2172345 -2142569 -2678766 -2877525 -2722124 -2788733 -3152769 -3599874 -3021241 -3344660 -3496990 -2896756 -3244702 -3499517 -2522178 -2520355 -2975281 -3185620 -3433592 -2652647 -2135307 -2547165 -2177249 -1666654 -2201833 -2724587 -3029286 -2417879 -2563821 -2952194 -3204069 -3179367 -2675189 -2484423 -2605779 -2621294 -2715944 -2548077 -2005991 -3221369 -2991537 -2530716 -3283666 -2923854 -2485450 -2666322 -2768351 -2954042 -3184377 -2518240 -0 -0 -2732524 -2875409 -2577472 -3235537 -3372051 -2073189 -1867636 -2897947 -3194833 -2604509 -1972549 -2494672 -3168630 -2840799 -2016645 -1701575 -1352098 -1779754 -2557580 -2820007 -2482722 -3002345 -3142780 -2453564 -2359613 -2910339 -3129543 -3192217 -2925696 -2705462 -3240399 -2471713 -2063333 -3143589 -3000063 -1984024 -1560217 -2157724 -2581056 -2368628 -2477825 -3141873 -3643459 -3289009 -3118012 -2163086 -1898039 -2863827 -3161750 -2855089 -1714864 -2494327 -3059644 -3446969 -3455663 -3008711 -3343627 -3122850 -2739595 -2617100 -2836014 -2560224 -0 -0 -2306278 -2827024 -2335907 -2576725 -3060546 -2184404 -2303088 -2741490 -2442015 -2467965 -2738964 -2599922 -2204064 -2303533 -2050543 -1461911 -1007954 -1220512 -2021187 -2217241 -2057912 -2395069 -2546244 -2012912 -1798649 -1995102 -2230384 -2275908 -2351613 -2845415 -3475571 -2997592 -2245935 -3149315 -3500641 -2736550 -1531399 -1299501 -2498014 -2927684 -2608776 -2628388 -2662878 -2352777 -2765140 -2571623 -2931952 -3395336 -3648987 -3158607 -1894495 -2173435 -2916758 -2810186 -2463887 -2383447 -3294438 -3561665 -3318657 -3064154 -2639795 -1943416 -0 -0 -2542816 -3306695 -2484948 -1272294 -1852101 -2538995 -2837200 -3260356 -2681749 -2850047 -2914249 -2191116 -2022943 -2558219 -1984800 -1765283 -1777028 -1684423 -1784944 -2226898 -1946945 -2268658 -2302082 -1874010 -2135237 -1999951 -1747699 -1992170 -2187532 -2083900 -2441681 -2196116 -2092385 -3222411 -3316777 -2601266 -2139149 -2404441 -2787339 -2913601 -2717916 -2917059 -2721237 -1658546 -1636507 -2811835 -3350919 -3475449 -3337023 -3303925 -2038206 -2034195 -3023406 -3271232 -2283980 -1614385 -2849997 -3445335 -3103946 -2889010 -2546444 -2040837 -0 -0 -2352307 -3528152 -3382912 -1697090 -1415594 -2391152 -3041273 -2689883 -2539007 -2899560 -3463058 -3062972 -2193119 -2263788 -2107777 -2826385 -2613746 -1892274 -2436545 -2138814 -1979991 -2746497 -3196305 -2669951 -2590551 -1992329 -1271324 -1690904 -2480341 -2053309 -2162218 -2253187 -2667735 -3609233 -3327712 -2276251 -2023829 -2800495 -3736591 -4027985 -3509366 -3033096 -3120538 -2032298 -1116616 -1575991 -2708345 -3038432 -2802634 -3104948 -2490773 -1979777 -2596096 -2612361 -1517311 -1545347 -2021341 -2069696 -2180129 -2780003 -2689885 -1784752 -0 -0 -3153440 -3631609 -3471600 -2477413 -2420185 -3183958 -3052344 -2297679 -2602276 -3551661 -3475832 -2608225 -2567961 -2241171 -2306427 -3102369 -3135931 -2883362 -2074994 -2047036 -2016549 -2397559 -3252663 -3284857 -2706831 -2346056 -2694066 -2550009 -2710050 -2371675 -1638491 -1691365 -2821754 -3944088 -3503543 -2032550 -2364971 -3658223 -3759914 -3416916 -2910437 -3147658 -3468275 -2526266 -2177435 -2128598 -2123452 -2651195 -2552902 -2807587 -3085947 -2935059 -3015024 -2636453 -1903720 -2015798 -2550372 -2330855 -2887967 -3359570 -2967959 -2387722 -0 -0 -2855267 -3132315 -3421942 -3141075 -3455892 -3720126 -3576837 -2180337 -1790699 -3594915 -3511004 -2963372 -2571872 -1830822 -2079480 -3059578 -3426260 -2821750 -2408020 -2513830 -2381228 -2516447 -2763117 -3795709 -3378193 -2591161 -3050679 -2736965 -2354252 -2712298 -2529500 -2238285 -2684817 -3424638 -3315143 -3043084 -2697797 -2983437 -3570924 -2909437 -2863803 -3119035 -2553746 -2454731 -2945320 -2397488 -1510116 -2192278 -2537954 -2811488 -3363499 -3689427 -3050845 -2722491 -1998252 -2079004 -2581868 -2084330 -2017465 -3034443 -3736457 -3334727 -0 -0 -2902588 -3497545 -3319875 -3304543 -3673869 -3533936 -3403353 -2488756 -2615629 -3517189 -3295506 -2487585 -2071874 -1690666 -1460379 -2542925 -3002557 -2352064 -1988013 -2265673 -2965001 -2718166 -2397969 -2815759 -2877426 -2824340 -3684390 -3609274 -2832825 -3349881 -3199145 -2034028 -2266090 -2515039 -2369925 -2451297 -2526137 -3251300 -3428300 -2645092 -2172109 -2613820 -2486719 -2527069 -3274617 -2629626 -1690738 -2450383 -3015337 -2057289 -2364324 -3190479 -3153296 -2816444 -2281793 -2377007 -2825992 -2204322 -2123884 -2382497 -2834190 -3149557 -0 -0 -2086378 -2895314 -3292144 -2649537 -2541764 -2815377 -2874320 -3075705 -3077285 -3094759 -3044225 -2433497 -2326612 -2100383 -1312962 -2593680 -3195381 -2201827 -1427517 -2190481 -3235604 -2916725 -2645722 -2699104 -2443648 -2822314 -3178414 -2947733 -2531297 -3055350 -3367698 -2510131 -1682702 -1974649 -2008718 -1845799 -2356157 -2358356 -3055962 -3184383 -2203429 -2299949 -3276328 -3338435 -3040558 -2478477 -1860868 -2789406 -2750239 -2289665 -2652870 -3061912 -2891265 -2329830 -2164379 -2201238 -2207270 -2212495 -2334708 -2303568 -2798162 -3091902 -0 -0 -3257075 -3641557 -3073670 -2127445 -1785155 -1922771 -2712810 -3771374 -3489373 -3165339 -3018012 -2724903 -2662686 -2528903 -2273882 -2720731 -2992601 -2179687 -1591074 -2014741 -2168669 -2663228 -2787613 -2888091 -2304019 -2284487 -2910799 -3233990 -2883831 -2744570 -2795728 -2459079 -2056693 -2239346 -1782959 -1421068 -2136754 -2610656 -2783222 -3201897 -2235406 -2316723 -2893640 -3027739 -2984215 -1878257 -1287439 -2567377 -2718091 -2119041 -2183516 -2399368 -2342733 -2545330 -2597058 -2679113 -2842591 -2714369 -2556633 -2501943 -2176133 -2253488 -0 -0 -3155419 -3095356 -2751528 -1363745 -966161 -1171644 -1780690 -3122574 -3790456 -3431674 -3088238 -3089437 -2992118 -2526648 -2632736 -2878220 -2749999 -2610078 -2621784 -2220275 -2440387 -2199530 -2435068 -3244782 -3476910 -2370409 -2213450 -3027149 -2447500 -1834368 -2753937 -3351256 -3029247 -2890094 -2966188 -2463562 -2404222 -2869258 -2918913 -2752989 -3318678 -2999337 -2402023 -2762423 -2998413 -2388325 -1495723 -2541350 -3032714 -2139762 -2820943 -3285852 -2572752 -2439580 -2756308 -2307162 -2410795 -3190496 -3224006 -3503676 -3135993 -2869027 -0 -0 -3810852 -3607701 -2795993 -2192761 -1401037 -1424837 -1722367 -2130974 -3094639 -3899996 -3745379 -3625462 -3318060 -2715954 -3167428 -3157156 -2487787 -2457227 -2846715 -2874404 -2772737 -2836353 -2873233 -3291205 -3483519 -2593461 -2668107 -3332451 -2850376 -2363838 -2927579 -3588738 -3763271 -3537995 -3380012 -2336873 -2544246 -3571547 -3411704 -3060321 -2729011 -2443258 -2303916 -2641168 -2778714 -1865097 -1267466 -2342479 -2685703 -1753528 -2168326 -2348052 -2398705 -2870046 -3514084 -2814094 -2812709 -3348693 -3229157 -3137917 -2551391 -2628656 -0 -0 -2916031 -2902220 -2616923 -2015232 -1090489 -1068610 -1298970 -1327324 -2542847 -3577800 -3348855 -3000529 -3259079 -2860370 -3362342 -3564646 -2705176 -1965627 -2275634 -2109890 -2151224 -2395634 -3233753 -3199427 -2890639 -2921867 -2668980 -2463461 -2490646 -2489364 -3469092 -4119864 -3486715 -2909058 -3128740 -2612952 -2475941 -2909532 -3470799 -3232658 -3111777 -2730222 -2287948 -3021780 -2941959 -2300574 -1491587 -2128521 -2345371 -2221511 -2599928 -2905912 -2658675 -2761453 -2680314 -2591452 -2646038 -2849019 -3338176 -3123598 -2697489 -2900990 -0 -0 -2689704 -3469622 -3010590 -2424075 -2093287 -1921780 -1995856 -1812966 -2575802 -3178754 -3368259 -3103408 -2819322 -3308629 -4161166 -3999561 -2806296 -2508651 -2242742 -1842561 -1698277 -2286403 -3381336 -3392487 -2883446 -2414184 -2539851 -2361132 -2114232 -2900179 -3406708 -3867810 -3486629 -2583497 -2525227 -2442684 -1883320 -2362824 -3093309 -3681990 -3180300 -1857873 -2185005 -2861652 -2465025 -2094353 -2183799 -2290383 -2530823 -2509727 -3214310 -2478386 -2435189 -2844604 -2640069 -2794905 -2512902 -2203737 -2596451 -2325136 -1679490 -2515709 -0 -0 -2379231 -3284529 -3128045 -2462119 -1599437 -1786880 -1966981 -2449736 -2866704 -2350965 -2440460 -2350027 -2114593 -2903613 -3830318 -3578099 -2880214 -2620549 -2560085 -2325176 -1772463 -1917223 -2721172 -2821418 -2870951 -2418962 -2363662 -1486332 -2174171 -2906508 -2945400 -3347994 -3233236 -2546444 -1968070 -2111157 -2526905 -2462626 -2843812 -3429482 -3048981 -1971351 -1649956 -2501361 -2544085 -2217355 -2765299 -2510375 -2016917 -2376615 -2888984 -2224632 -1709416 -1763162 -1930347 -2555019 -2515313 -2287993 -2288117 -1950092 -1518885 -2018899 -0 -0 -2125792 -3251463 -3385082 -2154678 -2005013 -2458664 -2740896 -2651076 -2644808 -2145630 -2353260 -2178272 -1877906 -2890050 -3500715 -2833593 -1876691 -2367095 -3535583 -3288004 -2326894 -2284723 -2316801 -2616789 -2134517 -2278195 -2761409 -2300231 -2546329 -2896070 -3257056 -3805889 -3087598 -2194198 -1608801 -2398546 -2862658 -2143922 -2540560 -3304363 -2722550 -1722705 -1518702 -2133022 -2322305 -2202922 -3342405 -3146206 -2487904 -2568349 -3033115 -2315296 -1603874 -2060992 -2322464 -2449291 -2612420 -3081618 -2997113 -2513997 -1975498 -2415350 -0 -0 -2244406 -3163180 -2984892 -2077796 -1773577 -2091258 -2818286 -3338071 -2672976 -1981169 -1993708 -1835219 -2099908 -2849852 -3121925 -2912207 -2064731 -1844255 -3186384 -3339483 -2778049 -2641966 -2685657 -2443438 -1872553 -2544948 -3317542 -3136527 -2569340 -2712603 -3297684 -3713642 -2688791 -2023081 -1408548 -2033239 -2541368 -2149813 -1809370 -2708166 -3157725 -2680005 -2021310 -1949494 -2306955 -2304098 -3224856 -3488989 -2586293 -2725685 -2676305 -1973112 -1461736 -1788317 -2501776 -3036115 -2481845 -2938165 -3440142 -2462303 -2210742 -2211222 -0 -0 -2685547 -2732095 -2813089 -1996577 -1965559 -2551454 -3176182 -3560258 -2186774 -1619219 -2595445 -2650028 -2486924 -2856832 -3102509 -2868082 -2119595 -1947574 -3028555 -2919101 -2406241 -2303936 -2844360 -2458284 -1831963 -1707221 -2875123 -3274046 -2475516 -2647335 -3374624 -3446356 -3067633 -1984816 -1396402 -1819414 -2368352 -2181628 -1788266 -2437149 -3088172 -3053977 -2331787 -2258712 -2850433 -2582751 -2994127 -3214008 -3077780 -3206785 -2924966 -2484643 -1845312 -1925513 -2924832 -3408391 -2923684 -3136597 -3136310 -2886173 -1983944 -1820757 -0 -0 -2521062 -2570039 -3020176 -2411478 -2473246 -2529350 -2935999 -3285010 -2397239 -2311345 -2641723 -2730723 -2914690 -2928124 -2337651 -2551313 -2196060 -1897375 -2720718 -3142424 -2208066 -1771812 -2158047 -2442804 -1817900 -1116301 -1999338 -2609593 -1928233 -2508601 -3463867 -3212144 -2694243 -2172133 -2210905 -2412983 -2479853 -2378349 -1902301 -2534426 -3342163 -2759496 -2207216 -2999726 -3285633 -2567666 -2492407 -3120434 -3456427 -3547421 -2675945 -2052411 -2023331 -2171567 -3053142 -3886541 -2693040 -1602090 -1908780 -2320226 -1955647 -1728531 -0 -0 -2562857 -2231957 -2275888 -2219756 -2468792 -2571851 -2743200 -2634402 -2453345 -2504905 -3397016 -3497019 -3254045 -2821833 -2152001 -2107238 -1992083 -2843785 -3341582 -2884863 -2268735 -1794968 -1531492 -2210040 -2265782 -1652621 -1825305 -2792459 -2346941 -2275371 -2620643 -3252593 -2932881 -1923444 -2232455 -2786069 -2651826 -2440378 -2474494 -2577332 -2296921 -1894554 -2093004 -2417760 -2977346 -2737207 -2816938 -2474836 -2157221 -2863975 -3646629 -2819338 -2703775 -2755752 -2808616 -3506258 -2999250 -2797396 -2179343 -2453496 -3089829 -2696682 -0 -0 -2816048 -2480629 -2341409 -2081746 -2036610 -2559575 -2572283 -2528207 -2387592 -3243473 -3873616 -3512271 -2975561 -2864141 -2608949 -2186476 -2203948 -2395071 -3330453 -3289137 -2909736 -1991484 -1938787 -2178574 -2202684 -2081385 -2381368 -3738409 -3561738 -2882142 -2681320 -2985505 -3110835 -2432659 -2416356 -2980523 -2774297 -3078199 -2745789 -2021758 -2163249 -2514724 -2621217 -2563408 -2437511 -2696430 -2293565 -2157147 -2592528 -2433025 -2658706 -2903352 -3254083 -3036351 -2863534 -2543417 -2393208 -2571392 -1650474 -1708025 -2630571 -2894653 -0 -0 -2340760 -2684735 -2643983 -2120492 -2157727 -1734453 -1867857 -1864293 -2238423 -3028280 -3870726 -3638318 -2973288 -3454871 -2889283 -2748377 -2846576 -3139581 -3534967 -3717143 -3082970 -2479752 -2326960 -2252893 -2387126 -2138803 -2798540 -4259774 -4314310 -2884419 -2276564 -3017355 -3435528 -2824956 -2555821 -3134634 -3245474 -3331949 -2697228 -1930479 -2599204 -3359645 -2960197 -1755222 -1761325 -2542977 -2490752 -2204663 -1795863 -1362960 -1916766 -2843659 -3604751 -3222496 -2083866 -1762472 -2631332 -3229748 -2609969 -1899694 -2252036 -2908755 -0 -0 -2418334 -2589956 -2955292 -3322099 -2948507 -2699443 -1927105 -1460221 -1323123 -1859656 -2901711 -3282857 -2918426 -3129083 -3381982 -3131275 -2835298 -2396066 -2698741 -3812965 -3764636 -2399703 -1733865 -1822266 -1411308 -1446528 -2608601 -3933693 -3963192 -3425504 -3373239 -3132892 -3207875 -2991619 -2980056 -3003593 -3345913 -3826218 -3207230 -3110530 -3244170 -3649319 -3658943 -2302120 -1347400 -1840832 -1896392 -1572137 -1650256 -1740697 -1928025 -2423302 -3193993 -3163516 -2346065 -1844265 -2219569 -2736926 -1957632 -1376566 -1801434 -2414439 -0 -0 -2024996 -3042650 -3155970 -2434111 -2742631 -2639537 -2007725 -2053613 -2034411 -1872542 -2185841 -3466556 -3299862 -2924009 -3319108 -3606791 -3403704 -3016917 -2897407 -3449216 -3190351 -2590654 -1512553 -928003 -1155900 -1486757 -2324251 -3076160 -3593166 -3279466 -2994337 -2866596 -2564937 -2337140 -2577270 -2699392 -2810437 -3134886 -2472730 -2797132 -3059043 -3140142 -3680628 -2564400 -1695788 -1997935 -1465803 -1795986 -1868703 -1559162 -2559924 -2777493 -2781367 -2957873 -2646935 -2656158 -2248803 -2401016 -2622255 -2316014 -1999360 -2635305 -0 -0 -2385419 -2970549 -2688430 -2274675 -2279049 -2478611 -3305491 -3066483 -2044398 -1497766 -1971671 -2943556 -2806956 -2748020 -3291197 -3734625 -3226548 -3239494 -2980063 -2821522 -3606090 -3338231 -1969299 -1093600 -1432968 -2203293 -2557709 -2948289 -3529194 -3308058 -2816261 -2333593 -2582721 -2754459 -2798217 -2075099 -1896136 -2624412 -1882312 -2029140 -2733254 -3242241 -3637558 -3222318 -2544004 -1917783 -1988487 -2118686 -2100347 -2499021 -2961257 -2760686 -3008426 -2453046 -2447799 -2523782 -1646192 -1704040 -2443122 -2283897 -2216380 -2542053 -0 -0 -2517586 -2280803 -2060862 -1355543 -1444381 -2455801 -3363098 -3549093 -2758060 -2318468 -2549681 -2316712 -2638255 -2685566 -2587404 -3244674 -3447382 -3227880 -2889864 -3094476 -2815631 -2930368 -2797618 -1904307 -1894818 -2232461 -2340265 -2668063 -2878266 -3009747 -2251470 -1935665 -2428018 -2488120 -2408800 -2302640 -1688717 -2135340 -1948833 -1342442 -2196198 -2513706 -2894763 -3311484 -2550839 -2764577 -3166707 -2789433 -2953162 -3072799 -2226665 -2295379 -3054124 -2842447 -2723278 -2354513 -1640949 -2065644 -2775999 -2855239 -2475738 -2305699 -0 -0 -2236737 -1686998 -1769514 -1905122 -2408827 -2283019 -3131824 -3758148 -2380365 -2315069 -2925799 -2687576 -2722193 -2634990 -3088787 -3335152 -2316587 -1935171 -2741236 -2410749 -2120086 -2485290 -2748060 -2232989 -2815697 -2657223 -2309898 -2803680 -2574443 -2310157 -2146849 -2380791 -2682654 -2775135 -2806314 -2481321 -1937182 -2653687 -2489374 -1901136 -2277681 -2773643 -2914195 -2575393 -2346262 -2409113 -3808078 -3435148 -2392301 -2914161 -2832060 -2597918 -3082545 -3038923 -2495276 -2506909 -2545401 -2822256 -2995954 -3134945 -2792727 -3006389 -0 -0 -2301515 -1936739 -2291449 -2919897 -2384629 -2030480 -2770327 -3510007 -3056207 -2867131 -3382594 -3355834 -2083164 -2274678 -3079014 -2918965 -2046733 -1412842 -1808457 -2122153 -1729054 -1742028 -1657732 -1998301 -2594793 -2503431 -2291908 -2308774 -1731708 -1977707 -1889173 -2031958 -2801388 -2268227 -2144621 -3087403 -2213068 -1782324 -2634310 -2523654 -2263175 -2312164 -1851637 -1430725 -1543493 -2125529 -3217092 -3390763 -2954161 -2872878 -2982872 -2241509 -2558351 -2834473 -2590739 -3141270 -2639065 -2721982 -2763312 -2874490 -3125301 -3435597 -0 -0 -2579093 -2568433 -2928664 -2901996 -2643324 -2245286 -2037022 -2857059 -2848228 -2882950 -3634654 -3968285 -2669822 -2218335 -3084427 -2724478 -2223239 -2146476 -2321830 -1644237 -2266980 -2617541 -1910573 -2086669 -3108720 -3293743 -2988789 -3088150 -2641865 -2103495 -1714959 -2019496 -2410360 -2718894 -3267981 -3552312 -3165586 -3159479 -3318092 -3220861 -2791459 -2783276 -2905019 -2116534 -1925682 -2294184 -2695123 -3425799 -3188343 -3149984 -2960997 -2533956 -2351191 -2009093 -2145876 -2393042 -2415285 -2322716 -2765877 -2889453 -2816615 -3405894 -0 -0 -2645959 -3077268 -2589982 -2060027 -2462671 -2939545 -2343314 -2479764 -3278237 -2779315 -2373209 -2848508 -2368891 -2290769 -2417590 -2244811 -2167712 -2257572 -2287994 -2172626 -2127556 -2379738 -2324704 -2424555 -2894298 -2902526 -2791628 -3320459 -3302466 -3032473 -2848285 -2455663 -2270629 -2687552 -2855793 -3246456 -3419520 -3120934 -3273259 -3487320 -3309390 -2954763 -2939909 -2906302 -2804659 -2551803 -2057805 -2564117 -3772897 -3612138 -2652228 -2167670 -1560890 -1633371 -2236313 -2885086 -2197033 -1646503 -2341271 -2697549 -2470250 -2689448 -0 -0 -2213717 -2412423 -2730842 -1741793 -2169491 -3748642 -3072763 -2345432 -2915016 -2828845 -2427824 -2643383 -3140045 -3020508 -2355462 -1641171 -1856736 -2514565 -3135044 -2588707 -1595844 -2291126 -3127006 -3773192 -3992705 -2966167 -2478893 -2770523 -2977745 -3155146 -2908121 -2438619 -2603511 -2851998 -2455857 -3167802 -3509052 -3251584 -3182599 -3187653 -4330332 -3606773 -2770244 -3355007 -3472783 -2772580 -2205830 -2583044 -3201916 -3129722 -2454989 -2132623 -2028648 -1941429 -2134149 -3023855 -2954105 -2415619 -2989893 -2708566 -2378766 -2564267 -0 -0 -2165778 -2066838 -2640330 -2032941 -2060913 -3215067 -3326397 -2460952 -3317941 -3464648 -2213792 -2325094 -3225312 -2823884 -1851631 -1355563 -1081870 -1611962 -2987063 -3033094 -2008387 -1955343 -3127786 -3518585 -3675192 -3026291 -2044224 -1823141 -1760605 -2474390 -3104148 -2311259 -2922389 -3371599 -2886455 -2731408 -2378329 -2257124 -2554146 -2706750 -3658331 -3755853 -2714290 -2627364 -3048190 -2662849 -1938116 -2201914 -3182319 -3106708 -1999987 -2172217 -2324110 -1571544 -2092179 -3303380 -3535479 -3045212 -2246339 -2330125 -2553565 -2854196 -0 -0 -2498868 -2585891 -3246514 -2874609 -2147069 -3030330 -3378683 -2913122 -2687885 -2749028 -2377718 -2704733 -2980781 -3195790 -2251047 -1362506 -1691293 -2465670 -3423766 -3507563 -2647205 -2647232 -3190311 -3646864 -3514951 -2682133 -2213688 -2347044 -1146058 -1551423 -2510442 -2104172 -2407001 -2674030 -2787865 -3187772 -2543892 -1930989 -2067212 -2132692 -2839446 -3469673 -2552600 -2258469 -2168974 -2152241 -2357778 -2827437 -3296258 -2350983 -1841100 -2893485 -3044554 -2539808 -2490911 -2513183 -3397915 -3264343 -2679635 -2403424 -2641485 -2745688 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 diff --git a/examples/machsuite/stencil/stencil2d_input.data b/examples/machsuite/stencil/stencil2d_input.data deleted file mode 100644 index 344ea4385a..0000000000 --- a/examples/machsuite/stencil/stencil2d_input.data +++ /dev/null @@ -1,8203 +0,0 @@ -%% -839 -147 -454 -933 -267 -957 -355 -72 -849 -363 -305 -928 -270 -225 -325 -435 -360 -864 -613 -963 -275 -226 -352 -728 -579 -208 -66 -205 -821 -605 -139 -858 -661 -125 -248 -803 -122 -165 -889 -868 -617 -623 -518 -941 -678 -841 -428 -481 -621 -9 -913 -760 -520 -738 -135 -606 -326 -552 -697 -744 -559 -407 -303 -282 -969 -393 -115 -451 -818 -553 -655 -481 -255 -353 -810 -326 -180 -447 -735 -23 -31 -725 -70 -666 -911 -772 -26 -766 -475 -267 -415 -976 -488 -521 -402 -94 -198 -952 -862 -198 -106 -729 -802 -769 -63 -60 -194 -967 -845 -632 -262 -309 -911 -722 -571 -496 -167 -874 -884 -582 -804 -961 -140 -578 -660 -640 -949 -411 -552 -619 -945 -269 -726 -555 -354 -488 -122 -218 -110 -413 -795 -103 -515 -776 -844 -781 -272 -432 -549 -710 -337 -568 -515 -779 -276 -171 -179 -132 -940 -774 -646 -770 -282 -477 -499 -123 -330 -862 -381 -132 -385 -657 -282 -779 -556 -548 -871 -998 -145 -897 -140 -866 -595 -464 -275 -132 -775 -462 -40 -957 -915 -824 -926 -663 -622 -638 -612 -958 -201 -452 -682 -55 -582 -910 -396 -374 -504 -900 -910 -519 -442 -844 -324 -517 -438 -5 -411 -708 -540 -729 -947 -266 -726 -428 -530 -433 -920 -262 -161 -765 -598 -277 -339 -346 -275 -647 -89 -728 -50 -820 -835 -682 -394 -82 -584 -889 -973 -74 -28 -424 -936 -672 -995 -188 -203 -363 -342 -169 -864 -474 -532 -166 -936 -521 -838 -922 -116 -728 -299 -784 -839 -404 -637 -334 -623 -301 -703 -578 -396 -64 -178 -901 -849 -171 -469 -38 -648 -465 -200 -508 -420 -928 -849 -536 -422 -637 -871 -78 -897 -757 -865 -462 -548 -252 -675 -36 -682 -338 -285 -98 -938 -223 -153 -424 -509 -400 -449 -768 -896 -304 -561 -215 -378 -144 -682 -120 -83 -247 -508 -695 -89 -389 -112 -808 -834 -592 -980 -173 -735 -257 -824 -306 -36 -426 -630 -282 -458 -175 -584 -898 -742 -275 -803 -198 -743 -61 -112 -465 -648 -721 -456 -51 -852 -716 -115 -870 -186 -156 -23 -715 -936 -619 -902 -491 -410 -642 -746 -577 -45 -238 -284 -658 -422 -437 -904 -901 -535 -942 -469 -659 -576 -484 -470 -818 -691 -156 -708 -177 -183 -868 -17 -644 -429 -298 -596 -784 -300 -624 -338 -362 -422 -784 -200 -810 -198 -390 -294 -331 -445 -371 -856 -144 -989 -648 -219 -807 -952 -778 -326 -21 -803 -724 -360 -351 -154 -81 -373 -769 -14 -451 -307 -152 -996 -644 -113 -346 -660 -187 -763 -443 -148 -846 -7 -876 -722 -491 -186 -802 -355 -38 -564 -661 -721 -304 -641 -835 -536 -512 -776 -686 -437 -272 -212 -800 -577 -923 -757 -186 -599 -484 -604 -174 -342 -161 -907 -36 -566 -156 -375 -826 -640 -371 -544 -201 -151 -923 -336 -450 -196 -887 -348 -313 -122 -135 -339 -219 -695 -884 -325 -357 -503 -298 -519 -859 -857 -332 -87 -603 -184 -459 -356 -924 -846 -874 -662 -900 -488 -330 -769 -96 -252 -42 -325 -657 -347 -749 -421 -428 -214 -576 -718 -541 -341 -610 -326 -323 -559 -655 -666 -509 -889 -864 -510 -900 -456 -598 -906 -245 -126 -249 -494 -776 -530 -661 -310 -854 -522 -415 -243 -43 -723 -50 -984 -547 -314 -73 -515 -814 -975 -966 -97 -82 -911 -482 -6 -32 -316 -507 -901 -335 -404 -98 -133 -405 -640 -224 -24 -812 -258 -955 -32 -308 -692 -22 -41 -882 -960 -917 -949 -44 -622 -240 -972 -748 -209 -68 -289 -121 -665 -823 -383 -733 -66 -963 -972 -774 -6 -799 -669 -619 -793 -3 -519 -662 -214 -959 -922 -491 -57 -664 -1 -660 -276 -769 -92 -717 -233 -879 -464 -256 -938 -493 -573 -858 -97 -818 -830 -516 -433 -512 -773 -326 -577 -657 -27 -501 -116 -785 -548 -738 -386 -740 -750 -540 -624 -987 -59 -574 -371 -446 -407 -897 -213 -682 -237 -634 -180 -40 -82 -689 -67 -600 -568 -428 -764 -601 -155 -491 -542 -278 -741 -262 -221 -589 -835 -516 -154 -533 -428 -70 -163 -605 -116 -904 -330 -194 -227 -928 -342 -953 -595 -55 -229 -619 -251 -921 -933 -175 -942 -457 -81 -694 -508 -92 -975 -698 -187 -664 -377 -776 -758 -447 -936 -63 -208 -106 -720 -730 -986 -882 -472 -213 -522 -397 -764 -381 -599 -187 -639 -760 -654 -266 -164 -844 -606 -733 -819 -65 -990 -897 -753 -61 -153 -167 -145 -927 -511 -575 -499 -884 -660 -203 -349 -426 -580 -340 -599 -138 -492 -797 -399 -298 -100 -205 -281 -926 -476 -676 -682 -199 -192 -855 -832 -74 -932 -138 -433 -251 -795 -848 -392 -358 -678 -875 -927 -267 -502 -562 -425 -815 -101 -177 -371 -702 -193 -88 -696 -875 -368 -717 -252 -533 -381 -979 -262 -417 -255 -460 -657 -55 -114 -867 -355 -550 -847 -738 -312 -196 -585 -742 -266 -223 -66 -96 -536 -835 -639 -605 -991 -612 -94 -233 -659 -237 -666 -774 -715 -29 -136 -707 -52 -917 -433 -542 -317 -384 -157 -716 -610 -540 -519 -300 -757 -238 -438 -82 -342 -534 -690 -462 -138 -167 -727 -780 -261 -787 -274 -704 -422 -452 -116 -120 -91 -763 -259 -227 -306 -82 -899 -563 -450 -511 -943 -901 -983 -860 -183 -566 -468 -706 -315 -681 -187 -270 -176 -34 -144 -154 -637 -387 -172 -87 -957 -570 -759 -526 -48 -847 -553 -321 -67 -253 -309 -376 -413 -711 -316 -405 -721 -780 -496 -338 -442 -293 -340 -559 -614 -315 -55 -857 -809 -714 -351 -943 -530 -910 -196 -390 -454 -602 -538 -813 -170 -538 -769 -156 -175 -690 -823 -511 -539 -54 -349 -788 -320 -966 -182 -898 -667 -38 -901 -804 -160 -580 -27 -60 -967 -151 -96 -858 -830 -168 -358 -703 -233 -125 -310 -371 -684 -845 -646 -735 -743 -219 -195 -459 -681 -782 -393 -644 -807 -815 -713 -533 -633 -289 -556 -639 -631 -901 -438 -58 -876 -160 -51 -481 -286 -153 -371 -217 -929 -159 -302 -37 -552 -509 -319 -89 -706 -323 -926 -607 -966 -432 -178 -2 -457 -861 -597 -876 -906 -755 -412 -64 -802 -523 -211 -827 -441 -446 -1 -596 -932 -672 -149 -416 -160 -268 -71 -993 -462 -233 -886 -295 -536 -139 -131 -321 -893 -418 -827 -370 -638 -652 -348 -43 -706 -597 -772 -984 -475 -542 -218 -32 -962 -700 -251 -430 -838 -630 -558 -487 -747 -404 -584 -395 -580 -217 -826 -575 -460 -370 -177 -626 -212 -368 -570 -317 -179 -849 -940 -279 -948 -202 -86 -665 -463 -133 -838 -194 -819 -143 -262 -928 -905 -764 -382 -459 -35 -13 -489 -955 -157 -302 -771 -230 -283 -826 -545 -614 -139 -637 -259 -650 -780 -355 -683 -559 -571 -884 -335 -22 -831 -758 -665 -850 -827 -123 -368 -479 -557 -391 -699 -583 -753 -975 -571 -535 -768 -109 -303 -944 -848 -486 -916 -240 -621 -911 -535 -511 -932 -59 -848 -200 -961 -827 -818 -585 -890 -806 -685 -686 -932 -183 -154 -136 -234 -849 -903 -266 -409 -756 -870 -975 -949 -489 -803 -806 -58 -61 -763 -801 -693 -809 -23 -991 -893 -342 -423 -95 -979 -234 -389 -805 -541 -763 -955 -759 -717 -877 -370 -958 -624 -915 -291 -347 -339 -424 -200 -952 -689 -649 -197 -463 -578 -825 -102 -547 -779 -491 -64 -445 -937 -206 -153 -2 -68 -307 -288 -803 -466 -53 -314 -562 -224 -267 -34 -969 -621 -742 -802 -765 -321 -166 -439 -350 -869 -144 -924 -430 -995 -76 -779 -813 -703 -271 -539 -40 -640 -136 -601 -729 -518 -873 -314 -712 -53 -306 -13 -786 -936 -732 -201 -810 -766 -944 -263 -689 -493 -464 -923 -133 -897 -327 -447 -232 -21 -543 -353 -863 -496 -875 -797 -903 -246 -233 -86 -711 -259 -487 -280 -562 -343 -745 -703 -260 -997 -114 -356 -320 -84 -215 -477 -858 -274 -974 -527 -754 -342 -840 -92 -52 -834 -646 -659 -366 -961 -592 -262 -691 -377 -295 -805 -915 -556 -497 -992 -12 -862 -403 -992 -753 -151 -130 -287 -398 -926 -677 -648 -90 -223 -162 -389 -236 -933 -31 -376 -317 -511 -929 -205 -943 -313 -807 -962 -567 -95 -301 -769 -715 -835 -540 -366 -57 -100 -974 -374 -468 -828 -890 -92 -114 -340 -579 -479 -502 -268 -944 -746 -587 -695 -337 -498 -373 -987 -570 -509 -8 -430 -233 -548 -624 -658 -259 -96 -35 -226 -900 -985 -446 -621 -461 -360 -531 -554 -603 -884 -110 -842 -890 -551 -4 -253 -597 -757 -840 -265 -690 -290 -54 -304 -644 -37 -898 -233 -833 -147 -663 -50 -551 -410 -356 -643 -962 -405 -885 -185 -470 -385 -454 -254 -751 -303 -816 -195 -534 -912 -91 -716 -967 -370 -784 -153 -450 -364 -207 -692 -568 -322 -254 -345 -239 -521 -181 -810 -353 -410 -565 -480 -497 -868 -732 -673 -998 -164 -944 -930 -199 -747 -706 -186 -501 -580 -264 -790 -216 -195 -210 -847 -491 -350 -856 -368 -646 -974 -394 -252 -332 -107 -729 -432 -650 -542 -749 -700 -453 -712 -478 -966 -249 -149 -175 -742 -96 -939 -719 -799 -761 -438 -838 -599 -459 -219 -525 -713 -991 -650 -200 -334 -147 -322 -407 -984 -545 -738 -549 -391 -983 -79 -257 -525 -215 -87 -482 -944 -702 -247 -27 -54 -564 -209 -574 -788 -229 -423 -447 -786 -755 -151 -240 -10 -182 -991 -428 -921 -760 -871 -40 -976 -293 -924 -53 -550 -999 -820 -893 -616 -539 -67 -12 -15 -67 -847 -101 -867 -305 -215 -787 -1 -408 -159 -237 -364 -829 -557 -164 -717 -700 -713 -710 -542 -726 -517 -187 -473 -361 -283 -451 -474 -666 -949 -421 -22 -124 -277 -325 -909 -178 -282 -396 -755 -294 -690 -695 -4 -164 -105 -54 -741 -531 -925 -909 -117 -907 -654 -531 -79 -181 -187 -613 -565 -371 -55 -201 -433 -749 -84 -757 -103 -583 -401 -732 -579 -531 -388 -630 -766 -987 -485 -636 -677 -545 -264 -966 -89 -243 -241 -804 -156 -580 -179 -525 -360 -695 -609 -986 -75 -350 -915 -483 -705 -295 -770 -731 -330 -450 -688 -443 -9 -94 -81 -308 -54 -448 -374 -480 -274 -325 -728 -921 -569 -292 -209 -493 -500 -569 -236 -174 -319 -715 -382 -250 -138 -497 -413 -983 -79 -385 -626 -578 -997 -111 -321 -326 -365 -690 -438 -518 -640 -520 -501 -998 -771 -821 -633 -375 -352 -218 -892 -181 -450 -934 -581 -869 -743 -72 -643 -679 -964 -665 -692 -905 -453 -245 -445 -44 -640 -858 -456 -768 -783 -106 -138 -901 -462 -170 -994 -258 -91 -84 -575 -418 -919 -750 -857 -815 -297 -274 -169 -82 -246 -805 -205 -887 -434 -18 -942 -271 -272 -992 -218 -197 -864 -521 -95 -726 -81 -711 -999 -118 -343 -914 -122 -330 -97 -299 -150 -911 -817 -886 -965 -668 -826 -488 -386 -100 -135 -70 -811 -972 -628 -47 -207 -548 -234 -12 -225 -711 -62 -98 -623 -608 -668 -461 -686 -420 -93 -420 -823 -229 -619 -43 -869 -25 -452 -599 -321 -359 -431 -150 -831 -539 -428 -269 -820 -197 -635 -829 -840 -42 -49 -149 -162 -375 -537 -213 -730 -302 -455 -350 -393 -102 -157 -485 -17 -25 -918 -590 -974 -79 -543 -137 -110 -205 -729 -311 -588 -886 -963 -74 -763 -692 -183 -826 -654 -523 -86 -657 -817 -758 -454 -150 -863 -669 -941 -109 -898 -284 -280 -809 -103 -835 -246 -634 -713 -569 -346 -426 -366 -616 -244 -805 -43 -765 -115 -746 -645 -134 -430 -223 -717 -23 -664 -460 -778 -866 -875 -528 -43 -403 -74 -444 -253 -557 -13 -82 -906 -887 -454 -890 -841 -108 -169 -661 -292 -473 -562 -850 -283 -534 -821 -549 -892 -456 -303 -520 -103 -234 -793 -876 -520 -862 -548 -692 -940 -33 -121 -207 -191 -625 -559 -290 -954 -980 -862 -53 -218 -284 -607 -91 -838 -154 -900 -117 -135 -128 -746 -650 -749 -372 -781 -575 -790 -740 -596 -956 -197 -739 -861 -849 -513 -656 -688 -541 -502 -137 -468 -719 -871 -363 -432 -590 -337 -53 -796 -164 -671 -513 -373 -178 -792 -907 -930 -343 -562 -956 -753 -362 -328 -290 -436 -940 -632 -145 -725 -424 -851 -831 -996 -703 -25 -860 -464 -831 -728 -330 -104 -133 -559 -428 -418 -242 -79 -768 -169 -475 -932 -217 -362 -591 -950 -420 -844 -934 -649 -999 -356 -712 -693 -143 -301 -474 -368 -651 -198 -567 -557 -735 -824 -318 -957 -982 -782 -923 -526 -665 -289 -848 -28 -430 -704 -367 -173 -280 -241 -62 -546 -124 -483 -524 -378 -574 -196 -811 -996 -49 -354 -649 -84 -266 -807 -162 -303 -709 -486 -806 -788 -679 -586 -867 -571 -320 -425 -560 -914 -998 -436 -619 -232 -702 -173 -259 -970 -540 -683 -262 -258 -792 -313 -951 -223 -44 -963 -179 -851 -638 -203 -399 -430 -606 -772 -351 -133 -451 -176 -987 -736 -65 -856 -886 -273 -107 -241 -504 -160 -425 -247 -853 -525 -778 -496 -152 -178 -408 -293 -93 -528 -129 -562 -544 -169 -781 -859 -33 -618 -706 -857 -866 -430 -331 -847 -957 -913 -974 -85 -445 -585 -647 -616 -484 -732 -63 -618 -980 -149 -478 -455 -672 -951 -316 -424 -816 -251 -224 -833 -110 -969 -432 -323 -858 -179 -652 -817 -106 -229 -487 -601 -128 -16 -777 -621 -659 -772 -360 -765 -315 -307 -424 -150 -484 -885 -80 -831 -862 -882 -70 -112 -607 -262 -962 -29 -91 -65 -563 -233 -897 -280 -584 -780 -163 -502 -706 -642 -282 -461 -987 -151 -129 -672 -380 -814 -639 -392 -31 -980 -485 -666 -739 -387 -285 -25 -735 -321 -427 -231 -497 -162 -904 -96 -557 -638 -823 -83 -732 -994 -101 -130 -287 -942 -349 -347 -329 -423 -53 -934 -820 -256 -514 -399 -923 -700 -335 -541 -619 -81 -778 -8 -423 -626 -404 -173 -36 -815 -210 -6 -450 -938 -359 -650 -492 -99 -736 -625 -537 -630 -837 -740 -400 -552 -170 -822 -351 -533 -178 -488 -969 -501 -49 -879 -659 -850 -123 -627 -153 -899 -456 -327 -550 -788 -80 -843 -973 -99 -990 -631 -635 -509 -300 -466 -412 -922 -788 -98 -242 -110 -282 -543 -431 -821 -644 -767 -253 -968 -420 -942 -954 -728 -748 -400 -623 -831 -717 -95 -173 -181 -457 -904 -432 -420 -366 -501 -865 -830 -469 -329 -204 -559 -541 -636 -301 -848 -196 -92 -938 -852 -836 -515 -777 -715 -878 -870 -412 -788 -557 -81 -776 -861 -318 -711 -790 -627 -92 -566 -27 -850 -652 -581 -758 -621 -49 -86 -538 -270 -10 -603 -863 -911 -351 -974 -913 -965 -458 -714 -744 -612 -771 -711 -122 -658 -32 -863 -929 -731 -246 -742 -900 -818 -86 -990 -847 -283 -842 -710 -739 -225 -352 -407 -762 -142 -124 -735 -963 -55 -944 -380 -817 -848 -174 -677 -97 -166 -707 -305 -677 -727 -464 -197 -856 -369 -906 -3 -964 -462 -446 -455 -736 -343 -209 -880 -537 -65 -993 -19 -810 -897 -873 -470 -817 -187 -760 -220 -596 -787 -662 -487 -729 -526 -894 -326 -32 -965 -543 -873 -438 -788 -404 -995 -190 -21 -643 -877 -925 -280 -237 -759 -136 -12 -289 -80 -828 -826 -140 -91 -153 -806 -380 -826 -50 -716 -59 -900 -848 -74 -742 -424 -367 -909 -431 -398 -854 -110 -497 -414 -218 -884 -994 -788 -27 -747 -23 -346 -572 -767 -460 -205 -307 -834 -225 -47 -384 -300 -326 -164 -139 -956 -595 -17 -181 -726 -545 -96 -511 -336 -592 -878 -276 -43 -215 -380 -37 -368 -9 -274 -473 -614 -17 -375 -838 -670 -990 -243 -829 -888 -153 -128 -301 -938 -768 -951 -9 -721 -336 -23 -987 -934 -747 -484 -653 -369 -24 -436 -775 -700 -687 -874 -99 -92 -161 -291 -144 -39 -334 -610 -753 -481 -929 -759 -664 -456 -27 -388 -610 -615 -396 -486 -881 -938 -367 -405 -912 -673 -369 -25 -615 -466 -540 -432 -713 -300 -112 -213 -379 -19 -605 -842 -12 -799 -563 -288 -735 -601 -648 -245 -550 -916 -693 -691 -591 -750 -464 -745 -5 -161 -982 -455 -381 -652 -328 -582 -198 -218 -46 -839 -440 -616 -45 -454 -500 -863 -641 -62 -26 -565 -317 -552 -901 -865 -10 -536 -966 -841 -606 -781 -780 -429 -833 -566 -367 -972 -759 -861 -508 -426 -759 -484 -443 -743 -806 -782 -293 -176 -609 -348 -758 -598 -451 -4 -502 -351 -454 -566 -691 -163 -817 -414 -42 -215 -779 -672 -97 -31 -829 -253 -255 -928 -402 -161 -499 -630 -851 -532 -301 -218 -562 -645 -250 -316 -306 -203 -388 -622 -788 -620 -559 -539 -165 -391 -10 -649 -736 -723 -522 -784 -705 -109 -706 -251 -21 -517 -481 -278 -475 -955 -63 -288 -650 -217 -697 -858 -660 -385 -586 -128 -435 -370 -892 -84 -794 -936 -369 -261 -115 -746 -630 -921 -2 -317 -437 -241 -638 -481 -155 -731 -607 -398 -463 -353 -889 -247 -588 -931 -236 -98 -716 -78 -373 -735 -160 -991 -792 -898 -771 -517 -287 -547 -180 -732 -17 -573 -84 -396 -945 -520 -920 -242 -73 -299 -512 -6 -314 -164 -21 -198 -858 -938 -348 -705 -813 -398 -936 -381 -631 -653 -528 -182 -933 -847 -663 -136 -851 -820 -625 -113 -379 -882 -666 -268 -208 -987 -514 -389 -704 -106 -394 -980 -986 -524 -103 -761 -202 -307 -270 -480 -889 -886 -828 -952 -335 -457 -421 -806 -122 -927 -225 -960 -299 -356 -692 -213 -10 -563 -880 -337 -590 -747 -101 -963 -624 -10 -197 -670 -223 -101 -142 -927 -753 -152 -918 -133 -32 -915 -98 -712 -761 -537 -330 -811 -174 -131 -336 -101 -872 -356 -279 -352 -578 -651 -867 -148 -229 -911 -77 -150 -546 -820 -356 -12 -569 -673 -889 -127 -301 -758 -254 -519 -992 -5 -219 -789 -959 -335 -334 -716 -360 -522 -751 -971 -250 -299 -965 -140 -25 -91 -360 -988 -849 -909 -782 -727 -711 -620 -859 -461 -459 -312 -305 -160 -281 -581 -344 -3 -93 -95 -782 -631 -731 -2 -467 -873 -828 -404 -819 -127 -745 -698 -841 -767 -570 -118 -722 -324 -974 -128 -521 -525 -343 -399 -8 -141 -705 -146 -591 -569 -278 -518 -490 -73 -183 -754 -413 -423 -86 -52 -500 -459 -816 -159 -203 -653 -836 -178 -418 -605 -698 -946 -730 -629 -43 -178 -4 -335 -311 -807 -10 -534 -788 -894 -354 -421 -631 -848 -960 -881 -763 -361 -570 -740 -518 -972 -275 -890 -898 -96 -53 -782 -421 -267 -996 -341 -169 -959 -969 -884 -717 -531 -883 -722 -659 -894 -437 -61 -942 -13 -311 -29 -635 -333 -692 -451 -895 -355 -404 -824 -934 -964 -394 -699 -343 -629 -680 -169 -160 -586 -283 -98 -318 -664 -94 -772 -28 -698 -503 -453 -47 -230 -308 -560 -774 -681 -710 -287 -774 -877 -477 -958 -814 -667 -168 -276 -352 -260 -579 -587 -141 -173 -674 -427 -1 -827 -348 -101 -190 -873 -258 -805 -365 -856 -530 -127 -675 -149 -768 -226 -985 -512 -206 -814 -247 -276 -168 -597 -650 -527 -290 -569 -564 -300 -387 -767 -585 -786 -931 -947 -402 -156 -752 -835 -912 -196 -17 -168 -935 -38 -328 -849 -850 -124 -549 -579 -574 -805 -916 -517 -812 -722 -647 -787 -82 -718 -803 -982 -878 -973 -496 -343 -363 -853 -973 -593 -117 -946 -976 -761 -942 -77 -437 -58 -429 -470 -549 -53 -807 -539 -636 -466 -259 -20 -504 -101 -906 -154 -284 -377 -888 -430 -362 -767 -592 -836 -255 -37 -766 -379 -192 -493 -521 -599 -167 -234 -546 -362 -378 -333 -446 -594 -641 -447 -841 -714 -884 -393 -165 -245 -372 -500 -725 -102 -837 -189 -651 -221 -223 -28 -233 -116 -553 -660 -210 -876 -978 -176 -962 -54 -357 -823 -210 -767 -246 -511 -516 -872 -854 -214 -947 -951 -376 -431 -321 -123 -601 -126 -396 -869 -529 -823 -6 -810 -515 -464 -831 -689 -59 -753 -618 -265 -559 -87 -441 -999 -638 -318 -903 -848 -321 -536 -711 -510 -385 -364 -646 -415 -438 -389 -594 -135 -221 -222 -27 -898 -899 -830 -356 -526 -118 -633 -847 -742 -853 -556 -828 -549 -646 -979 -558 -966 -658 -429 -251 -35 -516 -156 -699 -278 -790 -310 -554 -85 -839 -157 -260 -735 -470 -819 -861 -430 -45 -149 -63 -645 -471 -722 -712 -907 -719 -740 -991 -584 -857 -880 -65 -126 -164 -482 -79 -80 -243 -27 -257 -329 -562 -216 -648 -713 -795 -189 -436 -5 -51 -755 -713 -193 -120 -873 -151 -633 -76 -708 -805 -647 -330 -528 -519 -864 -744 -815 -157 -539 -147 -959 -873 -977 -481 -133 -956 -577 -28 -862 -698 -135 -471 -215 -464 -793 -7 -531 -115 -369 -947 -695 -565 -558 -928 -285 -325 -923 -614 -306 -62 -504 -648 -5 -767 -546 -197 -941 -134 -591 -464 -169 -962 -785 -434 -409 -301 -104 -646 -839 -670 -884 -878 -59 -785 -483 -213 -393 -350 -422 -315 -851 -124 -920 -576 -423 -257 -126 -325 -94 -478 -501 -790 -217 -104 -311 -25 -383 -979 -998 -445 -263 -120 -298 -836 -54 -314 -227 -197 -574 -53 -656 -11 -789 -116 -46 -538 -716 -363 -304 -924 -393 -899 -159 -91 -884 -210 -427 -697 -82 -664 -766 -692 -108 -827 -438 -670 -710 -398 -550 -665 -98 -670 -5 -241 -944 -702 -115 -961 -126 -592 -502 -978 -392 -319 -586 -783 -794 -846 -719 -570 -801 -998 -380 -433 -785 -548 -809 -392 -21 -148 -988 -345 -115 -289 -149 -566 -839 -134 -154 -918 -522 -351 -89 -538 -363 -931 -812 -842 -869 -912 -37 -602 -815 -591 -115 -105 -627 -580 -577 -94 -233 -608 -167 -206 -851 -809 -373 -754 -524 -437 -698 -739 -121 -2 -353 -262 -335 -94 -752 -121 -183 -291 -43 -467 -679 -991 -296 -885 -582 -172 -296 -765 -702 -426 -94 -367 -831 -336 -266 -248 -724 -924 -757 -995 -942 -332 -947 -709 -669 -534 -847 -458 -597 -193 -100 -553 -834 -902 -358 -905 -729 -490 -254 -781 -948 -58 -426 -439 -260 -325 -425 -22 -356 -67 -896 -495 -368 -763 -484 -889 -921 -669 -442 -580 -9 -781 -252 -646 -36 -443 -589 -174 -49 -811 -711 -242 -525 -11 -480 -247 -8 -227 -672 -743 -148 -461 -141 -862 -211 -551 -665 -922 -940 -973 -823 -381 -671 -873 -193 -976 -232 -852 -479 -336 -544 -782 -146 -673 -563 -237 -710 -278 -375 -27 -459 -340 -484 -822 -224 -249 -957 -401 -851 -93 -247 -171 -168 -523 -752 -721 -101 -825 -60 -43 -38 -520 -492 -348 -766 -757 -834 -788 -279 -969 -860 -324 -148 -414 -230 -528 -361 -750 -958 -754 -995 -302 -75 -82 -114 -324 -169 -415 -488 -265 -283 -757 -310 -270 -170 -103 -424 -216 -80 -238 -568 -231 -699 -205 -780 -520 -366 -737 -617 -153 -462 -520 -340 -887 -201 -189 -286 -497 -433 -807 -478 -57 -915 -775 -282 -248 -800 -584 -260 -633 -101 -987 -946 -36 -804 -929 -195 -283 -714 -421 -175 -103 -546 -6 -294 -487 -734 -230 -433 -8 -103 -581 -221 -357 -6 -678 -335 -581 -979 -837 -909 -213 -111 -772 -735 -160 -131 -635 -236 -909 -887 -254 -660 -605 -928 -967 -509 -965 -277 -21 -323 -109 -429 -103 -431 -788 -951 -359 -460 -198 -43 -385 -30 -980 -689 -223 -42 -43 -794 -373 -896 -71 -20 -175 -978 -317 -115 -529 -772 -314 -459 -769 -44 -351 -848 -589 -661 -751 -446 -514 -817 -129 -41 -802 -209 -839 -312 -103 -310 -473 -982 -636 -112 -848 -381 -185 -964 -619 -450 -766 -199 -317 -914 -111 -819 -819 -708 -548 -694 -437 -87 -323 -520 -690 -159 -305 -866 -658 -537 -491 -513 -46 -635 -414 -997 -78 -147 -616 -894 -195 -857 -703 -622 -147 -118 -533 -984 -672 -242 -680 -106 -134 -319 -8 -144 -83 -898 -546 -198 -351 -525 -605 -547 -590 -584 -434 -368 -600 -163 -140 -654 -670 -759 -577 -849 -445 -710 -518 -759 -255 -161 -686 -165 -221 -666 -79 -440 -855 -269 -536 -327 -427 -402 -726 -269 -470 -61 -769 -961 -776 -701 -148 -239 -478 -722 -420 -607 -65 -840 -20 -363 -998 -709 -756 -785 -415 -253 -175 -313 -373 -38 -917 -141 -294 -279 -998 -422 -652 -883 -753 -239 -300 -870 -377 -985 -420 -756 -51 -361 -547 -708 -904 -504 -96 -289 -306 -990 -100 -639 -913 -640 -921 -420 -402 -559 -342 -88 -474 -834 -165 -166 -152 -715 -247 -756 -45 -79 -881 -344 -850 -808 -472 -291 -689 -466 -517 -98 -109 -344 -736 -562 -839 -315 -76 -500 -116 -961 -616 -841 -793 -238 -932 -449 -992 -75 -456 -64 -492 -957 -896 -243 -820 -24 -192 -956 -621 -78 -777 -950 -370 -568 -825 -502 -475 -105 -222 -39 -361 -92 -49 -798 -203 -591 -524 -175 -268 -192 -863 -955 -125 -587 -475 -960 -973 -446 -662 -490 -676 -837 -869 -713 -772 -959 -974 -353 -63 -338 -920 -660 -971 -682 -441 -872 -553 -395 -996 -601 -412 -841 -278 -170 -772 -183 -98 -502 -318 -345 -888 -563 -551 -713 -95 -754 -685 -312 -749 -751 -786 -609 -966 -242 -509 -908 -804 -351 -910 -850 -524 -295 -550 -188 -203 -867 -316 -446 -258 -622 -143 -64 -521 -425 -776 -108 -589 -583 -654 -941 -750 -817 -380 -334 -6 -888 -340 -829 -69 -599 -673 -958 -950 -383 -270 -437 -338 -156 -64 -35 -279 -611 -918 -477 -742 -417 -24 -681 -466 -740 -23 -173 -865 -362 -856 -844 -624 -416 -582 -624 -13 -165 -157 -844 -672 -730 -515 -26 -666 -842 -403 -762 -156 -831 -839 -204 -218 -670 -313 -416 -769 -544 -679 -640 -895 -98 -959 -999 -210 -226 -462 -195 -64 -574 -871 -525 -844 -108 -127 -263 -249 -251 -759 -994 -79 -39 -120 -341 -476 -183 -738 -433 -42 -331 -861 -974 -380 -350 -939 -554 -380 -844 -811 -60 -397 -911 -3 -62 -642 -27 -76 -987 -787 -773 -271 -133 -260 -302 -57 -321 -97 -877 -900 -509 -37 -731 -890 -634 -969 -835 -270 -695 -541 -374 -537 -881 -799 -722 -770 -885 -357 -426 -221 -350 -632 -447 -389 -105 -461 -501 -736 -192 -666 -293 -421 -254 -799 -51 -156 -218 -687 -288 -585 -411 -852 -528 -488 -938 -249 -368 -772 -744 -963 -96 -335 -442 -929 -487 -810 -701 -718 -406 -32 -215 -942 -865 -336 -719 -986 -279 -382 -723 -488 -844 -713 -51 -563 -431 -27 -866 -343 -688 -400 -805 -820 -884 -308 -865 -146 -824 -293 -779 -509 -326 -925 -392 -606 -592 -556 -569 -271 -141 -44 -397 -688 -351 -277 -619 -697 -710 -798 -959 -600 -404 -939 -721 -472 -348 -69 -92 -744 -136 -137 -906 -844 -554 -993 -756 -362 -394 -816 -938 -299 -192 -385 -86 -322 -526 -528 -489 -80 -243 -343 -96 -252 -354 -288 -666 -779 -579 -202 -485 -253 -995 -201 -725 -547 -616 -98 -367 -170 -736 -809 -813 -916 -532 -356 -30 -221 -525 -835 -985 -67 -63 -412 -490 -173 -942 -421 -517 -511 -932 -148 -128 -242 -380 -410 -403 -715 -555 -961 -899 -623 -448 -925 -687 -143 -294 -213 -703 -593 -446 -451 -718 -325 -141 -753 -177 -244 -824 -567 -155 -145 -732 -570 -805 -532 -661 -685 -93 -816 -856 -965 -819 -817 -968 -120 -200 -492 -151 -841 -803 -319 -234 -814 -491 -518 -674 -22 -534 -144 -980 -97 -673 -237 -429 -984 -191 -723 -708 -603 -74 -364 -838 -684 -799 -170 -102 -623 -317 -596 -452 -725 -172 -817 -230 -805 -684 -326 -69 -462 -598 -658 -297 -519 -278 -231 -886 -77 -690 -920 -826 -492 -391 -205 -320 -878 -400 -295 -366 -312 -199 -215 -213 -415 -677 -358 -35 -41 -460 -32 -332 -620 -309 -345 -948 -541 -639 -546 -523 -939 -793 -502 -603 -515 -709 -953 -498 -749 -675 -70 -48 -367 -545 -692 -933 -447 -552 -35 -822 -631 -420 -320 -429 -539 -274 -101 -332 -559 -290 -801 -370 -989 -356 -948 -534 -940 -123 -240 -21 -859 -226 -380 -658 -186 -673 -959 -845 -33 -369 -213 -961 -702 -461 -838 -789 -150 -929 -161 -987 -336 -458 -680 -724 -91 -149 -35 -589 -829 -418 -301 -120 -267 -435 -408 -949 -997 -451 -945 -550 -537 -332 -639 -528 -367 -526 -175 -202 -855 -722 -633 -946 -938 -100 -987 -266 -859 -268 -754 -628 -211 -934 -234 -859 -112 -571 -129 -545 -881 -433 -452 -98 -148 -926 -746 -853 -947 -302 -813 -342 -676 -790 -370 -6 -789 -472 -938 -724 -640 -193 -569 -426 -849 -955 -285 -870 -473 -177 -432 -383 -136 -97 -770 -936 -128 -85 -122 -802 -607 -435 -169 -188 -79 -60 -953 -51 -568 -251 -815 -912 -636 -749 -770 -49 -265 -209 -492 -923 -403 -94 -619 -596 -308 -853 -282 -89 -157 -669 -23 -681 -402 -347 -717 -952 -16 -804 -980 -45 -713 -128 -175 -835 -282 -230 -765 -339 -158 -264 -94 -543 -525 -620 -855 -623 -977 -118 -275 -892 -427 -313 -278 -506 -202 -972 -364 -181 -329 -6 -753 -771 -87 -244 -551 -201 -535 -207 -520 -531 -597 -821 -883 -503 -349 -251 -493 -468 -352 -594 -29 -127 -14 -728 -548 -620 -90 -633 -541 -306 -202 -55 -675 -113 -13 -908 -481 -124 -243 -602 -777 -932 -261 -884 -911 -248 -246 -888 -251 -129 -337 -44 -442 -903 -134 -967 -506 -241 -94 -471 -236 -656 -589 -22 -805 -527 -288 -396 -373 -132 -891 -592 -393 -208 -850 -202 -813 -376 -179 -764 -938 -298 -514 -717 -608 -6 -792 -411 -46 -72 -880 -475 -227 -353 -406 -76 -166 -697 -1 -441 -357 -277 -587 -640 -164 -298 -328 -234 -584 -35 -154 -436 -755 -789 -476 -237 -618 -673 -196 -713 -183 -468 -382 -803 -741 -550 -990 -247 -378 -660 -703 -945 -906 -213 -388 -885 -770 -345 -365 -357 -78 -867 -243 -991 -921 -63 -597 -368 -967 -946 -865 -468 -305 -348 -731 -904 -816 -429 -566 -819 -253 -630 -629 -562 -400 -512 -603 -774 -410 -106 -3 -223 -697 -709 -405 -548 -836 -685 -26 -455 -923 -210 -46 -526 -592 -409 -390 -43 -732 -680 -988 -903 -460 -8 -861 -409 -853 -272 -946 -19 -120 -562 -153 -410 -460 -375 -532 -613 -844 -84 -540 -405 -510 -118 -551 -411 -78 -313 -980 -265 -2 -441 -16 -247 -488 -463 -40 -112 -136 -930 -59 -463 -46 -972 -499 -859 -458 -246 -664 -500 -614 -452 -284 -180 -633 -479 -482 -375 -249 -59 -514 -38 -766 -512 -324 -138 -12 -607 -235 -455 -336 -729 -100 -356 -125 -706 -856 -399 -957 -215 -363 -21 -619 -93 -238 -17 -846 -293 -994 -325 -94 -649 -62 -209 -989 -439 -988 -787 -372 -314 -373 -877 -59 -924 -243 -805 -269 -184 -767 -532 -994 -855 -914 -664 -369 -945 -577 -48 -533 -824 -457 -985 -279 -181 -35 -888 -861 -520 -702 -372 -754 -455 -120 -649 -673 -634 -837 -324 -482 -810 -764 -587 -955 -687 -504 -28 -601 -429 -307 -823 -816 -959 -417 -955 -70 -539 -374 -296 -824 -971 -19 -978 -815 -290 -314 -861 -975 -51 -273 -170 -741 -628 -574 -844 -265 -760 -809 -125 -580 -659 -656 -303 -753 -34 -656 -549 -975 -627 -795 -852 -222 -545 -415 -269 -393 -176 -480 -764 -906 -279 -201 -929 -95 -469 -481 -718 -65 -629 -808 -47 -67 -53 -175 -716 -319 -709 -912 -624 -113 -422 -804 -33 -717 -693 -360 -351 -55 -54 -367 -26 -733 -641 -962 -241 -101 -702 -902 -63 -417 -529 -378 -150 -501 -65 -675 -515 -956 -140 -741 -923 -68 -902 -466 -619 -580 -59 -112 -18 -809 -332 -199 -381 -97 -108 -250 -278 -495 -142 -742 -877 -902 -537 -634 -909 -449 -210 -3 -672 -798 -402 -916 -3 -607 -760 -1 -205 -643 -476 -373 -933 -283 -433 -759 -940 -483 -418 -42 -609 -482 -853 -802 -366 -850 -128 -47 -672 -982 -534 -923 -146 -93 -182 -845 -197 -796 -268 -821 -254 -708 -226 -786 -934 -910 -336 -691 -409 -92 -263 -993 -533 -36 -147 -655 -286 -529 -771 -73 -530 -845 -55 -268 -798 -729 -982 -908 -330 -354 -120 -292 -260 -805 -842 -969 -311 -167 -769 -897 -494 -873 -464 -908 -535 -807 -449 -392 -240 -437 -499 -549 -652 -422 -557 -906 -399 -473 -844 -376 -783 -12 -328 -795 -255 -214 -352 -882 -150 -946 -623 -346 -566 -711 -300 -976 -61 -82 -710 -42 -619 -444 -2 -924 -910 -447 -129 -650 -249 -545 -848 -425 -192 -108 -617 -341 -12 -891 -557 -948 -154 -84 -363 -475 -640 -619 -801 -511 -22 -307 -912 -115 -666 -707 -138 -304 -845 -136 -802 -197 -445 -574 -396 -173 -700 -894 -32 -332 -617 -194 -428 -122 -267 -856 -110 -385 -773 -600 -318 -947 -680 -947 -627 -253 -230 -317 -191 -898 -110 -251 -250 -653 -603 -902 -967 -105 -905 -674 -76 -107 -698 -628 -683 -516 -79 -892 -329 -198 -551 -111 -145 -307 -692 -308 -896 -776 -458 -222 -599 -920 -255 -896 -547 -946 -887 -883 -555 -844 -485 -27 -454 -758 -611 -35 -154 -995 -969 -673 -599 -871 -24 -276 -23 -649 -373 -137 -192 -67 -284 -517 -472 -738 -513 -917 -24 -947 -698 -793 -880 -151 -361 -851 -345 -714 -690 -795 -474 -5 -632 -937 -588 -937 -152 -508 -881 -823 -625 -982 -985 -658 -689 -54 -556 -615 -847 -974 -380 -836 -723 -120 -716 -526 -648 -271 -434 -125 -97 -307 -554 -682 -981 -277 -732 -525 -138 -653 -284 -504 -178 -102 -423 -110 -746 -815 -201 -745 -829 -712 -743 -537 -366 -923 -998 -557 -83 -968 -820 -955 -227 -812 -537 -942 -693 -354 -714 -212 -993 -170 -594 -13 -142 -683 -697 -142 -807 -187 -655 -670 -455 -271 -789 -969 -579 -337 -441 -354 -758 -150 -580 -499 -445 -24 -891 -791 -95 -824 -563 -474 -829 -525 -320 -90 -232 -962 -195 -704 -310 -268 -821 -845 -583 -19 -167 -962 -91 -228 -216 -368 -734 -252 -515 -314 -632 -274 -689 -836 -454 -948 -924 -690 -161 -923 -619 -995 -849 -801 -203 -757 -661 -112 -667 -217 -603 -440 -437 -617 -845 -178 -872 -943 -625 -651 -280 -190 -765 -909 -103 -500 -942 -275 -465 -704 -643 -182 -629 -524 -1 -667 -854 -915 -715 -956 -108 -201 -779 -448 -548 -381 -73 -657 -314 -805 -610 -600 -324 -89 -331 -191 -880 -388 -115 -682 -547 -425 -581 -271 -28 -937 -970 -511 -237 -387 -547 -951 -336 -574 -448 -330 -258 -527 -422 -814 -220 -350 -129 -793 -936 -370 -552 -328 -136 -129 -177 -731 -913 -843 -880 -585 -951 -372 -224 -729 -357 -976 -778 -127 -294 -702 -469 -320 -779 -243 -409 -358 -276 -777 -488 -244 -66 -617 -465 -80 -839 -343 -840 -929 -705 -61 -609 -437 -896 -849 -56 -628 -528 -223 -945 -776 -987 -558 -937 -413 -497 -311 -908 -258 -716 -326 -222 -793 -396 -646 -524 -233 -577 -911 -479 -165 -740 -108 -956 -251 -730 -506 -856 -907 -632 -597 -891 -701 -646 -461 -163 -878 -424 -134 -565 -297 -63 -234 -829 -560 -869 -333 -817 -633 -865 -77 -166 -222 -387 -145 -884 -51 -443 -962 -452 -902 -603 -523 -140 -256 -14 -956 -557 -100 -306 -330 -749 -464 -977 -946 -383 -22 -186 -782 -828 -259 -739 -140 -724 -403 -518 -103 -106 -354 -991 -419 -657 -814 -495 -154 -630 -412 -304 -951 -754 -967 -805 -271 -690 -844 -413 -247 -38 -984 -538 -391 -480 -758 -772 -823 -720 -96 -672 -667 -862 -32 -513 -432 -14 -918 -473 -683 -495 -752 -331 -456 -162 -528 -462 -607 -533 -219 -114 -948 -779 -9 -966 -396 -591 -78 -347 -658 -716 -266 -210 -111 -265 -196 -505 -127 -204 -268 -319 -338 -187 -760 -661 -496 -155 -380 -385 -202 -666 -858 -596 -530 -149 -39 -1 -439 -417 -828 -268 -622 -953 -50 -995 -473 -965 -111 -471 -794 -884 -859 -86 -947 -981 -773 -963 -548 -877 -20 -95 -151 -712 -660 -135 -18 -181 -641 -915 -217 -18 -995 -797 -1 -247 -436 -315 -136 -205 -576 -145 -331 -487 -657 -152 -516 -309 -13 -308 -98 -448 -704 -959 -209 -455 -577 -536 -337 -12 -835 -933 -819 -311 -383 -53 -34 -21 -876 -791 -599 -672 -524 -64 -607 -400 -342 -140 -231 -742 -243 -609 -380 -408 -84 -117 -485 -703 -970 -255 -117 -562 -301 -752 -673 -942 -479 -588 -138 -799 -275 -482 -803 -537 -44 -918 -467 -415 -824 -367 -371 -853 -243 -89 -674 -402 -211 -314 -233 -918 -712 -304 -400 -890 -679 -769 -513 -768 -889 -474 -104 -640 -548 -838 -302 -854 -352 -376 -405 -795 -402 -120 -429 -624 -480 -377 -239 -404 -115 -933 -461 -574 -874 -531 -239 -676 -971 -82 -14 -784 -601 -925 -325 -778 -235 -686 -895 -161 -876 -104 -347 -345 -782 -767 -757 -64 -504 -141 -928 -433 -251 -259 -345 -935 -946 -562 -8 -496 -829 -723 -835 -213 -784 -973 -151 -161 -42 -541 -161 -593 -616 -444 -393 -687 -54 -407 -482 -99 -53 -896 -904 -554 -74 -506 -945 -716 -542 -452 -772 -625 -710 -746 -259 -512 -912 -76 -741 -178 -240 -678 -368 -876 -244 -323 -291 -150 -602 -408 -984 -28 -997 -922 -235 -635 -419 -256 -667 -656 -684 -222 -522 -907 -666 -498 -360 -622 -516 -82 -671 -978 -76 -540 -680 -240 -706 -940 -831 -486 -464 -220 -957 -616 -773 -760 -628 -578 -925 -439 -62 -325 -963 -419 -935 -952 -600 -561 -59 -993 -873 -538 -492 -331 -37 -703 -687 -622 -346 -823 -867 -893 -183 -740 -876 -696 -402 -746 -138 -324 -960 -635 -326 -618 -342 -889 -839 -166 -937 -468 -216 -945 -515 -187 -378 -969 -245 -283 -530 -871 -310 -960 -515 -562 -624 -221 -325 -377 -62 -165 -721 -791 -316 -726 -660 -735 -625 -673 -631 -321 -842 -361 -465 -762 -388 -635 -68 -631 -126 -92 -737 -163 -155 -27 -438 -857 -447 -324 -83 -389 -907 -785 -871 -883 -841 -145 -193 -384 -148 -114 -194 -689 -412 -877 -178 -123 -484 -820 -991 -105 -53 -536 -799 -20 -16 -139 -462 -468 -401 -493 -921 -71 -458 -268 -88 -516 -733 -10 -147 -519 -797 -112 -78 -225 -33 -951 -948 -473 -319 -435 -363 -781 -141 -563 -799 -639 -101 -228 -595 -111 -456 -971 -319 -269 -470 -427 -48 -430 -608 -807 -127 -205 -772 -24 -251 -266 -368 -719 -914 -69 -762 -848 -499 -963 -43 -733 -731 -314 -998 -839 -724 -248 -339 -130 -349 -645 -813 -958 -757 -659 -224 -451 -986 -878 -591 -578 -77 -629 -291 -869 -743 -712 -873 -756 -643 -596 -613 -825 -486 -588 -377 -970 -145 -884 -158 -712 -833 -658 -233 -882 -699 -239 -30 -478 -872 -630 -363 -433 -647 -945 -296 -713 -15 -917 -458 -286 -127 -303 -33 -262 -497 -366 -219 -461 -263 -692 -801 -911 -451 -616 -225 -227 -343 -130 -731 -63 -999 -404 -558 -47 -102 -6 -184 -136 -601 -639 -542 -569 -838 -201 -289 -611 -283 -232 -826 -241 -621 -261 -666 -150 -865 -743 -82 -554 -896 -255 -818 -780 -548 -849 -841 -823 -211 -645 -983 -308 -788 -867 -166 -507 -912 -779 -96 -417 -977 -241 -310 -908 -381 -134 -512 -438 -195 -915 -772 -823 -990 -405 -991 -305 -670 -850 -445 -846 -477 -227 -449 -175 -125 -989 -938 -447 -844 -504 -872 -612 -725 -201 -641 -463 -696 -573 -715 -936 -596 -103 -830 -680 -316 -393 -678 -947 -979 -264 -938 -228 -233 -569 -630 -937 -403 -144 -362 -538 -657 -369 -259 -277 -821 -32 -597 -52 -782 -596 -976 -486 -351 -682 -618 -863 -266 -661 -195 -814 -208 -355 -496 -329 -156 -61 -427 -156 -626 -291 -923 -122 -807 -268 -961 -865 -969 -190 -326 -41 -226 -29 -683 -610 -580 -606 -552 -239 -508 -177 -640 -489 -980 -96 -353 -451 -659 -480 -464 -472 -761 -890 -107 -968 -263 -394 -132 -340 -117 -373 -770 -879 -135 -734 -234 -554 -808 -242 -241 -543 -11 -496 -786 -135 -499 -943 -897 -221 -754 -320 -877 -20 -988 -445 -375 -889 -253 -588 -736 -969 -69 -753 -774 -314 -304 -108 -772 -484 -528 -357 -436 -415 -129 -983 -790 -646 -500 -807 -279 -704 -36 -315 -537 -864 -694 -139 -290 -534 -571 -262 -933 -518 -987 -294 -880 -581 -264 -537 -280 -324 -460 -397 -355 -563 -41 -312 -655 -225 -73 -682 -721 -837 -47 -273 -257 -642 -520 -524 -18 -411 -105 -419 -665 -543 -566 -162 -632 -855 -878 -273 -692 -128 -960 -110 -704 -49 -217 -680 -135 -899 -465 -569 -420 -24 -902 -491 -410 -636 -774 -159 -51 -6 -898 -74 -771 -558 -111 -412 -316 -64 -70 -137 -119 -798 -290 -464 -731 -286 -649 -48 -592 -569 -403 -263 -599 -53 -371 -613 -697 -452 -524 -39 -817 -461 -139 -575 -870 -331 -177 -246 -665 -787 -222 -713 -198 -579 -106 -257 -865 -881 -646 -679 -260 -996 -871 -52 -50 -307 -949 -428 -315 -491 -459 -364 -778 -189 -513 -138 -581 -847 -451 -289 -956 -925 -126 -799 -595 -453 -666 -782 -885 -640 -342 -843 -709 -359 -590 -968 -811 -259 -274 -218 -594 -976 -874 -245 -233 -411 -597 -670 -406 -899 -704 -23 -540 -817 -150 -589 -558 -922 -64 -547 -506 -986 -414 -533 -821 -959 -11 -887 -81 -439 -46 -341 -21 -295 -934 -690 -620 -536 -495 -553 -467 -994 -639 -963 -150 -482 -322 -89 -473 -993 -182 -123 -852 -368 -267 -171 -149 -812 -508 -12 -732 -616 -440 -716 -182 -869 -221 -16 -791 -600 -415 -576 -567 -210 -713 -363 -675 -345 -796 -41 -604 -399 -652 -82 -51 -495 -113 -164 -506 -678 -655 -361 -378 -420 -461 -566 -515 -411 -374 -849 -168 -17 -952 -670 -486 -424 -118 -919 -710 -139 -365 -340 -59 -955 -793 -858 -55 -859 -456 -89 -284 -431 -758 -105 -409 -354 -508 -780 -540 -598 -283 -604 -550 -665 -564 -662 -258 -364 -102 -44 -586 -749 -443 -229 -55 -157 -368 -63 -106 -646 -265 -402 -969 -198 -756 -306 -354 -810 -601 -871 -235 -688 -841 -218 -313 -867 -675 -406 -59 -801 -775 -522 -559 -718 -217 -976 -686 -985 -305 -80 -42 -57 -547 -589 -659 -806 -310 -843 -563 -77 -387 -26 -666 -361 -696 -537 -820 -847 -657 -887 -94 -791 -290 -938 -845 -652 -162 -752 -159 -600 -511 -845 -290 -971 -905 -494 -208 -851 -688 -266 -201 -608 -354 -84 -589 -222 -392 -6 -439 -237 -587 -349 -999 -265 -156 -162 -908 -874 -616 -692 -108 -889 -390 -895 -991 -382 -849 -747 -579 -630 -669 -151 -708 -693 -247 -705 -162 -631 -45 -701 -811 -865 -149 -387 -972 -162 -806 -21 -735 -680 -999 -305 -519 -807 -107 -608 -276 -910 -859 -997 -328 -255 -812 -791 -491 -642 -560 -721 -987 -166 -99 -875 -972 -467 -61 -548 -498 -59 -817 -384 -27 -76 -778 -662 -413 -21 -35 -733 -13 -188 -162 -554 -83 -90 -212 -598 -290 -267 -752 -211 -297 -86 -380 -306 -533 -886 -511 -791 -625 -563 -558 -856 -361 -756 -702 -573 -292 -178 -612 -13 -258 -858 -935 -241 -496 -662 -476 -680 -436 -777 -822 -966 -567 -393 -813 -907 -833 -283 -155 -428 -463 -412 -366 -38 -376 -308 -656 -869 -524 -345 -410 -854 -552 -363 -65 -536 -913 -697 -363 -604 -802 -992 -579 -984 -546 -297 -5 -149 -9 -489 -581 -697 -558 -885 -453 -352 -328 -628 -985 -336 -234 -80 -24 -160 -488 -616 -827 -594 -975 -884 -720 -292 -531 -479 -69 -939 -345 -838 -958 -370 -634 -748 -128 -198 -276 -125 -159 -253 -626 -859 -505 -498 -360 -639 -430 -553 -359 -340 -526 -479 -125 -393 -268 -616 -797 -128 -114 -522 -134 -939 -741 -907 -151 -946 -724 -254 -408 -800 -959 -794 -514 -774 -235 -717 -474 -30 -299 -110 -751 -152 -527 -771 -351 -137 -299 -445 -123 -888 -68 -475 -144 -64 -441 -154 -771 -769 -234 -946 -6 -287 -922 -70 -477 -641 -228 -754 -177 -812 -316 -81 -466 -814 -143 -739 -777 -744 -268 -627 -175 -228 -358 -18 -809 -950 -127 -109 -342 -631 -346 -649 -528 -887 -79 -825 -937 -113 -930 -881 -809 -160 -514 -792 -527 -672 -815 -517 -621 -168 -236 -939 -851 -292 -161 -866 -371 -111 -283 -940 -838 -627 -852 -34 -947 -538 -327 -873 -873 -73 -839 -452 -392 -522 -98 -168 -368 -532 -232 -468 -87 -580 -874 -143 -510 -93 -263 -807 -650 -786 -757 -170 -768 -100 -20 -895 -103 -532 -905 -166 -167 -935 -294 -26 -650 -731 -114 -450 -115 -453 -386 -652 -305 -646 -777 -202 -94 -896 -20 -20 -931 -207 -587 -208 -101 -577 -435 -406 -781 -965 -430 -606 -442 -39 -795 -697 -623 -663 -133 -736 -884 -495 -931 -100 -919 -953 -278 -14 -368 -591 -874 -296 -197 -861 -398 -592 -951 -957 -939 -155 -920 -740 -374 -39 -490 -156 -373 -125 -344 -81 -974 -821 -82 -851 -157 -212 -213 -293 -561 -897 -282 -472 -782 -573 -426 -390 -518 -609 -798 -74 -414 -111 -749 -878 -179 -349 -585 -835 -339 -736 -172 -486 -947 -659 -621 -709 -556 -947 -883 -204 -385 -658 -303 -986 -436 -216 -166 -764 -615 -490 -315 -918 -425 -26 -576 -714 -306 -37 -392 -507 -46 -790 -233 -72 -1 -826 -453 -675 -156 -400 -544 -45 -272 -380 -310 -912 -409 -30 -620 -589 -355 -227 -533 -54 -74 -325 -340 -386 -940 -620 -754 -431 -118 -661 -175 -949 -119 -427 -12 -258 -449 -355 -969 -884 -381 -878 -904 -391 -147 -978 -246 -414 -389 -669 -567 -742 -542 -220 -821 -8 -683 -806 -868 -164 -518 -993 -494 -873 -833 -513 -638 -820 -963 -732 -179 -795 -556 -398 -799 -976 -820 -969 -860 -948 -946 -468 -747 -943 -541 -862 -429 -772 -497 -916 -507 -385 -586 -113 -315 -260 -452 -17 -994 -695 -614 -370 -652 -844 -401 -489 -202 -205 -33 -922 -909 -147 -870 -698 -40 -317 -407 -594 -535 -419 -95 -281 -272 -700 -191 -4 -310 -257 -824 -786 -14 -573 -556 -929 -834 -554 -413 -799 -365 -83 -634 -635 -539 -361 -692 -987 -313 -731 -814 -704 -184 -79 -822 -768 -304 -364 -186 -171 -501 -724 -882 -112 -170 -781 -461 -533 -490 -343 -200 -4 -728 -417 -271 -689 -846 -433 -369 -645 -635 -378 -781 -965 -355 -204 -371 -302 -559 -892 -139 -196 -857 -999 -760 -657 -491 -338 -35 -91 -579 -380 -30 -746 -265 -507 -801 -41 -744 -8 -898 -994 -227 -243 -626 -338 -449 -531 -317 -576 -392 -495 -485 -670 -279 -526 -929 -813 -914 -62 -178 -408 -626 -575 -823 -181 -823 -654 -507 -277 -655 -255 -750 -968 -424 -376 -710 -434 -185 -91 -83 -6 -778 -651 -826 -335 -784 -681 -786 -539 -345 -406 -419 -18 -790 -211 -862 -826 -924 -686 -591 -35 -559 -749 -419 -724 -811 -438 -401 -702 -151 -527 -745 -892 -120 -262 -868 -26 -158 -656 -346 -684 -315 -614 -690 -583 -766 -731 -606 -889 -596 -807 -134 -753 -680 -951 -86 -395 -85 -697 -240 -652 -919 -190 -662 -693 -749 -746 -367 -831 -331 -389 -513 -592 -33 -901 -333 -10 -861 -183 -328 -251 -2 -868 -447 -598 -55 -257 -184 -672 -86 -766 -202 -132 -756 -335 -914 -313 -141 -699 -831 -677 -951 -92 -793 -504 -410 -189 -862 -495 -397 -%% -468 -909 -379 -165 -886 -771 -159 -963 -553 diff --git a/examples/machsuite/stencil/stencil3d.py b/examples/machsuite/stencil/stencil3d.py index ebe8e4fe8f..fe82865ff0 100644 --- a/examples/machsuite/stencil/stencil3d.py +++ b/examples/machsuite/stencil/stencil3d.py @@ -1,4 +1,5 @@ import allo +import numpy as np from allo.ir.types import int32 height_size = 32 @@ -12,7 +13,7 @@ def stencil3d(C: int32[2], orig: int32[row_size, col_size, height_size]) -> int3 mul0: int32 = 0 mul1: int32 = 0 - # Handle boundary conditions by filling with original values + # Handle boundary conditions by filling with original values for j, k in allo.grid(col_size, row_size): sol[k, j, 0] = orig[k, j, 0] sol[k, j, height_size - 1] = orig[k, j, height_size - 1] @@ -24,7 +25,7 @@ def stencil3d(C: int32[2], orig: int32[row_size, col_size, height_size]) -> int3 for j, i in allo.grid(col_size-2, height_size-2): sol[0, (j+1), (i+1)] = orig[0, (j+1), (i+1)] sol[row_size - 1, (j+1), (i+1)] = orig[row_size - 1, (j+1), (i+1)] - + # Stencil computation for i, j, k in allo.grid( height_size - 2, col_size - 2, row_size - 2 ): sum0 = orig[(k+1), (j+1), (i+1)] @@ -36,111 +37,52 @@ def stencil3d(C: int32[2], orig: int32[row_size, col_size, height_size]) -> int3 orig[k, (j+1), (i+1)]) mul0 = sum0 * C[0] mul1 = sum1 * C[1] - sol[(k+1), (j+1), (i+1)] = mul0 + mul1 + sol[(k+1), (j+1), (i+1)] = mul0 + mul1 return sol s = allo.customize(stencil3d) - -print(s.module) - mod = s.build(target="llvm") -import numpy as np - -def read_data(file_path): - with open(file_path, 'r') as file: - content = file.read() - - start_index1 = content.find("%%") - if start_index1 == -1: - raise ValueError("Cannot find first '%%' in the file.") - - start_index2 = content.find("%%", start_index1 + 2) - if start_index2 == -1: - raise ValueError("Cannot find second '%%' in the file.") - - data_str1 = content[start_index1 + 2:start_index2].strip() - data_list1 = [np.int32(line) for line in data_str1.split('\n')] - - np_C = np.array(data_list1, dtype=np.int32) - - data_str2 = content[start_index2 + 2:].strip() - data_list2 = [np.int32(line) for line in data_str2.split('\n')] - - #np_orig = np.array(data_list2, dtype=np.int32).reshape(row_size, col_size, height_size) - - np_orig = np.zeros((row_size, col_size, height_size), dtype=np.int32) - - index = 0 - for i in range(height_size): - for j in range(col_size): - for k in range(row_size): - np_orig[k, j, i] = data_list2[index] - index += 1 - - return np_orig, np_C - -def read_check_data(file_path): - with open(file_path, 'r') as file: - content = file.read() - - start_index = content.find("%%") - if start_index == -1: - raise ValueError("Cannot find '%%' in the file.") - - data_str = content[start_index + 2:].strip() - data_list = [np.int32(line) for line in data_str.split('\n')] - - #check_sol = np.array(data_list, dtype=np.int32).reshape(row_size, col_size, height_size) - - check_sol = np.zeros((row_size, col_size, height_size), dtype=np.int32) - - index = 0 - for i in range(height_size): - for j in range(col_size): - for k in range(row_size): - check_sol[k, j, i] = data_list[index] - index += 1 - - return check_sol - -import os -_dir = os.path.dirname(os.path.abspath(__file__)) -file_path_data = os.path.join(_dir, "stencil3d_input.data") -file_path_check = os.path.join(_dir, "stencil3d_check.data") -np_orig, np_C = read_data(file_path_data) -check_sol = read_check_data(file_path_check) -print("\nnp_C:") -print(np_C) -print("np_orig:") -print(np_orig) -# print("\ncheck_sol:") -# print(check_sol) +np.random.seed(42) +np_C = np.random.randint(1, 5, size=2).astype(np.int32) +np_orig = np.random.randint(0, 100, (row_size, col_size, height_size)).astype(np.int32) np_sol = mod(np_C, np_orig) -print("\ncheck_sol:") -print(check_sol) -print("\nnp_sol:") -print(np_sol) - -with open("output.txt", "w") as file: - for i in range(16): - for j in range(32): - for k in range(32): - file.write(str(np_sol[i][j][k]) + "\n") - -np.testing.assert_allclose(np_sol, check_sol, rtol=1e-5, atol=1e-5, verbose=True) -# result = np.array_equal(check_sol, np_sol) -# print("equal", result) -# arrays_are_equal = np.array_equal(check_sol, np_sol) - -# if arrays_are_equal: -# print("equal") -# else: -# print("not equal") -# unequal_indices = np.where(check_sol != np_sol) -# print("not equal position:") -# print(list(zip(*unequal_indices))) -# num_unequal_elements = len(unequal_indices[0]) -# print("not equal num:", num_unequal_elements) \ No newline at end of file + +# Python reference +ref_sol = np.zeros((row_size, col_size, height_size), dtype=np.int32) + +# Boundary: top/bottom height planes +for j in range(col_size): + for k in range(row_size): + ref_sol[k, j, 0] = np_orig[k, j, 0] + ref_sol[k, j, height_size - 1] = np_orig[k, j, height_size - 1] + +# Boundary: front/back col planes +for i in range(height_size - 1): + for k in range(row_size): + ref_sol[k, 0, i+1] = np_orig[k, 0, i+1] + ref_sol[k, col_size - 1, i+1] = np_orig[k, col_size - 1, i+1] + +# Boundary: left/right row planes +for j in range(col_size - 2): + for i in range(height_size - 2): + ref_sol[0, j+1, i+1] = np_orig[0, j+1, i+1] + ref_sol[row_size - 1, j+1, i+1] = np_orig[row_size - 1, j+1, i+1] + +# Interior stencil +for i in range(height_size - 2): + for j in range(col_size - 2): + for k in range(row_size - 2): + s0 = np_orig[k+1, j+1, i+1] + s1 = (np_orig[k+1, j+1, i+2] + + np_orig[k+1, j+1, i] + + np_orig[k+1, j+2, i+1] + + np_orig[k+1, j, i+1] + + np_orig[k+2, j+1, i+1] + + np_orig[k, j+1, i+1]) + ref_sol[k+1, j+1, i+1] = s0 * np_C[0] + s1 * np_C[1] + +np.testing.assert_allclose(np_sol, ref_sol, rtol=1e-5, atol=1e-5) +print("PASS!") diff --git a/examples/machsuite/stencil/stencil3d_check.data b/examples/machsuite/stencil/stencil3d_check.data deleted file mode 100644 index a643e1cf24..0000000000 --- a/examples/machsuite/stencil/stencil3d_check.data +++ /dev/null @@ -1,16385 +0,0 @@ -%% -839 -147 -454 -933 -267 -957 -355 -72 -849 -363 -305 -928 -270 -225 -325 -435 -360 -864 -613 -963 -275 -226 -352 -728 -579 -208 -66 -205 -821 -605 -139 -858 -661 -125 -248 -803 -122 -165 -889 -868 -617 -623 -518 -941 -678 -841 -428 -481 -621 -9 -913 -760 -520 -738 -135 -606 -326 -552 -697 -744 -559 -407 -303 -282 -969 -393 -115 -451 -818 -553 -655 -481 -255 -353 -810 -326 -180 -447 -735 -23 -31 -725 -70 -666 -911 -772 -26 -766 -475 -267 -415 -976 -488 -521 -402 -94 -198 -952 -862 -198 -106 -729 -802 -769 -63 -60 -194 -967 -845 -632 -262 -309 -911 -722 -571 -496 -167 -874 -884 -582 -804 -961 -140 -578 -660 -640 -949 -411 -552 -619 -945 -269 -726 -555 -354 -488 -122 -218 -110 -413 -795 -103 -515 -776 -844 -781 -272 -432 -549 -710 -337 -568 -515 -779 -276 -171 -179 -132 -940 -774 -646 -770 -282 -477 -499 -123 -330 -862 -381 -132 -385 -657 -282 -779 -556 -548 -871 -998 -145 -897 -140 -866 -595 -464 -275 -132 -775 -462 -40 -957 -915 -824 -926 -663 -622 -638 -612 -958 -201 -452 -682 -55 -582 -910 -396 -374 -504 -900 -910 -519 -442 -844 -324 -517 -438 -5 -411 -708 -540 -729 -947 -266 -726 -428 -530 -433 -920 -262 -161 -765 -598 -277 -339 -346 -275 -647 -89 -728 -50 -820 -835 -682 -394 -82 -584 -889 -973 -74 -28 -424 -936 -672 -995 -188 -203 -363 -342 -169 -864 -474 -532 -166 -936 -521 -838 -922 -116 -728 -299 -784 -839 -404 -637 -334 -623 -301 -703 -578 -396 -64 -178 -901 -849 -171 -469 -38 -648 -465 -200 -508 -420 -928 -849 -536 -422 -637 -871 -78 -897 -757 -865 -462 -548 -252 -675 -36 -682 -338 -285 -98 -938 -223 -153 -424 -509 -400 -449 -768 -896 -304 -561 -215 -378 -144 -682 -120 -83 -247 -508 -695 -89 -389 -112 -808 -834 -592 -980 -173 -735 -257 -824 -306 -36 -426 -630 -282 -458 -175 -584 -898 -742 -275 -803 -198 -743 -61 -112 -465 -648 -721 -456 -51 -852 -716 -115 -870 -186 -156 -23 -715 -936 -619 -902 -491 -410 -642 -746 -577 -45 -238 -284 -658 -422 -437 -904 -901 -535 -942 -469 -659 -576 -484 -470 -818 -691 -156 -708 -177 -183 -868 -17 -644 -429 -298 -596 -784 -300 -624 -338 -362 -422 -784 -200 -810 -198 -390 -294 -331 -445 -371 -856 -144 -989 -648 -219 -807 -952 -778 -326 -21 -803 -724 -360 -351 -154 -81 -373 -769 -14 -451 -307 -152 -996 -644 -113 -346 -660 -187 -763 -443 -148 -846 -7 -876 -722 -491 -186 -802 -355 -38 -564 -661 -721 -304 -641 -835 -536 -512 -776 -686 -437 -272 -212 -800 -577 -923 -757 -186 -599 -484 -604 -174 -342 -161 -907 -36 -566 -156 -375 -826 -640 -371 -544 -201 -151 -923 -336 -450 -196 -887 -348 -313 -122 -135 -339 -219 -695 -884 -325 -357 -503 -298 -519 -859 -857 -332 -87 -603 -184 -459 -356 -924 -846 -874 -662 -900 -488 -330 -769 --2650 --957 --2312 --329 -1423 --1068 -1586 --802 --422 --2014 -240 --164 -5 --36 -610 -326 --805 -749 -323 -1169 --932 -1791 -1689 --787 -2817 --428 --168 -1772 --1937 --822 -249 -494 -1814 --853 -329 --1098 -2695 --143 --1220 --304 --2425 -1890 --3551 -2405 -858 -300 -73 -515 -1402 -1958 -3018 --2256 --3387 -3119 -81 --1714 --1431 --1640 -443 -2884 --1713 --236 -98 -133 --626 -1293 --1622 --3710 -2358 --1923 -3637 --2588 -300 -1842 --3302 --3010 -2485 -2263 -917 -949 --3808 -1763 --2001 -3833 -779 --1985 --2134 -752 --2107 -1006 -1663 --2014 -1742 --2665 -963 -972 -2107 --3844 -2420 -546 --230 -2548 --3751 --13 -1137 --2462 -2265 -2431 --277 --2414 -664 -1 -1472 --1928 -2436 --3385 -1651 --2467 -2815 -842 --1884 -4180 --1360 --958 -2791 --2735 -818 -830 --1032 -63 --344 -2269 --2153 -873 -595 --3209 -808 --2385 -2221 -219 -1479 --1078 -740 -750 --1084 -864 -3115 --3815 -2028 --768 --1166 --312 -3152 --2260 -1682 --2086 -697 --1292 -40 -82 -1872 --2658 -348 -792 --1101 -1608 -587 --1850 --490 -480 --1639 -2470 --2092 --1116 -589 -835 --149 --1946 -493 -125 --3234 --2465 -1148 --3541 -3486 --1126 --2081 --1463 -4210 --2292 -953 -595 --3002 --296 -90 --2437 -2966 -2542 --1593 -3306 --233 --2644 -1117 --439 --3770 -2565 -698 -187 -1658 --1461 -1301 -1690 --1800 -2645 --2325 --1195 --1785 -2764 --463 -2412 -1632 --304 -213 -522 --1972 -2180 --543 -752 --2110 -769 -1758 -1214 --533 --2434 -2006 --650 -1393 -2804 -65 -990 -2680 -1019 --2095 --1157 --713 --2232 -2358 --649 -305 -172 -882 -1171 --2150 --1314 -426 -580 --1369 --16 --1129 --766 -2932 --454 --766 --2090 --1746 --1724 -3346 --1193 -1646 -692 -199 -192 -1823 -2305 --3913 -3885 --2353 -1004 --2145 -1571 -2798 --929 --2290 -360 -846 -2675 -267 -502 -111 --1526 -3402 --2755 --433 --1128 -2887 --715 --3043 -1604 -2015 --1854 -426 --2670 -533 -381 -3479 --979 -92 --455 -968 -2157 --2787 --1921 -2600 --1766 --38 -2223 -1397 --1163 -196 -585 -1460 --1558 --555 --1412 --2473 -1013 -1683 -875 --531 -3507 -1426 --2703 --2353 -1161 -237 -666 -1431 -1459 --1890 --913 -3116 --3643 -2012 --1202 -887 --1997 -323 --1956 -1243 -306 -540 -519 --1799 -1644 --1265 -228 --2283 -235 --240 -1483 -436 --858 --803 -1142 -1724 --1859 -787 -274 -497 --1104 --809 --1279 --1601 --2685 -1937 --1006 --1465 --258 --2021 -2303 -498 -672 -511 -943 -771 -2740 -2689 --2825 -381 -294 -1426 --482 -1569 --1589 --432 --682 --2686 --1027 -154 -637 --767 --1684 --2616 -2338 --356 -996 -649 --2491 -2467 -123 --925 --1946 -513 -127 -376 -413 -1185 --882 --164 -660 -753 -529 --808 -658 --1228 --1783 -512 -1618 --806 --3131 -857 -809 -683 --1595 -2175 --205 -2334 --1981 -19 -480 --85 -899 -1777 --2409 -442 -2096 -156 -175 -462 -2413 --167 --247 --3273 -118 -1654 --1515 -3254 --2630 -1646 -1652 --2940 -2583 -804 -160 -1050 --3201 --2132 -2686 --1433 --1913 -2035 -2425 --3204 --302 -1507 --2140 --1415 --723 -371 -684 -845 -646 -735 -743 -219 -195 -459 -681 -782 -393 -644 -807 -815 -713 -533 -633 -289 -556 -639 -631 -901 -438 -58 -876 -160 -51 -481 -286 -153 -371 -217 -929 --2169 --763 --2583 -652 --462 -12 --2091 -1293 --1455 -3608 --883 -2612 --145 --791 -2 -457 -2709 -686 -2470 -1685 -1830 --565 --3495 -1748 --92 --2790 -1972 --1634 -959 --1690 -596 -932 --95 --2798 -80 --1912 --1031 --2439 -4496 --1189 --1658 -2344 --2062 -491 --2351 --286 -321 -893 --1613 -2712 --1539 -767 -1244 --394 --2785 -2327 -871 -1056 -2886 --1481 -1639 --1050 -32 -962 -1039 --1419 -31 -3084 -370 -64 --126 -1753 --1421 --570 --119 -428 --2023 -1976 -575 -460 --293 --2465 -1610 --2967 --634 -1639 --342 --2048 -2619 -2034 --1992 -3342 --1090 --1947 -665 -463 --2357 -3588 --2385 -3049 --2865 --1964 -3303 -2184 -449 --1057 --261 --3454 --2220 -623 -955 -157 --1154 -2362 --1110 --1574 -1844 --279 --78 --2635 -2157 --1698 -1105 -1601 --773 -1617 -559 -571 -2311 --1361 --3006 -2378 -1627 -852 -1339 -2234 --2612 --610 --635 -406 --1821 -962 -583 -753 -2862 --78 -49 -1548 --2947 --1144 -2431 -1101 --1423 -3420 --2701 -746 -2519 -354 -511 -932 --4470 -2900 --2640 -2228 -903 -1074 --1354 -1320 -1250 -93 -209 -3214 --1465 --1155 -136 -234 -1993 -3099 --1965 --1210 -1323 -1476 -1760 -2170 --1112 -1204 -1807 --2924 --2624 -1495 -801 -693 -1907 --3852 -2744 -2732 --1950 --74 --2637 -3261 --1782 --163 -968 -149 -1955 -1545 -759 -717 -1585 --326 -1947 --1059 -2726 --1175 -675 --1180 -744 --1820 -3036 -800 -559 --2058 -463 -578 -2558 --2834 --78 -1192 -623 --1837 --733 -2992 --1976 --894 --3288 --2157 --582 --1338 -803 -466 --3149 --1143 -1421 --1764 -392 --2912 -2793 --586 -1043 -1533 -1672 --1116 --482 -237 -350 -869 --2860 -3051 --1656 -4242 --2933 -2894 -1299 -837 --2153 -1183 --4208 -1318 --2317 -1219 -729 -518 -2773 --3374 -3010 --3615 -1145 --3248 -2053 -1660 -843 --2477 -1817 -731 -2475 --2549 -689 -493 --1105 -3911 --4147 -4075 --370 -517 --1397 --2393 -327 --1106 -2187 --1757 -1661 -2038 -903 -246 --1303 --3089 -2395 --1413 --292 --1122 -1378 -177 -875 -2263 --2516 -2614 --3814 --1031 -320 -84 --1326 -789 -2672 --1025 -4095 --998 -371 --1708 -2712 --3233 --2046 -2119 -1621 -710 -366 -961 -1112 --1813 -1614 --728 --2231 -1707 -1948 -833 --530 -3822 --2683 -2214 --872 -2282 -753 -151 --2078 --351 --1056 -2922 -1154 -181 --2886 --683 --1169 --783 --997 -2272 --3675 --551 -317 -511 -2901 --1887 -3447 --2279 -1667 -2837 -1076 --1575 --376 -2031 -1764 -1498 -16 -10 -57 -100 -2613 --1858 --649 -1584 -2340 --2501 --1234 --222 -1129 --299 --230 --2470 -3743 -1576 -587 -695 --2258 -93 --771 -2487 --654 -448 --2820 -943 --1759 --348 -936 -947 --1396 --2222 -35 -226 -1735 -2890 --1383 -600 --889 --840 -1303 -668 -584 -3300 --3763 -2303 -1735 -2071 -4 -253 --339 -714 -2139 --2164 -1029 --682 --2099 --731 -1388 --3905 -2875 --2474 -1911 --2280 -663 -50 -581 --1192 --916 -1007 -2931 --1332 -2207 --1476 --700 --38 --26 --1442 -1849 --1411 -816 -195 --123 -3606 --2213 --3 -2701 --1334 -1417 --2114 -528 --187 --1937 -1424 --356 --187 -254 -345 -239 -521 -181 -810 -353 -410 -565 -480 -497 -868 -732 -673 -998 -164 -944 -930 -199 -747 -706 -186 -501 -580 -264 -790 -216 -195 -210 -847 -491 -350 -856 -368 -971 -3409 --519 --1555 --322 --2770 -2107 --1770 -1085 --208 -1460 -118 --795 -1723 -478 -966 --2709 --2088 --1364 -1893 --2503 -3307 -863 -723 -1433 --1254 -959 --165 --289 --1024 -525 -713 -3085 -1996 --1147 --625 --1780 --511 --748 -2912 --434 -950 --373 --2105 -3898 --1564 -257 -525 --2317 --2531 -721 -3394 -1907 --1467 --1445 --3296 -977 --2344 -106 -1914 --2130 --291 -447 -786 -1088 --2197 --946 --3604 --2714 -3815 --869 -3166 -1021 -2093 --2820 -2987 --1367 -3366 -53 -550 -2524 -1984 -2084 -854 -854 --3224 --1901 --2588 --3692 -1864 --2802 -2041 --1321 --1357 -787 -1 -428 --1805 --919 --1032 -2643 -525 --1775 -2013 -1291 -984 -1546 --191 -1990 -207 -187 -473 --243 --818 -521 -269 -592 -3097 -14 --2496 --2229 --1472 --2184 -2926 --2978 --1307 -396 -755 --1667 -1432 -1392 --3141 --1539 --1489 --2696 -2406 -265 -2411 -2311 --3366 -3257 -846 -531 -79 --1931 --1544 -1022 --95 -167 --1986 --1554 --821 -2016 --3537 -1634 --2321 -582 --472 -732 -579 -412 --783 -1223 -237 -1892 --468 -775 -1242 --80 --1771 -3092 --2662 --786 --1451 -804 -156 -1163 --2188 -864 --537 -1271 -9 -3184 --3128 --916 -3047 --1755 -2172 --367 -1244 -731 -330 --865 -2394 --379 --3083 --2089 --2097 --516 --1890 -516 --955 -47 --1161 --1091 -252 -921 -569 --1718 --1364 --208 --147 -886 --971 --808 --157 -1211 -64 --1194 --2355 -827 --1397 -983 -79 --1191 -1670 --222 -2845 --2036 -68 --17 --1133 -1354 -288 -132 -1232 -444 --628 -998 -771 -2104 -663 --1204 --305 --1043 -3268 --1675 --872 -1421 --895 -1769 -1661 --2353 -1767 -679 -964 -1108 --34 -2659 --103 --703 --145 --2817 -86 -1934 --1369 -939 -1502 --1049 --2053 -901 -462 --2908 -3653 --2421 --1550 --1370 -1156 --118 -1518 --343 -2036 -1222 --2107 --678 -137 -82 -246 -2607 --3609 -3677 -206 --3497 -4123 --1125 --1306 -3047 --1324 --3221 -1862 -31 --2738 -726 -81 -1311 -4141 --2661 --225 -4391 --3479 --864 --1546 --751 --1837 -2571 -310 -2552 -3019 -668 -826 --86 --379 --1928 --1271 --3279 -2316 -2853 -1402 --2322 --424 -1205 --2364 --2321 --2516 -711 -62 --2512 -1438 -670 -1366 -60 -48 --1085 --2446 -621 -1448 --1176 -1178 --2652 -2601 -25 -452 -2395 --983 --638 --904 --1836 -1606 -1010 -90 --1022 -2522 --1390 -287 -2860 -2064 -42 -49 --2425 --1683 --465 -838 --1383 -1496 --1096 --96 --417 --369 --1978 --2188 -1011 --2920 -25 -918 --945 -3218 --2662 -623 --2011 --2263 --1737 -1881 --1278 -196 -1869 -2621 --3537 -2056 -692 -183 -1926 -96 -679 --2860 -1332 -1654 -1630 --519 --1856 -2528 --120 -2444 --2864 -3457 -284 -280 -1803 --3402 -2620 --1982 -668 -666 -266 --1306 --247 --2241 -1029 --3403 -2459 --2885 -765 -115 -1548 -1166 --3293 -1072 --1307 -1581 --2780 -1547 --1294 -1517 -1163 -2589 --98 --1241 -403 -74 -180 --1424 -1189 --3366 --2512 -1479 -1685 --1170 -2137 -2068 --2660 --2289 -579 --959 -473 -562 -2553 --2654 -490 -2262 -79 -2138 --1655 --1142 -998 --3285 --1634 -1642 -1819 --160 -862 -548 -692 -940 -33 -121 -207 -191 -625 -559 -290 -954 -980 -862 -53 -218 -284 -607 -91 -838 -154 -900 -117 -135 -128 -746 -650 -749 -372 -781 -575 -790 -740 -596 -3407 --3542 -2238 -1565 -2114 -641 -555 -483 --295 --219 --2993 --646 -844 -1860 -363 -432 -542 -218 --2748 -1994 --3262 -939 -482 --1630 --2366 -1003 -1476 -1479 --1719 --37 -956 -753 --1964 --1276 --532 --128 -3891 -396 --1971 -1994 --286 -2162 -87 -2126 -1256 --3077 -860 -464 -2246 -1016 --94 --2779 --2500 -365 --428 -629 --1487 --2713 -2445 --3223 --88 -3686 -217 -362 --416 -2839 --797 -1888 -2484 --1334 -3124 --2443 -1275 -1481 --2181 --1012 -99 --1006 -651 -198 -465 -50 -1052 -1890 --1734 -3016 -2879 -977 -2332 --367 -2176 --1869 -2636 --2785 -430 -704 --891 --1287 --248 --934 --1939 -893 --2177 --103 --155 --1131 -343 --2240 -1216 -3625 -49 -354 -1178 --2024 --1853 -2375 --1638 --908 -1917 --215 -1887 -667 -1252 --539 -2458 -680 -320 -425 --620 -2445 -2980 --1144 -2517 --1624 -1631 --2053 --2012 -2004 --706 -1729 --1655 --1155 -792 -313 -3108 --2104 --3351 -3217 --3545 -2970 -1100 --1122 -222 --27 -102 -2027 --893 --1674 -451 -176 -3009 -2170 --3196 -1490 -2559 --1244 --1890 --1073 -595 --1264 --923 --1816 -3607 -314 -778 -496 --2800 --1679 -1044 --1605 --3364 -863 --3118 -1697 -586 --2216 -1553 -1856 --3604 -251 -706 -857 -1863 --377 --625 -2876 -2141 -1532 -3712 --2601 --136 -1042 -998 -381 -1042 -691 -63 -618 -3052 --1836 -288 --1447 -353 -3278 --1140 --158 -2616 --1069 --2315 -2424 --2792 -2819 -432 -323 -2360 --2299 -656 -2113 --2510 --1942 -1003 -399 --2976 --3241 -2705 -279 -565 -1397 -360 -765 --1758 --556 -204 --1586 -39 -2997 --3246 -1615 -1783 -3257 --3428 --2362 -1801 --2439 -962 -29 --1474 --2349 -1329 --1694 -2722 --2195 -2192 -1451 --3338 --114 -1260 -654 --811 -911 -987 -151 --1588 -1701 --825 -3161 -181 -86 --2995 -2711 --778 -1127 -740 --1257 --147 --2250 -735 -321 -562 --1153 -983 --2749 -3720 --3876 -964 -156 -1521 --2449 -750 -2929 --1680 --786 -287 -942 --1586 --789 -103 -737 --3911 -4123 -2110 --2206 -437 -333 -1760 -65 --1012 -177 -619 -81 -2212 --3447 -569 -1480 -550 --2633 --3594 -2287 --294 --2369 --503 -3111 --597 -1314 -492 -99 -2160 -569 --186 --91 -1775 -1470 --89 -4 --1676 -3157 --1194 -246 --808 --1316 -969 -501 --4203 -2091 --77 -2231 --2313 -902 --2139 -2151 -266 --1357 -1311 -2424 --3385 -1614 -973 -99 -4295 -54 -871 --242 --245 --379 --346 -2052 -1296 --2500 --379 --2345 --1056 -1192 -431 -821 --392 -543 --1891 -3481 --1126 -2354 -1909 -49 -941 --806 -550 -1901 -2100 --3144 -173 -181 --217 -2035 --960 --573 --1342 --605 -976 -769 --1107 --1356 --1471 --712 -466 -1593 -301 -848 --2237 --3186 -1799 -1093 -2222 --760 -1550 --197 -2014 -1727 --989 -1375 -779 --1968 -776 -861 --626 -1255 -587 -350 --2641 -324 --3068 -1114 -61 --296 -1127 --26 --2492 --1007 -538 -270 --2360 -766 -470 -2748 --231 -1451 -1627 -1585 --1320 -133 -1095 -273 -1577 -2154 -122 -658 --3413 -2568 -1542 -985 --1599 -54 -641 -2451 --3443 -2899 -1937 --2394 -1692 --49 -739 -225 -352 -407 -762 -142 -124 -735 -963 -55 -944 -380 -817 -848 -174 -677 -97 -166 -707 -305 -677 -727 -464 -197 -856 -369 -906 -3 -964 -462 -446 -455 -736 -343 --3005 -2925 --727 --3715 -3208 --3037 -2095 -1517 -1600 --829 -2362 --2176 -2491 --2452 -596 -787 -525 --565 -1379 --481 -2290 --823 --3377 -3806 --665 -2217 --2426 -1176 --1172 -4385 -190 -21 -582 -1925 -2803 --1685 --1853 -1924 --988 --2258 --772 --2931 -1835 -726 --1893 --1683 -153 -806 --1506 -1753 --3128 -2496 --2712 -2335 -3023 --2782 -2584 -771 --1502 -2241 --632 --303 -854 -110 -564 --1000 --1574 -1603 -2930 -1816 --3363 -2711 --3315 --460 -1618 -1100 --450 --1293 -307 -834 --1818 --3024 --232 --1542 --798 --1967 --1902 -2365 -1124 --2792 --1642 -1070 -225 --1184 -511 -336 -335 -3670 --1754 --2003 -157 -231 --2059 --1099 --3192 --715 -303 -829 --3238 --614 -838 -670 -2097 --1820 -2337 -3098 --1134 --1138 --1473 -2554 -322 -2638 --3273 -1865 --707 --3386 -987 -934 -837 --892 --195 --437 --2522 -112 -1564 -1073 -1176 -1485 --1625 --2499 --439 --24 -144 -39 --757 -1231 -1510 --1361 -2988 -968 -31 -389 --3082 --922 -762 -562 --163 -335 -881 -938 --1419 --1297 -2985 -34 --1003 --2327 -1019 --84 -1162 --281 -1613 --904 --1973 --1788 -379 -19 -1421 -2251 --3424 -2965 -172 --727 -1628 -317 -645 --1423 -241 -2062 -2113 -916 -591 -750 --877 -1748 --2009 --3099 -2551 --196 --943 -1185 --1261 -798 --2641 --2280 --2370 -2433 -440 -616 --3762 -308 -403 -2824 --501 --2305 --1863 -150 --1968 -276 -2510 -2223 --2830 --857 -966 -841 --507 -1163 -1378 --1682 -2565 -839 --1410 -1960 -947 -2354 --915 --891 -2158 --1025 -443 -743 -1456 -1145 --1422 --1401 -92 --1479 -2621 -487 --775 --3395 -1275 --369 --768 -805 -691 -163 -2318 -226 --2038 --259 -813 -1729 --1997 --2811 -2882 --705 --1609 -2529 --793 --2418 -499 -630 -2067 -184 -432 --1726 --166 -672 --278 --689 --1248 --866 --575 -657 -2332 -1076 -559 -539 --2534 --261 --2725 -2087 -763 -1877 --251 -1165 -823 --1530 -1333 --1154 --2617 -1259 -481 -278 -76 -3402 --2126 --978 -2281 --3324 -157 -1654 -534 -185 -580 --2268 -908 --1413 -892 -84 -1368 -2220 --786 --399 --3207 -2143 -416 -1859 --2653 -851 --289 --899 -1543 --531 -155 -731 -185 --1951 --165 --1106 -2664 --2717 -1081 -1804 --420 --2341 -2689 --1878 --777 -1389 -160 -991 -1231 -1401 -1256 -299 --1379 -1267 --1346 -1803 --3399 -1559 --2517 --613 -2894 --856 -920 -242 --2543 --1871 --66 --2828 --162 --1737 --1609 --2114 -1509 -2189 --1359 -1894 -1341 --1855 -936 -381 -1269 --260 -396 --2161 -2880 -2239 -1110 --2760 -859 -1304 -953 --2933 --1007 -3362 -666 -268 --2244 -2022 --550 --1257 -1234 --2697 --716 -2579 -2907 --666 --2192 -1907 --1787 --1411 -270 -480 -2563 -1373 --59 -2091 --1594 -492 --173 -1153 --3568 -3731 --1492 -2990 --761 -327 -692 -213 --3324 -26 -1049 --1349 -1561 -1848 --1701 -1930 -523 --2999 --931 -335 --106 --965 -142 -927 -1742 --2928 -2871 --2280 --2894 -2124 --3664 -522 -1849 --43 --533 -1971 --2311 --2333 -336 -101 -2465 --1280 --1798 --598 -1188 --89 -2680 --2472 --1988 -2835 --2002 --2137 -216 -2473 -356 -12 -569 -673 -889 -127 -301 -758 -254 -519 -992 -5 -219 -789 -959 -335 -334 -716 -360 -522 -751 -971 -250 -299 -965 -140 -25 -91 -360 -988 -849 -909 -782 -727 -834 -263 -2105 --854 --440 --36 --1551 --1641 --822 -682 --1114 --2784 --1976 --1678 -782 -631 -928 --2922 --972 -2214 -1891 --571 -4013 --2451 -1137 -4 -1763 -1568 -1640 --2490 -722 -324 -3521 --2587 -471 -136 --70 -172 --1958 --1254 -1977 --1403 -421 --417 --1328 -1649 -490 -73 --2680 -1869 --91 --715 --614 --2178 -932 -806 -1856 --2208 --1254 -759 -1861 --2434 -418 -605 -928 -1682 -549 -715 --3062 --185 --1827 --1195 --1335 -2929 --3292 --30 -514 -3241 -354 -421 -854 -1651 -1138 -1499 -1952 --1187 -637 -376 --1225 -3304 --1719 -1400 -1862 --3068 -53 -782 --836 --2542 -3476 --187 --2188 -3393 -2106 -1220 -1331 --169 -1975 --60 -138 -2744 -437 -61 -2893 --3126 --1523 --3039 -2054 --1039 -1213 --1616 -2170 --1430 -154 -764 -2213 -2264 -394 -699 --1614 -1857 -1804 --1635 --2037 -1250 --1917 --1975 --1647 -768 --2591 -2515 --3213 -1382 -503 -453 --1524 --1226 --1075 -858 -1882 -1041 -1204 --1422 -2143 -1836 --910 -2387 -2473 -667 -168 -276 -371 --956 -510 -611 --2068 --898 -1103 -184 --4471 -2035 --1231 --2946 --1339 -2687 -258 -805 --1612 -1765 -858 --2995 -2313 --1410 -1884 --3026 -3036 --335 --2824 -1738 --1383 --733 -168 -597 -977 --1 --347 -1844 --402 --218 --244 -1547 --273 -1086 -2405 -2370 --321 --2622 -752 -835 -2265 --1898 --2279 --2172 -3336 --2367 --781 -1566 -1904 --3555 -89 -147 -474 -1084 -916 -517 -1987 -470 -353 -2627 --3950 -2070 -1243 -2184 -814 -2868 --808 --70 --1709 -1289 -973 -593 --3687 -2236 -2324 -913 -2344 --2330 --334 --2707 --1023 --44 -1075 --3043 -2059 --610 -636 -466 --869 --3092 -1415 --2648 -2912 --2073 -132 -283 -1895 -21 --456 -1377 --107 -2024 -255 -37 -2058 --118 --1932 -781 --320 -1761 --1562 --562 -718 -475 --534 --896 --630 -34 -641 -447 -1933 -1394 -2473 --1353 --1439 --1413 --594 -479 -1007 --1836 -2540 --2719 -2065 --2421 -223 -28 --660 --2745 -417 -2133 --2453 -2167 -3106 --2956 -3079 --1915 --1029 -3758 --1915 -2262 -246 -511 -442 -1432 -2370 --2601 -3156 -1292 --1313 --327 --947 --1437 -1851 --1854 --428 -1702 -529 -823 --3812 -1935 --319 --98 -479 -1058 --2494 -1200 -712 --505 -999 --1871 --387 -2916 -638 -318 -2440 -312 --1679 --431 -817 -7 -796 --1679 -1194 --349 -225 --283 -820 --2367 -221 -222 --2722 -1916 -2167 -2651 --1077 -1752 --1730 -2109 -826 -786 -1663 --728 -1065 -293 -646 -979 --287 -1559 -496 --297 --1743 --2596 -1170 --2084 -1745 --2688 -1598 --1803 -43 --3730 -839 -157 --1110 -820 --872 -1456 -2794 -976 --2171 --1783 --2539 -1994 -125 -2008 -1245 -3260 -719 -740 -2602 --720 -1542 -1604 --2621 --1261 --212 -919 --1161 --2585 -218 --3008 --505 --1513 -562 -216 -384 -997 -1450 --2690 -659 --2855 --2214 -1060 -1956 --1121 --1062 -3270 --2755 -1955 -76 -708 -1015 -995 --1409 -153 --80 -2754 -1317 -1926 --2535 -443 --1692 -2069 -2096 -3176 -481 -133 -2673 -98 --3627 -2573 -1221 --3491 --186 --1001 -1005 -1813 --2844 -1791 --2701 --2057 -947 -695 -565 -558 -928 -285 -325 -923 -614 -306 -62 -504 -648 -5 -767 -546 -197 -941 -134 -591 -464 -169 -962 -785 -434 -409 -301 -104 -646 -839 -670 -884 -878 -59 -2240 --359 --2301 -364 --674 -91 --747 -3552 --2728 -2483 -8 --159 --467 --1952 -325 -94 --75 -267 -2890 --1593 --1821 -90 --1910 --1139 -3429 -2460 --1401 --1162 --1567 --43 -836 -54 --1474 --206 --1491 -1507 --2338 -1774 --2885 -3300 --2635 --2527 -260 -1733 --487 --1324 -924 -393 -3927 --1930 --2770 -3199 --1616 -157 -2506 --3314 -1327 -2607 -1203 --2404 -1708 -6 -670 -710 --1786 -124 -1086 --3937 -2065 --2444 --1074 -2633 -803 --3911 -3970 --2980 -710 --1060 -978 -392 --1145 --476 -1252 -1752 -1535 -1393 -423 -76 -2540 --1032 --1642 -1771 --549 -2668 -392 -21 --2266 -2936 --1819 --2114 --609 --2391 -20 -1078 --2540 --1233 -2530 --615 --1142 --3443 -538 -363 -2024 -1465 -1992 -2367 -2724 --2491 -12 -1321 -311 --1528 --2249 -1110 -873 -421 -94 -233 -1087 --2243 --2357 -2421 -1275 --66 -1819 -297 --992 -980 -1635 --2239 --2062 -259 -262 -335 --2225 -3728 --1867 --2506 --769 --2388 --457 -579 -2361 --2537 -1999 -375 --1355 --1220 -765 -702 -577 --2679 --405 -2741 -26 -504 --2059 -277 -2044 -555 -1658 -1953 --1722 -2772 -709 -669 -163 -1877 --901 -1000 --1647 --1945 -372 -1890 -2181 --2162 -1727 -195 --356 --2136 -781 -948 --3432 --152 --376 --980 --685 -710 --2513 -240 --3552 -2898 --402 --1277 -1705 --214 -889 -921 -1119 --412 -2231 --2497 -2253 --1362 -1746 --2977 --131 -1147 --2466 --2091 -1709 -351 -242 -525 --4303 --215 --1138 --2188 --1604 -1711 -1010 --2433 --12 --2964 -3556 --1705 -331 -743 -922 -940 -2934 -1340 --1298 -1045 -2524 --2840 -3161 --1943 -2309 -517 --673 -37 -1903 --3463 -673 -563 --1927 -1776 --1775 -38 --3442 -1502 --1326 -917 -2377 --709 --1184 -2678 --2042 -2387 -93 -247 --1204 --1735 -313 -800 -2578 --2319 -3003 --1818 --2592 --2126 -589 --580 --1353 -427 -757 -834 -2364 --1923 -2272 -1823 --880 --710 --22 --1247 -649 --324 -1398 -2562 -630 -3299 -302 -75 --1269 --1101 --861 --2488 -415 --196 --1988 --194 -763 --1198 --330 --1822 --1922 --72 -216 -80 --878 -1142 --2400 -2834 --2545 -1775 -1027 --941 -827 -1103 --1359 -964 -1115 --1261 -887 -201 --1322 --1727 -1439 --1004 -1105 --634 --2293 -2475 -738 --942 --789 -2029 -666 --1350 -633 -101 -3550 -3024 --3002 -2760 -2400 --2238 --797 -1522 --733 --639 --1630 -697 --2876 --354 -487 -734 --2473 --728 --1620 --2467 -352 --1203 --364 --4068 -1935 --1521 -70 -2052 -796 -2171 -213 -111 -2207 -871 --1038 --1396 -2287 --1165 -2038 -2599 --2148 -1923 -12 -2163 -1853 --94 -965 -277 --2150 -42 --1570 -567 --2267 --85 -1634 -3215 --334 --491 --1560 --2618 --459 --4311 -980 -689 --1946 --1709 --2858 -2095 --544 -3272 --3122 --2492 --1710 -3318 --479 --673 -811 -3006 -314 -459 -2801 --2640 --1083 -1904 -198 -890 -1941 --589 -35 -2073 --1703 --2554 -3089 --2857 -839 -312 --2089 --1031 --774 -1815 -758 --3896 -2517 --919 --1522 -2325 -825 --170 -1042 --2333 -317 -914 --3173 -2015 -2569 -261 -94 -1538 --244 --1332 --211 --1163 -1943 --2589 --1577 -2084 -658 -537 -491 -513 -46 -635 -414 -997 -78 -147 -616 -894 -195 -857 -703 -622 -147 -118 -533 -984 -672 -242 -680 -106 -134 -319 -8 -144 -83 -898 -546 -198 -351 -525 -434 --805 -490 -1105 --266 --4 -2146 --2593 --389 -885 -546 -1101 -417 -3054 -445 -710 --979 -1651 --2156 --1369 -2127 --1587 --1127 -1924 --2734 --1170 -2761 --1584 -1091 --1245 -427 -402 -2412 --1448 -529 --3249 -1949 -2487 -2105 -1194 --832 --394 --574 -1856 --1586 -1486 -65 -840 --4631 --377 -3560 -378 -1097 -1209 --914 --1171 --1156 --1378 --28 --2789 -3272 --1948 -294 -279 -3398 --690 -703 -2065 -1094 --2204 --597 -2046 --2068 -3952 --2292 -2625 --3687 --453 -547 -708 -2301 --18 --2309 --662 --2035 -3058 --2465 -160 -1965 -71 -2214 --1362 --38 -98 -342 -88 -84 -1734 --1205 --252 --1657 -2217 --2114 -1496 --3054 --1635 -2584 --1947 -2395 -1118 -472 -291 -556 --611 -3 --1974 --2569 -220 -1388 --68 -2224 --860 --2567 -1525 --3477 -3027 -616 -841 -1242 --1286 -3174 --2015 -4063 --2973 --638 --2978 --312 -2845 -2934 --1238 -3296 --2674 -192 -956 -1290 --2710 -1842 -3533 --1264 -1226 -1736 --21 -594 --2367 --1100 --2466 --550 --933 -49 -798 --2435 -1171 --181 --2759 --1176 --2565 -1482 -2560 --2769 -1013 --1787 -2173 -2019 --1355 -662 -490 -1072 -1099 -994 -331 -1640 -2323 -2803 --1700 --2743 --503 -2724 --551 -2164 -1361 -441 -872 -207 --1445 -2776 -101 --1741 -2304 --2036 --2024 -2423 --1738 --2718 -1305 --2041 --1436 -888 -563 --288 -1272 --3956 -1994 -1268 --1212 -2091 -937 -1123 -223 -3577 --1985 -482 -2086 -804 -351 -2585 -1907 -388 --1373 -1160 --1699 --2114 -2378 --1873 -600 --1655 -1870 --1495 --3117 -521 -425 -570 --3799 -43 -356 -170 -3092 -586 -1989 --470 -132 --2234 -3003 --2375 -3156 -69 -599 -506 -2526 -2039 --886 --763 -173 --1274 --1757 --2076 --2469 --85 --651 -2985 --1673 -742 -417 --2836 -1193 --1222 -1988 --2429 --1340 -2080 --1460 -2473 -2447 -716 --986 --329 -912 -13 -165 --1981 -2387 --684 -325 -668 --2179 -385 -2867 --2378 -854 --2526 -1521 -1728 --1824 -218 -670 --454 --166 -1044 --127 -1705 -1404 -3330 --3444 -2131 -2324 --639 --544 -1210 --385 -64 -574 -2270 --233 -2574 --2809 --1990 --1941 --1585 --365 -409 -2747 --1794 --2420 --1856 -761 -476 -183 -2441 -92 --2777 -426 -2694 -2206 --160 --1839 -2523 -249 --422 -1780 -3185 --2574 -397 -911 --4293 --2289 -3473 --3257 --3520 -3026 -565 -1342 --1068 --1421 -7 --812 --2160 --83 -97 -877 -2034 -619 --2300 -2011 -2670 -74 -2291 -2039 --1450 -1814 -511 --797 -8 -2522 -799 -722 -833 -2441 --716 -864 --1666 --48 --90 --880 -76 --2807 --721 --524 -1382 --2829 -666 -293 -64 --2242 -3031 --1727 --6 --1486 -719 --2049 -1163 --870 -2255 -572 -107 -4399 -249 -368 -2527 -806 -2629 --1970 -318 --1051 -2622 --901 -1938 -354 -558 -364 --1719 --3148 -942 -865 --1846 -1355 -2342 --2425 --76 -533 --971 -1865 -1672 --3738 -1304 -567 --3483 -3988 -343 -688 --376 -1616 -1128 -2642 --1854 -2912 --3230 -2721 --1870 -2036 --743 --1445 -3062 --1967 -606 -592 -211 --475 --1803 --1415 --1991 --412 -2007 -22 --941 -60 -583 -1373 -490 -2266 -600 -404 -939 -721 -472 -348 -69 -92 -744 -136 -137 -906 -844 -554 -993 -756 -362 -394 -816 -938 -299 -192 -385 -86 -322 -526 -528 -489 -80 -243 -343 -96 -252 -354 --2225 --314 -718 -972 --1415 -1086 --1875 -3957 --2382 -1117 -1046 -1119 --1970 --492 -170 -736 -1481 -843 -1639 --698 --327 --1643 --250 --295 -2079 -2536 --3579 --1970 --242 --57 -173 -942 --2022 --161 --312 -3534 --2113 --2090 --1056 --150 -240 --872 -1765 -19 -2322 -1988 -623 -448 -3381 -1564 --2700 --1175 --1239 -1168 -628 --71 --118 -2680 --1545 --2361 -369 --2697 -244 -824 --481 --1500 --2157 -2077 --870 -1964 -394 -637 -1561 --3547 -2224 -1409 -2757 -1447 -817 -968 --2556 --1149 -1613 --1995 -1681 -1261 --556 --2050 -978 -542 --160 -949 --3143 -614 -144 -980 --2328 -2241 --1069 --346 -3507 --2714 -2010 -730 -673 --2636 --911 -2647 -469 -1500 -170 -102 -1730 --914 -1189 --501 -2074 --2110 -1872 --2397 -1468 -2155 --208 --2544 -103 -170 -658 -297 -576 --291 --1857 -3165 --3346 -1863 -2248 -2509 --459 --851 --1692 --22 -2283 -275 -295 -366 --612 --345 --1522 --2004 --780 -913 --905 --2769 --1793 -1273 --2969 -44 -103 --1065 -345 -948 -404 -535 -624 --592 -2945 -1091 -91 -605 -214 -787 -2690 --1290 -275 -1538 -70 -48 --744 -397 --75 -2029 --1960 --263 --3867 -2595 -991 --489 --1903 -16 --750 --951 -101 -332 -1506 --1882 -826 --2583 -3479 --1887 -3790 --1447 -2114 --2093 --915 --3380 -3396 --1459 -380 -658 --1968 -609 -1844 -1271 --3198 -196 --1854 -2438 --139 --220 -1447 -2392 --2472 -2716 -161 -987 --1836 --1103 --505 -1832 --1720 --291 --2324 --314 -2008 --899 --268 --2221 --910 -95 -408 -949 -1876 --205 -1660 -211 -80 --1091 -460 --499 --1067 -76 --441 --2230 -3072 -740 -633 -946 -1551 --3931 -2303 --1560 -3464 --2629 -1810 -797 --2155 -3578 --1721 -3024 --4015 -1149 -129 -545 -2382 --704 --529 --2451 --2570 -3404 -396 -1587 -1807 --2714 -2374 --2275 -1397 -1971 -370 -6 -2715 --295 -1805 -361 -1170 --1329 -1160 --2061 -854 -3034 --1670 -2572 --181 --1047 -432 -383 --2009 --1978 -109 -2398 --2949 --2245 --2457 -2608 --134 --948 --1176 --1198 --1224 --1156 -953 -51 -1592 --1733 -1734 -2780 -1493 -1793 -2933 --2617 --1178 --2156 --47 -2927 -552 --2572 -619 -596 --1623 -3044 --1080 --2385 --2511 -1878 --3734 -2163 -21 --269 -1394 -2193 --3772 -2121 -980 -45 -2058 --2093 --1595 -3127 --75 --2245 -2451 --1702 --1332 --486 --2434 -1076 -1538 -537 -855 -623 -2498 --1571 --216 -2701 --1195 --95 --2201 -583 --2112 -3232 --1195 --1253 --410 --3732 -753 -771 --3283 --1180 -2108 --1588 -1147 --1737 -888 -349 -894 -1450 -2079 -27 -0 --119 -493 -468 -261 -979 --3107 --639 --2613 -2449 --398 -1211 --2448 -791 --1144 --1028 --1201 --2935 -675 -113 --3301 -3078 --453 --1570 --659 --80 -338 -2757 --1636 -2087 -2402 --1536 --1032 -3887 -251 -129 -306 --2937 --608 -3463 --2958 -2462 -158 --1466 --2767 -1104 --2212 -1704 -1522 --3930 -805 -527 --792 --417 --871 --2565 -2412 --36 -778 --1842 -3381 --2795 -2884 --73 --2910 -2067 -938 -298 -574 -1525 -1379 --2762 -2388 --193 --1560 --1968 -2937 -676 --2451 --193 --72 --2429 -166 -697 -1 -441 -357 -277 -587 -640 -164 -298 -328 -234 -584 -35 -154 -436 -755 -789 -476 -237 -618 -673 -196 -713 -183 -468 -382 -803 -741 -550 -990 -247 -378 -660 -867 -2017 -1314 --2532 --980 -1806 -1702 --1503 --79 --963 --3177 -3095 --2952 -3239 -921 -63 -357 --2279 -1364 -1620 -2324 --956 --1061 -0 -1824 -1614 -2093 --1130 -572 -1987 -253 -630 -1340 -452 --1186 --164 -966 -1817 -133 --1810 --2618 --1170 -765 -889 --2262 --829 -836 -685 --4345 --764 -2594 --1342 --3066 -537 -1467 --96 -523 --2826 -2152 -981 -1660 -1663 -460 -8 -2745 --299 -2583 --1250 -3569 --3067 --1200 -1524 --2176 -1162 --92 --1191 --503 --180 -844 -84 -783 --39 -263 --2586 -780 -191 --1592 --1293 -3122 --1842 --2925 -859 --1815 --1301 -488 -463 --2193 --914 --2114 -3478 --3879 -1071 --3191 -3222 --1592 -3131 -457 --1993 -1599 --309 -614 -452 --662 --1444 -1951 --1068 -628 --120 --199 --2751 -702 --3091 -1998 -898 --877 --1608 -12 -607 --1218 -1546 --1531 -1996 --2542 -343 --1677 -1298 -2853 --803 -2353 --1502 --993 --3010 -619 -93 --139 --2879 -3233 --2946 -4031 --1059 --2130 -1993 --3105 --1415 -2491 --1282 -1863 -1675 -372 -314 --521 -3133 --3542 -3008 --2674 -2073 --933 --2062 -3132 --1182 -1587 -1110 -856 -412 -369 -945 -640 --3472 -565 -1022 --948 -2735 --428 --1624 --3520 -2448 -1465 --1305 -572 --285 -754 -455 --2301 -1111 -80 --179 -2111 --1903 --501 -2165 -1134 -186 -2263 -330 --116 --3096 -601 -429 --992 -1541 -279 -2775 --923 -3646 --2762 --124 --945 --1946 -1345 -2058 --4134 -3498 -815 -290 --1256 -2132 -1766 --3278 --742 --2496 -1767 -495 --783 -1998 --1473 -1183 -3051 --2924 -580 -659 -566 --2512 -1177 --2957 -1399 --393 -2548 -87 -1679 -1242 --1479 -939 --1296 --1030 -393 -176 --533 -1436 -2152 --1071 --2953 -3836 --3337 --293 --1026 -1228 --3086 -696 -3084 --2563 -67 -53 --1828 -2506 --2259 -1691 -2023 -13 --1910 --733 -1950 --2737 -2090 -701 --1134 -589 -55 -54 -58 --3228 -1247 -550 -1660 --2327 --1598 -1222 -2141 --3095 --623 -421 -70 --973 -501 -65 -2241 -533 -2667 --2762 -1693 -3996 --2928 -2296 --1346 -741 -986 --1728 --625 --2109 -809 -332 --1608 --328 --3061 --2104 --1551 --976 -376 --2453 -1725 -1807 -2156 --66 -768 -2857 -449 -210 --2373 -648 -2494 --193 -3865 --3549 -1635 -2210 --3522 --1469 -628 --616 --211 -1717 -283 -433 -1481 -2843 -37 --332 --3667 -2644 --1366 -1939 -2390 --1124 -2385 --2361 --2760 --421 -982 -534 -2120 --2515 --878 --2135 -2903 --2136 -2722 --1911 -2099 --2153 -1792 --1795 -2196 -2221 -910 -336 -2015 --473 --1744 --1602 -2368 -579 --3041 --1360 -1190 --1694 --980 -1807 --3428 -603 -845 -55 --1319 -1729 -1303 -3338 -1987 --1907 --277 --2011 --98 --1513 -1588 -837 -3760 --673 -167 -769 -2787 --1795 -2546 --1390 -1960 --672 -1813 --488 --208 --928 --303 -552 --910 -1035 -422 -557 -2570 --838 --895 -1571 --2335 -2364 --2456 --425 -2877 --1637 --699 --880 -2588 --3236 -946 -623 --1060 -1189 -1655 --2702 -3384 --2916 --1606 -2488 --3217 -2129 --287 --2945 -1672 -2267 -447 -129 -1916 --2314 --609 -2598 --1016 -87 --1580 -1021 --11 --3400 -2641 -238 -2520 --2659 -84 -363 -475 -640 -619 -801 -511 -22 -307 -912 -115 -666 -707 -138 -304 -845 -136 -802 -197 -445 -574 -396 -173 -700 -894 -32 -332 -617 -194 -428 -122 -267 -856 -110 --237 -1395 --69 --1720 -3891 --508 -1769 -1790 --481 --1049 --179 --2708 -3710 --1981 -251 -250 -1683 --295 -1306 -2790 --3891 -2662 -1464 --2197 --2331 -1444 -204 -1467 --672 --3071 -892 -329 --2393 --20 --2326 --2053 --1341 -489 --1710 -3570 -1487 --763 --1858 --57 -2202 --2759 -896 -547 -2996 -1751 -1886 -1090 -3004 -267 --2455 --473 -2033 -2070 --3021 --2654 -2200 -2228 -673 -599 -1713 --3202 --1496 --2639 -1226 -100 --1398 --565 --2215 --900 -1043 -266 -1813 --1239 -917 -24 -2403 -1412 -1309 -2778 --2695 --257 -2368 --1918 -725 -1082 -2650 -522 --2479 -1222 -937 -588 -2460 --2738 -442 -1365 -2089 -73 -2772 -2379 -705 -1034 --2724 -784 -556 -972 -974 -380 -1682 -2209 --3483 -1751 --134 -1351 --1090 --11 --1736 --2265 --923 -478 -735 -2314 -277 -732 --131 --2431 -2073 --2814 -912 --1040 --2177 --1 --2816 -1975 -1624 --1749 -779 -1420 -712 -743 -905 --1330 -1793 -3033 -350 --2562 -3347 -459 -3856 --2935 -1228 --301 -1915 -151 -354 -714 --2616 -2900 --2238 -642 --2217 --2285 -1470 -1653 --3302 -2685 --2650 -413 -24 --67 -271 -789 -2722 --276 --1100 --314 -126 -2009 --3333 -1676 -1074 --642 --3109 -1610 -1218 --3233 -824 -563 --1494 -2495 --113 --90 --1918 --1821 -3679 --3168 -1385 --840 --1280 -1405 -607 -1624 -19 -167 -3698 --3392 --2149 --1760 --252 -1252 --2399 -864 --1933 -1724 --1665 --408 -2641 --1385 -948 -924 -1001 --3037 -2761 -213 -2525 -1082 -2056 --2170 -2118 -757 --2157 -1225 --3017 -886 -440 -437 --575 -2452 --3049 -2377 -1214 -132 --152 --1591 --2631 -751 -2384 --2187 -381 -3048 -275 -465 -1270 -414 --2165 -1280 -274 --3499 -1199 -2061 -2177 -577 -2751 --3043 --1612 -2286 -448 -548 --306 --3196 -2099 --1166 -1011 --247 -709 --756 --2587 --211 --3205 -3482 --473 --2936 -682 -547 --533 -2029 --1893 --3155 -1676 -2906 --99 --1658 --780 -382 -3114 --1814 -1137 -764 -330 -258 -477 --1110 -1467 --1382 --1234 --3438 -1785 -2396 --1156 --323 --1251 --868 --1419 --1064 -731 -913 -1609 -2018 -64 -3322 --1187 --1545 -2078 --1447 -2116 -975 --2022 --1323 -2205 --458 -320 -779 --963 --926 --699 --2617 -922 -1458 --1991 --2578 -1755 --780 --2885 -2667 --1632 -460 -929 -705 --2791 -28 --292 -1720 -2482 --3022 -1041 -781 --2525 -2939 -1499 -2879 --598 -1869 -413 -497 --1291 -2433 --1482 -1231 --1813 --1217 -967 --852 -850 --587 --2276 --176 -2537 --867 -165 -740 --2921 -3332 --982 -2554 --541 -1282 -2118 -552 -342 -2032 -367 --284 -25 --2419 -878 -424 --899 --63 --25 --2422 --2058 -1853 --913 -2089 --1278 -2522 --130 -2158 --3946 --439 -222 -387 --2561 -3280 --2671 -2 -2327 --1367 -2567 -196 --33 --1895 --405 --3499 -4311 -228 -100 -306 --376 -1792 --617 -2062 -2481 --787 --2198 --2065 -1258 -2429 --1214 -2930 --3775 -1559 -403 -518 --1752 --2465 --1093 -3255 --1898 -2116 -2188 --403 --1735 -1018 --393 --1479 -2713 --178 -967 -805 --1416 -1603 -2258 --989 --496 --2132 -3120 --451 --764 -525 -479 -1011 -592 -1368 -96 -672 -667 -862 -32 -513 -432 -14 -918 -473 -683 -495 -752 -331 -456 -162 -528 -462 -607 -533 -219 -114 -948 -779 -9 -966 -396 -591 -78 -347 -658 -716 -266 -210 --1489 --1277 --1648 -709 --2517 --1663 --68 --998 --399 --1872 -2256 -1022 --717 --1964 -380 -385 --1948 -473 -2314 --188 -762 --2613 --2013 --1666 -809 --1548 -1664 --2435 -824 -3632 -50 -995 --170 -2911 --2618 -584 -2291 -1937 -2395 --4013 -2732 -2657 -424 -2566 --438 -3109 -20 -95 --2455 -1000 -985 --1086 --2279 --1435 -1023 -3804 --2453 --3644 -3792 -1792 --3517 --1450 -436 -315 --1218 --905 -767 --972 --271 -1107 -1024 --2451 -667 --31 --2516 --139 --1837 -850 -704 -959 --2390 --480 --263 -390 -174 --2993 -1232 -2999 -1421 --1944 -717 --1997 --1265 --3051 -876 -791 --477 -1358 -43 --3327 -1520 -118 --1118 --2841 --1841 -1121 --1581 -1011 --514 --88 -84 -117 --818 --19 -3729 --2101 --2192 -1264 --1394 -2422 -1492 -1819 --387 -1212 --3139 -2086 -275 -482 -1831 -415 --4167 -3691 --248 --1004 -2365 --1873 --886 -1945 --2497 --2326 -2250 --1134 -211 -314 --2455 -2542 -793 --1808 --456 -2399 --409 -1178 --617 -1358 -2195 -310 --3002 -1320 -548 -838 --1607 -1953 --1471 -18 --175 -1659 --1812 --2145 -810 --206 --416 --1374 --712 --464 -115 -933 --1115 -160 -2078 -823 --1035 -887 -3307 --2116 --3093 -2665 --34 -3093 --2518 -2908 -235 -686 -2274 --3333 -2320 --2053 -1070 --492 -135 -1453 -1578 --2790 -614 --3544 -3165 --280 -251 -259 --2122 -3378 -2106 -1203 --2777 --107 -2203 -513 -1760 --2026 -2580 -2209 --3159 --1062 -42 -541 --2265 -596 --522 --857 --683 -971 --3344 --320 --273 --1569 --2726 -2160 -2854 -908 -74 -506 -2803 --448 -149 --462 -1174 -486 -705 -2392 --2348 -564 -2550 --4007 -2300 --2632 -240 -678 --1731 -1876 --1917 --214 --849 --1634 -239 --1720 -3406 --4019 -2212 -3619 --1889 -238 -419 -256 -1161 -589 -1340 --2155 -40 -2693 -388 -146 --1684 -1742 -141 --3791 -1144 -3531 -76 -540 -1159 --1802 -258 -2853 -902 --1745 -21 --1721 -3640 --593 -567 -1640 -652 --154 -925 -439 --2359 --1041 -2447 --2204 -2144 -2396 -390 -169 --3923 -2638 -2186 --190 -1083 --41 -37 -703 -1000 -714 --1891 -611 -462 -2693 --3493 -1867 -1609 -72 --1249 -2868 --2031 --1603 -960 -635 --1222 -569 --889 -2070 -918 --3214 -3527 --8 --2709 -3242 -1363 --1527 --988 -3162 -245 -283 -868 -2012 --1691 -2413 --821 -1553 -435 --1778 -158 --1241 --2580 --1888 -1717 -1124 -316 -726 -518 -920 -1020 -1026 -1142 --1801 -1809 --534 -89 -2390 --1088 -1366 --3500 -864 -126 -92 -3029 --2235 --949 --2735 -191 -1678 --858 --1035 --1561 --689 -1830 --50 -1392 -2008 -841 -145 --1912 -1163 --128 --194 --1722 -946 --817 -2495 --1728 --1565 --815 -1338 -3472 --2117 -53 -536 -3302 --2771 --2015 --1238 -805 --220 --497 --1248 -2647 --2471 -465 --847 --2908 --11 -733 -10 --2165 --206 -2759 --1806 --2146 -59 --2451 -2099 -1368 -158 --414 -83 -89 -1842 -141 -563 -2511 -2081 --2724 --1272 -2333 --2122 --119 -1964 --1406 --894 -125 --529 --2796 --1107 -608 -807 --2062 --2199 -2379 --2798 --396 -239 --577 -1098 -2703 --3346 -994 -1134 --940 -2874 -43 -733 -731 -314 -998 -839 -724 -248 -339 -130 -349 -645 -813 -958 -757 -659 -224 -451 -986 -878 -591 -578 -77 -629 -291 -869 -743 -712 -873 -756 -643 -596 -613 -825 --1179 -529 --1121 -3437 --2631 -3182 --2107 -981 -1880 -984 --2284 -2162 -1694 --513 -30 -478 -2284 -564 --717 --859 -1105 -2436 --1395 -1932 --3637 -2489 -91 --263 --2443 --334 -33 -262 --108 --1438 --1255 -1194 --1483 -913 -1805 -2324 --1177 --375 --1321 --1883 --268 --1764 -731 -63 -3838 --548 -783 --1569 --851 --2164 --1686 --2543 -1015 -710 -192 --209 -2454 --1215 -289 -611 --930 --1219 -1922 --1765 -2137 --1088 -1706 --1384 -2024 -1633 --1632 -316 -2454 --2014 -818 -780 --566 -2471 -1307 -1391 --2142 -1398 -2697 --2132 -833 -2061 --1928 --333 -1591 -2579 -96 -417 -2612 --2734 --1658 -2306 --268 --2337 -40 -313 --1632 -1845 -1505 -1556 -2029 --1831 -991 -305 -368 -1997 --1510 -2451 -208 --859 -98 --2011 --2574 -2374 -1291 --2038 -2012 --1176 -872 -612 -795 --2749 -910 --1203 -1801 -64 -719 -2226 -1127 --3639 -2364 -889 --2257 --405 -678 -947 -2196 --1750 -2985 --1230 --1631 -408 --685 -2176 --515 --1460 --1286 --45 -1762 --745 -259 -277 -2972 --2861 -804 --2874 -2634 --299 -3207 --513 --910 -1169 --593 -2875 --2480 -1717 -195 -814 --2841 -479 --213 -5 --948 --2223 --447 --1926 -2319 --2576 -2543 --3890 -3204 --2163 -961 -865 -1870 --788 --735 --1870 --875 --1926 -1267 -195 -13 -651 -657 --1767 --225 --2178 -640 -489 -3052 --3046 --962 --430 -2094 --223 --901 --446 -882 -2536 --3765 -3216 --515 -587 -132 -340 --2468 --665 -1475 -3177 --3387 -1886 --1692 -1362 -1786 --1764 -113 -65 --2555 -89 -786 -135 -573 -1822 -1842 --2237 -2020 --1389 -2909 --3615 -3488 --110 --1206 -2786 --1351 -91 -736 -969 --3233 -193 -1796 --1198 --381 --1786 -1732 -134 --951 -553 --76 --1278 --2618 -3253 -790 -646 --652 -1680 --2611 -2015 --2715 --1201 --242 -2254 -1000 --2433 --1073 -1000 -1634 --2633 -933 -518 -3491 --1870 -2323 --447 --1104 -735 --963 --867 --542 --566 --463 -914 --1998 --619 -655 -225 --2447 -1913 --470 -1407 --3484 --1412 --1491 -1765 -470 -957 --2768 -704 --1531 --276 -665 -543 -1013 --2451 -960 -1308 -1339 --1925 -2667 --2982 -3328 --2543 -3106 --2406 --1395 -2317 -135 -899 --401 -1045 -106 --3465 -3041 -119 --760 -400 -1425 --1760 --2443 --2183 -3936 --3120 -771 -558 --1861 -89 --535 --1898 --2074 --1531 --2312 -2431 --1575 -635 -2347 --636 -1276 --2872 -592 -569 -370 --1433 -875 --2304 -523 -917 -1824 --1186 -1051 --3497 -2267 --938 --2289 -829 -870 -331 --2485 --638 -1639 -2674 --2161 -1243 --2037 -1873 --1565 --331 -799 -2188 -266 -801 -260 -996 -3058 --1973 --1951 --1871 -4349 --1372 --378 -199 -508 --369 -1110 --3267 -538 --2839 -581 -847 --1612 --783 -3168 -3122 --2881 -2205 -831 --1315 -191 -2380 -1953 -931 --772 -1944 -709 -359 -643 -2949 -1171 --1613 -455 --1191 -375 -1112 -2218 --1548 --1310 --1056 -1036 -211 -406 -899 -1823 --4425 -470 -3173 --2351 -1275 --43 -2508 --3726 -716 --347 -2950 --990 --207 -821 -959 --3486 -3100 --3153 -892 --1388 -169 --2280 --1930 -3176 -907 --464 --728 --151 -655 -467 -994 -639 -963 -150 -482 -322 -89 -473 -993 -182 -123 -852 -368 -267 -171 -149 -812 -508 -12 -732 -616 -440 -716 -182 -869 -221 -16 -791 -600 -415 -576 -567 -210 -1151 --337 -1688 --2342 -3050 --3346 -1679 --1585 -1889 --2184 --1578 -854 --2433 --1772 -506 -678 -411 --981 --355 --132 --48 -1074 -223 --697 --1063 -2487 --523 --3235 -3894 -1620 -486 -424 --2975 -3248 -1754 --1515 --316 --1119 --3420 -2295 -1704 -1495 --3214 -3239 --1002 --1768 -284 -431 -2515 --1918 --227 --319 -130 -2761 -1367 -656 --1664 -639 -377 --155 --441 -2303 -258 -364 --1967 --1106 -644 -1904 --423 --1161 --1841 --998 --975 --2482 --1100 -568 --1750 --357 -969 -198 -2046 --1586 --1260 -1143 -272 -1967 --2299 -1212 -2161 --1465 --319 -2930 -639 --179 -59 -801 -1105 -59 -302 -902 --2100 -3186 -570 -2946 --1914 --2196 --2411 --3493 --242 --317 -659 -806 --1909 -1217 -306 --3690 -927 --3068 -2149 --1720 -1722 --698 -1951 -1212 --513 -2958 -94 -791 --2018 -3146 -1683 -1250 --1915 -2718 --2601 -1339 --64 -2797 --2618 -2192 -2249 --178 -208 -851 -1314 --1037 --2669 -427 -12 --2482 -1711 --2664 -465 --2906 -215 --1549 -451 --1427 -999 -265 --2609 --1161 -2152 -1936 -629 -1382 --2835 -2548 --351 -2173 -2789 --1771 -2514 -1302 -579 -630 -1682 --1887 -361 -929 --1834 -1785 --1664 -1313 --2574 -887 -543 -2074 --3415 --1031 -972 -162 -1520 --3353 -1316 -806 -3458 --2136 --324 -1936 --2330 -570 --2835 -1934 -1566 -2951 -328 -255 -667 -2544 --401 -618 --1259 -363 -2779 --2338 --2296 -1480 -3347 --1240 --2474 --78 -498 -59 -2821 --1218 --2356 --2522 -1897 -1002 --38 --1388 --2283 -2910 --3583 --1638 --967 -874 -83 -90 --1691 -414 --612 --698 -1767 --2260 --1006 --527 --617 --966 -1320 -2020 --368 -1633 -625 -563 -1077 -1905 --1218 -1415 -814 -1155 --945 --1056 -936 --3148 --1139 -1798 -3160 --3116 -496 -662 --323 -668 --222 -1553 -1161 -2015 -151 --770 -1170 -1803 -2395 --1776 --2166 -207 -463 -412 --902 --2860 --512 --1898 -908 -1376 -36 --602 --899 -2597 -728 --555 --1747 -268 -913 -697 --215 -1383 -1063 -2381 --461 -2612 -134 --269 --1739 --1303 --2277 -576 -522 -529 -558 -885 --539 --29 --1536 --763 -3281 --1595 --1452 --2040 --2779 --838 -314 -757 -2791 -96 -975 -884 -2037 --1419 -776 -256 --4197 -3854 --1455 -2362 -2414 --1238 -1561 -2521 --3055 --701 -276 -125 --840 --1163 -608 -2857 -935 --145 -146 --57 --1530 --25 --1169 --887 -658 -1315 -125 -393 --1745 -1140 -1476 --2483 --1584 -779 --2843 -3383 -597 -2880 --3298 -3472 -1242 --1867 -408 -800 -3333 -1978 --847 -1441 --1311 -1548 -837 --2856 --420 --2247 -2112 --3368 -216 -1851 -351 -137 --2402 -506 --2560 -2729 --2958 -704 --1200 --2283 -935 --1567 -897 -2016 --1895 -3086 -6 -287 -3412 --3232 -777 -838 --1447 -2801 --2210 -2256 --577 --2025 --412 -1621 --2307 -493 -777 -744 --1960 -567 --2626 --985 -336 --3665 -1626 -1865 --2087 --1328 -1 -504 --999 -442 -528 -887 --3108 -1652 -2369 --3272 -3550 -1243 -1744 --2735 -1145 -1523 --21 --455 -1756 -440 -621 -168 --436 -1711 -1982 --753 --2454 -2392 --28 --1222 --1083 -2197 -1860 --434 -2707 --3265 -947 -538 -327 -873 -873 -73 -839 -452 -392 -522 -98 -168 -368 -532 -232 -468 -87 -580 -874 -143 -510 -93 -263 -807 -650 -786 -757 -170 -768 -100 -20 -895 -103 -532 -1406 --1319 --2222 -3072 --1256 --2632 -581 -1698 --2927 -1504 --1506 -795 -156 -882 -305 -646 -1709 --1570 --2288 -3112 --2872 --2237 -3451 --2745 -1894 --1755 --1790 -1262 --1168 --869 -781 -965 --171 -1414 -65 --2831 -2165 -1531 -813 -1056 --2958 -1699 -2232 --1814 -2268 --2070 -919 -953 --1041 --1360 --638 -1130 -1984 --990 --2043 -2657 --716 --463 -2265 -1563 -2336 --2547 -920 -740 -510 --2260 -786 --2488 --857 --1456 -975 --3156 -3295 -2309 --3826 -3114 --2080 --64 -213 -293 --56 -3110 --1802 --188 -1497 -254 -74 --321 --1358 -636 -2248 --3421 -378 --2188 -749 -878 --2837 --832 -529 -1760 --1227 -2068 --2075 --491 -2779 -445 -560 -1262 --212 -2869 -883 -204 --192 -1721 --2243 -3411 --1 --1500 --1062 -2686 -50 --874 --1499 -1633 -194 --3320 -576 -714 --703 --2750 -21 --611 --2710 -3371 --668 --2317 --2843 -2746 --902 -1143 --1972 -190 -544 -45 --1243 -457 --1528 -2800 -134 --2841 -1506 -820 -112 --1466 -1776 --1923 --1982 -396 -340 -386 -3241 -216 -1006 --818 --1924 -1455 --2343 -3473 --1813 -546 --3195 --223 -32 --955 -969 -884 --2290 -1411 -1725 --174 --1681 -2119 --1723 --1328 --575 -568 --344 -405 -30 --1801 -821 -8 -1088 -1237 -907 --3127 --583 -2184 --952 -1243 -1426 --302 -205 -149 -1504 -602 -179 -795 --75 --2125 -793 -2402 -691 -1686 -1161 -1994 -2191 --594 -76 -1591 --884 -2305 -429 -772 --603 -2813 -418 --732 -1164 --3260 --1561 --435 -155 --3328 -3967 -1054 -597 --1568 -652 -844 --570 --361 --927 --552 --3328 -3723 -3404 --1513 -2201 -1784 --2812 --1053 --1059 --390 -535 -419 --2045 --1306 --389 -1987 --1219 --3038 --275 --401 -1257 -1518 --1887 -637 --402 -2219 -834 -554 --1234 -1733 --511 --2559 -1208 -946 -446 --1227 --639 -2735 --1546 -1568 -2271 -718 -184 -79 -2993 -1673 --900 -305 --1785 --2304 -152 -1390 -2771 --2964 --2028 -1656 --430 --4 -490 -343 --1248 --3324 -1978 --1369 --962 -984 -1073 --1031 --583 -1722 -1645 --1325 -1519 -2563 -355 -204 -647 --534 -548 -2156 --2636 --1157 -1876 -3524 -1573 -178 -143 -65 --3103 --1998 -579 -380 --2379 -2403 --2049 --128 -3466 --3671 -2501 --4091 -1186 -2087 --2899 --719 -1979 -197 -449 -531 --533 -1392 --1147 --355 --481 -1465 --1522 -386 -1959 --12 -3530 --2035 --1530 --166 -626 -575 -3413 --2372 -1230 -658 -649 --1536 -2146 --2573 -316 -2304 --991 --464 -1260 -746 -185 -91 --2708 --3085 -1652 --12 -2602 --865 -1489 -1198 -1711 --188 --887 -689 --389 --3046 -790 -211 -2445 -1114 -2427 -408 -533 --1878 -847 -1705 --1511 -1432 -1947 --477 --783 -1927 -151 -527 -15 -1757 --3383 --2311 -3421 --3271 --1366 -211 --860 -1705 --1717 -496 -2044 --628 -766 -731 --589 -1352 -178 -2138 --2577 -2060 -457 -2414 --1888 -85 --1606 -1492 --1443 -861 -919 -190 -1224 -357 -1037 -1097 --1633 -1712 --901 --532 -979 -920 --2339 -2630 --749 --3038 -861 -183 --287 --1748 --3796 -2915 --167 --236 --2332 -266 --2329 -748 --2841 -2088 --2026 --1136 -756 -335 -914 -313 -141 -699 -831 -677 -951 -92 -793 -504 -410 -189 -862 -495 -397 -468 -909 -379 -165 -886 -771 -159 -963 -553 -259 -333 -548 -946 -281 -873 -688 -467 -2256 --353 -2173 --307 -1742 -3387 --1855 --152 -465 -374 --146 --1478 --197 -1840 -46 -586 --2553 -2616 -399 -894 --169 --1780 --2341 -1696 -262 --380 -448 -1357 --200 -1113 -408 -123 --1961 --1379 -2079 --1883 --115 -741 -135 --2677 -2020 --2950 -1376 --550 -2256 --2618 -920 -804 --841 --2002 -2702 -78 -1077 --2763 -1835 -604 --1670 -943 --1692 --1370 --863 -1691 -221 -627 --3143 -2354 -762 -1956 -343 -353 --2725 -3648 --1849 --727 -2460 --2922 --99 --700 -816 -917 -2131 -755 -1401 --2242 -1924 --1764 -1877 --957 -2251 --3211 -2258 --1111 -923 --2595 -897 -33 -3696 --2918 -806 --2106 --1296 --2912 -2262 --1754 --1687 -1210 -8 -1395 --152 -1402 -22 -988 -1164 --1017 -2617 --2084 -608 -2709 --2776 --1227 -1430 -2020 --4053 -2660 --3203 --441 -333 -590 -2076 --99 --1837 -1680 -1566 --2505 --203 -1862 -273 --3004 -3565 --2172 -373 -2010 -166 -167 -430 --641 -2080 --1991 -2376 --282 -624 --144 -1798 -1976 --2337 -1087 -2727 --3323 -418 -294 -538 --664 --1246 --103 --292 --1052 -2404 --2822 --2004 --2604 -1441 --2390 -950 --270 -462 -775 --1037 -3093 --3397 --1443 --580 -2269 -2021 -1161 -1449 -1741 -923 -1976 -531 --1019 -320 -53 --97 -235 -1826 -1612 -417 --852 --940 --911 -803 --3105 -1495 --1367 -566 -461 -469 -800 --1544 -857 -883 --162 -474 -429 --2426 -439 -203 --57 --1307 -1710 -399 --2511 -994 -112 --1669 --1233 --1309 -2190 --2043 -116 -3324 --1892 -686 --1194 -250 --3030 -2390 --142 -551 -702 -1860 -1935 --153 --2557 -3054 -97 --2820 --1440 -643 --787 -1128 --401 -2097 -3030 -55 -414 --169 --341 --2323 -2136 --1810 -986 --602 --1867 --371 -1264 --2538 --111 --2262 --911 -545 -425 -3211 --1040 -2489 --1635 -707 -447 -259 -2452 -2243 --1191 -1998 --2553 --2245 -1837 -600 -267 --2937 -2882 --2804 -834 -1542 --153 --3306 --206 --1776 --1198 -1212 -2841 --987 --3730 -938 -444 -747 -1397 --856 -496 -541 -192 -2810 --162 --1352 --1276 --564 --236 -854 -1619 -824 -779 --491 --910 --1403 -3178 --325 --853 --1574 --599 --2725 -1388 --536 --1981 -1647 --2703 -750 -353 --2269 -650 -3011 --2224 --1936 -1336 --175 --1343 -251 -1452 -3956 --2303 -2657 --1839 -363 -662 -229 --1883 -996 --629 -392 -2863 --1059 -1639 --2292 -429 --3607 -593 --1234 -1594 -554 -432 --2982 -910 -1723 -1511 --2575 -934 --2972 -882 -732 --3449 -3920 --1845 -2595 --582 -23 -669 -158 -332 --2730 --1050 --1662 --207 -429 --875 --1821 -953 --1899 --1708 -2430 --2879 -800 -176 --125 -612 -176 --979 -728 --1892 -1456 --918 -2805 --1306 --568 --1734 -1960 --1515 -160 -781 --1081 -1448 -2256 -802 --533 -3235 --2235 -917 -1169 --1185 -3039 --1382 --1963 -1357 -153 -320 -2115 --978 -553 -844 --2534 -1486 -1212 --44 --2861 -2205 --472 --1144 --1531 -391 -982 -200 -2128 --2010 --1064 --135 -2609 --2147 --1440 -1431 --477 --2289 --116 --1862 -1527 -1729 -74 -12 --3192 -3645 -3869 --2938 --2277 -3629 --1902 --86 -3098 -2008 -1076 --155 --761 --446 -869 -770 -922 -521 -30 -490 -133 -31 -332 -515 -349 -731 -500 -374 -397 -446 -351 -83 -366 -328 -197 -250 -446 -652 -400 -270 -692 -580 -159 -794 -845 -116 -296 -681 -320 --245 -200 --1441 -1472 -951 -2258 -690 --3171 -2307 -1071 --2805 -1675 -487 -972 -451 --2108 --1596 -2763 --777 -1002 --2254 -683 -568 -2261 --1014 --2930 -912 --2423 -65 -945 -935 -2372 -1028 --3263 --1306 -2953 -1534 --2101 -2008 --2431 --548 -514 -1977 --1637 --517 -257 -525 -1431 --741 --1778 -1387 --3643 -2804 --2544 --2601 -2851 -605 -425 --996 -2740 -485 -986 -24 -614 --1534 --1453 --2472 -1881 --591 -3920 --2907 -3340 --2617 -168 -2590 --632 --1390 -567 -376 --1458 -318 --794 --1367 -1941 --14 -414 -1531 --1590 --1779 --504 --1342 -321 -2696 -470 -87 --2568 -1181 -673 -1242 -826 -3210 --2856 -1160 --890 -2501 -1627 --1891 -858 --348 -908 -963 --516 --1913 -311 -1620 -1790 --3297 -4729 --2134 -266 -1443 -1158 --1128 -4108 --2551 -204 -742 --354 --2147 -3123 --3711 --1974 --1115 --686 --2903 --503 --1835 -1352 -2268 --3846 -1785 -491 -470 -511 --1029 --370 -2901 --897 -2259 --1091 -2293 --887 -640 -1265 --3298 -2803 -2162 -587 -881 --1522 --1931 -3312 --1058 --1108 -2491 --2497 --2177 -123 -1867 --2700 -565 --2915 -1986 -939 -109 -3915 --1913 -1647 -1873 --1859 --1177 -895 --1000 -1282 -24 -1349 -2362 --483 -113 -623 -273 -727 -113 --455 --2449 -241 --1100 -1461 -243 --922 -3834 --4352 -1677 -153 --596 -998 -835 --1369 --454 --177 --74 -314 --246 -1074 --534 -3139 --2844 -1477 --341 --81 --562 -890 -16 --493 -1442 --1057 --1207 --2068 --322 -696 --99 --2733 --1719 -1217 --963 --1220 --573 -503 -850 --745 -465 -741 -2479 -2225 --999 -2110 -715 --665 -911 -55 --687 -1153 --2582 -245 -414 -638 -1450 --1309 -356 -580 --2270 --2182 -3746 --2748 -1412 --1658 -3685 --494 --572 -907 -981 --277 --2165 -3293 --3056 -2236 --1340 --1093 --3335 -2607 --2623 -2258 --2367 -1828 --2124 -90 -89 --2394 -322 -760 -178 -1071 -155 -1970 -1139 -1510 --1217 --1381 --288 --2268 -4424 -445 -926 --396 -2801 --1715 -62 --1766 -2134 -1168 --2046 -94 -508 -1726 -1311 -719 --1173 -559 -152 -1516 --450 --1112 --1923 --390 -604 --2892 -2796 --395 -337 --1381 -2636 --1849 -1773 -542 -481 -1122 -2625 --2096 -2914 --995 --2026 -3345 --2834 -3435 --2593 --2328 -592 -1996 --2066 -679 -899 --1348 --3142 --459 -1339 --2353 -1315 --3425 -1970 --1632 -1935 -372 -2087 --2450 --1362 -767 -553 -1914 -2202 -1558 --1925 -2591 -106 -2740 -1294 --924 -1482 --2403 -1096 --342 --1512 -898 -603 -888 --683 --552 -710 --1834 --978 -1130 --2448 -931 -2229 --1230 --742 -189 -2908 -750 -935 --419 --990 --1120 -514 -2219 --1407 -953 --2764 -1964 --3231 --151 -1044 -729 --1100 -583 -541 -2328 --1278 --310 -1595 --73 --1398 -391 -1846 -671 -2784 -1423 -1655 --1639 --343 -58 -987 --1621 -224 --2913 -262 -3318 --1208 --1200 --2335 -2544 --25 --2440 -963 -1728 --185 -703 -5 -1575 -3272 -1443 --2557 --674 -1993 --2814 -2007 --2064 -1026 -720 -2932 --2071 --1673 -414 -249 --1129 --3197 --2261 -3176 --2721 -1988 -2388 --1676 --2164 -1442 --2198 -2158 --1003 -1984 -538 -350 -485 -977 -262 -891 -563 -268 -844 -826 -340 -177 -908 -210 -835 -602 -23 -862 -989 -999 -951 -426 -194 -586 -237 -233 -412 -918 -360 -8 -443 -262 -593 -124 -218 -1176 --4160 -2355 --3126 --1051 --1909 --949 -2420 --744 -1757 --1452 -2122 --285 -222 -727 -550 --2199 -3166 --956 -2599 -222 -2923 --1264 --2212 --1108 -1127 --3207 -2865 --2437 -269 -827 -2334 --3800 -1108 -1960 --4302 -1506 --1866 -839 -2507 -2580 -1785 -1691 --747 -2838 -309 -674 -278 -2551 -2524 --2255 -3158 --2423 -1822 -2159 --2680 --2600 -1979 --1966 --2250 -2312 -358 -165 -2170 --566 --623 -2158 -992 -1346 --3117 --1476 --1250 -351 -1615 -1226 -250 --1049 -611 -641 -520 --535 --2948 -1264 --692 --2188 -2605 -1593 -2617 -770 --1863 --2095 -3293 --2413 -109 -436 -859 --3555 -2898 --607 --1999 --1648 --232 -98 --2637 --2124 --2137 --701 --2723 -3668 -180 -282 -1385 -1587 --214 -381 -1519 --372 --2261 -2515 -556 --1551 -340 -2942 --4026 -2395 -352 -799 --1261 -1140 --4028 -522 -2153 -2030 -223 -2681 -2683 -948 -1683 --1663 -3347 --3329 -551 -869 --281 -394 -3028 --1750 --1527 -2729 --556 --1061 --2260 -1166 --2758 -2691 --3372 --542 -993 -444 --851 -1810 --2993 -1946 -722 --2760 -2132 -1873 --2781 --338 -2900 --790 --1110 --2847 -913 -905 --1839 --2060 --1617 -1328 -1948 -1293 --2826 -2276 -183 --1050 --2565 --1050 -765 -658 -393 -515 --1855 -329 --832 --1758 -677 -374 --1445 --2163 -2908 --1799 -4237 --3346 -1657 --1550 -35 -499 -2456 -481 --810 --65 --2347 --114 -82 -2102 --3432 -574 -102 --1523 --1112 -1358 -396 -884 -579 -1650 -254 --1453 -2722 --686 -2787 --1646 -3162 -1253 -385 --2673 -1804 --1645 -491 -656 --1821 -1611 -878 --1257 --3307 -1736 --3370 --1320 --273 -1281 -1467 --990 -1295 --1620 -745 -526 --1485 -2362 --2126 -364 -1764 -2232 -644 -2605 --565 -1050 -1228 --1606 -2374 -1922 -597 -989 --319 -444 --137 -110 --1225 -167 -602 --969 --1859 --210 --1295 -2555 --1844 --1972 -798 -840 -1017 -16 --953 --532 -2296 --3059 -1713 --90 --3324 -1282 -746 --1414 -380 --1930 -235 -293 -2148 --2295 --868 -2645 --3039 -1947 --702 --26 -2311 -1187 --903 -699 -275 --2003 -393 -195 -1879 --1495 -950 --1610 -848 --1852 -3014 --1358 -1191 --238 -2604 --830 -1090 --775 -938 -11 -1528 --2561 -1964 --2335 -2070 -2181 --1263 -678 --3363 -3370 --2872 -3264 --2548 --2288 -839 -613 -384 -2964 -1005 -1868 --2010 --2124 -3524 --2215 -1972 --2757 -2274 -741 --618 -1895 -920 -892 -1311 --1172 --2010 --2016 -1294 -502 --1803 --2172 -1217 --830 --1725 --1339 --2006 -2725 -935 -111 --1479 -2710 -2418 --130 --1325 --1700 -717 -2178 -1233 --1825 -962 -1171 --2206 -1312 -37 -889 -924 --2846 --27 --1778 -1584 -2485 --1424 --1239 --487 -2161 --2868 -1424 --750 -2932 -60 -200 -1273 -2628 --3086 -1541 --2658 -432 -2713 --1304 --1681 --2592 -2962 --2746 -949 -1818 -587 -715 --1719 -244 --1037 -2025 --1580 --2176 -799 -803 -1724 --1153 --2520 -1771 --968 -1686 -211 -352 -951 --2734 -2696 -255 -1136 -1070 --504 -1212 --2671 -1210 -2834 --3883 -3913 --2724 -183 -801 -275 --1214 -1905 --2859 --386 --227 -1632 --2118 -802 --1234 --134 --888 --132 --3156 -318 -834 -370 -908 -943 -474 -122 -379 -900 -632 -794 -417 -493 -317 -547 -785 -882 -587 -544 -497 -462 -376 -191 -200 -121 -263 -613 -355 -113 -335 -223 -214 -449 -239 --150 -293 -2149 -1726 --846 -1318 -2261 -2127 --704 --1938 --1503 --202 -4020 --2638 -684 -187 -571 -447 --2149 --814 -1243 -338 --2910 --641 -449 -1983 -3158 -376 --1022 --1095 -176 -424 --1965 -2516 --1336 -2322 -2504 -667 --1837 -606 -2606 --1703 --3967 -650 --1582 --1069 -890 -191 --2314 -1850 --1154 --984 --1875 --1691 --2632 -2625 --2915 --1130 -3204 -560 -1354 --2026 -861 -738 -887 -1091 -1148 -744 -918 -32 --1447 -1046 --1002 -3050 --2646 -1178 -1362 -812 -656 -249 -569 --1349 -569 -1773 --2571 --2737 -2592 -1245 --2682 --1400 -74 --130 --1358 -1351 -54 -25 -2051 -1938 --321 -1411 --1687 -3035 --2599 -1178 -1801 --76 -2501 -2010 --2857 --1539 -372 -878 --1126 -1002 --1729 -252 -1699 -1082 --2199 -2455 --1255 --1610 -2372 --2702 -2239 -2260 -61 -65 --2024 -989 -2275 --1425 -2640 --2839 --1052 --1209 --2927 -1184 -687 -1594 -1058 -1027 -810 -984 --16 --1773 -2168 --1795 -307 --3580 -452 --505 -640 -2448 --2310 -463 -738 --1803 -869 -491 --1579 -3039 --1107 --524 -2196 -3355 --3122 -2074 -2231 --2476 --697 -1005 -3278 --1347 -514 -234 -823 -2881 --2182 -1138 --1244 --801 -2916 --895 --442 --2 -2379 --2279 --3577 -2472 -518 -340 -2697 --2833 -2983 -1125 --2223 -1633 -498 --2117 --1131 --756 --1635 -2558 -2733 --1718 -324 -376 -215 --2733 -2427 --1461 -2097 --2535 -628 -225 -2338 --1753 -2457 -79 -1610 --469 -68 -853 --3484 -1696 -1701 -821 -881 -598 -796 --2927 --2094 --1537 -673 -1680 --2098 -269 -924 -307 -1519 --3330 -2144 --3004 -3264 --4421 -3391 -1136 -2432 --1639 --215 -2333 --484 --2096 -899 -388 -39 --1306 -353 --1303 --1033 -2278 --2683 -2561 --1043 -1087 --746 --1356 -480 -2118 -288 -150 --1050 -2826 --1500 --592 -564 -1683 --1115 --2523 -1987 -609 --708 -1617 --2690 -2801 -964 -292 --1527 -391 --475 -523 --516 -711 --1466 --96 -2728 --3491 -2481 -273 --366 -16 -591 -808 --560 -1538 -2667 -62 -365 --2743 -2449 -812 -571 --1121 --899 -1467 -82 -462 -354 -386 -1858 --1815 --645 -1022 -2165 --1024 --2674 --2154 -150 -1708 --1768 -727 --1426 --484 -207 -542 --2179 -89 -1242 --1858 --3049 -2676 -627 -3223 --399 --2303 -1843 --3914 -3670 -2767 -908 -160 --1511 -182 --1255 --122 -2761 -2458 --1892 --313 --1433 -2197 --1286 -401 --1552 --1396 -627 -912 -1700 --2687 -2197 -1440 --255 --2141 -446 -1292 --518 -655 --608 -904 -3864 --3823 -595 -440 -1514 -1855 --3823 -644 --817 --169 --1041 -1589 --744 --1617 -3665 --2642 -2129 --69 -195 -539 --1307 --68 -2653 --743 --1798 -680 -2214 --1519 -3577 --2455 -1362 -1006 --3080 --715 -513 -910 -2587 --1897 -1210 -1344 --899 --1538 --703 -244 --978 -561 --2505 -1910 --5 --124 -872 -523 --1685 -819 -542 -1049 -1191 -2663 --3260 -2249 --2415 -1849 --2346 -1942 -607 --1875 -936 -584 --1357 -219 --1823 --1371 --1823 -40 -1696 -389 --914 -1394 -990 --2109 --2542 -2819 -734 -191 -4 -3206 --388 -242 -1557 --2309 -348 -1012 --477 --373 -199 -2166 -2791 -1599 -915 -150 -403 -151 -61 -571 -856 -181 -342 -805 -743 -903 -723 -749 -65 -548 -652 -670 -214 -468 -536 -780 -684 -555 -222 -955 -499 -576 -759 -111 -846 -933 -668 -222 -3171 --1714 --1082 --2480 -2432 --2612 -970 --2699 --687 --729 --1944 --205 --2082 --660 -165 -747 --2917 -1132 -44 -1658 --3325 -760 --1365 -2169 --2291 -3605 --1929 -2351 --3517 -2695 -474 -637 -2390 --2076 --2212 -188 --2507 -2936 -1561 -611 --3220 --1068 -1167 --2539 -2419 -1434 -745 -870 --1577 --598 -1225 --548 -41 --1038 -1288 -239 -2221 -2750 --2905 --1008 -1135 -623 -440 -978 -1400 --1548 --1972 -2486 -669 -1928 -1208 -141 -768 --1139 --280 -1672 -1116 --732 -633 -144 --505 --1200 -838 -235 -1882 --1306 --1029 --325 --2885 --1156 -1336 -479 --765 --78 -607 -900 --3143 -2685 --2635 --1998 --416 -1956 -2676 --3132 -3507 -2020 --2421 --1629 -4479 --1126 -639 -268 -226 --2420 -1893 --1234 -285 --920 --1106 --309 --3068 -3757 --2465 --295 --3238 -1546 -153 -895 -1932 --1427 -1805 --1157 --2845 -1122 -444 -1919 -45 --282 --2251 -2381 --1332 --2935 -823 -981 -511 -2726 --3190 -951 -516 -1955 --84 --1723 -1766 -163 --997 -2407 --2837 -4061 -37 -948 -1064 --2112 --267 -562 -1169 --1625 --1898 -1258 --2404 -725 --2117 --2052 -928 --2448 -670 -508 -2651 --2517 --1108 --1390 --1786 -1483 -1876 -2045 --2601 -1478 -1554 --472 -3639 -754 -846 -142 --2981 -2243 -1181 --502 --538 --1025 --3536 --297 --673 -2573 --1308 --833 --3270 --1712 -627 -329 --828 --55 -795 -23 --925 -2814 --2 -2141 -1314 -1850 --309 --1157 -2809 -2258 -474 -249 -1842 -912 --2406 --246 --1839 --2257 --560 -3374 --324 -436 --2076 --161 --382 -2572 -625 -445 --221 --542 --2109 -3195 -15 -1970 --358 --3263 --91 --698 --1223 -181 -1515 --2928 -66 -76 -3212 --3180 -3052 -233 --340 --2385 -2288 -265 --1543 -152 -467 -1127 -516 -355 -538 -612 -52 -798 -344 --3053 -3267 --823 --2162 -451 --447 --464 -2589 --2068 --787 --552 -666 -718 --459 -745 --2725 --1699 -634 --393 -2982 --3064 -925 -4 --651 --182 -3560 --3244 -696 -107 --464 --347 -146 -1146 -1407 -641 --1777 -169 -1405 -1056 --1270 --423 --1555 -165 -582 -243 -2218 -2882 --2082 --782 --942 --1746 --809 -484 -996 --634 --1331 --387 -3480 -1668 -898 -531 --1842 --3370 -3376 -1176 -160 --2358 -2374 --1671 --1444 -3156 --2514 -4126 --3188 --1452 -407 -327 --1307 -242 --1592 -2979 --1189 --2722 -954 -190 --985 --2436 --654 -899 --930 --510 -7 -838 -2026 --98 -661 --2442 --1916 -3930 -278 --2859 -1398 -3707 --3420 -3247 --2677 -2382 -431 -539 --593 --2180 -826 -1966 --1543 -169 -1568 --318 -647 --1867 --1393 --1658 --905 -65 -332 -640 --1786 --487 -1416 --78 -870 -1360 --2659 -2980 --1873 --392 -2549 -290 -3599 --1470 -840 -881 -697 --831 -1480 --619 --1692 --1693 -949 --3296 -1696 -1515 -2701 --3024 --771 --1819 -963 -912 --860 -1042 --609 --1873 -3279 --450 -1774 -56 --747 -296 --393 -1086 -2249 -328 -349 -151 --1739 --1468 -955 -730 --832 --2216 -953 -1503 --1204 --258 -406 --393 --1576 --2617 -870 -657 --802 --1537 -3137 --1108 -286 --1770 -2566 --683 -1526 --539 --2234 -1475 --2343 -2467 -538 -213 -645 -11 -650 -159 -364 -932 -30 -551 -958 -783 -199 -471 -960 -475 -875 -475 -312 -133 -675 -603 -709 -237 -103 -182 -237 -875 -991 -116 -646 -735 -945 -24 --1213 --2198 -1960 --227 --1560 --714 -1624 --811 -1633 --1914 --681 --1068 --1348 -1236 -482 -138 -331 -2180 -275 -1190 -3266 -303 --3004 -3615 --1866 --2124 -3143 -497 -3072 --436 -812 -685 -783 --1438 -323 --3166 -1048 --1166 -3024 --3236 -3772 --3272 -2076 -1717 --3834 -1677 -728 -521 -248 --154 -3146 --339 --1841 --513 -1609 -1547 --1992 -1496 --1738 --2378 -787 -591 -88 -7 --66 --2499 -1293 --3189 --31 -1104 --2693 -1574 --3079 -205 -2214 --1038 -442 --2471 -874 -649 -862 -1901 -1848 -87 --2485 -2638 -2091 -1168 -2955 -1086 --1113 -225 --267 -643 -313 -990 -593 -60 -3363 --1447 --1371 --1606 --62 --1431 --389 --2818 -4164 --2658 --2350 -1502 -59 -958 --1758 --1171 --1532 -1799 -844 --2916 -2670 -1905 --641 --1199 --1072 -1314 --623 -688 -632 -608 -2330 --1418 --1033 --1432 -186 -194 -923 --4097 -69 --2709 -3140 -314 -2020 -1351 -26 -972 --1212 -1868 --2424 -2588 --437 -2366 --1356 -1384 -350 -2059 --2362 --22 -2519 --1289 -270 -789 -1821 --1903 -1341 -2720 --2252 --2356 -2394 -1441 -2613 --3143 -379 -888 -804 -2657 -292 -55 --1516 -2701 --2422 --596 -988 --2616 -1695 -127 -716 -1389 -1558 --2266 --700 --2371 -375 -764 -3376 --3097 -2194 -2334 -920 -374 -3035 --2169 -1591 --3399 -897 --817 -2336 -2008 -424 -672 --2421 -231 -1895 --1165 --371 -974 --1501 --1053 --2479 -1945 --2410 --48 --1788 --106 -651 -850 --1131 --3270 --323 -2656 --1518 -1584 --1704 -688 --3198 -1242 -2875 -2362 --936 --3155 -882 -763 -2316 -1411 -5 --2202 -2861 -973 --1221 -1018 -976 --279 --1696 --1724 --3149 -3050 -702 -252 --1653 -2904 --1110 --1086 --3198 -1087 -1434 --1387 -2835 --1585 -2623 -2482 --291 -386 -181 -735 --1625 --2111 -1058 -3130 --2837 -545 --283 --116 --2179 -1272 --1735 --121 -2037 --1800 -577 -737 --1142 --280 -2041 -12 -1817 -1372 --3894 -3550 --2908 -2462 -554 --2599 --1404 --472 -781 -306 -2317 -1919 --2760 --1354 -254 --232 -2775 -1822 --3266 -3057 --1593 -783 -523 -54 -938 -106 -2120 --2461 -1231 --1167 -1028 --59 -95 --1439 -1867 --1749 --908 -63 --2428 -272 -769 -451 --2554 -3800 --2217 --699 -1805 -537 -2224 -2582 -928 -1155 -1085 --2272 --507 --1397 -468 -398 -3660 --2517 --2612 -2673 --902 -2295 --1741 --3258 -453 --2726 --411 -3144 --424 -1771 -142 -325 -468 -2814 --780 --2414 -1644 --2655 --193 --8 -2147 -297 -2568 --1841 --16 -2941 -152 -171 --2094 --914 --726 --98 -167 -1867 -751 -2070 --1724 --1749 -4061 --981 -2710 --1673 -12 -841 -1451 -1197 --348 -239 --1305 --2076 -1185 --1047 -1320 --472 --2791 --1035 --1015 -6 -211 -249 --2444 -612 -821 --1758 -113 -3338 --747 -2592 --467 --1558 --1078 -1001 -1261 -1119 -103 -541 -3133 --2688 --154 --1425 -1321 --479 -1536 --1794 -2061 --1076 -1039 --1278 --2651 -2311 -645 -718 -1537 --552 -2242 --2303 --124 -1683 -272 --502 -1421 --1321 --2496 -3012 -646 --1566 -65 -553 -2740 --1204 --1432 -429 -702 --1001 --1928 --1087 --1992 -2360 -139 -157 -1054 --597 -438 -160 -48 -649 -64 -651 -899 -220 -414 -849 -251 -559 -792 -969 -845 -253 -633 -119 -127 -808 -3 -624 -519 -585 -444 -710 -160 -926 -877 -237 -511 -589 -919 -364 --1130 -289 -1461 -2518 --1048 -2252 -2338 --2647 -1087 -414 -1837 --2414 -2564 -1191 -125 -8 --1229 -1542 --3373 -1533 --262 --2934 -315 --687 -1320 -1281 --3664 -1719 -101 -269 -9 -12 --1271 -2513 --33 -1558 --1487 --492 --2623 --930 -2138 -622 -3275 --2592 --107 --1085 -913 -379 --1917 -1239 --2217 -832 -1437 --853 --1347 --779 -692 --2071 --2525 -3267 --2864 -402 -203 -378 -1856 --1106 --436 -387 --306 -1700 --865 -2274 --288 --1337 -3576 --2699 -1144 --3408 -703 -355 -483 -1457 --2875 -3275 --2733 --437 --1845 --846 --819 -2000 --2806 -640 -745 -2880 -743 -730 -914 -110 --1960 -280 -1909 -1356 -1622 -1388 --2194 -2977 --1603 -3116 --3102 -827 -783 -725 --1615 -1732 --1992 --2785 -1744 -1356 --1262 --776 -254 -983 -1216 -128 -2968 --3913 -727 -817 -554 --2284 -2079 --828 -2114 --2682 -433 -2142 -1534 --335 -1661 -344 --3461 -1660 -492 -446 -1968 --2522 -480 -1243 --914 -83 --2972 -3330 --2390 -2598 --2854 -854 --2775 --372 -240 -346 --2841 -1837 --1046 --757 -213 --113 --329 --3837 --613 -2220 -2143 --1726 --489 -2666 -492 -225 -2543 -1429 -124 --377 -182 --694 -2615 --1037 --2111 --2032 --272 -1419 --2139 -1153 -745 -159 -661 --1124 --1126 -77 --3225 -2208 --3579 -1426 -3034 --3105 -98 -1370 --1752 --1518 -298 -760 --2658 -2257 --629 -2403 --959 --16 --414 --974 -1143 -2758 --1833 --798 -783 -766 -116 -703 -1247 -3361 --2428 -389 -1104 -1755 --543 -282 -1838 -517 --2389 -549 -781 --583 -640 -843 --2912 --1381 --1421 --1883 --1464 -125 -2463 --1565 --2113 -757 -1989 -722 -3254 --2879 -663 -643 -989 -1740 --435 -589 -4046 --2719 --2294 -717 -3040 --3798 --1555 --1427 --2952 -3756 -400 -654 -542 --347 --2447 -2861 --1373 --312 -4240 --2476 --1500 -2694 --866 -1854 --1470 --1778 -177 -483 -2074 --1089 -3412 --2394 -2475 --2047 --53 -1884 -153 --658 -1437 --354 --622 -2086 -159 -753 --2376 --3400 -1879 -880 -985 --837 -751 --3251 -727 --1358 -523 -1309 -1816 -2274 -218 -59 --1013 -1889 --190 -923 -1670 --881 --844 -1495 --868 --118 --2830 --306 --1064 --2126 -707 -27 -209 -1476 -1374 -2469 --2858 -640 --2649 --62 --1226 -1566 -1377 -18 --995 -4333 -13 -31 --1604 -393 -2020 --2120 -94 -104 -968 -2058 --508 -172 -1756 --304 -258 --2930 -206 -467 -2417 -2459 --3846 -3939 --4001 -726 --364 --12 --2167 --894 --960 --2231 -497 -158 -645 -254 --2710 -645 -1419 --1477 -3550 --647 -1517 --2694 -2997 --1440 --655 -536 --2920 -103 -641 -834 -1641 --1932 -300 -952 --3110 --1397 --2706 -99 -720 --1831 -1586 --3053 -3051 --579 -279 -931 -1310 -665 --918 -729 -2340 --2903 -2033 -1163 --3477 -3972 --2920 -1639 -18 --2413 -894 -811 --2602 -753 --525 -3047 --2459 -1358 --3227 -2979 -340 --333 -2122 --1804 --770 -1906 -519 -821 -2695 --1200 --1990 -2546 -677 --2323 -1617 --1343 -2513 -595 --1231 -393 --1888 -3068 -219 -548 --1157 --1648 --1171 -2064 --1931 --86 --1288 -621 --2801 --135 -3609 --3790 -1366 --3283 -987 -950 -9 -940 -224 -531 -315 -738 -843 -502 -597 -290 -631 -439 -778 -817 -40 -37 -848 -623 -868 -690 -543 -225 -881 -84 -303 -688 -773 -1 -127 -74 -840 -56 --2386 -996 --286 --3028 -1277 -878 --3403 --1244 -1313 --1473 -702 -3762 --1556 --2821 -753 -70 -2904 -1321 -789 --1908 --1192 -1973 -217 -2064 -380 --1966 -86 --2257 -2751 --1496 -835 -976 -1171 --1985 --1021 -1279 -2367 -1394 -2270 --52 --2890 -3393 --3003 --1402 -2161 -2716 -5 -901 --2380 -1462 -675 --2137 -2190 --387 --1067 -2772 --18 -135 --784 -2492 -1671 --3601 -433 -917 --2885 -84 --627 -1425 --1125 --1739 --1241 --1222 --1385 -545 -34 --2 --921 -3594 -923 -711 -1128 -652 --1182 -824 -1780 --655 -3519 -2118 --2335 --211 --2050 --989 --317 --310 -360 -837 -592 -1668 --648 --3021 -2674 --1544 --3684 -2136 --1589 --113 -419 -1360 --1844 -1270 -295 -53 -2426 -1194 -2119 -3043 --2169 -623 -1153 --3246 -1649 --1090 --1107 --384 --98 -1225 -705 -173 --2520 -2640 --4287 -658 --2148 -1027 -726 -1282 --834 --1321 -1920 --3097 -1220 -1302 -601 -469 -1111 -192 -3777 --717 -2919 --1977 -1663 --2110 -185 --1767 --2708 -1577 -4047 --2848 -692 -683 -337 --1163 --2973 -2395 --2669 --709 -1471 -2394 -1767 -1735 -2846 --2246 --2855 -601 -580 -922 --3634 -1395 -2522 --2667 -290 -3292 --2801 --2201 -847 --1906 --2083 -501 -2847 --1792 -297 -182 --219 -2869 --3062 -1334 -269 --1319 -1428 --1826 --402 -3011 -2076 -616 --116 --192 -180 -674 --774 --2135 --2833 -1694 --2887 -3314 --1442 -2851 -1582 --3025 -2459 -1042 --2273 --552 -208 -694 -2066 --949 -2977 -1323 -2440 --3613 -2384 --502 --2764 -2085 --3384 -879 -1423 --482 -517 -496 -1997 -2304 --371 --39 --2470 -637 -11 -1452 --243 -864 -681 --2081 --1202 -279 -538 -453 --2611 -1186 --7 --471 -835 -331 --2148 -480 --3108 -3560 --1650 -3106 -1338 --1232 -103 -464 -818 --427 --254 --1475 -179 -2529 --3140 -289 --1159 -1836 --1857 --314 -2148 -68 -895 -211 -2893 --3041 --1210 --1595 -863 --300 -1049 -616 -28 --442 -2837 --659 -1608 -926 -175 -414 --2567 -3728 --2051 -1001 --2300 --1589 --34 --753 -2062 --1632 --2325 -2654 -856 -227 -466 -21 -1171 -1252 -868 -486 --38 -785 --2118 -2580 --2308 --1920 -4127 --3647 -2055 --2283 -116 -428 -2453 --3847 -1146 --3591 -150 --3052 -3079 --205 --310 -2166 --161 -2389 -644 --775 -781 -664 --1523 -551 -1538 -346 -1774 -1625 -923 --481 -2334 --366 --1167 --1056 -310 -1959 -911 -569 -619 --1749 --1282 -1014 --276 -572 -817 --200 --295 -2444 -1363 -854 -1939 -589 -506 -145 --1425 -1535 --1707 -1733 --329 --356 -2075 --1899 -1220 --1073 --335 -465 --814 --2383 -593 -837 -1758 --1143 -937 --248 -2558 -2276 --1893 -423 -270 -2948 -978 -1222 --53 -3063 -219 -15 -868 --1504 -2375 -121 --304 -1118 --422 --2164 -1039 --3282 -1438 -2552 --3222 -1603 -261 -220 --334 --26 -258 --1926 --1734 -451 --525 --607 --621 -1881 --1504 --2588 -2570 -834 -471 -24 -742 -1171 --1429 -2796 --121 --805 --1631 -1348 --658 -247 -2897 --1442 --1600 -464 -861 -828 --393 -153 --701 --2713 --140 -1958 --1046 -3215 -1041 --1446 --3268 -3496 --703 -1649 -50 -582 -414 -539 -483 -449 -62 -1 -988 -140 -324 -86 -500 -643 -672 -271 -804 -532 -297 -580 -848 -290 -9 -926 -739 -115 -122 -986 -358 -74 -69 -658 -719 -475 -728 --3118 -1957 --182 -368 --1964 -1018 -1897 --1962 --522 -1707 --989 --48 -3643 -153 -909 --4405 -3097 -243 -814 --42 --610 -1479 -648 --2277 -1638 -1115 -1200 --2613 --937 -258 -542 -2849 --2009 -37 -2447 --2792 --2653 --2080 --998 -742 -244 -2226 -1009 --3027 -649 -145 -435 -436 --380 --76 --3584 --583 -2334 -1971 --3230 -4145 --2289 --1791 --2573 -2660 -839 -416 -373 -2072 --1047 -2611 -462 -2274 -509 --2620 -3483 --3030 -763 --504 --821 -2694 --3367 -763 -747 --1077 --2594 -3353 --1133 --340 -1075 --1458 --3751 -4384 --100 -2937 -905 --1003 --1850 -461 -825 --896 --106 --2700 -4062 --4318 --665 -4114 --1863 -1712 --2132 --2632 -2428 -1098 --1950 -949 -617 --2395 --1956 -1892 --498 -3247 --1670 --3372 -1289 --580 -2060 --1935 --157 --416 --361 -580 -802 --1453 --460 -1405 -1024 --3381 -2733 -3662 --3125 -2670 -364 -806 -411 --427 --1556 -961 -429 -1653 -52 --3941 -1697 --517 --18 --3788 -1309 --2843 -1683 -1958 --1776 --603 --96 -332 -619 --2266 -3420 --128 -2192 -642 -2385 --1646 -525 -2831 --820 --2681 -2817 -3414 --2483 -981 -166 -1629 --882 --3048 --45 -1722 --3142 --2356 -2661 --3089 -573 --1280 -3266 --2619 --1129 -524 -696 --1169 -774 -2289 -192 -918 --1253 -3877 --20 -899 -570 --1716 --1555 -320 --384 -529 -95 -2277 --2302 -1686 -1347 -1552 --239 --1606 --2503 --1925 -1231 --2503 --885 -3268 --2321 -31 -601 --667 --1807 -1993 --3338 -1389 --56 -351 -1629 -444 --455 -1619 -2098 --4325 -1889 -641 -942 --2020 --2038 --2831 --705 --670 --1525 -1945 -1187 --2371 --1489 --1600 -2617 -2395 -624 -123 -159 -3199 -822 -1258 -69 --324 --1236 -2076 -1080 -3455 --1480 -1751 --3611 -1788 --887 -879 -270 --1377 -374 -1072 -1684 --805 --1704 -2056 --1915 --2190 --2114 -1080 --370 --2308 --630 -81 -734 -1821 -999 --625 --2253 --2687 -1976 --1705 --361 -1150 -3816 --3624 -494 --1034 -1131 -610 -441 -816 --1809 --1992 -2138 -2412 -313 -0 --864 -1961 --3094 -2072 --2068 --2463 --1356 -270 -21 -2231 --1354 --2541 --878 -2351 --1088 -1351 --315 --1729 -1052 --1222 -3091 --2411 -516 -974 -836 --1300 -326 -1262 --1024 -2534 --1763 --1325 --1918 -918 --1516 -844 --280 --1257 -1175 -42 -365 --540 -1999 --3159 -2973 --4832 -2223 -379 --1800 -154 -927 --2716 -1559 --1921 --2993 -745 -697 --662 --2242 -2152 --1241 -2533 --1589 -2337 -1662 -75 --2812 -616 -746 -2102 -797 -619 -16 --527 --1110 -2360 --579 --482 --2600 -370 --1433 --539 --203 --148 --2593 -2425 --1495 -424 -181 -399 -1761 -374 -135 -1933 --2052 -1497 -2433 --388 --1196 --1765 --578 --1508 --1669 -548 -736 --1627 --1610 -2667 --2627 --1674 --1777 -2670 --705 -3211 --1430 --977 -1618 -3184 -287 -773 -883 --262 -1161 --1128 --1751 -781 --515 -1396 --277 --351 --1536 -1349 -204 --516 --3058 -212 -225 -2042 -1769 --1876 -534 -889 --1318 -3367 --2029 --1641 -681 --1986 -2919 --2294 -663 -470 -282 -319 --2663 -262 -2650 -210 --2512 -1500 --2000 -842 --216 --89 -1541 -324 -2184 -733 -90 -114 -909 -148 -687 -772 -556 -472 -194 -454 -275 -136 -35 -867 -325 -465 -105 -233 -589 -204 -627 -750 -314 -520 -372 -384 -783 -172 -964 -651 -333 -460 -976 --1555 --1568 -2819 --3105 -2085 --2235 -2010 -1226 -191 -878 -908 --1498 --2176 -258 -958 -771 -2525 --251 -173 --2153 --525 --1745 --12 --2834 -3154 --3452 -903 --649 -2422 --2965 -708 -526 --1502 --2359 --534 -2613 --2168 -3228 --3273 -4391 --584 --2904 -751 --2292 -3386 --16 -22 -573 -1078 --257 --3176 -1897 -1617 -617 -2159 --2184 -720 --762 -1813 --442 --1043 --1202 -264 -784 -150 -523 --600 -2950 --2805 -1388 --1156 --434 --2014 -1887 -1776 -482 -1745 --662 -233 -529 -1942 --1442 --11 --1913 -1170 --27 -1449 -1452 --3286 -2400 --3579 -1821 --4245 -4022 -576 -159 -2139 --1346 -1370 --3367 -3768 --588 --2732 -3050 --294 -1225 -3163 --3565 -2245 -16 -816 -849 -226 --1500 --1427 -220 --603 -199 -1815 -2728 --2141 --3173 -1426 -1334 -531 --2867 -938 -163 -1256 -1733 -1399 --2124 -1206 --2036 --1861 -1 --663 -2717 -509 --61 --1660 -958 -991 -721 --996 --612 -2361 -1112 --1303 --841 -3469 --1588 -78 -1826 -2041 --2471 --1485 -3536 -307 -214 --798 --3100 -224 --2152 --1616 -2527 -1142 -1826 --1389 --3234 --1757 --491 --619 -893 -5 -189 --140 -2542 --478 -1688 -1163 --364 -2298 --1410 --2690 -3389 -638 --1055 -988 -1537 -803 -688 -2195 --1214 --3095 --1307 -1682 -528 --3370 -1038 -2225 --1404 --2034 --944 --1358 --247 -254 -922 --1189 -496 -194 -1135 -360 -465 --499 --2331 -1591 -1517 -310 -3363 --2732 -2513 -664 -939 -1172 -951 --164 --2667 --476 -1584 -1211 -786 -3 -1174 --2087 --1164 -1278 -1733 -419 -513 --1271 --1607 -1710 -3845 -2109 --2413 --1799 -448 --1625 -268 -2309 --1894 --2463 -240 -882 -439 -1819 -455 -1467 --2680 --2739 -3673 -560 --1080 -3256 --3642 -1374 -141 -2222 --960 -45 -902 --2336 --1403 -1305 -1132 --1003 --1281 --1128 --183 --1205 -3323 -1064 -1956 -373 --1049 -991 -808 --1600 --1721 -1411 -450 -1650 -702 -1299 --688 --189 --2429 --17 --1182 -1956 --3236 -241 -309 -1573 -2845 -941 -735 -601 -1845 --794 --66 -1523 -1101 -2000 --3025 -3155 -1987 -932 -251 -1429 --290 -1207 --2301 --3131 -275 --2913 -857 -835 -1015 -82 -1084 --1835 -2410 -594 -910 -766 -1910 -729 -2839 -523 -1448 -1795 -1526 --279 --1300 --3436 -2487 -1511 --960 -480 -893 --1508 --1998 -642 --1382 -3726 --2338 -1179 -204 --541 --2550 -3001 --2955 -3177 -1298 -126 -952 -531 -2555 --799 --600 --1999 --2401 --1724 --395 -220 -280 -2109 --831 --3918 -1368 -868 -876 --340 --3128 -269 --1386 -1708 -4106 --406 --2115 -3339 --1512 -1562 -2540 --213 --3056 -826 -536 -881 -2155 --2334 --874 --1193 --3440 --821 -1030 --2367 -3298 -583 -337 -84 -607 -839 -100 -285 -2755 --1484 -1235 --546 -3484 --2672 --228 --2846 --1003 --1927 -909 --719 --1980 -269 -711 -1380 --3063 -1529 -2222 --2775 -1879 -2007 -945 --55 --357 -43 --2279 --870 -1519 -500 -927 -951 --3075 -4268 --4116 -2994 --1246 --1103 --1294 --744 -2654 -1612 -1825 -496 -2492 -610 -409 -1317 -1998 --2711 -536 --214 -3920 --3495 -3574 -190 -1414 --1508 --3456 -275 --2224 -274 -915 -266 -38 -935 -728 -220 -344 -940 -337 -191 -144 -792 -884 -314 -986 -150 -408 -285 -957 -786 -863 -56 -231 -867 -834 -853 -87 -241 -194 -530 -291 -47 -709 --1814 -555 -1672 -1368 --1881 -983 --1485 -1762 --1529 --717 --2130 -2439 -2538 --1233 -942 -953 -796 -940 --1579 --535 -1275 -1114 --2949 --902 --179 -1815 -2223 -641 --3509 -3095 -952 -826 --2103 -2587 -1712 -669 -258 --2414 -3818 --3558 -3240 -2577 --736 -2904 --1203 -1410 -747 -94 --342 -744 -2582 --1662 --1204 -2073 --1369 -1938 --3320 --1496 -1456 --3 --2527 -1852 -575 -338 --2117 --3120 --1478 --986 -1994 --2603 --661 -447 -202 --1796 --1290 -349 -2233 --2768 -463 -71 -1558 -2484 -484 --2423 -1339 --2176 -2456 -614 -347 -1916 -198 --237 -2035 --1068 -145 -645 -1315 -1510 --1075 -3569 --3802 --679 -2690 --3199 --1181 -2287 --2199 -2631 --1572 -1502 -209 -303 --1597 -2660 --3871 -1421 -1179 --1577 -3175 --1793 -515 --2999 -3354 --243 --1354 -1815 -635 -209 -1829 --4108 -3412 --2749 -1465 --1229 --2603 -1212 --2454 --721 --1880 --923 -667 --3015 -677 -313 --1972 -2485 --1615 -270 --3226 -3935 --1911 -1307 -1986 --2043 -1170 -2279 -509 --932 -124 -766 -584 -1120 --1092 --1748 -864 --2938 --1396 -1839 --2464 -2889 --1841 -1876 --2028 --1743 -75 -306 --998 -1450 --243 -446 --1589 -2413 -1824 --1687 -4114 --236 -1031 --1718 -1969 -2790 -626 -347 -2883 -1900 -766 -1723 -1167 --2803 --1330 --2457 --624 --144 --445 -699 -681 --1423 -629 -494 --2859 --624 --432 --1710 --2315 -284 -2550 -2040 --1189 -129 -1333 --678 -153 -964 -641 -202 -1623 --277 --1377 -2150 --1357 --270 --575 -1193 --1091 -509 --2467 -2357 --2445 --1134 -184 -43 -1775 -1557 -950 --1336 --1383 --1061 -1092 --2143 -2792 --581 -1222 -1934 --1388 -1833 -18 -271 -317 --1477 --2494 --657 -4214 --2689 --224 -3262 --4480 -3254 --2240 -1907 -254 -986 -218 -418 -2834 --3085 --296 --1657 -280 -2005 -2203 --2399 -2329 --477 --1366 --293 --1639 -1949 -88 -785 --2008 -2296 -2625 --1540 -1509 --2391 -1783 -1343 --1040 --298 --1677 --1293 --2074 -2803 -386 -742 --447 --903 --2947 --351 --546 --1058 -1967 --772 --1666 -359 -2878 --487 -429 --1076 -770 -866 --2493 --361 -3497 --1667 --538 -2898 -459 --1021 --1270 --150 -72 --2701 -2005 --714 -790 -393 --2694 --1407 --1059 --2115 --468 --2768 -1225 --1953 --597 -1365 -1661 -2440 --2551 --1971 -708 -359 -915 -1855 --117 -2191 --1394 -2676 --432 --155 -990 --747 -1854 --2278 -924 --1330 -873 -904 -611 --835 --777 --726 --1657 -2495 --118 --1930 -3106 --2410 --362 --2770 -2481 -1034 -91 -326 -1590 -617 --1157 -1741 -814 --1919 --1197 --833 --1447 -2337 --2702 -2143 --232 -910 -250 -918 -1478 --3797 -3523 --1618 -1115 -3208 --2023 -1639 -966 -1310 -1580 --1199 -1186 --956 -964 -850 --2490 --1713 -2492 -773 --2189 --31 -3268 --394 -2732 --845 --1795 --2017 -181 -866 -356 -378 -1895 -2366 --429 -20 -2712 --833 --569 --2523 -3433 --695 --760 -3688 --72 --206 -413 -584 --2549 -3579 --3860 -2810 --1941 -926 -2086 --1780 --841 --1820 -2326 --1098 --1180 --1083 -792 -219 --318 --874 --1484 -2044 -1232 --3089 --502 --568 --3047 -2088 --743 -108 -1834 -367 -141 -973 -277 -370 -920 -37 -216 -214 -25 -265 -900 -678 -584 -751 -758 -812 -954 -215 -683 -629 -529 -636 -618 -91 -827 -17 -693 -121 -16 -690 -629 -558 -696 -192 -2615 -649 --1924 -984 --140 -160 -1710 --321 --144 -3838 -1526 --3307 --107 --2088 -720 -754 --609 -2238 --1862 --1450 --3263 -1079 -1362 -1332 -85 --914 --1721 -2336 --138 --1166 -476 -696 -2565 --2121 -946 -2200 -1751 --355 -1821 --2100 --3232 --1368 --1360 --870 -1039 --978 -653 -726 --3380 -2397 --1111 --1923 -1707 --2967 --255 -1994 -3873 --1039 -3732 --2071 --526 --2358 -181 -940 -2516 -2078 --1768 -2396 -713 --1181 -400 -2792 --2672 -2886 --2239 --2176 --663 -1022 -876 -228 -2049 --1113 --1797 -946 --286 --77 --1438 --2890 -905 -1979 --2326 -3959 --2562 --2875 -947 -783 --1923 --2554 -1702 -776 --559 -1834 --2333 -3227 --1606 --3667 -2941 --3177 -413 -2312 -210 -624 -1423 -2167 -1807 -576 -792 -1025 --483 -750 --1408 -3358 --3769 -2338 --10 --1013 -980 -887 --1785 -580 --1748 --221 -1098 --3639 -2811 --2418 -3299 --1651 -351 -223 -559 -3223 -59 -676 -2633 --1586 -360 --2771 -2818 -884 -1396 --2618 --967 -1587 --274 --1493 --1217 -78 -930 -593 --128 --134 --1803 -3461 --1252 -1727 --518 -1779 -2100 -99 --2326 --102 -2355 --2125 -366 -834 --2065 -3037 -1925 --2790 --2943 -1635 --1679 -63 --3908 -11 -2545 --2943 -1104 --396 -794 -364 --1223 --3028 -942 -2069 -1647 -409 --2622 -2648 --368 --2977 -2808 -1661 --2847 --1490 -563 -809 --1146 -1433 --2324 --109 --982 -2785 -735 -1320 -1995 -1653 --2603 -925 -3679 --744 -540 -515 -68 --1737 -964 --1634 --1111 --1095 --704 --2047 --1384 -1396 -1876 --1633 --1755 --237 -52 -134 -572 -702 -971 -74 -1874 -1330 --399 --3048 -1763 -1089 --3598 --105 -1745 -840 -607 -334 -1652 -1705 -1363 --142 --2187 --1670 --2302 -2337 -1412 --2947 --774 -2906 --2352 --2386 -873 -140 --1347 -2721 --2163 --1071 -630 -137 -2440 --2358 -1923 --292 -1790 --481 -877 --1699 -204 -703 -764 --2022 -1213 --1912 -2211 --2164 --1443 --1666 --383 -1117 -2229 --7 -938 --389 -455 -505 -969 --2176 -2231 -1120 -342 -2215 -1345 -338 --140 --1134 --3741 -1099 --1040 -3248 -60 -326 --496 --1795 --1256 -1045 --384 --3267 -1776 --2408 -2890 -1267 -2920 --402 -1722 --2606 -580 -670 -4213 --1694 -2094 --2838 -3650 --951 --987 --1095 --1611 -670 --2317 --1999 --609 --2172 -813 -44 --1134 --1840 -1987 --1403 --2790 -2901 --1514 -182 -2229 -1246 -1035 -3616 --1020 -362 -820 -166 --1236 -3413 --1810 --1358 -984 -779 -395 -2009 --2740 -2849 --2833 --1251 -959 --1208 -793 -430 --205 --244 -2188 --285 -994 --457 -502 --474 --107 --1977 -3346 -407 --206 --412 -524 -49 --1518 -2562 --2303 -1693 -2200 --1773 -2970 --1361 --1901 --684 --2457 -1787 --3089 -1337 -432 -121 --1368 --1625 -238 --1985 --1138 -1183 --3077 --1416 -388 -2319 -77 --1646 --883 -780 -686 -938 --1241 --192 --1313 -3251 --1303 --1890 -1419 --1539 --3434 -3399 --610 --292 -1415 --264 -395 -490 -1073 --1356 -3894 --4264 -3071 --2381 -1033 -3918 -342 --560 --1335 -67 --365 --1197 -7 -331 -531 --448 --2442 -3201 --1600 -2080 --710 --2494 -2570 --55 --586 --2110 -635 -96 -572 -910 -491 -270 -171 -68 -884 -592 -635 -519 -94 -718 -386 -836 -366 -234 -488 -33 -540 -306 -535 -43 -630 -602 -935 -222 -999 -496 -662 -644 -592 -619 -661 -101 --1911 -2705 --1103 -581 -2201 -180 --2935 -2628 --3947 --2355 --1520 -978 --1483 -322 -862 -943 --852 --3280 --157 -879 --1293 -1343 --532 --974 -3129 --2380 -1194 --2032 --433 --1998 -461 -887 --1239 --1871 -1749 --1898 -1394 -34 -2278 --104 -1308 -1103 -3023 -491 --1970 -455 -444 -537 --405 --937 -2661 --3129 -978 -2576 --4392 -981 --3416 -777 --2592 -98 -3014 -1628 -334 -719 --3236 -2881 --3502 -3177 --606 -2337 -1592 -314 --755 -1711 --361 -3447 --580 --293 -553 -103 -558 -2045 -1308 -624 --2072 --2647 --2418 -1921 --575 --2007 -491 --3007 -1456 -3456 -194 -869 -2785 --2055 -646 --2597 -1487 --930 -3903 --2743 -835 -2371 -952 -1198 -658 --2628 -728 -970 --2488 --833 --748 -1684 --519 -1702 --898 --1380 --81 -601 -1057 -795 --2659 --1767 -721 -432 -648 --2837 -2420 -895 -266 -2327 --1158 --386 --1179 -1974 --308 -881 -1524 --297 -283 -437 --1655 -2679 --1860 -2464 --287 --3109 -253 -4 --1952 --1380 -954 -1077 -400 -2787 -17 -686 --929 -2913 --1883 --1703 -1158 -2256 --710 --2020 -367 -1626 -1711 --1501 -800 --448 -52 -664 -2005 --4179 -1243 -451 -2496 --2149 -2314 --1360 -3116 --2663 --500 -2205 --3390 --530 -757 -447 -1319 -854 --2118 --878 --1951 -1992 --168 --22 -434 --962 -2743 --2538 -4419 --1148 -481 -187 --1533 -2912 --2640 -1320 -2644 --3765 -2648 -1148 --491 --602 --1640 --257 --3360 -2160 -68 -683 --2910 -1909 -494 -1633 --2002 -706 --3736 -1954 -961 --2723 --38 -480 -2035 -3076 -200 -797 -1967 --1222 -2007 -1897 -6 --1206 -2463 -2059 --2189 -2871 -1354 --2769 -2540 --3393 -760 -857 -209 --741 --2276 --620 -3085 -429 --969 -74 -367 -1354 -1543 --3940 -1919 -1793 -313 -232 --2262 -1974 -2169 --186 --1457 -726 --857 --725 --1558 -1890 -1270 -2816 --3527 -2095 -315 -143 --2428 -212 --720 -543 -625 --149 --1184 -1741 -711 --571 --3059 --784 -1407 --2219 -17 -291 -3028 -1215 -2066 --906 --2986 -3314 --2871 -2089 --1430 --2361 -2249 --518 -2277 --1774 -797 -234 -1166 -1215 --1006 -370 --821 --1491 -2263 -1938 --2636 -2738 --1703 --2104 -61 -2980 -53 -456 --842 -134 --3 -1435 -984 -1447 -156 --938 --1447 -545 -547 -552 -979 -1662 -129 -186 -46 --651 --2311 -1303 -2742 --1436 --221 --7 -472 --821 --1951 --1593 --1996 -193 -909 -942 --1344 -257 --1827 --944 --847 --1153 --246 -726 -1840 -1375 -2294 -2398 --2859 -738 -445 -327 --2358 -3139 --1746 -3199 --2273 -313 --1260 --678 -1753 --2516 --1612 --2080 -2315 -1602 -986 -749 --625 -1997 -505 --770 -559 --936 -1921 -2578 --832 --698 -1991 -834 -2169 --1119 -906 -368 -1117 -394 --1424 -108 --530 --207 --287 --455 -2697 --3893 -2077 --2733 --1044 --517 -442 -547 -2551 --3240 -3317 --2902 --1150 --437 -2007 -1249 -1804 --1593 --887 -3536 -1782 -626 -865 -886 -241 --2394 -1772 -1032 -2063 -313 --1079 --2092 -2074 --1965 -3138 --2865 --360 -1214 -101 -261 --222 --1527 --684 -1442 --556 --3116 -3699 --1307 -2208 --534 --2032 -3331 --580 --412 -407 -888 -635 -912 -803 -801 -200 -897 -283 -469 -395 -741 -576 -540 -501 -112 -696 -945 -112 -789 -969 -248 -465 -625 -233 -787 -267 -626 -460 -429 -172 -729 -871 -909 --3171 -1158 --1438 --2263 -1738 -262 -1774 --570 -2423 -973 --123 --1621 --201 --485 -661 -59 -2347 -2078 -2580 -1772 -2243 --1281 --1504 --16 --1964 -907 -2592 -1029 -31 -1198 -225 -154 --770 -638 --2779 -2502 --2636 -1828 --2276 -3134 -1035 --366 --3370 -2432 -1763 -619 -603 -78 --952 -1327 --1749 --901 -650 --3135 -3659 --2652 -1958 --297 --1042 --2051 -389 --3718 -550 -764 --1787 --2 -6 --767 --94 -1845 --2243 --805 --964 --2732 -1909 -319 --2680 -3512 -229 -192 --462 --371 -2394 --3397 -1752 -1068 --193 -527 -898 -2077 -69 --72 -1137 --1513 -876 -534 --1011 -495 --685 -487 --528 --20 -1555 --2240 --522 --2486 --190 -2211 --2289 --159 -464 -68 -2700 --432 --413 --1784 -3647 --2410 --1113 --622 --1053 --912 -960 --1702 -1007 -2697 -217 -731 -525 --1731 -514 --1543 --2915 -1850 --454 -3140 -3251 --3639 -1547 --1817 -1721 --2923 -363 -696 --582 -1982 --1106 -2132 -1542 -1707 --2460 -919 --2661 -1731 -1681 --609 -2345 --1391 -52 -297 --1987 -481 --518 --1944 -1641 --3846 --1807 -1725 --1515 -667 --821 -2326 --1121 -2214 -581 -255 --344 --677 -1750 -1944 --2594 -2305 -2020 -629 -1779 --1464 --541 -1841 -2453 --1371 -791 -509 --946 -822 --401 --716 -1919 -287 --189 --159 --2270 --68 --2370 --1293 --1765 --771 -806 -102 --397 -1275 -2271 --918 -875 -3161 --3432 --2138 -1937 -911 -218 --655 --509 -1657 -588 -650 -3626 --3911 -1407 --554 --1767 --2101 -4557 --2600 --586 -499 -846 --771 -239 --2092 -788 -574 --2435 -681 --1945 -268 --328 --1085 -982 -960 -878 --3342 -1049 --463 --3000 -3171 -511 -85 -209 -1336 --963 --1114 --623 --144 --3462 -2320 -803 --247 --2600 -3894 --723 --3960 -469 -883 --477 --2444 -1800 -2160 -5 -1201 -2935 --414 --1794 --808 -86 --2539 -1812 -3226 -555 -541 -1723 -671 --1872 --713 --2541 -336 -2556 --2837 --858 -1412 -82 --133 --112 --822 -545 -490 --2577 -1634 --2941 -2696 -855 --1310 --1731 --1789 -1360 -3047 --2291 -672 --417 --1803 -411 -954 -2302 --1379 -2524 --13 -2072 -939 -2244 --323 -1933 --628 -1634 --244 --1575 --2695 -501 -317 --2337 --1567 -793 -152 --1834 --107 --1065 --1758 -309 -277 --1443 -2509 -326 --736 -983 -309 --368 -1445 -589 -137 --909 --29 -2306 --1060 --974 -839 --2056 -1092 -2648 -2291 -371 -676 --3851 -2950 -1243 --2249 --38 --217 --401 -1847 --995 -73 --671 --1505 --189 --2018 -202 -842 -3516 --2284 --173 -988 --431 --251 -2435 --2660 --1640 -2932 --579 -2506 --1952 -1207 -32 -19 --2100 --3122 -95 -1256 --1389 -2777 --531 --1209 -1979 -2640 --2545 -593 --357 -1051 -798 -193 -2407 -1522 --299 --1987 --921 --799 --1571 --155 --2130 -3272 -695 -2710 --2153 --370 -260 -701 --745 -1789 --1474 --1095 -2833 -12 -2574 -1460 --1577 --496 --349 --2858 --2126 -3044 -372 -668 -22 -1147 --840 -576 --2928 -2262 --2752 -359 --1190 --273 -1889 -700 --1984 -577 -505 -328 -1574 -107 -3150 --2691 -4034 --48 --2714 -1371 --2714 --1602 --247 -952 --623 -1259 -301 -910 -300 -565 -281 -383 -593 -702 -335 -766 -979 -140 -611 -809 -209 -325 -313 -109 -365 -154 -591 -707 -72 -615 -133 -456 -73 -732 -232 -52 -490 -174 -549 -16 -2008 -2960 --1318 -26 --1206 -1432 --1772 -381 -2861 --2888 -2204 -3438 --2226 -1971 -498 -545 -1779 --3276 --944 -174 --1593 --856 -2374 --2183 -567 -524 --1598 --221 --2608 -3184 -532 -106 --378 --763 --2023 -1368 -106 -2054 --1989 --1657 -1691 --1613 -807 -2557 --1287 --2992 -900 -755 --687 --632 -138 -1258 --2640 -2668 --715 -2669 --1075 --224 --1994 --313 -2216 -1984 -681 -242 -1526 --1905 -1447 -473 -811 -2007 --1565 --2615 -3298 --25 --291 --1170 --1369 --3600 -873 -191 --85 --443 -1105 -2877 --3883 -735 -2434 --1587 --443 --1079 --1682 -2552 --1509 -2461 -353 -186 -714 -686 --1011 --1905 -2279 --1311 -1011 -1561 -457 -2754 --1057 -837 -1226 --2524 -525 -734 --492 -1105 -1176 --1273 --1172 --77 --1460 -3225 -645 -2066 --3734 -2435 -1399 --460 -840 -543 --231 --988 -2759 --1962 --678 -863 -219 --2351 --1262 -2155 -991 --2568 --1226 --801 -698 -650 -1740 --1625 --442 -730 -1399 --860 -1768 --3111 -3417 --1341 --1234 --155 --1278 -3387 -506 -523 --2816 -547 --1702 -684 --1113 -1431 --1662 -2557 -1141 --999 --112 --2822 --1745 --2388 -780 -151 -2583 -757 -264 -669 --3112 -2515 --2697 --945 -575 -743 -1202 -809 --2125 --450 -923 -95 -2019 --2081 -2078 -878 --1202 -664 -3145 --1211 --1013 --1244 -1060 -217 -3423 --1647 -738 -62 --1780 --518 --761 --2710 --268 --1382 -110 -2681 --1032 --1513 -1326 --753 --1044 --1855 -739 -1 -731 -671 -1471 -1557 --1049 -1904 --3167 --464 --809 -1189 -708 --828 -2367 --2639 -917 -468 -1463 -555 --2896 --245 -1746 -2704 --594 --121 -2255 -1689 --2392 -1413 -461 -1209 -334 -100 -1500 -1790 -1929 --510 -694 --1391 -237 --995 --1777 -1887 -1462 --3099 -2607 -2069 -847 -766 -249 --2085 -1216 --2303 -2246 --1648 -217 --2958 -2070 --387 -791 -529 --1731 --3039 -984 -774 --306 -33 --2630 -3491 --3085 -1750 --2684 -2922 -567 --2181 --490 --1090 --332 -398 -316 -944 -98 --1197 -147 --1902 -2534 --2534 -1385 --178 -1624 --1792 --81 -1447 -1641 -1868 -412 -312 --2774 -2800 --793 -2249 --3296 --475 --2665 -609 -1318 -1648 --867 -2878 --2323 -2560 -798 -83 -2371 -2191 --1915 -1867 --1158 -257 -3465 --868 --2026 -2172 --733 --1868 --1845 --980 -123 -324 -1760 -2268 --3076 --306 --1547 --700 --1334 --1905 -3591 --2041 -2168 --1252 --709 -2621 -253 -653 -3224 --2349 -2017 -1880 -2208 -2027 --1835 --1189 --380 --2419 -1340 --2317 -2595 -176 -132 -435 --386 --137 -224 --1262 --3229 -1666 -60 -2109 --170 -1433 --2640 -1246 -931 --2624 -442 -112 -816 -1821 -609 --2084 -601 --1140 --407 -2397 --3081 --2639 -1762 --1682 -578 --947 -545 -62 -46 -149 --1497 -4169 --2352 -3533 --881 --2490 -3182 --2255 --167 -1238 --3504 -3448 -270 -86 --196 -572 -2413 --2294 -16 --1188 --286 --1175 --1134 --1156 -631 -905 -3135 --3489 -646 -632 -282 --2317 --1394 --30 --388 -1742 --555 -531 --657 -948 --1802 -2524 --3161 -480 -962 -142 --2283 -2782 --1920 -339 --2599 --2737 -4147 --2061 -2079 -2289 -1802 --3372 -1857 -2752 -477 -721 -280 -238 -776 -68 -427 -739 -278 -187 -904 -422 -315 -679 -937 -188 -296 -116 -400 -522 -447 -91 -643 -863 -955 -663 -703 -942 -848 -513 -402 -162 -748 -175 -513 -232 -997 -500 -39 -370 -832 -789 -375 -547 -816 -145 -547 -415 -82 -157 -602 -515 -654 -96 -65 -897 -612 -422 -31 -311 -964 -216 -900 -95 -870 -835 -892 -766 -539 -991 -500 -394 -843 -58 -34 -504 -143 -515 -751 -262 -155 -129 -255 -679 -966 -374 -991 -54 -223 -864 -22 -303 -943 -650 -216 -866 -951 -910 -244 -545 -232 -735 -95 -23 -574 -509 -528 -613 -435 -616 -81 -842 -208 -938 -246 -393 -162 -292 -838 -905 -544 -604 -910 -952 -646 -668 -80 -167 -520 -395 -620 -958 -221 -678 -414 -952 -70 -919 -887 -356 -183 -665 -217 -812 -466 -831 -944 -941 -519 -110 -886 -280 -327 -141 -59 -702 -985 -548 -329 -781 -428 -513 -548 -156 -576 -805 -356 -758 -984 -260 -725 -976 -471 -398 -77 -352 -675 -689 -742 -847 -466 -434 -321 -926 -466 -434 -423 -325 -181 -767 -585 -7 -916 -317 -768 -620 -580 -923 -269 -347 -139 -625 -899 -398 -879 -846 -613 -36 -659 -750 -440 -833 -508 -193 -877 -423 -637 -296 -581 -213 -700 -773 -910 -709 -446 -195 -987 -701 -147 -312 -697 -589 -252 -197 -182 -123 -584 -898 -472 -724 -479 -183 -564 -285 -74 -503 -529 -342 -363 -207 -798 -105 -477 -889 -187 -944 -582 -854 -846 -701 -323 -503 -690 -629 -740 -284 -326 -38 -776 -893 -156 -817 -326 -771 -706 -507 -60 -420 -29 -365 -241 -650 -145 -633 -528 -920 -571 -582 -603 -207 -588 -857 -751 -851 -192 -649 -981 -592 -952 -247 -911 -787 -98 -881 -333 -128 -83 -267 -837 -206 -426 -610 -627 -714 -183 -474 -32 -998 -772 -570 -32 -568 -83 -461 -514 -447 -965 -248 -463 -955 -542 -306 -33 -580 -295 -97 -820 -90 -89 -112 -408 -302 -179 -841 -966 -964 -40 -164 -810 -123 -918 -918 -890 -297 -116 -11 -427 -689 -582 -579 -316 -386 -942 -888 -31 -729 -52 -979 -691 -452 -930 -431 -519 -334 -634 -705 -538 -382 -135 -775 -281 -753 -337 -11 -564 -631 -386 -414 -608 -227 -303 -451 -614 -334 -4 -882 -849 -791 -93 -916 -571 -964 -102 -179 -513 -488 -49 -774 -804 -337 -739 -572 -794 -345 -205 -344 -49 -440 -122 -311 -787 -716 -838 -986 -422 -532 -433 -707 -304 -777 -594 -963 -184 -258 -405 -991 -162 -854 -539 -253 -188 -327 -715 -659 -675 -733 -762 -633 -537 -684 -226 -570 -696 -356 -636 -82 -736 -355 -443 -26 -446 -764 -856 -833 -299 -676 -627 -517 -298 -768 -791 -635 -677 -837 -156 -156 -646 -542 -757 -393 -186 -251 -206 -476 -64 -911 -627 -69 -360 -985 -218 -774 -869 -166 -449 -952 -988 -155 -90 -573 -826 -933 -497 -169 -716 -516 -495 -380 -672 -368 -561 -107 -684 -846 -44 -8 -547 -409 -719 -736 -552 -651 -920 -620 -802 -96 -273 -484 -841 diff --git a/examples/machsuite/stencil/stencil3d_input.data b/examples/machsuite/stencil/stencil3d_input.data deleted file mode 100644 index 80ea8e282f..0000000000 --- a/examples/machsuite/stencil/stencil3d_input.data +++ /dev/null @@ -1,16388 +0,0 @@ -%% -6 --1 -%% -839 -147 -454 -933 -267 -957 -355 -72 -849 -363 -305 -928 -270 -225 -325 -435 -360 -864 -613 -963 -275 -226 -352 -728 -579 -208 -66 -205 -821 -605 -139 -858 -661 -125 -248 -803 -122 -165 -889 -868 -617 -623 -518 -941 -678 -841 -428 -481 -621 -9 -913 -760 -520 -738 -135 -606 -326 -552 -697 -744 -559 -407 -303 -282 -969 -393 -115 -451 -818 -553 -655 -481 -255 -353 -810 -326 -180 -447 -735 -23 -31 -725 -70 -666 -911 -772 -26 -766 -475 -267 -415 -976 -488 -521 -402 -94 -198 -952 -862 -198 -106 -729 -802 -769 -63 -60 -194 -967 -845 -632 -262 -309 -911 -722 -571 -496 -167 -874 -884 -582 -804 -961 -140 -578 -660 -640 -949 -411 -552 -619 -945 -269 -726 -555 -354 -488 -122 -218 -110 -413 -795 -103 -515 -776 -844 -781 -272 -432 -549 -710 -337 -568 -515 -779 -276 -171 -179 -132 -940 -774 -646 -770 -282 -477 -499 -123 -330 -862 -381 -132 -385 -657 -282 -779 -556 -548 -871 -998 -145 -897 -140 -866 -595 -464 -275 -132 -775 -462 -40 -957 -915 -824 -926 -663 -622 -638 -612 -958 -201 -452 -682 -55 -582 -910 -396 -374 -504 -900 -910 -519 -442 -844 -324 -517 -438 -5 -411 -708 -540 -729 -947 -266 -726 -428 -530 -433 -920 -262 -161 -765 -598 -277 -339 -346 -275 -647 -89 -728 -50 -820 -835 -682 -394 -82 -584 -889 -973 -74 -28 -424 -936 -672 -995 -188 -203 -363 -342 -169 -864 -474 -532 -166 -936 -521 -838 -922 -116 -728 -299 -784 -839 -404 -637 -334 -623 -301 -703 -578 -396 -64 -178 -901 -849 -171 -469 -38 -648 -465 -200 -508 -420 -928 -849 -536 -422 -637 -871 -78 -897 -757 -865 -462 -548 -252 -675 -36 -682 -338 -285 -98 -938 -223 -153 -424 -509 -400 -449 -768 -896 -304 -561 -215 -378 -144 -682 -120 -83 -247 -508 -695 -89 -389 -112 -808 -834 -592 -980 -173 -735 -257 -824 -306 -36 -426 -630 -282 -458 -175 -584 -898 -742 -275 -803 -198 -743 -61 -112 -465 -648 -721 -456 -51 -852 -716 -115 -870 -186 -156 -23 -715 -936 -619 -902 -491 -410 -642 -746 -577 -45 -238 -284 -658 -422 -437 -904 -901 -535 -942 -469 -659 -576 -484 -470 -818 -691 -156 -708 -177 -183 -868 -17 -644 -429 -298 -596 -784 -300 -624 -338 -362 -422 -784 -200 -810 -198 -390 -294 -331 -445 -371 -856 -144 -989 -648 -219 -807 -952 -778 -326 -21 -803 -724 -360 -351 -154 -81 -373 -769 -14 -451 -307 -152 -996 -644 -113 -346 -660 -187 -763 -443 -148 -846 -7 -876 -722 -491 -186 -802 -355 -38 -564 -661 -721 -304 -641 -835 -536 -512 -776 -686 -437 -272 -212 -800 -577 -923 -757 -186 -599 -484 -604 -174 -342 -161 -907 -36 -566 -156 -375 -826 -640 -371 -544 -201 -151 -923 -336 -450 -196 -887 -348 -313 -122 -135 -339 -219 -695 -884 -325 -357 -503 -298 -519 -859 -857 -332 -87 -603 -184 -459 -356 -924 -846 -874 -662 -900 -488 -330 -769 -96 -252 -42 -325 -657 -347 -749 -421 -428 -214 -576 -718 -541 -341 -610 -326 -323 -559 -655 -666 -509 -889 -864 -510 -900 -456 -598 -906 -245 -126 -249 -494 -776 -530 -661 -310 -854 -522 -415 -243 -43 -723 -50 -984 -547 -314 -73 -515 -814 -975 -966 -97 -82 -911 -482 -6 -32 -316 -507 -901 -335 -404 -98 -133 -405 -640 -224 -24 -812 -258 -955 -32 -308 -692 -22 -41 -882 -960 -917 -949 -44 -622 -240 -972 -748 -209 -68 -289 -121 -665 -823 -383 -733 -66 -963 -972 -774 -6 -799 -669 -619 -793 -3 -519 -662 -214 -959 -922 -491 -57 -664 -1 -660 -276 -769 -92 -717 -233 -879 -464 -256 -938 -493 -573 -858 -97 -818 -830 -516 -433 -512 -773 -326 -577 -657 -27 -501 -116 -785 -548 -738 -386 -740 -750 -540 -624 -987 -59 -574 -371 -446 -407 -897 -213 -682 -237 -634 -180 -40 -82 -689 -67 -600 -568 -428 -764 -601 -155 -491 -542 -278 -741 -262 -221 -589 -835 -516 -154 -533 -428 -70 -163 -605 -116 -904 -330 -194 -227 -928 -342 -953 -595 -55 -229 -619 -251 -921 -933 -175 -942 -457 -81 -694 -508 -92 -975 -698 -187 -664 -377 -776 -758 -447 -936 -63 -208 -106 -720 -730 -986 -882 -472 -213 -522 -397 -764 -381 -599 -187 -639 -760 -654 -266 -164 -844 -606 -733 -819 -65 -990 -897 -753 -61 -153 -167 -145 -927 -511 -575 -499 -884 -660 -203 -349 -426 -580 -340 -599 -138 -492 -797 -399 -298 -100 -205 -281 -926 -476 -676 -682 -199 -192 -855 -832 -74 -932 -138 -433 -251 -795 -848 -392 -358 -678 -875 -927 -267 -502 -562 -425 -815 -101 -177 -371 -702 -193 -88 -696 -875 -368 -717 -252 -533 -381 -979 -262 -417 -255 -460 -657 -55 -114 -867 -355 -550 -847 -738 -312 -196 -585 -742 -266 -223 -66 -96 -536 -835 -639 -605 -991 -612 -94 -233 -659 -237 -666 -774 -715 -29 -136 -707 -52 -917 -433 -542 -317 -384 -157 -716 -610 -540 -519 -300 -757 -238 -438 -82 -342 -534 -690 -462 -138 -167 -727 -780 -261 -787 -274 -704 -422 -452 -116 -120 -91 -763 -259 -227 -306 -82 -899 -563 -450 -511 -943 -901 -983 -860 -183 -566 -468 -706 -315 -681 -187 -270 -176 -34 -144 -154 -637 -387 -172 -87 -957 -570 -759 -526 -48 -847 -553 -321 -67 -253 -309 -376 -413 -711 -316 -405 -721 -780 -496 -338 -442 -293 -340 -559 -614 -315 -55 -857 -809 -714 -351 -943 -530 -910 -196 -390 -454 -602 -538 -813 -170 -538 -769 -156 -175 -690 -823 -511 -539 -54 -349 -788 -320 -966 -182 -898 -667 -38 -901 -804 -160 -580 -27 -60 -967 -151 -96 -858 -830 -168 -358 -703 -233 -125 -310 -371 -684 -845 -646 -735 -743 -219 -195 -459 -681 -782 -393 -644 -807 -815 -713 -533 -633 -289 -556 -639 -631 -901 -438 -58 -876 -160 -51 -481 -286 -153 -371 -217 -929 -159 -302 -37 -552 -509 -319 -89 -706 -323 -926 -607 -966 -432 -178 -2 -457 -861 -597 -876 -906 -755 -412 -64 -802 -523 -211 -827 -441 -446 -1 -596 -932 -672 -149 -416 -160 -268 -71 -993 -462 -233 -886 -295 -536 -139 -131 -321 -893 -418 -827 -370 -638 -652 -348 -43 -706 -597 -772 -984 -475 -542 -218 -32 -962 -700 -251 -430 -838 -630 -558 -487 -747 -404 -584 -395 -580 -217 -826 -575 -460 -370 -177 -626 -212 -368 -570 -317 -179 -849 -940 -279 -948 -202 -86 -665 -463 -133 -838 -194 -819 -143 -262 -928 -905 -764 -382 -459 -35 -13 -489 -955 -157 -302 -771 -230 -283 -826 -545 -614 -139 -637 -259 -650 -780 -355 -683 -559 -571 -884 -335 -22 -831 -758 -665 -850 -827 -123 -368 -479 -557 -391 -699 -583 -753 -975 -571 -535 -768 -109 -303 -944 -848 -486 -916 -240 -621 -911 -535 -511 -932 -59 -848 -200 -961 -827 -818 -585 -890 -806 -685 -686 -932 -183 -154 -136 -234 -849 -903 -266 -409 -756 -870 -975 -949 -489 -803 -806 -58 -61 -763 -801 -693 -809 -23 -991 -893 -342 -423 -95 -979 -234 -389 -805 -541 -763 -955 -759 -717 -877 -370 -958 -624 -915 -291 -347 -339 -424 -200 -952 -689 -649 -197 -463 -578 -825 -102 -547 -779 -491 -64 -445 -937 -206 -153 -2 -68 -307 -288 -803 -466 -53 -314 -562 -224 -267 -34 -969 -621 -742 -802 -765 -321 -166 -439 -350 -869 -144 -924 -430 -995 -76 -779 -813 -703 -271 -539 -40 -640 -136 -601 -729 -518 -873 -314 -712 -53 -306 -13 -786 -936 -732 -201 -810 -766 -944 -263 -689 -493 -464 -923 -133 -897 -327 -447 -232 -21 -543 -353 -863 -496 -875 -797 -903 -246 -233 -86 -711 -259 -487 -280 -562 -343 -745 -703 -260 -997 -114 -356 -320 -84 -215 -477 -858 -274 -974 -527 -754 -342 -840 -92 -52 -834 -646 -659 -366 -961 -592 -262 -691 -377 -295 -805 -915 -556 -497 -992 -12 -862 -403 -992 -753 -151 -130 -287 -398 -926 -677 -648 -90 -223 -162 -389 -236 -933 -31 -376 -317 -511 -929 -205 -943 -313 -807 -962 -567 -95 -301 -769 -715 -835 -540 -366 -57 -100 -974 -374 -468 -828 -890 -92 -114 -340 -579 -479 -502 -268 -944 -746 -587 -695 -337 -498 -373 -987 -570 -509 -8 -430 -233 -548 -624 -658 -259 -96 -35 -226 -900 -985 -446 -621 -461 -360 -531 -554 -603 -884 -110 -842 -890 -551 -4 -253 -597 -757 -840 -265 -690 -290 -54 -304 -644 -37 -898 -233 -833 -147 -663 -50 -551 -410 -356 -643 -962 -405 -885 -185 -470 -385 -454 -254 -751 -303 -816 -195 -534 -912 -91 -716 -967 -370 -784 -153 -450 -364 -207 -692 -568 -322 -254 -345 -239 -521 -181 -810 -353 -410 -565 -480 -497 -868 -732 -673 -998 -164 -944 -930 -199 -747 -706 -186 -501 -580 -264 -790 -216 -195 -210 -847 -491 -350 -856 -368 -646 -974 -394 -252 -332 -107 -729 -432 -650 -542 -749 -700 -453 -712 -478 -966 -249 -149 -175 -742 -96 -939 -719 -799 -761 -438 -838 -599 -459 -219 -525 -713 -991 -650 -200 -334 -147 -322 -407 -984 -545 -738 -549 -391 -983 -79 -257 -525 -215 -87 -482 -944 -702 -247 -27 -54 -564 -209 -574 -788 -229 -423 -447 -786 -755 -151 -240 -10 -182 -991 -428 -921 -760 -871 -40 -976 -293 -924 -53 -550 -999 -820 -893 -616 -539 -67 -12 -15 -67 -847 -101 -867 -305 -215 -787 -1 -408 -159 -237 -364 -829 -557 -164 -717 -700 -713 -710 -542 -726 -517 -187 -473 -361 -283 -451 -474 -666 -949 -421 -22 -124 -277 -325 -909 -178 -282 -396 -755 -294 -690 -695 -4 -164 -105 -54 -741 -531 -925 -909 -117 -907 -654 -531 -79 -181 -187 -613 -565 -371 -55 -201 -433 -749 -84 -757 -103 -583 -401 -732 -579 -531 -388 -630 -766 -987 -485 -636 -677 -545 -264 -966 -89 -243 -241 -804 -156 -580 -179 -525 -360 -695 -609 -986 -75 -350 -915 -483 -705 -295 -770 -731 -330 -450 -688 -443 -9 -94 -81 -308 -54 -448 -374 -480 -274 -325 -728 -921 -569 -292 -209 -493 -500 -569 -236 -174 -319 -715 -382 -250 -138 -497 -413 -983 -79 -385 -626 -578 -997 -111 -321 -326 -365 -690 -438 -518 -640 -520 -501 -998 -771 -821 -633 -375 -352 -218 -892 -181 -450 -934 -581 -869 -743 -72 -643 -679 -964 -665 -692 -905 -453 -245 -445 -44 -640 -858 -456 -768 -783 -106 -138 -901 -462 -170 -994 -258 -91 -84 -575 -418 -919 -750 -857 -815 -297 -274 -169 -82 -246 -805 -205 -887 -434 -18 -942 -271 -272 -992 -218 -197 -864 -521 -95 -726 -81 -711 -999 -118 -343 -914 -122 -330 -97 -299 -150 -911 -817 -886 -965 -668 -826 -488 -386 -100 -135 -70 -811 -972 -628 -47 -207 -548 -234 -12 -225 -711 -62 -98 -623 -608 -668 -461 -686 -420 -93 -420 -823 -229 -619 -43 -869 -25 -452 -599 -321 -359 -431 -150 -831 -539 -428 -269 -820 -197 -635 -829 -840 -42 -49 -149 -162 -375 -537 -213 -730 -302 -455 -350 -393 -102 -157 -485 -17 -25 -918 -590 -974 -79 -543 -137 -110 -205 -729 -311 -588 -886 -963 -74 -763 -692 -183 -826 -654 -523 -86 -657 -817 -758 -454 -150 -863 -669 -941 -109 -898 -284 -280 -809 -103 -835 -246 -634 -713 -569 -346 -426 -366 -616 -244 -805 -43 -765 -115 -746 -645 -134 -430 -223 -717 -23 -664 -460 -778 -866 -875 -528 -43 -403 -74 -444 -253 -557 -13 -82 -906 -887 -454 -890 -841 -108 -169 -661 -292 -473 -562 -850 -283 -534 -821 -549 -892 -456 -303 -520 -103 -234 -793 -876 -520 -862 -548 -692 -940 -33 -121 -207 -191 -625 -559 -290 -954 -980 -862 -53 -218 -284 -607 -91 -838 -154 -900 -117 -135 -128 -746 -650 -749 -372 -781 -575 -790 -740 -596 -956 -197 -739 -861 -849 -513 -656 -688 -541 -502 -137 -468 -719 -871 -363 -432 -590 -337 -53 -796 -164 -671 -513 -373 -178 -792 -907 -930 -343 -562 -956 -753 -362 -328 -290 -436 -940 -632 -145 -725 -424 -851 -831 -996 -703 -25 -860 -464 -831 -728 -330 -104 -133 -559 -428 -418 -242 -79 -768 -169 -475 -932 -217 -362 -591 -950 -420 -844 -934 -649 -999 -356 -712 -693 -143 -301 -474 -368 -651 -198 -567 -557 -735 -824 -318 -957 -982 -782 -923 -526 -665 -289 -848 -28 -430 -704 -367 -173 -280 -241 -62 -546 -124 -483 -524 -378 -574 -196 -811 -996 -49 -354 -649 -84 -266 -807 -162 -303 -709 -486 -806 -788 -679 -586 -867 -571 -320 -425 -560 -914 -998 -436 -619 -232 -702 -173 -259 -970 -540 -683 -262 -258 -792 -313 -951 -223 -44 -963 -179 -851 -638 -203 -399 -430 -606 -772 -351 -133 -451 -176 -987 -736 -65 -856 -886 -273 -107 -241 -504 -160 -425 -247 -853 -525 -778 -496 -152 -178 -408 -293 -93 -528 -129 -562 -544 -169 -781 -859 -33 -618 -706 -857 -866 -430 -331 -847 -957 -913 -974 -85 -445 -585 -647 -616 -484 -732 -63 -618 -980 -149 -478 -455 -672 -951 -316 -424 -816 -251 -224 -833 -110 -969 -432 -323 -858 -179 -652 -817 -106 -229 -487 -601 -128 -16 -777 -621 -659 -772 -360 -765 -315 -307 -424 -150 -484 -885 -80 -831 -862 -882 -70 -112 -607 -262 -962 -29 -91 -65 -563 -233 -897 -280 -584 -780 -163 -502 -706 -642 -282 -461 -987 -151 -129 -672 -380 -814 -639 -392 -31 -980 -485 -666 -739 -387 -285 -25 -735 -321 -427 -231 -497 -162 -904 -96 -557 -638 -823 -83 -732 -994 -101 -130 -287 -942 -349 -347 -329 -423 -53 -934 -820 -256 -514 -399 -923 -700 -335 -541 -619 -81 -778 -8 -423 -626 -404 -173 -36 -815 -210 -6 -450 -938 -359 -650 -492 -99 -736 -625 -537 -630 -837 -740 -400 -552 -170 -822 -351 -533 -178 -488 -969 -501 -49 -879 -659 -850 -123 -627 -153 -899 -456 -327 -550 -788 -80 -843 -973 -99 -990 -631 -635 -509 -300 -466 -412 -922 -788 -98 -242 -110 -282 -543 -431 -821 -644 -767 -253 -968 -420 -942 -954 -728 -748 -400 -623 -831 -717 -95 -173 -181 -457 -904 -432 -420 -366 -501 -865 -830 -469 -329 -204 -559 -541 -636 -301 -848 -196 -92 -938 -852 -836 -515 -777 -715 -878 -870 -412 -788 -557 -81 -776 -861 -318 -711 -790 -627 -92 -566 -27 -850 -652 -581 -758 -621 -49 -86 -538 -270 -10 -603 -863 -911 -351 -974 -913 -965 -458 -714 -744 -612 -771 -711 -122 -658 -32 -863 -929 -731 -246 -742 -900 -818 -86 -990 -847 -283 -842 -710 -739 -225 -352 -407 -762 -142 -124 -735 -963 -55 -944 -380 -817 -848 -174 -677 -97 -166 -707 -305 -677 -727 -464 -197 -856 -369 -906 -3 -964 -462 -446 -455 -736 -343 -209 -880 -537 -65 -993 -19 -810 -897 -873 -470 -817 -187 -760 -220 -596 -787 -662 -487 -729 -526 -894 -326 -32 -965 -543 -873 -438 -788 -404 -995 -190 -21 -643 -877 -925 -280 -237 -759 -136 -12 -289 -80 -828 -826 -140 -91 -153 -806 -380 -826 -50 -716 -59 -900 -848 -74 -742 -424 -367 -909 -431 -398 -854 -110 -497 -414 -218 -884 -994 -788 -27 -747 -23 -346 -572 -767 -460 -205 -307 -834 -225 -47 -384 -300 -326 -164 -139 -956 -595 -17 -181 -726 -545 -96 -511 -336 -592 -878 -276 -43 -215 -380 -37 -368 -9 -274 -473 -614 -17 -375 -838 -670 -990 -243 -829 -888 -153 -128 -301 -938 -768 -951 -9 -721 -336 -23 -987 -934 -747 -484 -653 -369 -24 -436 -775 -700 -687 -874 -99 -92 -161 -291 -144 -39 -334 -610 -753 -481 -929 -759 -664 -456 -27 -388 -610 -615 -396 -486 -881 -938 -367 -405 -912 -673 -369 -25 -615 -466 -540 -432 -713 -300 -112 -213 -379 -19 -605 -842 -12 -799 -563 -288 -735 -601 -648 -245 -550 -916 -693 -691 -591 -750 -464 -745 -5 -161 -982 -455 -381 -652 -328 -582 -198 -218 -46 -839 -440 -616 -45 -454 -500 -863 -641 -62 -26 -565 -317 -552 -901 -865 -10 -536 -966 -841 -606 -781 -780 -429 -833 -566 -367 -972 -759 -861 -508 -426 -759 -484 -443 -743 -806 -782 -293 -176 -609 -348 -758 -598 -451 -4 -502 -351 -454 -566 -691 -163 -817 -414 -42 -215 -779 -672 -97 -31 -829 -253 -255 -928 -402 -161 -499 -630 -851 -532 -301 -218 -562 -645 -250 -316 -306 -203 -388 -622 -788 -620 -559 -539 -165 -391 -10 -649 -736 -723 -522 -784 -705 -109 -706 -251 -21 -517 -481 -278 -475 -955 -63 -288 -650 -217 -697 -858 -660 -385 -586 -128 -435 -370 -892 -84 -794 -936 -369 -261 -115 -746 -630 -921 -2 -317 -437 -241 -638 -481 -155 -731 -607 -398 -463 -353 -889 -247 -588 -931 -236 -98 -716 -78 -373 -735 -160 -991 -792 -898 -771 -517 -287 -547 -180 -732 -17 -573 -84 -396 -945 -520 -920 -242 -73 -299 -512 -6 -314 -164 -21 -198 -858 -938 -348 -705 -813 -398 -936 -381 -631 -653 -528 -182 -933 -847 -663 -136 -851 -820 -625 -113 -379 -882 -666 -268 -208 -987 -514 -389 -704 -106 -394 -980 -986 -524 -103 -761 -202 -307 -270 -480 -889 -886 -828 -952 -335 -457 -421 -806 -122 -927 -225 -960 -299 -356 -692 -213 -10 -563 -880 -337 -590 -747 -101 -963 -624 -10 -197 -670 -223 -101 -142 -927 -753 -152 -918 -133 -32 -915 -98 -712 -761 -537 -330 -811 -174 -131 -336 -101 -872 -356 -279 -352 -578 -651 -867 -148 -229 -911 -77 -150 -546 -820 -356 -12 -569 -673 -889 -127 -301 -758 -254 -519 -992 -5 -219 -789 -959 -335 -334 -716 -360 -522 -751 -971 -250 -299 -965 -140 -25 -91 -360 -988 -849 -909 -782 -727 -711 -620 -859 -461 -459 -312 -305 -160 -281 -581 -344 -3 -93 -95 -782 -631 -731 -2 -467 -873 -828 -404 -819 -127 -745 -698 -841 -767 -570 -118 -722 -324 -974 -128 -521 -525 -343 -399 -8 -141 -705 -146 -591 -569 -278 -518 -490 -73 -183 -754 -413 -423 -86 -52 -500 -459 -816 -159 -203 -653 -836 -178 -418 -605 -698 -946 -730 -629 -43 -178 -4 -335 -311 -807 -10 -534 -788 -894 -354 -421 -631 -848 -960 -881 -763 -361 -570 -740 -518 -972 -275 -890 -898 -96 -53 -782 -421 -267 -996 -341 -169 -959 -969 -884 -717 -531 -883 -722 -659 -894 -437 -61 -942 -13 -311 -29 -635 -333 -692 -451 -895 -355 -404 -824 -934 -964 -394 -699 -343 -629 -680 -169 -160 -586 -283 -98 -318 -664 -94 -772 -28 -698 -503 -453 -47 -230 -308 -560 -774 -681 -710 -287 -774 -877 -477 -958 -814 -667 -168 -276 -352 -260 -579 -587 -141 -173 -674 -427 -1 -827 -348 -101 -190 -873 -258 -805 -365 -856 -530 -127 -675 -149 -768 -226 -985 -512 -206 -814 -247 -276 -168 -597 -650 -527 -290 -569 -564 -300 -387 -767 -585 -786 -931 -947 -402 -156 -752 -835 -912 -196 -17 -168 -935 -38 -328 -849 -850 -124 -549 -579 -574 -805 -916 -517 -812 -722 -647 -787 -82 -718 -803 -982 -878 -973 -496 -343 -363 -853 -973 -593 -117 -946 -976 -761 -942 -77 -437 -58 -429 -470 -549 -53 -807 -539 -636 -466 -259 -20 -504 -101 -906 -154 -284 -377 -888 -430 -362 -767 -592 -836 -255 -37 -766 -379 -192 -493 -521 -599 -167 -234 -546 -362 -378 -333 -446 -594 -641 -447 -841 -714 -884 -393 -165 -245 -372 -500 -725 -102 -837 -189 -651 -221 -223 -28 -233 -116 -553 -660 -210 -876 -978 -176 -962 -54 -357 -823 -210 -767 -246 -511 -516 -872 -854 -214 -947 -951 -376 -431 -321 -123 -601 -126 -396 -869 -529 -823 -6 -810 -515 -464 -831 -689 -59 -753 -618 -265 -559 -87 -441 -999 -638 -318 -903 -848 -321 -536 -711 -510 -385 -364 -646 -415 -438 -389 -594 -135 -221 -222 -27 -898 -899 -830 -356 -526 -118 -633 -847 -742 -853 -556 -828 -549 -646 -979 -558 -966 -658 -429 -251 -35 -516 -156 -699 -278 -790 -310 -554 -85 -839 -157 -260 -735 -470 -819 -861 -430 -45 -149 -63 -645 -471 -722 -712 -907 -719 -740 -991 -584 -857 -880 -65 -126 -164 -482 -79 -80 -243 -27 -257 -329 -562 -216 -648 -713 -795 -189 -436 -5 -51 -755 -713 -193 -120 -873 -151 -633 -76 -708 -805 -647 -330 -528 -519 -864 -744 -815 -157 -539 -147 -959 -873 -977 -481 -133 -956 -577 -28 -862 -698 -135 -471 -215 -464 -793 -7 -531 -115 -369 -947 -695 -565 -558 -928 -285 -325 -923 -614 -306 -62 -504 -648 -5 -767 -546 -197 -941 -134 -591 -464 -169 -962 -785 -434 -409 -301 -104 -646 -839 -670 -884 -878 -59 -785 -483 -213 -393 -350 -422 -315 -851 -124 -920 -576 -423 -257 -126 -325 -94 -478 -501 -790 -217 -104 -311 -25 -383 -979 -998 -445 -263 -120 -298 -836 -54 -314 -227 -197 -574 -53 -656 -11 -789 -116 -46 -538 -716 -363 -304 -924 -393 -899 -159 -91 -884 -210 -427 -697 -82 -664 -766 -692 -108 -827 -438 -670 -710 -398 -550 -665 -98 -670 -5 -241 -944 -702 -115 -961 -126 -592 -502 -978 -392 -319 -586 -783 -794 -846 -719 -570 -801 -998 -380 -433 -785 -548 -809 -392 -21 -148 -988 -345 -115 -289 -149 -566 -839 -134 -154 -918 -522 -351 -89 -538 -363 -931 -812 -842 -869 -912 -37 -602 -815 -591 -115 -105 -627 -580 -577 -94 -233 -608 -167 -206 -851 -809 -373 -754 -524 -437 -698 -739 -121 -2 -353 -262 -335 -94 -752 -121 -183 -291 -43 -467 -679 -991 -296 -885 -582 -172 -296 -765 -702 -426 -94 -367 -831 -336 -266 -248 -724 -924 -757 -995 -942 -332 -947 -709 -669 -534 -847 -458 -597 -193 -100 -553 -834 -902 -358 -905 -729 -490 -254 -781 -948 -58 -426 -439 -260 -325 -425 -22 -356 -67 -896 -495 -368 -763 -484 -889 -921 -669 -442 -580 -9 -781 -252 -646 -36 -443 -589 -174 -49 -811 -711 -242 -525 -11 -480 -247 -8 -227 -672 -743 -148 -461 -141 -862 -211 -551 -665 -922 -940 -973 -823 -381 -671 -873 -193 -976 -232 -852 -479 -336 -544 -782 -146 -673 -563 -237 -710 -278 -375 -27 -459 -340 -484 -822 -224 -249 -957 -401 -851 -93 -247 -171 -168 -523 -752 -721 -101 -825 -60 -43 -38 -520 -492 -348 -766 -757 -834 -788 -279 -969 -860 -324 -148 -414 -230 -528 -361 -750 -958 -754 -995 -302 -75 -82 -114 -324 -169 -415 -488 -265 -283 -757 -310 -270 -170 -103 -424 -216 -80 -238 -568 -231 -699 -205 -780 -520 -366 -737 -617 -153 -462 -520 -340 -887 -201 -189 -286 -497 -433 -807 -478 -57 -915 -775 -282 -248 -800 -584 -260 -633 -101 -987 -946 -36 -804 -929 -195 -283 -714 -421 -175 -103 -546 -6 -294 -487 -734 -230 -433 -8 -103 -581 -221 -357 -6 -678 -335 -581 -979 -837 -909 -213 -111 -772 -735 -160 -131 -635 -236 -909 -887 -254 -660 -605 -928 -967 -509 -965 -277 -21 -323 -109 -429 -103 -431 -788 -951 -359 -460 -198 -43 -385 -30 -980 -689 -223 -42 -43 -794 -373 -896 -71 -20 -175 -978 -317 -115 -529 -772 -314 -459 -769 -44 -351 -848 -589 -661 -751 -446 -514 -817 -129 -41 -802 -209 -839 -312 -103 -310 -473 -982 -636 -112 -848 -381 -185 -964 -619 -450 -766 -199 -317 -914 -111 -819 -819 -708 -548 -694 -437 -87 -323 -520 -690 -159 -305 -866 -658 -537 -491 -513 -46 -635 -414 -997 -78 -147 -616 -894 -195 -857 -703 -622 -147 -118 -533 -984 -672 -242 -680 -106 -134 -319 -8 -144 -83 -898 -546 -198 -351 -525 -605 -547 -590 -584 -434 -368 -600 -163 -140 -654 -670 -759 -577 -849 -445 -710 -518 -759 -255 -161 -686 -165 -221 -666 -79 -440 -855 -269 -536 -327 -427 -402 -726 -269 -470 -61 -769 -961 -776 -701 -148 -239 -478 -722 -420 -607 -65 -840 -20 -363 -998 -709 -756 -785 -415 -253 -175 -313 -373 -38 -917 -141 -294 -279 -998 -422 -652 -883 -753 -239 -300 -870 -377 -985 -420 -756 -51 -361 -547 -708 -904 -504 -96 -289 -306 -990 -100 -639 -913 -640 -921 -420 -402 -559 -342 -88 -474 -834 -165 -166 -152 -715 -247 -756 -45 -79 -881 -344 -850 -808 -472 -291 -689 -466 -517 -98 -109 -344 -736 -562 -839 -315 -76 -500 -116 -961 -616 -841 -793 -238 -932 -449 -992 -75 -456 -64 -492 -957 -896 -243 -820 -24 -192 -956 -621 -78 -777 -950 -370 -568 -825 -502 -475 -105 -222 -39 -361 -92 -49 -798 -203 -591 -524 -175 -268 -192 -863 -955 -125 -587 -475 -960 -973 -446 -662 -490 -676 -837 -869 -713 -772 -959 -974 -353 -63 -338 -920 -660 -971 -682 -441 -872 -553 -395 -996 -601 -412 -841 -278 -170 -772 -183 -98 -502 -318 -345 -888 -563 -551 -713 -95 -754 -685 -312 -749 -751 -786 -609 -966 -242 -509 -908 -804 -351 -910 -850 -524 -295 -550 -188 -203 -867 -316 -446 -258 -622 -143 -64 -521 -425 -776 -108 -589 -583 -654 -941 -750 -817 -380 -334 -6 -888 -340 -829 -69 -599 -673 -958 -950 -383 -270 -437 -338 -156 -64 -35 -279 -611 -918 -477 -742 -417 -24 -681 -466 -740 -23 -173 -865 -362 -856 -844 -624 -416 -582 -624 -13 -165 -157 -844 -672 -730 -515 -26 -666 -842 -403 -762 -156 -831 -839 -204 -218 -670 -313 -416 -769 -544 -679 -640 -895 -98 -959 -999 -210 -226 -462 -195 -64 -574 -871 -525 -844 -108 -127 -263 -249 -251 -759 -994 -79 -39 -120 -341 -476 -183 -738 -433 -42 -331 -861 -974 -380 -350 -939 -554 -380 -844 -811 -60 -397 -911 -3 -62 -642 -27 -76 -987 -787 -773 -271 -133 -260 -302 -57 -321 -97 -877 -900 -509 -37 -731 -890 -634 -969 -835 -270 -695 -541 -374 -537 -881 -799 -722 -770 -885 -357 -426 -221 -350 -632 -447 -389 -105 -461 -501 -736 -192 -666 -293 -421 -254 -799 -51 -156 -218 -687 -288 -585 -411 -852 -528 -488 -938 -249 -368 -772 -744 -963 -96 -335 -442 -929 -487 -810 -701 -718 -406 -32 -215 -942 -865 -336 -719 -986 -279 -382 -723 -488 -844 -713 -51 -563 -431 -27 -866 -343 -688 -400 -805 -820 -884 -308 -865 -146 -824 -293 -779 -509 -326 -925 -392 -606 -592 -556 -569 -271 -141 -44 -397 -688 -351 -277 -619 -697 -710 -798 -959 -600 -404 -939 -721 -472 -348 -69 -92 -744 -136 -137 -906 -844 -554 -993 -756 -362 -394 -816 -938 -299 -192 -385 -86 -322 -526 -528 -489 -80 -243 -343 -96 -252 -354 -288 -666 -779 -579 -202 -485 -253 -995 -201 -725 -547 -616 -98 -367 -170 -736 -809 -813 -916 -532 -356 -30 -221 -525 -835 -985 -67 -63 -412 -490 -173 -942 -421 -517 -511 -932 -148 -128 -242 -380 -410 -403 -715 -555 -961 -899 -623 -448 -925 -687 -143 -294 -213 -703 -593 -446 -451 -718 -325 -141 -753 -177 -244 -824 -567 -155 -145 -732 -570 -805 -532 -661 -685 -93 -816 -856 -965 -819 -817 -968 -120 -200 -492 -151 -841 -803 -319 -234 -814 -491 -518 -674 -22 -534 -144 -980 -97 -673 -237 -429 -984 -191 -723 -708 -603 -74 -364 -838 -684 -799 -170 -102 -623 -317 -596 -452 -725 -172 -817 -230 -805 -684 -326 -69 -462 -598 -658 -297 -519 -278 -231 -886 -77 -690 -920 -826 -492 -391 -205 -320 -878 -400 -295 -366 -312 -199 -215 -213 -415 -677 -358 -35 -41 -460 -32 -332 -620 -309 -345 -948 -541 -639 -546 -523 -939 -793 -502 -603 -515 -709 -953 -498 -749 -675 -70 -48 -367 -545 -692 -933 -447 -552 -35 -822 -631 -420 -320 -429 -539 -274 -101 -332 -559 -290 -801 -370 -989 -356 -948 -534 -940 -123 -240 -21 -859 -226 -380 -658 -186 -673 -959 -845 -33 -369 -213 -961 -702 -461 -838 -789 -150 -929 -161 -987 -336 -458 -680 -724 -91 -149 -35 -589 -829 -418 -301 -120 -267 -435 -408 -949 -997 -451 -945 -550 -537 -332 -639 -528 -367 -526 -175 -202 -855 -722 -633 -946 -938 -100 -987 -266 -859 -268 -754 -628 -211 -934 -234 -859 -112 -571 -129 -545 -881 -433 -452 -98 -148 -926 -746 -853 -947 -302 -813 -342 -676 -790 -370 -6 -789 -472 -938 -724 -640 -193 -569 -426 -849 -955 -285 -870 -473 -177 -432 -383 -136 -97 -770 -936 -128 -85 -122 -802 -607 -435 -169 -188 -79 -60 -953 -51 -568 -251 -815 -912 -636 -749 -770 -49 -265 -209 -492 -923 -403 -94 -619 -596 -308 -853 -282 -89 -157 -669 -23 -681 -402 -347 -717 -952 -16 -804 -980 -45 -713 -128 -175 -835 -282 -230 -765 -339 -158 -264 -94 -543 -525 -620 -855 -623 -977 -118 -275 -892 -427 -313 -278 -506 -202 -972 -364 -181 -329 -6 -753 -771 -87 -244 -551 -201 -535 -207 -520 -531 -597 -821 -883 -503 -349 -251 -493 -468 -352 -594 -29 -127 -14 -728 -548 -620 -90 -633 -541 -306 -202 -55 -675 -113 -13 -908 -481 -124 -243 -602 -777 -932 -261 -884 -911 -248 -246 -888 -251 -129 -337 -44 -442 -903 -134 -967 -506 -241 -94 -471 -236 -656 -589 -22 -805 -527 -288 -396 -373 -132 -891 -592 -393 -208 -850 -202 -813 -376 -179 -764 -938 -298 -514 -717 -608 -6 -792 -411 -46 -72 -880 -475 -227 -353 -406 -76 -166 -697 -1 -441 -357 -277 -587 -640 -164 -298 -328 -234 -584 -35 -154 -436 -755 -789 -476 -237 -618 -673 -196 -713 -183 -468 -382 -803 -741 -550 -990 -247 -378 -660 -703 -945 -906 -213 -388 -885 -770 -345 -365 -357 -78 -867 -243 -991 -921 -63 -597 -368 -967 -946 -865 -468 -305 -348 -731 -904 -816 -429 -566 -819 -253 -630 -629 -562 -400 -512 -603 -774 -410 -106 -3 -223 -697 -709 -405 -548 -836 -685 -26 -455 -923 -210 -46 -526 -592 -409 -390 -43 -732 -680 -988 -903 -460 -8 -861 -409 -853 -272 -946 -19 -120 -562 -153 -410 -460 -375 -532 -613 -844 -84 -540 -405 -510 -118 -551 -411 -78 -313 -980 -265 -2 -441 -16 -247 -488 -463 -40 -112 -136 -930 -59 -463 -46 -972 -499 -859 -458 -246 -664 -500 -614 -452 -284 -180 -633 -479 -482 -375 -249 -59 -514 -38 -766 -512 -324 -138 -12 -607 -235 -455 -336 -729 -100 -356 -125 -706 -856 -399 -957 -215 -363 -21 -619 -93 -238 -17 -846 -293 -994 -325 -94 -649 -62 -209 -989 -439 -988 -787 -372 -314 -373 -877 -59 -924 -243 -805 -269 -184 -767 -532 -994 -855 -914 -664 -369 -945 -577 -48 -533 -824 -457 -985 -279 -181 -35 -888 -861 -520 -702 -372 -754 -455 -120 -649 -673 -634 -837 -324 -482 -810 -764 -587 -955 -687 -504 -28 -601 -429 -307 -823 -816 -959 -417 -955 -70 -539 -374 -296 -824 -971 -19 -978 -815 -290 -314 -861 -975 -51 -273 -170 -741 -628 -574 -844 -265 -760 -809 -125 -580 -659 -656 -303 -753 -34 -656 -549 -975 -627 -795 -852 -222 -545 -415 -269 -393 -176 -480 -764 -906 -279 -201 -929 -95 -469 -481 -718 -65 -629 -808 -47 -67 -53 -175 -716 -319 -709 -912 -624 -113 -422 -804 -33 -717 -693 -360 -351 -55 -54 -367 -26 -733 -641 -962 -241 -101 -702 -902 -63 -417 -529 -378 -150 -501 -65 -675 -515 -956 -140 -741 -923 -68 -902 -466 -619 -580 -59 -112 -18 -809 -332 -199 -381 -97 -108 -250 -278 -495 -142 -742 -877 -902 -537 -634 -909 -449 -210 -3 -672 -798 -402 -916 -3 -607 -760 -1 -205 -643 -476 -373 -933 -283 -433 -759 -940 -483 -418 -42 -609 -482 -853 -802 -366 -850 -128 -47 -672 -982 -534 -923 -146 -93 -182 -845 -197 -796 -268 -821 -254 -708 -226 -786 -934 -910 -336 -691 -409 -92 -263 -993 -533 -36 -147 -655 -286 -529 -771 -73 -530 -845 -55 -268 -798 -729 -982 -908 -330 -354 -120 -292 -260 -805 -842 -969 -311 -167 -769 -897 -494 -873 -464 -908 -535 -807 -449 -392 -240 -437 -499 -549 -652 -422 -557 -906 -399 -473 -844 -376 -783 -12 -328 -795 -255 -214 -352 -882 -150 -946 -623 -346 -566 -711 -300 -976 -61 -82 -710 -42 -619 -444 -2 -924 -910 -447 -129 -650 -249 -545 -848 -425 -192 -108 -617 -341 -12 -891 -557 -948 -154 -84 -363 -475 -640 -619 -801 -511 -22 -307 -912 -115 -666 -707 -138 -304 -845 -136 -802 -197 -445 -574 -396 -173 -700 -894 -32 -332 -617 -194 -428 -122 -267 -856 -110 -385 -773 -600 -318 -947 -680 -947 -627 -253 -230 -317 -191 -898 -110 -251 -250 -653 -603 -902 -967 -105 -905 -674 -76 -107 -698 -628 -683 -516 -79 -892 -329 -198 -551 -111 -145 -307 -692 -308 -896 -776 -458 -222 -599 -920 -255 -896 -547 -946 -887 -883 -555 -844 -485 -27 -454 -758 -611 -35 -154 -995 -969 -673 -599 -871 -24 -276 -23 -649 -373 -137 -192 -67 -284 -517 -472 -738 -513 -917 -24 -947 -698 -793 -880 -151 -361 -851 -345 -714 -690 -795 -474 -5 -632 -937 -588 -937 -152 -508 -881 -823 -625 -982 -985 -658 -689 -54 -556 -615 -847 -974 -380 -836 -723 -120 -716 -526 -648 -271 -434 -125 -97 -307 -554 -682 -981 -277 -732 -525 -138 -653 -284 -504 -178 -102 -423 -110 -746 -815 -201 -745 -829 -712 -743 -537 -366 -923 -998 -557 -83 -968 -820 -955 -227 -812 -537 -942 -693 -354 -714 -212 -993 -170 -594 -13 -142 -683 -697 -142 -807 -187 -655 -670 -455 -271 -789 -969 -579 -337 -441 -354 -758 -150 -580 -499 -445 -24 -891 -791 -95 -824 -563 -474 -829 -525 -320 -90 -232 -962 -195 -704 -310 -268 -821 -845 -583 -19 -167 -962 -91 -228 -216 -368 -734 -252 -515 -314 -632 -274 -689 -836 -454 -948 -924 -690 -161 -923 -619 -995 -849 -801 -203 -757 -661 -112 -667 -217 -603 -440 -437 -617 -845 -178 -872 -943 -625 -651 -280 -190 -765 -909 -103 -500 -942 -275 -465 -704 -643 -182 -629 -524 -1 -667 -854 -915 -715 -956 -108 -201 -779 -448 -548 -381 -73 -657 -314 -805 -610 -600 -324 -89 -331 -191 -880 -388 -115 -682 -547 -425 -581 -271 -28 -937 -970 -511 -237 -387 -547 -951 -336 -574 -448 -330 -258 -527 -422 -814 -220 -350 -129 -793 -936 -370 -552 -328 -136 -129 -177 -731 -913 -843 -880 -585 -951 -372 -224 -729 -357 -976 -778 -127 -294 -702 -469 -320 -779 -243 -409 -358 -276 -777 -488 -244 -66 -617 -465 -80 -839 -343 -840 -929 -705 -61 -609 -437 -896 -849 -56 -628 -528 -223 -945 -776 -987 -558 -937 -413 -497 -311 -908 -258 -716 -326 -222 -793 -396 -646 -524 -233 -577 -911 -479 -165 -740 -108 -956 -251 -730 -506 -856 -907 -632 -597 -891 -701 -646 -461 -163 -878 -424 -134 -565 -297 -63 -234 -829 -560 -869 -333 -817 -633 -865 -77 -166 -222 -387 -145 -884 -51 -443 -962 -452 -902 -603 -523 -140 -256 -14 -956 -557 -100 -306 -330 -749 -464 -977 -946 -383 -22 -186 -782 -828 -259 -739 -140 -724 -403 -518 -103 -106 -354 -991 -419 -657 -814 -495 -154 -630 -412 -304 -951 -754 -967 -805 -271 -690 -844 -413 -247 -38 -984 -538 -391 -480 -758 -772 -823 -720 -96 -672 -667 -862 -32 -513 -432 -14 -918 -473 -683 -495 -752 -331 -456 -162 -528 -462 -607 -533 -219 -114 -948 -779 -9 -966 -396 -591 -78 -347 -658 -716 -266 -210 -111 -265 -196 -505 -127 -204 -268 -319 -338 -187 -760 -661 -496 -155 -380 -385 -202 -666 -858 -596 -530 -149 -39 -1 -439 -417 -828 -268 -622 -953 -50 -995 -473 -965 -111 -471 -794 -884 -859 -86 -947 -981 -773 -963 -548 -877 -20 -95 -151 -712 -660 -135 -18 -181 -641 -915 -217 -18 -995 -797 -1 -247 -436 -315 -136 -205 -576 -145 -331 -487 -657 -152 -516 -309 -13 -308 -98 -448 -704 -959 -209 -455 -577 -536 -337 -12 -835 -933 -819 -311 -383 -53 -34 -21 -876 -791 -599 -672 -524 -64 -607 -400 -342 -140 -231 -742 -243 -609 -380 -408 -84 -117 -485 -703 -970 -255 -117 -562 -301 -752 -673 -942 -479 -588 -138 -799 -275 -482 -803 -537 -44 -918 -467 -415 -824 -367 -371 -853 -243 -89 -674 -402 -211 -314 -233 -918 -712 -304 -400 -890 -679 -769 -513 -768 -889 -474 -104 -640 -548 -838 -302 -854 -352 -376 -405 -795 -402 -120 -429 -624 -480 -377 -239 -404 -115 -933 -461 -574 -874 -531 -239 -676 -971 -82 -14 -784 -601 -925 -325 -778 -235 -686 -895 -161 -876 -104 -347 -345 -782 -767 -757 -64 -504 -141 -928 -433 -251 -259 -345 -935 -946 -562 -8 -496 -829 -723 -835 -213 -784 -973 -151 -161 -42 -541 -161 -593 -616 -444 -393 -687 -54 -407 -482 -99 -53 -896 -904 -554 -74 -506 -945 -716 -542 -452 -772 -625 -710 -746 -259 -512 -912 -76 -741 -178 -240 -678 -368 -876 -244 -323 -291 -150 -602 -408 -984 -28 -997 -922 -235 -635 -419 -256 -667 -656 -684 -222 -522 -907 -666 -498 -360 -622 -516 -82 -671 -978 -76 -540 -680 -240 -706 -940 -831 -486 -464 -220 -957 -616 -773 -760 -628 -578 -925 -439 -62 -325 -963 -419 -935 -952 -600 -561 -59 -993 -873 -538 -492 -331 -37 -703 -687 -622 -346 -823 -867 -893 -183 -740 -876 -696 -402 -746 -138 -324 -960 -635 -326 -618 -342 -889 -839 -166 -937 -468 -216 -945 -515 -187 -378 -969 -245 -283 -530 -871 -310 -960 -515 -562 -624 -221 -325 -377 -62 -165 -721 -791 -316 -726 -660 -735 -625 -673 -631 -321 -842 -361 -465 -762 -388 -635 -68 -631 -126 -92 -737 -163 -155 -27 -438 -857 -447 -324 -83 -389 -907 -785 -871 -883 -841 -145 -193 -384 -148 -114 -194 -689 -412 -877 -178 -123 -484 -820 -991 -105 -53 -536 -799 -20 -16 -139 -462 -468 -401 -493 -921 -71 -458 -268 -88 -516 -733 -10 -147 -519 -797 -112 -78 -225 -33 -951 -948 -473 -319 -435 -363 -781 -141 -563 -799 -639 -101 -228 -595 -111 -456 -971 -319 -269 -470 -427 -48 -430 -608 -807 -127 -205 -772 -24 -251 -266 -368 -719 -914 -69 -762 -848 -499 -963 -43 -733 -731 -314 -998 -839 -724 -248 -339 -130 -349 -645 -813 -958 -757 -659 -224 -451 -986 -878 -591 -578 -77 -629 -291 -869 -743 -712 -873 -756 -643 -596 -613 -825 -486 -588 -377 -970 -145 -884 -158 -712 -833 -658 -233 -882 -699 -239 -30 -478 -872 -630 -363 -433 -647 -945 -296 -713 -15 -917 -458 -286 -127 -303 -33 -262 -497 -366 -219 -461 -263 -692 -801 -911 -451 -616 -225 -227 -343 -130 -731 -63 -999 -404 -558 -47 -102 -6 -184 -136 -601 -639 -542 -569 -838 -201 -289 -611 -283 -232 -826 -241 -621 -261 -666 -150 -865 -743 -82 -554 -896 -255 -818 -780 -548 -849 -841 -823 -211 -645 -983 -308 -788 -867 -166 -507 -912 -779 -96 -417 -977 -241 -310 -908 -381 -134 -512 -438 -195 -915 -772 -823 -990 -405 -991 -305 -670 -850 -445 -846 -477 -227 -449 -175 -125 -989 -938 -447 -844 -504 -872 -612 -725 -201 -641 -463 -696 -573 -715 -936 -596 -103 -830 -680 -316 -393 -678 -947 -979 -264 -938 -228 -233 -569 -630 -937 -403 -144 -362 -538 -657 -369 -259 -277 -821 -32 -597 -52 -782 -596 -976 -486 -351 -682 -618 -863 -266 -661 -195 -814 -208 -355 -496 -329 -156 -61 -427 -156 -626 -291 -923 -122 -807 -268 -961 -865 -969 -190 -326 -41 -226 -29 -683 -610 -580 -606 -552 -239 -508 -177 -640 -489 -980 -96 -353 -451 -659 -480 -464 -472 -761 -890 -107 -968 -263 -394 -132 -340 -117 -373 -770 -879 -135 -734 -234 -554 -808 -242 -241 -543 -11 -496 -786 -135 -499 -943 -897 -221 -754 -320 -877 -20 -988 -445 -375 -889 -253 -588 -736 -969 -69 -753 -774 -314 -304 -108 -772 -484 -528 -357 -436 -415 -129 -983 -790 -646 -500 -807 -279 -704 -36 -315 -537 -864 -694 -139 -290 -534 -571 -262 -933 -518 -987 -294 -880 -581 -264 -537 -280 -324 -460 -397 -355 -563 -41 -312 -655 -225 -73 -682 -721 -837 -47 -273 -257 -642 -520 -524 -18 -411 -105 -419 -665 -543 -566 -162 -632 -855 -878 -273 -692 -128 -960 -110 -704 -49 -217 -680 -135 -899 -465 -569 -420 -24 -902 -491 -410 -636 -774 -159 -51 -6 -898 -74 -771 -558 -111 -412 -316 -64 -70 -137 -119 -798 -290 -464 -731 -286 -649 -48 -592 -569 -403 -263 -599 -53 -371 -613 -697 -452 -524 -39 -817 -461 -139 -575 -870 -331 -177 -246 -665 -787 -222 -713 -198 -579 -106 -257 -865 -881 -646 -679 -260 -996 -871 -52 -50 -307 -949 -428 -315 -491 -459 -364 -778 -189 -513 -138 -581 -847 -451 -289 -956 -925 -126 -799 -595 -453 -666 -782 -885 -640 -342 -843 -709 -359 -590 -968 -811 -259 -274 -218 -594 -976 -874 -245 -233 -411 -597 -670 -406 -899 -704 -23 -540 -817 -150 -589 -558 -922 -64 -547 -506 -986 -414 -533 -821 -959 -11 -887 -81 -439 -46 -341 -21 -295 -934 -690 -620 -536 -495 -553 -467 -994 -639 -963 -150 -482 -322 -89 -473 -993 -182 -123 -852 -368 -267 -171 -149 -812 -508 -12 -732 -616 -440 -716 -182 -869 -221 -16 -791 -600 -415 -576 -567 -210 -713 -363 -675 -345 -796 -41 -604 -399 -652 -82 -51 -495 -113 -164 -506 -678 -655 -361 -378 -420 -461 -566 -515 -411 -374 -849 -168 -17 -952 -670 -486 -424 -118 -919 -710 -139 -365 -340 -59 -955 -793 -858 -55 -859 -456 -89 -284 -431 -758 -105 -409 -354 -508 -780 -540 -598 -283 -604 -550 -665 -564 -662 -258 -364 -102 -44 -586 -749 -443 -229 -55 -157 -368 -63 -106 -646 -265 -402 -969 -198 -756 -306 -354 -810 -601 -871 -235 -688 -841 -218 -313 -867 -675 -406 -59 -801 -775 -522 -559 -718 -217 -976 -686 -985 -305 -80 -42 -57 -547 -589 -659 -806 -310 -843 -563 -77 -387 -26 -666 -361 -696 -537 -820 -847 -657 -887 -94 -791 -290 -938 -845 -652 -162 -752 -159 -600 -511 -845 -290 -971 -905 -494 -208 -851 -688 -266 -201 -608 -354 -84 -589 -222 -392 -6 -439 -237 -587 -349 -999 -265 -156 -162 -908 -874 -616 -692 -108 -889 -390 -895 -991 -382 -849 -747 -579 -630 -669 -151 -708 -693 -247 -705 -162 -631 -45 -701 -811 -865 -149 -387 -972 -162 -806 -21 -735 -680 -999 -305 -519 -807 -107 -608 -276 -910 -859 -997 -328 -255 -812 -791 -491 -642 -560 -721 -987 -166 -99 -875 -972 -467 -61 -548 -498 -59 -817 -384 -27 -76 -778 -662 -413 -21 -35 -733 -13 -188 -162 -554 -83 -90 -212 -598 -290 -267 -752 -211 -297 -86 -380 -306 -533 -886 -511 -791 -625 -563 -558 -856 -361 -756 -702 -573 -292 -178 -612 -13 -258 -858 -935 -241 -496 -662 -476 -680 -436 -777 -822 -966 -567 -393 -813 -907 -833 -283 -155 -428 -463 -412 -366 -38 -376 -308 -656 -869 -524 -345 -410 -854 -552 -363 -65 -536 -913 -697 -363 -604 -802 -992 -579 -984 -546 -297 -5 -149 -9 -489 -581 -697 -558 -885 -453 -352 -328 -628 -985 -336 -234 -80 -24 -160 -488 -616 -827 -594 -975 -884 -720 -292 -531 -479 -69 -939 -345 -838 -958 -370 -634 -748 -128 -198 -276 -125 -159 -253 -626 -859 -505 -498 -360 -639 -430 -553 -359 -340 -526 -479 -125 -393 -268 -616 -797 -128 -114 -522 -134 -939 -741 -907 -151 -946 -724 -254 -408 -800 -959 -794 -514 -774 -235 -717 -474 -30 -299 -110 -751 -152 -527 -771 -351 -137 -299 -445 -123 -888 -68 -475 -144 -64 -441 -154 -771 -769 -234 -946 -6 -287 -922 -70 -477 -641 -228 -754 -177 -812 -316 -81 -466 -814 -143 -739 -777 -744 -268 -627 -175 -228 -358 -18 -809 -950 -127 -109 -342 -631 -346 -649 -528 -887 -79 -825 -937 -113 -930 -881 -809 -160 -514 -792 -527 -672 -815 -517 -621 -168 -236 -939 -851 -292 -161 -866 -371 -111 -283 -940 -838 -627 -852 -34 -947 -538 -327 -873 -873 -73 -839 -452 -392 -522 -98 -168 -368 -532 -232 -468 -87 -580 -874 -143 -510 -93 -263 -807 -650 -786 -757 -170 -768 -100 -20 -895 -103 -532 -905 -166 -167 -935 -294 -26 -650 -731 -114 -450 -115 -453 -386 -652 -305 -646 -777 -202 -94 -896 -20 -20 -931 -207 -587 -208 -101 -577 -435 -406 -781 -965 -430 -606 -442 -39 -795 -697 -623 -663 -133 -736 -884 -495 -931 -100 -919 -953 -278 -14 -368 -591 -874 -296 -197 -861 -398 -592 -951 -957 -939 -155 -920 -740 -374 -39 -490 -156 -373 -125 -344 -81 -974 -821 -82 -851 -157 -212 -213 -293 -561 -897 -282 -472 -782 -573 -426 -390 -518 -609 -798 -74 -414 -111 -749 -878 -179 -349 -585 -835 -339 -736 -172 -486 -947 -659 -621 -709 -556 -947 -883 -204 -385 -658 -303 -986 -436 -216 -166 -764 -615 -490 -315 -918 -425 -26 -576 -714 -306 -37 -392 -507 -46 -790 -233 -72 -1 -826 -453 -675 -156 -400 -544 -45 -272 -380 -310 -912 -409 -30 -620 -589 -355 -227 -533 -54 -74 -325 -340 -386 -940 -620 -754 -431 -118 -661 -175 -949 -119 -427 -12 -258 -449 -355 -969 -884 -381 -878 -904 -391 -147 -978 -246 -414 -389 -669 -567 -742 -542 -220 -821 -8 -683 -806 -868 -164 -518 -993 -494 -873 -833 -513 -638 -820 -963 -732 -179 -795 -556 -398 -799 -976 -820 -969 -860 -948 -946 -468 -747 -943 -541 -862 -429 -772 -497 -916 -507 -385 -586 -113 -315 -260 -452 -17 -994 -695 -614 -370 -652 -844 -401 -489 -202 -205 -33 -922 -909 -147 -870 -698 -40 -317 -407 -594 -535 -419 -95 -281 -272 -700 -191 -4 -310 -257 -824 -786 -14 -573 -556 -929 -834 -554 -413 -799 -365 -83 -634 -635 -539 -361 -692 -987 -313 -731 -814 -704 -184 -79 -822 -768 -304 -364 -186 -171 -501 -724 -882 -112 -170 -781 -461 -533 -490 -343 -200 -4 -728 -417 -271 -689 -846 -433 -369 -645 -635 -378 -781 -965 -355 -204 -371 -302 -559 -892 -139 -196 -857 -999 -760 -657 -491 -338 -35 -91 -579 -380 -30 -746 -265 -507 -801 -41 -744 -8 -898 -994 -227 -243 -626 -338 -449 -531 -317 -576 -392 -495 -485 -670 -279 -526 -929 -813 -914 -62 -178 -408 -626 -575 -823 -181 -823 -654 -507 -277 -655 -255 -750 -968 -424 -376 -710 -434 -185 -91 -83 -6 -778 -651 -826 -335 -784 -681 -786 -539 -345 -406 -419 -18 -790 -211 -862 -826 -924 -686 -591 -35 -559 -749 -419 -724 -811 -438 -401 -702 -151 -527 -745 -892 -120 -262 -868 -26 -158 -656 -346 -684 -315 -614 -690 -583 -766 -731 -606 -889 -596 -807 -134 -753 -680 -951 -86 -395 -85 -697 -240 -652 -919 -190 -662 -693 -749 -746 -367 -831 -331 -389 -513 -592 -33 -901 -333 -10 -861 -183 -328 -251 -2 -868 -447 -598 -55 -257 -184 -672 -86 -766 -202 -132 -756 -335 -914 -313 -141 -699 -831 -677 -951 -92 -793 -504 -410 -189 -862 -495 -397 -468 -909 -379 -165 -886 -771 -159 -963 -553 -259 -333 -548 -946 -281 -873 -688 -467 -962 -535 -844 -743 -980 -976 -377 -532 -434 -507 -373 -250 -487 -874 -46 -586 -115 -778 -767 -756 -526 -117 -120 -664 -592 -280 -444 -699 -526 -667 -408 -123 -7 -215 -770 -202 -610 -577 -378 -143 -579 -42 -734 -576 -893 -170 -920 -804 -180 -48 -900 -625 -697 -93 -561 -572 -261 -505 -376 -278 -534 -644 -221 -627 -14 -675 -723 -749 -715 -391 -205 -916 -363 -297 -791 -76 -341 -298 -816 -917 -923 -735 -696 -155 -837 -244 -768 -462 -705 -4 -841 -226 -533 -126 -897 -33 -963 -85 -653 -150 -255 -72 -607 -149 -320 -762 -643 -766 -506 -648 -22 -988 -845 -310 -877 -347 -643 -642 -7 -198 -742 -862 -87 -904 -43 -241 -333 -590 -841 -298 -329 -665 -682 -92 -259 -562 -470 -194 -981 -355 -429 -665 -166 -167 -516 -318 -749 -407 -860 -457 -598 -496 -690 -681 -237 -470 -855 -36 -418 -294 -584 -390 -345 -355 -368 -518 -809 -35 -17 -94 -491 -132 -584 -375 -462 -775 -522 -995 -100 -181 -311 -997 -976 -724 -829 -849 -874 -995 -699 -284 -320 -53 -453 -751 -893 -678 -568 -510 -425 -499 -744 -164 -700 -575 -780 -569 -469 -800 -226 -645 -761 -644 -620 -621 -286 -589 -685 -304 -391 -797 -687 -247 -994 -112 -123 -408 -295 -692 -223 -484 -896 -112 -429 -85 -485 -60 -912 -512 -551 -702 -839 -897 -376 -195 -870 -539 -59 -13 -518 -385 -496 -354 -909 -922 -55 -414 -543 -481 -112 -706 -292 -431 -134 -123 -470 -662 -1 -325 -80 -426 -545 -425 -966 -554 -807 -217 -679 -550 -414 -788 -924 -377 -689 -54 -6 -618 -600 -267 -113 -968 -123 -581 -805 -450 -50 -432 -214 -98 -655 -927 -222 -46 -938 -444 -545 -746 -304 -624 -578 -682 -977 -394 -72 -226 -472 -569 -747 -770 -824 -779 -390 -314 -291 -946 -325 -271 -247 -332 -40 -714 -458 -200 -650 -33 -750 -353 -25 -608 -904 -238 -99 -567 -433 -134 -553 -912 -985 -176 -855 -59 -363 -662 -316 -175 -714 -428 -413 -975 -241 -660 -198 -532 -69 -356 -266 -559 -554 -432 -101 -614 -906 -662 -37 -509 -55 -552 -505 -71 -781 -172 -869 -283 -23 -669 -465 -459 -98 -200 -35 -236 -511 -284 -317 -489 -26 -17 -841 -38 -800 -176 -563 -713 -584 -392 -530 -102 -637 -410 -979 -305 -326 -104 -706 -186 -160 -781 -646 -945 -952 -761 -546 -859 -216 -709 -775 -538 -947 -234 -115 -577 -153 -320 -930 -568 -658 -738 -228 -769 -621 -531 -72 -729 -334 -219 -165 -650 -982 -200 -852 -425 -483 -475 -747 -344 -123 -654 -334 -227 -346 -275 -579 -603 -74 -12 -9 -979 -948 -107 -24 -948 -154 -445 -915 -978 -638 -503 -293 -431 -869 -770 -922 -521 -30 -490 -133 -31 -332 -515 -349 -731 -500 -374 -397 -446 -351 -83 -366 -328 -197 -250 -446 -652 -400 -270 -692 -580 -159 -794 -845 -116 -296 -681 -585 -434 -514 -364 -828 -810 -876 -585 -135 -798 -520 -20 -802 -679 -972 -451 -133 -218 -961 -508 -842 -263 -594 -694 -746 -267 -29 -464 -175 -505 -945 -935 -940 -460 -15 -295 -978 -826 -109 -679 -283 -368 -706 -907 -365 -414 -257 -525 -770 -306 -164 -533 -188 -799 -86 -86 -819 -519 -689 -519 -972 -795 -986 -24 -448 -137 -66 -164 -900 -611 -975 -165 -874 -25 -614 -891 -547 -349 -567 -376 -217 -379 -227 -268 -947 -587 -787 -801 -312 -21 -326 -177 -662 -864 -470 -87 -17 -418 -719 -761 -785 -860 -212 -575 -302 -874 -773 -213 -642 -644 -908 -963 -419 -114 -703 -845 -888 -113 -946 -191 -557 -877 -870 -595 -956 -172 -204 -742 -415 -52 -830 -38 -220 -227 -265 -15 -358 -348 -995 -843 -127 -708 -491 -470 -484 -216 -705 -892 -461 -926 -323 -646 -323 -668 -603 -100 -810 -901 -587 -881 -304 -142 -968 -501 -338 -868 -148 -37 -339 -703 -156 -384 -44 -799 -939 -109 -981 -236 -679 -694 -185 -420 -634 -430 -802 -723 -719 -972 -478 -540 -623 -273 -580 -479 -374 -6 -354 -308 -725 -550 -651 -979 -63 -725 -621 -441 -998 -835 -323 -469 -407 -299 -370 -428 -751 -565 -895 -88 -620 -416 -446 -369 -890 -16 -325 -805 -335 -220 -129 -396 -796 -377 -36 -84 -634 -147 -300 -212 -503 -850 -508 -854 -708 -878 -884 -371 -683 -559 -298 -638 -583 -418 -682 -6 -245 -414 -632 -840 -353 -584 -685 -81 -69 -943 -140 -689 -358 -999 -520 -373 -907 -981 -537 -343 -982 -81 -869 -244 -164 -22 -760 -93 -736 -199 -493 -89 -90 -89 -47 -622 -578 -519 -814 -595 -832 -628 -652 -202 -362 -440 -132 -925 -445 -926 -630 -944 -168 -422 -220 -935 -833 -280 -541 -631 -853 -926 -636 -386 -559 -152 -797 -457 -122 -128 -242 -462 -186 -777 -534 -603 -422 -990 -383 -581 -542 -481 -722 -834 -297 -768 -186 -247 -840 -161 -885 -242 -112 -720 -696 -45 -679 -899 -387 -105 -483 -675 -62 -587 -103 -670 -301 -700 -453 -798 -13 -190 -767 -553 -938 -952 -802 -236 -671 -540 -834 -671 -410 -600 -4 -478 -347 -357 -898 -603 -757 -526 -391 -412 -43 -131 -641 -108 -680 -723 -97 -261 -567 -979 -750 -935 -641 -289 -249 -570 -786 -207 -568 -20 -843 -80 -331 -637 -629 -448 -583 -541 -993 -451 -388 -874 -563 -260 -547 -749 -837 -973 -896 -787 -281 -418 -58 -987 -473 -539 -58 -655 -968 -323 -195 -223 -838 -603 -150 -753 -718 -530 -703 -5 -758 -985 -707 -164 -435 -793 -74 -671 -100 -672 -685 -964 -278 -145 -414 -249 -153 -75 -218 -775 -39 -908 -923 -261 -102 -677 -339 -827 -407 -689 -538 -350 -485 -977 -262 -891 -563 -268 -844 -826 -340 -177 -908 -210 -835 -602 -23 -862 -989 -999 -951 -426 -194 -586 -237 -233 -412 -918 -360 -8 -443 -262 -593 -124 -614 -669 -84 -782 -54 -314 -232 -313 -726 -472 -670 -95 -931 -318 -222 -727 -597 -138 -981 -607 -947 -643 -819 -328 -244 -395 -703 -42 -811 -85 -269 -827 -963 -38 -703 -840 -154 -696 -192 -751 -938 -939 -995 -835 -466 -909 -309 -674 -790 -998 -942 -375 -864 -186 -530 -796 -40 -103 -975 -373 -332 -920 -358 -165 -912 -482 -434 -940 -894 -605 -76 -245 -220 -442 -794 -823 -699 -413 -611 -641 -617 -222 -28 -721 -364 -87 -965 -974 -759 -364 -34 -86 -888 -237 -109 -436 -566 -13 -879 -557 -173 -181 -353 -635 -64 -8 -85 -216 -13 -978 -180 -282 -676 -695 -522 -713 -932 -412 -159 -989 -606 -308 -735 -912 -49 -830 -352 -799 -306 -586 -30 -487 -998 -861 -506 -971 -938 -831 -973 -618 -862 -107 -551 -869 -472 -624 -945 -339 -427 -961 -446 -389 -124 -710 -197 -788 -30 -304 -993 -444 -274 -669 -124 -817 -753 -367 -714 -801 -29 -371 -736 -335 -124 -9 -913 -905 -220 -53 -55 -739 -852 -705 -210 -833 -558 -262 -177 -169 -475 -502 -393 -515 -244 -351 -235 -86 -446 -511 -221 -187 -858 -351 -987 -26 -703 -145 -35 -499 -872 -609 -381 -221 -76 -368 -632 -762 -206 -490 -651 -102 -364 -540 -396 -884 -668 -997 -632 -194 -749 -490 -977 -293 -866 -742 -668 -17 -621 -155 -491 -656 -293 -901 -711 -198 -146 -642 -134 -325 -562 -878 -899 -430 -786 -184 -745 -526 -312 -927 -201 -445 -820 -956 -591 -999 -428 -831 -798 -489 -987 -862 -597 -989 -530 -688 -437 -371 -475 -545 -496 -184 -122 -417 -457 -839 -184 -159 -798 -840 -685 -530 -294 -460 -805 -140 -752 -411 -57 -593 -667 -382 -344 -28 -235 -293 -917 -240 -353 -811 -95 -684 -620 -553 -983 -853 -579 -757 -523 -18 -393 -195 -915 -181 -503 -191 -521 -287 -849 -373 -753 -738 -897 -653 -594 -324 -938 -11 -686 -190 -767 -170 -693 -866 -565 -494 -84 -833 -178 -956 -164 -131 -839 -613 -690 -941 -764 -734 -193 -280 -871 -154 -575 -137 -663 -681 -231 -761 -920 -892 -964 -525 -286 -119 -517 -402 -254 -158 -627 -210 -18 -190 -140 -957 -935 -111 -481 -991 -811 -322 -57 -97 -564 -800 -748 -163 -467 -512 -156 -806 -37 -889 -728 -144 -392 -193 -584 -802 -403 -206 -498 -536 -101 -666 -406 -993 -60 -200 -878 -830 -54 -712 -17 -459 -903 -312 -173 -100 -765 -266 -658 -957 -587 -715 -252 -475 -314 -866 -286 -161 -582 -689 -649 -281 -69 -717 -573 -731 -211 -352 -505 -134 -891 -494 -573 -681 -553 -707 -47 -714 -919 -34 -926 -29 -183 -801 -471 -335 -802 -55 -250 -489 -909 -275 -483 -352 -497 -381 -523 -27 -318 -834 -370 -908 -943 -474 -122 -379 -900 -632 -794 -417 -493 -317 -547 -785 -882 -587 -544 -497 -462 -376 -191 -200 -121 -263 -613 -355 -113 -335 -223 -214 -449 -239 -502 -569 -767 -802 -385 -610 -742 -723 -360 -69 -113 -351 -995 -14 -684 -187 -457 -524 -227 -540 -783 -597 -2 -411 -543 -853 -960 -551 -302 -135 -176 -424 -252 -766 -294 -946 -901 -669 -113 -734 -864 -255 -27 -536 -291 -422 -890 -191 -145 -879 -454 -386 -229 -45 -22 -965 -44 -303 -917 -720 -812 -401 -861 -738 -800 -755 -769 -894 -699 -430 -253 -715 -210 -795 -261 -869 -941 -711 -656 -249 -624 -348 -633 -905 -54 -8 -908 -846 -3 -150 -412 -473 -338 -583 -54 -25 -778 -853 -537 -702 -218 -849 -198 -757 -711 -477 -881 -688 -28 -296 -372 -878 -403 -672 -326 -554 -889 -598 -9 -857 -224 -342 -922 -317 -747 -927 -61 -65 -149 -669 -838 -282 -908 -32 -111 -308 -55 -761 -779 -993 -894 -716 -810 -984 -556 -462 -820 -216 -577 -10 -339 -407 -615 -903 -130 -757 -664 -326 -869 -491 -386 -987 -283 -500 -995 -961 -180 -931 -762 -124 -280 -599 -961 -259 -514 -234 -702 -847 -117 -602 -336 -577 -979 -536 -381 -442 -754 -79 -109 -792 -518 -340 -781 -157 -995 -627 -120 -644 -506 -61 -287 -329 -417 -816 -930 -199 -324 -376 -433 -103 -992 -355 -649 -185 -631 -587 -797 -328 -937 -661 -884 -453 -68 -853 -58 -717 -920 -597 -737 -494 -730 -97 -195 -213 -680 -807 -300 -527 -924 -307 -534 -13 -748 -71 -890 -19 -956 -723 -850 -315 -570 -961 -517 -170 -899 -388 -449 -258 -459 -132 -449 -825 -248 -918 -479 -726 -526 -487 -707 -950 -288 -150 -288 -917 -223 -218 -665 -792 -138 -23 -745 -616 -580 -768 -126 -965 -964 -292 -229 -635 -359 -492 -550 -518 -300 -382 -905 -80 -883 -659 -435 -417 -591 -808 -591 -810 -970 -700 -568 -80 -751 -677 -830 -407 -350 -780 -514 -457 -354 -386 -835 -276 -454 -623 -770 -192 -49 -170 -615 -727 -208 -554 -427 -457 -207 -542 -60 -292 -714 -202 -152 -943 -733 -949 -327 -249 -479 -76 -924 -941 -908 -160 -165 -408 -368 -615 -882 -885 -346 -371 -175 -598 -237 -507 -245 -242 -627 -912 -947 -188 -705 -635 -366 -222 -498 -614 -444 -545 -299 -650 -965 -18 -595 -440 -814 -749 -66 -470 -104 -326 -472 -838 -487 -119 -949 -161 -711 -402 -195 -539 -411 -480 -928 -356 -65 -577 -799 -442 -969 -113 -709 -650 -84 -349 -513 -910 -992 -350 -774 -727 -156 -179 -402 -456 -323 -464 -196 -749 -516 -537 -872 -523 -185 -537 -577 -710 -711 -811 -192 -858 -142 -704 -102 -836 -656 -400 -936 -584 -112 -347 -199 -160 -156 -447 -869 -795 -300 -803 -681 -180 -206 -886 -734 -191 -387 -834 -465 -394 -608 -34 -682 -776 -526 -558 -632 -976 -982 -974 -915 -150 -403 -151 -61 -571 -856 -181 -342 -805 -743 -903 -723 -749 -65 -548 -652 -670 -214 -468 -536 -780 -684 -555 -222 -955 -499 -576 -759 -111 -846 -933 -668 -222 -739 -162 -309 -236 -716 -104 -503 -122 -190 -199 -18 -219 -129 -376 -165 -747 -109 -540 -405 -689 -85 -537 -240 -777 -77 -913 -355 -739 -51 -906 -474 -637 -722 -93 -4 -393 -121 -995 -896 -694 -64 -247 -466 -142 -790 -975 -745 -870 -272 -306 -608 -402 -354 -425 -858 -854 -797 -834 -12 -253 -833 -706 -440 -978 -739 -161 -296 -921 -775 -938 -814 -725 -485 -354 -425 -818 -855 -460 -633 -144 -383 -350 -642 -653 -701 -457 -586 -474 -24 -249 -599 -575 -473 -511 -607 -900 -146 -832 -150 -30 -328 -856 -911 -117 -940 -846 -201 -203 -943 -427 -639 -268 -391 -84 -562 -160 -425 -315 -330 -400 -28 -970 -106 -342 -28 -652 -153 -895 -919 -318 -626 -114 -30 -543 -524 -656 -411 -472 -208 -999 -324 -205 -823 -981 -899 -889 -8 -573 -599 -770 -428 -365 -799 -630 -174 -905 -278 -947 -37 -948 -885 -236 -257 -611 -647 -282 -278 -826 -261 -462 -34 -177 -733 -299 -670 -508 -921 -185 -102 -155 -114 -638 -949 -926 -143 -804 -750 -306 -994 -693 -846 -142 -113 -698 -859 -479 -241 -332 -2 -380 -427 -905 -314 -225 -136 -268 -627 -329 -193 -443 -771 -505 -324 -859 -518 -949 -841 -955 -428 -341 -986 -969 -474 -249 -627 -515 -133 -484 -162 -205 -429 -981 -441 -555 -212 -543 -542 -891 -625 -445 -565 -250 -170 -865 -654 -728 -491 -56 -394 -292 -254 -622 -662 -39 -66 -76 -875 -89 -839 -453 -395 -208 -743 -475 -250 -502 -741 -827 -695 -590 -538 -612 -503 -584 -448 -17 -942 -378 -84 -294 -338 -539 -938 -300 -387 -373 -666 -718 -410 -574 -15 -142 -768 -535 -725 -72 -608 -567 -481 -433 -916 -10 -696 -107 -507 -610 -477 -674 -848 -510 -331 -564 -822 -723 -142 -379 -380 -520 -582 -243 -924 -899 -283 -399 -399 -47 -273 -511 -733 -437 -9 -453 -945 -870 -898 -531 -19 -15 -959 -796 -471 -154 -919 -376 -289 -833 -83 -950 -21 -217 -407 -327 -236 -312 -257 -991 -320 -179 -610 -301 -168 -48 -162 -752 -153 -256 -7 -838 -939 -481 -490 -95 -91 -996 -634 -83 -734 -945 -3 -874 -162 -770 -431 -539 -342 -100 -556 -693 -157 -653 -848 -624 -548 -74 -274 -136 -369 -402 -332 -640 -220 -366 -847 -496 -411 -611 -284 -903 -374 -336 -883 -525 -952 -280 -840 -881 -631 -384 -798 -310 -136 -207 -586 -155 -712 -787 -892 -120 -417 -252 -963 -912 -379 -469 -386 -170 -956 -513 -890 -625 -433 -583 -472 -670 -798 -529 -349 -151 -21 -47 -577 -378 -260 -91 -849 -871 -401 -467 -460 -456 -148 -154 -870 -657 -307 -113 -888 -263 -401 -106 -814 -561 -773 -505 -158 -766 -357 -887 -538 -213 -645 -11 -650 -159 -364 -932 -30 -551 -958 -783 -199 -471 -960 -475 -875 -475 -312 -133 -675 -603 -709 -237 -103 -182 -237 -875 -991 -116 -646 -735 -945 -24 -54 -61 -830 -600 -370 -315 -618 -283 -570 -157 -407 -171 -369 -769 -482 -138 -366 -815 -617 -817 -989 -441 -90 -949 -266 -142 -963 -765 -957 -730 -812 -685 -579 -296 -443 -8 -505 -386 -915 -228 -925 -18 -846 -607 -29 -847 -728 -521 -427 -421 -961 -298 -131 -398 -849 -846 -280 -541 -82 -1 -447 -504 -88 -7 -440 -68 -647 -20 -368 -799 -316 -867 -32 -475 -786 -259 -489 -76 -874 -649 -800 -934 -932 -484 -57 -959 -981 -871 -878 -677 -396 -405 -381 -594 -313 -990 -735 -724 -932 -185 -154 -320 -703 -352 -407 -219 -992 -98 -20 -647 -59 -958 -300 -149 -133 -509 -543 -58 -927 -721 -291 -269 -458 -694 -398 -626 -632 -608 -930 -148 -111 -170 -436 -465 -632 -9 -411 -134 -969 -841 -872 -703 -26 -972 -653 -685 -73 -939 -481 -803 -376 -797 -746 -807 -134 -638 -932 -476 -270 -789 -856 -325 -569 -972 -112 -23 -901 -937 -978 -194 -478 -537 -761 -940 -292 -55 -482 -823 -147 -412 -453 -91 -995 -677 -660 -644 -734 -83 -348 -205 -375 -764 -924 -188 -928 -989 -615 -633 -863 -212 -679 -28 -467 -270 -683 -696 -424 -672 -41 -433 -899 -594 -453 -776 -240 -246 -163 -823 -118 -360 -235 -484 -651 -850 -340 -8 -344 -888 -407 -815 -209 -540 -4 -781 -888 -895 -252 -72 -882 -763 -880 -690 -294 -163 -869 -821 -392 -535 -566 -430 -310 -304 -42 -783 -702 -252 -356 -908 -363 -237 -4 -564 -664 -324 -855 -312 -932 -990 -481 -590 -181 -735 -197 -175 -666 -952 -162 -530 -388 -321 -39 -737 -398 -515 -699 -172 -577 -737 -388 -445 -815 -585 -957 -704 -46 -923 -19 -967 -574 -45 -291 -382 -781 -306 -864 -740 -164 -332 -762 -578 -940 -802 -69 -907 -180 -509 -561 -656 -938 -106 -823 -404 -592 -401 -801 -500 -590 -466 -728 -231 -62 -268 -39 -515 -769 -451 -190 -979 -313 -578 -845 -723 -994 -958 -741 -736 -579 -189 -125 -259 -468 -398 -961 -233 -14 -884 -495 -831 -327 -8 -446 -18 -503 -967 -412 -657 -142 -325 -764 -955 -185 -112 -528 -267 -491 -450 -818 -559 -884 -294 -518 -969 -152 -171 -33 -286 -314 -418 -533 -811 -853 -842 -348 -89 -992 -271 -756 -194 -12 -841 -716 -652 -522 -437 -131 -174 -616 -559 -649 -177 -13 -119 -438 -355 -211 -249 -233 -521 -607 -152 -468 -910 -629 -944 -504 -220 -193 -491 -635 -605 -103 -541 -916 -39 -334 -153 -667 -573 -801 -487 -882 -339 -518 -252 -119 -893 -645 -718 -869 -223 -609 -108 -410 -587 -606 -492 -766 -308 -120 -905 -493 -221 -65 -553 -821 -128 -123 -466 -519 -134 -90 -264 -161 -830 -620 -703 -742 -357 -438 -160 -48 -649 -64 -651 -899 -220 -414 -849 -251 -559 -792 -969 -845 -253 -633 -119 -127 -808 -3 -624 -519 -585 -444 -710 -160 -926 -877 -237 -511 -589 -919 -364 -35 -570 -758 -971 -451 -834 -790 -68 -654 -663 -823 -218 -890 -686 -125 -8 -170 -830 -117 -809 -450 -26 -381 -435 -799 -659 -120 -656 -726 -525 -9 -12 -195 -863 -449 -758 -347 -228 -17 -275 -922 -679 -864 -142 -360 -439 -913 -379 -81 -622 -203 -605 -704 -311 -152 -451 -531 -61 -44 -736 -39 -269 -203 -378 -665 -304 -312 -591 -457 -711 -279 -838 -286 -255 -865 -93 -474 -6 -703 -355 -797 -829 -105 -970 -161 -502 -360 -506 -302 -759 -30 -496 -572 -993 -743 -730 -857 -702 -105 -448 -862 -796 -789 -724 -151 -941 -416 -932 -3 -654 -783 -725 -395 -676 -67 -64 -832 -694 -448 -442 -551 -741 -790 -713 -771 -36 -727 -817 -622 -113 -549 -343 -741 -124 -568 -934 -806 -585 -899 -560 -14 -662 -492 -446 -788 -154 -550 -777 -434 -337 -51 -965 -334 -945 -100 -501 -48 -353 -240 -346 -181 -684 -299 -469 -348 -305 -403 -2 -457 -938 -856 -197 -272 -950 -492 -225 -829 -910 -470 -352 -386 -420 -794 -205 -123 -55 -424 -569 -62 -549 -745 -159 -580 -419 -292 -572 -1 -747 -61 -596 -993 -49 -441 -619 -77 -104 -298 -760 -105 -788 -429 -995 -373 -682 -329 -425 -864 -948 -152 -349 -433 -387 -116 -703 -765 -996 -165 -680 -773 -888 -542 -577 -731 -744 -137 -661 -662 -295 -640 -843 -250 -389 -29 -27 -304 -585 -853 -314 -202 -598 -748 -689 -919 -203 -663 -643 -677 -871 -344 -573 -995 -70 -139 -481 -804 -1 -218 -399 -161 -947 -400 -654 -650 -361 -185 -915 -424 -439 -966 -74 -143 -895 -427 -779 -311 -211 -177 -483 -817 -258 -974 -300 -944 -206 -490 -728 -416 -536 -819 -547 -547 -854 -159 -753 -103 -34 -788 -760 -802 -284 -518 -28 -402 -215 -479 -838 -968 -966 -218 -59 -330 -852 -756 -871 -871 -320 -272 -646 -261 -265 -13 -293 -248 -225 -707 -27 -461 -919 -973 -928 -197 -477 -223 -581 -361 -859 -816 -517 -337 -969 -13 -31 -285 -694 -824 -441 -464 -700 -769 -824 -470 -542 -819 -508 -476 -133 -206 -467 -903 -967 -5 -976 -26 -600 -608 -466 -224 -303 -385 -91 -531 -582 -645 -254 -13 -576 -643 -517 -986 -519 -759 -148 -866 -133 -360 -310 -36 -343 -641 -834 -866 -304 -623 -664 -68 -41 -12 -447 -612 -227 -505 -11 -826 -396 -279 -931 -809 -599 -494 -695 -699 -71 -664 -738 -84 -878 -102 -626 -479 -273 -894 -811 -302 -459 -364 -912 -121 -439 -85 -972 -702 -599 -693 -87 -294 -928 -519 -821 -978 -198 -47 -935 -443 -25 -545 -460 -931 -647 -405 -394 -177 -930 -219 -548 -281 -43 -15 -703 -102 -283 -236 -518 -74 -467 -978 -59 -643 -198 -987 -950 -9 -940 -224 -531 -315 -738 -843 -502 -597 -290 -631 -439 -778 -817 -40 -37 -848 -623 -868 -690 -543 -225 -881 -84 -303 -688 -773 -1 -127 -74 -840 -56 -55 -639 -596 -66 -610 -585 -57 -183 -577 -345 -816 -945 -266 -27 -753 -70 -815 -903 -612 -208 -340 -756 -613 -825 -538 -270 -419 -246 -867 -291 -835 -976 -736 -273 -343 -772 -924 -773 -774 -527 -185 -928 -78 -221 -892 -805 -5 -901 -115 -621 -486 -244 -936 -526 -352 -843 -494 -387 -181 -830 -812 -21 -433 -917 -134 -434 -458 -795 -513 -218 -162 -365 -46 -421 -406 -427 -501 -929 -923 -711 -793 -675 -357 -756 -851 -462 -948 -787 -51 -349 -54 -304 -340 -509 -360 -837 -869 -911 -336 -222 -872 -253 -81 -716 -175 -383 -414 -750 -171 -635 -295 -53 -805 -898 -867 -970 -344 -550 -530 -50 -621 -327 -297 -403 -494 -689 -705 -173 -135 -813 -31 -585 -163 -621 -786 -672 -487 -320 -729 -48 -632 -714 -601 -469 -704 -626 -968 -684 -834 -222 -629 -342 -475 -308 -119 -609 -991 -114 -692 -683 -424 -398 -98 -823 -169 -412 -694 -882 -980 -901 -856 -173 -103 -428 -580 -922 -53 -806 -696 -180 -560 -891 -65 -75 -479 -184 -161 -610 -696 -75 -297 -182 -383 -880 -60 -726 -538 -477 -616 -254 -613 -934 -837 -638 -313 -135 -180 -674 -354 -89 -64 -919 -293 -995 -438 -912 -781 -298 -752 -667 -105 -124 -208 -694 -949 -500 -940 -843 -882 -176 -939 -628 -157 -752 -18 -685 -631 -389 -517 -496 -858 -879 -376 -296 -39 -449 -683 -801 -312 -706 -547 -381 -503 -490 -538 -453 -303 -807 -478 -331 -549 -417 -94 -514 -102 -977 -356 -984 -861 -361 -103 -464 -652 -374 -297 -195 -462 -750 -26 -281 -130 -832 -319 -621 -939 -583 -895 -211 -946 -6 -86 -16 -500 -422 -529 -553 -515 -562 -914 -608 -933 -773 -175 -414 -196 -863 -161 -587 -206 -117 -343 -323 -696 -59 -286 -923 -832 -601 -466 -21 -695 -780 -650 -587 -565 -397 -179 -773 -32 -129 -993 -180 -690 -71 -116 -428 -806 -79 -724 -39 -455 -59 -894 -536 -480 -868 -732 -941 -682 -514 -781 -664 -264 -543 -797 -690 -831 -955 -964 -592 -931 -611 -404 -482 -677 -838 -911 -569 -505 -210 -281 -816 -603 -754 -927 -554 -588 -869 -813 -749 -986 -713 -506 -145 -156 -598 -404 -892 -703 -564 -897 -202 -734 -393 -490 -555 -370 -106 -593 -837 -879 -440 -811 -692 -997 -799 -251 -514 -679 -888 -731 -733 -545 -879 -219 -15 -613 -342 -994 -520 -431 -576 -416 -154 -547 -64 -637 -947 -202 -749 -261 -220 -441 -499 -463 -157 -25 -401 -316 -381 -404 -668 -325 -67 -744 -753 -471 -24 -702 -638 -151 -851 -388 -176 -241 -645 -424 -577 -829 -338 -196 -769 -861 -828 -444 -344 -121 -105 -280 -549 -425 -951 -571 -118 -77 -987 -538 -737 -50 -582 -414 -539 -483 -449 -62 -1 -988 -140 -324 -86 -500 -643 -672 -271 -804 -532 -297 -580 -848 -290 -9 -926 -739 -115 -122 -986 -358 -74 -69 -658 -719 -475 -323 -91 -919 -349 -398 -150 -693 -731 -126 -529 -889 -361 -296 -913 -153 -909 -52 -928 -716 -557 -284 -226 -668 -590 -192 -697 -898 -625 -30 -183 -258 -542 -871 -157 -487 -876 -9 -36 -92 -312 -591 -576 -858 -540 -126 -466 -145 -435 -597 -334 -372 -7 -515 -953 -722 -97 -990 -102 -125 -111 -918 -479 -416 -373 -765 -328 -991 -783 -946 -673 -51 -736 -44 -538 -454 -430 -945 -20 -763 -747 -444 -74 -994 -517 -562 -655 -317 -18 -982 -637 -871 -746 -300 -107 -461 -825 -419 -318 -202 -971 -26 -301 -934 -343 -717 -205 -165 -916 -648 -222 -949 -617 -54 -122 -781 -695 -846 -235 -112 -565 -487 -690 -226 -500 -396 -325 -580 -802 -213 -435 -691 -661 -1 -854 -970 -151 -862 -805 -771 -452 -311 -284 -961 -429 -671 -527 -42 -834 -413 -476 -16 -539 -214 -855 -820 -245 -393 -354 -332 -619 -188 -913 -377 -943 -706 -900 -302 -805 -919 -405 -80 -909 -913 -145 -981 -166 -588 -504 -40 -590 -906 -120 -121 -766 -52 -480 -138 -922 -166 -137 -524 -696 -468 -654 -764 -753 -902 -394 -973 -538 -639 -612 -20 -166 -343 -206 -529 -95 -698 -83 -780 -899 -938 -590 -279 -95 -260 -646 -81 -431 -735 -72 -31 -601 -457 -96 -715 -18 -728 -516 -783 -884 -502 -504 -619 -873 -19 -759 -641 -942 -274 -40 -5 -199 -224 -157 -951 -903 -147 -186 -392 -959 -938 -667 -123 -159 -982 -751 -720 -366 -215 -259 -933 -845 -983 -305 -741 -180 -880 -414 -879 -270 -357 -548 -718 -624 -175 -205 -676 -100 -66 -273 -621 -411 -177 -251 -81 -734 -901 -550 -272 -23 -87 -730 -291 -326 -705 -958 -53 -369 -291 -566 -610 -441 -722 -273 -43 -791 -965 -639 -426 -298 -783 -98 -673 -140 -21 -271 -270 -21 -866 -289 -24 -324 -912 -357 -513 -342 -161 -477 -491 -887 -72 -563 -974 -836 -456 -549 -660 -441 -889 -228 -324 -101 -462 -231 -531 -664 -289 -518 -42 -365 -304 -663 -182 -870 -45 -797 -724 -224 -511 -418 -134 -669 -288 -121 -745 -697 -309 -115 -736 -440 -764 -303 -968 -749 -511 -62 -618 -713 -937 -671 -619 -16 -221 -267 -906 -487 -505 -68 -604 -264 -456 -317 -423 -213 -806 -121 -424 -181 -604 -849 -776 -516 -731 -89 -761 -928 -509 -286 -155 -387 -313 -196 -548 -736 -324 -411 -959 -30 -73 -220 -957 -492 -858 -48 -215 -865 -970 -523 -773 -883 -644 -677 -355 -97 -386 -423 -897 -402 -323 -158 -560 -549 -382 -23 -212 -225 -945 -763 -215 -574 -674 -257 -970 -65 -74 -529 -355 -997 -210 -673 -470 -282 -488 -126 -329 -939 -614 -171 -631 -192 -494 -376 -318 -771 -696 -947 -733 -90 -114 -909 -148 -687 -772 -556 -472 -194 -454 -275 -136 -35 -867 -325 -465 -105 -233 -589 -204 -627 -750 -314 -520 -372 -384 -783 -172 -964 -651 -333 -460 -976 -240 -275 -957 -46 -618 -36 -795 -782 -567 -653 -665 -326 -185 -518 -958 -771 -871 -552 -550 -95 -216 -72 -315 -164 -887 -79 -785 -475 -696 -77 -708 -526 -293 -58 -421 -977 -211 -816 -120 -973 -549 -36 -705 -290 -937 -409 -22 -573 -626 -309 -3 -836 -822 -912 -816 -209 -467 -285 -835 -396 -375 -194 -264 -784 -642 -417 -400 -980 -356 -706 -316 -358 -2 -807 -858 -718 -807 -264 -233 -529 -943 -279 -470 -169 -717 -540 -754 -694 -41 -977 -233 -750 -17 -980 -576 -159 -900 -286 -512 -102 -922 -368 -336 -971 -398 -770 -990 -259 -785 -618 -816 -849 -543 -202 -217 -439 -528 -417 -810 -958 -47 -30 -868 -764 -514 -140 -938 -163 -634 -704 -791 -136 -450 -88 -239 -423 -358 -968 -788 -426 -136 -595 -991 -721 -312 -423 -796 -564 -144 -469 -968 -397 -477 -895 -892 -63 -147 -952 -307 -214 -179 -64 -354 -136 -263 -999 -922 -897 -227 -15 -33 -304 -348 -540 -5 -189 -520 -905 -357 -763 -836 -650 -856 -344 -118 -916 -445 -277 -604 -835 -803 -688 -958 -451 -8 -445 -965 -555 -13 -521 -860 -383 -2 -197 -152 -404 -254 -922 -454 -483 -469 -639 -664 -657 -401 -200 -822 -890 -521 -949 -172 -898 -664 -939 -791 -588 -458 -62 -401 -718 -778 -764 -616 -774 -227 -427 -503 -877 -419 -513 -385 -273 -811 -990 -676 -68 -302 -603 -367 -551 -900 -373 -205 -654 -882 -439 -849 -587 -744 -38 -41 -863 -697 -557 -978 -150 -841 -716 -922 -333 -45 -902 -166 -164 -775 -583 -262 -344 -445 -321 -395 -970 -849 -868 -598 -315 -991 -808 -276 -301 -837 -601 -816 -760 -764 -370 -432 -241 -407 -217 -714 -69 -241 -309 -839 -980 -729 -666 -743 -926 -472 -452 -779 -732 -898 -35 -983 -961 -932 -251 -782 -596 -719 -67 -21 -541 -99 -521 -599 -700 -607 -684 -393 -956 -594 -910 -675 -821 -778 -888 -719 -705 -809 -636 -370 -146 -90 -947 -767 -404 -480 -893 -307 -286 -525 -449 -951 -304 -688 -467 -366 -32 -880 -174 -956 -659 -126 -952 -674 -747 -340 -208 -155 -56 -164 -311 -625 -451 -947 -346 -56 -718 -868 -876 -501 -23 -406 -242 -759 -943 -296 -78 -940 -485 -893 -987 -457 -18 -826 -536 -771 -835 -241 -245 -273 -7 -240 -595 -235 -995 -653 -621 -482 -461 -839 -100 -563 -925 -521 -642 -314 -979 -286 -358 -18 -137 -2 -504 -351 -140 -269 -711 -856 -229 -847 -831 -243 -892 -918 -531 -393 -356 -409 -219 -312 -653 -500 -927 -806 -208 -994 -134 -936 -446 -362 -136 -250 -953 -883 -840 -610 -956 -610 -409 -698 -586 -163 -675 -638 -931 -56 -817 -455 -738 -282 -52 -519 -334 -274 -915 -266 -38 -935 -728 -220 -344 -940 -337 -191 -144 -792 -884 -314 -986 -150 -408 -285 -957 -786 -863 -56 -231 -867 -834 -853 -87 -241 -194 -530 -291 -47 -709 -317 -789 -929 -735 -177 -502 -414 -837 -379 -417 -257 -804 -799 -384 -942 -953 -793 -881 -386 -377 -541 -568 -83 -271 -617 -868 -985 -777 -50 -913 -952 -826 -308 -975 -985 -810 -594 -317 -981 -93 -924 -926 -675 -979 -340 -774 -747 -94 -264 -673 -856 -330 -485 -742 -458 -727 -47 -225 -828 -489 -41 -575 -575 -338 -167 -21 -139 -386 -770 -51 -367 -625 -309 -295 -325 -585 -778 -12 -463 -71 -922 -926 -477 -141 -583 -67 -872 -570 -479 -974 -531 -706 -725 -276 -145 -645 -911 -851 -425 -966 -23 -280 -911 -47 -136 -795 -482 -914 -409 -749 -209 -303 -393 -840 -4 -736 -697 -274 -983 -204 -192 -10 -984 -683 -332 -717 -635 -209 -613 -6 -803 -35 -597 -135 -36 -434 -34 -215 -294 -414 -483 -109 -677 -313 -240 -747 -241 -226 -8 -980 -296 -666 -693 -337 -712 -835 -475 -233 -124 -766 -574 -710 -170 -81 -373 -263 -368 -861 -325 -848 -219 -685 -199 -62 -75 -306 -441 -992 -550 -526 -306 -898 -788 -316 -999 -666 -666 -245 -858 -985 -626 -347 -972 -912 -657 -849 -706 -123 -142 -133 -452 -422 -480 -580 -550 -326 -629 -494 -61 -357 -252 -160 -24 -549 -978 -928 -515 -677 -667 -583 -527 -686 -641 -202 -751 -476 -267 -533 -34 -304 -489 -717 -464 -682 -208 -801 -40 -296 -184 -43 -881 -834 -686 -309 -223 -105 -514 -277 -932 -661 -707 -925 -303 -720 -18 -271 -716 -286 -66 -184 -931 -96 -522 -978 -160 -897 -316 -971 -578 -608 -218 -418 -784 -10 -299 -66 -616 -810 -996 -242 -808 -589 -323 -461 -219 -697 -88 -785 -241 -720 -933 -231 -793 -278 -947 -613 -291 -376 -201 -91 -170 -853 -386 -742 -392 -297 -188 -330 -463 -556 -959 -338 -153 -575 -934 -313 -619 -568 -770 -866 -36 -275 -913 -85 -275 -863 -651 -141 -228 -624 -697 -151 -731 -411 -790 -393 -8 -132 -326 -35 -337 -181 -607 -22 -290 -753 -865 -816 -102 -4 -708 -359 -518 -651 -473 -634 -308 -965 -481 -373 -732 -481 -902 -201 -615 -331 -873 -904 -697 -489 -217 -222 -191 -868 -389 -178 -951 -275 -385 -30 -840 -668 -91 -326 -781 -510 -415 -733 -728 -366 -153 -177 -422 -826 -301 -852 -606 -581 -250 -918 -706 -46 -997 -430 -775 -958 -316 -701 -720 -876 -669 -376 -605 -484 -964 -850 -117 -236 -996 -676 -220 -671 -936 -454 -973 -406 -21 -57 -417 -563 -356 -378 -803 -924 -623 -801 -874 -464 -533 -34 -935 -443 -391 -979 -527 -468 -413 -584 -251 -945 -129 -910 -487 -544 -749 -85 -233 -308 -847 -454 -327 -364 -792 -219 -316 -285 -170 -912 -666 -11 -150 -152 -50 -804 -417 -472 -833 -546 -141 -973 -277 -370 -920 -37 -216 -214 -25 -265 -900 -678 -584 -751 -758 -812 -954 -215 -683 -629 -529 -636 -618 -91 -827 -17 -693 -121 -16 -690 -629 -558 -696 -192 -900 -820 -249 -650 -491 -603 -885 -580 -512 -975 -560 -32 -303 -74 -720 -754 -632 -851 -173 -230 -39 -779 -898 -734 -552 -369 -325 -728 -284 -146 -476 -696 -800 -358 -750 -928 -942 -615 -997 -240 -72 -251 -363 -399 -462 -250 -653 -726 -58 -869 -424 -269 -856 -156 -484 -992 -950 -465 -963 -108 -216 -2 -181 -940 -932 -924 -172 -942 -765 -257 -541 -972 -204 -926 -143 -145 -265 -484 -876 -228 -956 -522 -277 -688 -441 -252 -107 -89 -497 -851 -268 -968 -129 -113 -947 -783 -440 -208 -815 -800 -492 -716 -258 -689 -86 -111 -877 -314 -521 -763 -210 -624 -745 -924 -874 -854 -845 -709 -488 -403 -206 -843 -213 -933 -540 -522 -980 -887 -367 -437 -329 -461 -792 -64 -732 -29 -766 -368 -531 -686 -765 -964 -59 -676 -853 -377 -319 -157 -954 -774 -669 -8 -333 -702 -525 -382 -444 -608 -930 -593 -524 -593 -176 -803 -453 -898 -474 -755 -786 -637 -211 -432 -794 -83 -366 -834 -280 -984 -841 -161 -86 -845 -324 -458 -3 -381 -910 -122 -596 -413 -794 -364 -230 -143 -605 -877 -802 -691 -147 -896 -407 -18 -988 -726 -176 -125 -563 -809 -197 -582 -34 -373 -346 -924 -809 -985 -936 -757 -200 -652 -978 -464 -540 -515 -472 -336 -574 -216 -76 -199 -218 -187 -413 -799 -631 -266 -255 -403 -52 -134 -782 -845 -879 -574 -666 -486 -297 -61 -871 -778 -10 -461 -738 -608 -607 -334 -908 -980 -691 -351 -212 -34 -75 -848 -847 -252 -397 -923 -191 -116 -873 -140 -319 -892 -240 -140 -554 -525 -807 -135 -842 -637 -888 -587 -449 -150 -204 -703 -497 -242 -698 -203 -845 -193 -289 -147 -404 -657 -752 -477 -598 -425 -455 -505 -644 -130 -873 -698 -627 -905 -823 -482 -373 -272 -42 -535 -520 -870 -60 -326 -386 -37 -388 -557 -419 -76 -778 -107 -831 -941 -929 -366 -705 -131 -580 -670 -988 -118 -684 -55 -972 -377 -273 -38 -232 -747 -271 -190 -230 -39 -813 -44 -171 -153 -602 -126 -164 -972 -296 -513 -941 -939 -746 -947 -336 -497 -820 -166 -205 -947 -140 -75 -522 -746 -608 -797 -368 -966 -217 -326 -584 -413 -793 -430 -356 -689 -784 -620 -730 -465 -571 -363 -365 -260 -883 -669 -533 -550 -524 -49 -125 -789 -331 -772 -926 -405 -931 -305 -147 -330 -207 -651 -79 -686 -432 -121 -34 -121 -431 -194 -199 -500 -88 -116 -573 -831 -396 -62 -218 -647 -686 -938 -397 -342 -470 -872 -317 -103 -666 -189 -101 -957 -407 -538 -731 -494 -395 -490 -601 -294 -992 -187 -933 -181 -734 -986 -611 -388 -303 -357 -354 -178 -7 -331 -484 -197 -95 -970 -500 -650 -409 -113 -803 -545 -256 -217 -542 -425 -572 -910 -491 -270 -171 -68 -884 -592 -635 -519 -94 -718 -386 -836 -366 -234 -488 -33 -540 -306 -535 -43 -630 -602 -935 -222 -999 -496 -662 -644 -592 -619 -661 -101 -141 -853 -317 -575 -999 -710 -278 -816 -37 -33 -229 -414 -107 -421 -862 -943 -303 -4 -434 -663 -514 -872 -548 -531 -923 -157 -666 -215 -153 -45 -461 -887 -183 -24 -686 -367 -869 -854 -943 -652 -747 -679 -925 -624 -244 -441 -444 -537 -137 -380 -739 -57 -812 -949 -15 -585 -47 -514 -139 -507 -944 -664 -334 -719 -31 -950 -94 -976 -611 -958 -659 -589 -242 -712 -470 -977 -501 -614 -553 -103 -643 -954 -785 -581 -152 -1 -68 -589 -368 -351 -564 -287 -744 -954 -194 -869 -960 -250 -604 -209 -686 -471 -970 -24 -483 -881 -933 -848 -558 -151 -728 -970 -299 -273 -511 -832 -734 -842 -326 -52 -354 -792 -879 -824 -177 -181 -721 -432 -452 -39 -828 -820 -733 -881 -295 -249 -327 -802 -749 -868 -914 -498 -283 -437 -301 -899 -274 -950 -722 -195 -334 -214 -10 -425 -886 -863 -857 -916 -17 -686 -379 -921 -133 -329 -856 -852 -348 -164 -563 -795 -869 -500 -655 -380 -52 -664 -732 -18 -645 -623 -892 -538 -911 -391 -895 -41 -547 -766 -109 -291 -757 -447 -647 -573 -136 -403 -459 -896 -642 -598 -505 -130 -786 -177 -928 -298 -481 -187 -174 -992 -142 -714 -859 -165 -867 -834 -544 -259 -108 -234 -115 -796 -68 -683 -183 -804 -748 -800 -106 -281 -31 -775 -605 -137 -427 -429 -860 -980 -200 -797 -880 -557 -933 -949 -551 -285 -827 -934 -432 -986 -684 -9 -865 -224 -760 -857 -665 -553 -267 -447 -923 -480 -244 -655 -697 -903 -767 -25 -694 -652 -313 -232 -40 -840 -883 -497 -356 -615 -382 -282 -298 -886 -842 -805 -72 -708 -315 -143 -69 -537 -484 -518 -489 -480 -260 -625 -497 -384 -18 -306 -609 -13 -17 -291 -985 -863 -905 -478 -90 -940 -180 -766 -236 -178 -571 -393 -833 -268 -797 -234 -781 -720 -520 -652 -391 -381 -962 -780 -215 -976 -337 -88 -530 -787 -53 -456 -362 -408 -521 -794 -830 -739 -529 -176 -156 -676 -466 -509 -617 -731 -129 -186 -252 -269 -49 -629 -874 -383 -443 -451 -633 -507 -165 -267 -163 -681 -909 -942 -129 -593 -25 -178 -242 -262 -454 -743 -928 -888 -829 -760 -97 -594 -445 -327 -111 -992 -321 -911 -125 -429 -404 -437 -737 -167 -298 -362 -916 -975 -986 -749 -334 -860 -516 -438 -475 -423 -931 -933 -490 -343 -770 -726 -870 -587 -906 -368 -691 -519 -236 -199 -175 -351 -456 -503 -882 -5 -771 -158 -255 -455 -442 -547 -905 -38 -873 -12 -224 -380 -930 -770 -775 -173 -467 -984 -840 -809 -865 -886 -617 -43 -883 -709 -855 -503 -380 -266 -813 -164 -898 -209 -354 -621 -101 -261 -437 -202 -512 -857 -497 -127 -882 -303 -835 -356 -254 -949 -422 -382 -407 -888 -635 -912 -803 -801 -200 -897 -283 -469 -395 -741 -576 -540 -501 -112 -696 -945 -112 -789 -969 -248 -465 -625 -233 -787 -267 -626 -460 -429 -172 -729 -871 -909 -60 -825 -359 -197 -873 -726 -709 -620 -886 -659 -559 -279 -242 -497 -661 -59 -767 -839 -918 -979 -935 -484 -298 -487 -385 -652 -951 -737 -456 -646 -225 -154 -186 -404 -53 -897 -331 -842 -314 -970 -801 -377 -56 -963 -810 -544 -603 -78 -38 -498 -132 -308 -552 -323 -862 -234 -660 -265 -47 -152 -518 -21 -550 -764 -41 -436 -444 -394 -609 -934 -191 -173 -287 -58 -646 -505 -42 -821 -229 -192 -296 -529 -892 -52 -664 -752 -500 -475 -621 -737 -584 -628 -579 -452 -876 -534 -474 -556 -408 -348 -571 -541 -770 -104 -350 -245 -597 -974 -249 -350 -464 -68 -882 -448 -403 -180 -985 -229 -207 -336 -345 -392 -706 -444 -704 -784 -217 -731 -626 -182 -575 -221 -183 -830 -406 -963 -960 -177 -836 -291 -795 -27 -363 -696 -441 -803 -375 -934 -931 -716 -30 -515 -150 -735 -931 -608 -950 -349 -52 -297 -39 -591 -336 -312 -730 -21 -63 -733 -361 -609 -564 -916 -490 -731 -581 -255 -399 -432 -876 -857 -294 -981 -909 -680 -751 -161 -410 -936 -808 -319 -791 -509 -407 -648 -566 -487 -853 -889 -601 -342 -22 -133 -23 -160 -274 -315 -806 -102 -371 -765 -868 -387 -720 -928 -73 -87 -616 -480 -382 -180 -254 -691 -588 -650 -995 -99 -741 -434 -71 -194 -954 -105 -368 -469 -611 -298 -481 -321 -788 -574 -329 -549 -191 -492 -371 -291 -708 -795 -688 -111 -551 -359 -125 -872 -511 -85 -543 -750 -371 -315 -407 -350 -14 -851 -680 -476 -208 -892 -440 -64 -469 -883 -377 -161 -801 -824 -515 -741 -941 -322 -142 -362 -418 -182 -694 -951 -555 -541 -640 -512 -83 -414 -20 -532 -788 -57 -324 -639 -312 -318 -425 -270 -545 -490 -234 -686 -146 -911 -601 -290 -200 -204 -817 -990 -209 -543 -401 -82 -411 -954 -833 -496 -940 -802 -795 -669 -861 -516 -947 -771 -695 -497 -89 -29 -501 -317 -129 -324 -674 -642 -226 -487 -425 -40 -451 -659 -291 -874 -560 -471 -983 -309 -349 -810 -559 -450 -254 -444 -766 -205 -343 -562 -126 -651 -976 -999 -371 -676 -15 -939 -696 -130 -338 -471 -510 -665 -359 -556 -352 -281 -424 -215 -202 -842 -886 -239 -444 -585 -236 -582 -862 -120 -282 -992 -389 -883 -344 -615 -32 -19 -93 -13 -405 -525 -204 -883 -518 -354 -730 -994 -284 -711 -488 -749 -798 -193 -869 -774 -302 -31 -132 -379 -220 -316 -249 -923 -753 -883 -33 -507 -260 -701 -589 -786 -282 -97 -755 -606 -921 -708 -107 -263 -456 -156 -125 -953 -372 -668 -589 -618 -397 -428 -201 -782 -44 -436 -153 -321 -853 -577 -38 -688 -505 -328 -645 -638 -916 -211 -999 -449 -91 -560 -132 -131 -521 -721 -384 -717 -301 -910 -300 -565 -281 -383 -593 -702 -335 -766 -979 -140 -611 -809 -209 -325 -313 -109 -365 -154 -591 -707 -72 -615 -133 -456 -73 -732 -232 -52 -490 -174 -549 -16 -777 -892 -366 -411 -178 -693 -325 -605 -925 -225 -899 -914 -142 -768 -498 -545 -808 -38 -264 -492 -186 -512 -750 -134 -525 -476 -444 -529 -117 -911 -532 -106 -340 -186 -60 -842 -527 -918 -245 -198 -632 -175 -443 -967 -372 -124 -900 -755 -240 -271 -499 -717 -279 -934 -436 -806 -368 -231 -66 -423 -750 -747 -681 -242 -468 -156 -710 -742 -593 -926 -261 -67 -932 -433 -303 -266 -8 -56 -873 -191 -359 -411 -740 -830 -96 -804 -937 -336 -611 -486 -263 -911 -222 -645 -353 -186 -627 -732 -330 -181 -730 -473 -743 -909 -824 -999 -330 -867 -618 -159 -525 -734 -677 -824 -709 -75 -366 -379 -288 -967 -731 -999 -128 -867 -768 -528 -840 -543 -543 -332 -927 -177 -313 -715 -565 -172 -547 -976 -615 -12 -163 -296 -698 -650 -763 -348 -434 -683 -759 -582 -606 -81 -980 -387 -276 -306 -256 -809 -506 -523 -114 -534 -247 -630 -325 -630 -144 -890 -875 -371 -470 -72 -1 -53 -780 -151 -873 -737 -670 -606 -45 -930 -198 -325 -608 -486 -770 -715 -267 -349 -923 -95 -814 -323 -782 -572 -350 -788 -940 -223 -55 -50 -637 -663 -944 -273 -738 -62 -180 -337 -336 -17 -347 -366 -433 -690 -258 -110 -672 -407 -292 -215 -739 -1 -712 -651 -699 -667 -368 -740 -56 -251 -311 -608 -693 -499 -789 -206 -917 -468 -868 -687 -5 -424 -742 -923 -385 -524 -864 -838 -284 -742 -733 -816 -334 -100 -843 -987 -865 -463 -591 -311 -452 -320 -423 -839 -744 -244 -894 -960 -847 -766 -472 -130 -684 -242 -737 -292 -464 -73 -660 -419 -516 -504 -282 -189 -984 -774 -384 -294 -13 -841 -110 -537 -182 -916 -650 -50 -188 -273 -370 -426 -316 -944 -347 -231 -292 -329 -645 -108 -608 -657 -841 -279 -434 -768 -851 -916 -412 -312 -102 -852 -478 -885 -9 -261 -150 -587 -979 -987 -431 -937 -92 -939 -798 -83 -926 -994 -265 -754 -182 -526 -932 -225 -252 -926 -369 -227 -7 -260 -123 -324 -947 -975 -86 -349 -101 -332 -263 -25 -822 -342 -791 -290 -411 -989 -253 -653 -962 -331 -836 -782 -733 -907 -243 -206 -375 -110 -602 -121 -820 -474 -132 -435 -500 -444 -591 -276 -13 -862 -603 -780 -394 -632 -104 -705 -690 -168 -442 -112 -537 -829 -535 -231 -362 -415 -389 -716 -32 -52 -632 -409 -578 -448 -545 -62 -467 -633 -383 -918 -169 -881 -301 -17 -666 -2 -506 -777 -93 -962 -270 -86 -429 -626 -711 -169 -437 -407 -444 -238 -71 -94 -593 -769 -856 -173 -646 -632 -375 -108 -95 -377 -315 -627 -406 -526 -299 -635 -456 -785 -84 -717 -962 -142 -4 -775 -307 -374 -9 -41 -990 -261 -848 -918 -803 -134 -820 -963 -477 -721 -280 -238 -776 -68 -427 -739 -278 -187 -904 -422 -315 -679 -937 -188 -296 -116 -400 -522 -447 -91 -643 -863 -955 -663 -703 -942 -848 -513 -402 -162 -748 -175 -513 -232 -997 -500 -39 -370 -832 -789 -375 -547 -816 -145 -547 -415 -82 -157 -602 -515 -654 -96 -65 -897 -612 -422 -31 -311 -964 -216 -900 -95 -870 -835 -892 -766 -539 -991 -500 -394 -843 -58 -34 -504 -143 -515 -751 -262 -155 -129 -255 -679 -966 -374 -991 -54 -223 -864 -22 -303 -943 -650 -216 -866 -951 -910 -244 -545 -232 -735 -95 -23 -574 -509 -528 -613 -435 -616 -81 -842 -208 -938 -246 -393 -162 -292 -838 -905 -544 -604 -910 -952 -646 -668 -80 -167 -520 -395 -620 -958 -221 -678 -414 -952 -70 -919 -887 -356 -183 -665 -217 -812 -466 -831 -944 -941 -519 -110 -886 -280 -327 -141 -59 -702 -985 -548 -329 -781 -428 -513 -548 -156 -576 -805 -356 -758 -984 -260 -725 -976 -471 -398 -77 -352 -675 -689 -742 -847 -466 -434 -321 -926 -466 -434 -423 -325 -181 -767 -585 -7 -916 -317 -768 -620 -580 -923 -269 -347 -139 -625 -899 -398 -879 -846 -613 -36 -659 -750 -440 -833 -508 -193 -877 -423 -637 -296 -581 -213 -700 -773 -910 -709 -446 -195 -987 -701 -147 -312 -697 -589 -252 -197 -182 -123 -584 -898 -472 -724 -479 -183 -564 -285 -74 -503 -529 -342 -363 -207 -798 -105 -477 -889 -187 -944 -582 -854 -846 -701 -323 -503 -690 -629 -740 -284 -326 -38 -776 -893 -156 -817 -326 -771 -706 -507 -60 -420 -29 -365 -241 -650 -145 -633 -528 -920 -571 -582 -603 -207 -588 -857 -751 -851 -192 -649 -981 -592 -952 -247 -911 -787 -98 -881 -333 -128 -83 -267 -837 -206 -426 -610 -627 -714 -183 -474 -32 -998 -772 -570 -32 -568 -83 -461 -514 -447 -965 -248 -463 -955 -542 -306 -33 -580 -295 -97 -820 -90 -89 -112 -408 -302 -179 -841 -966 -964 -40 -164 -810 -123 -918 -918 -890 -297 -116 -11 -427 -689 -582 -579 -316 -386 -942 -888 -31 -729 -52 -979 -691 -452 -930 -431 -519 -334 -634 -705 -538 -382 -135 -775 -281 -753 -337 -11 -564 -631 -386 -414 -608 -227 -303 -451 -614 -334 -4 -882 -849 -791 -93 -916 -571 -964 -102 -179 -513 -488 -49 -774 -804 -337 -739 -572 -794 -345 -205 -344 -49 -440 -122 -311 -787 -716 -838 -986 -422 -532 -433 -707 -304 -777 -594 -963 -184 -258 -405 -991 -162 -854 -539 -253 -188 -327 -715 -659 -675 -733 -762 -633 -537 -684 -226 -570 -696 -356 -636 -82 -736 -355 -443 -26 -446 -764 -856 -833 -299 -676 -627 -517 -298 -768 -791 -635 -677 -837 -156 -156 -646 -542 -757 -393 -186 -251 -206 -476 -64 -911 -627 -69 -360 -985 -218 -774 -869 -166 -449 -952 -988 -155 -90 -573 -826 -933 -497 -169 -716 -516 -495 -380 -672 -368 -561 -107 -684 -846 -44 -8 -547 -409 -719 -736 -552 -651 -920 -620 -802 -96 -273 -484 -841 diff --git a/examples/machsuite/viterbi/check.data b/examples/machsuite/viterbi/check.data deleted file mode 100644 index b453918ae8..0000000000 --- a/examples/machsuite/viterbi/check.data +++ /dev/null @@ -1,141 +0,0 @@ -%% -27 -27 -27 -27 -27 -31 -63 -63 -63 -63 -47 -4 -38 -38 -38 -38 -7 -7 -7 -7 -7 -7 -7 -7 -2 -2 -2 -43 -52 -52 -43 -43 -43 -43 -43 -44 -44 -32 -9 -9 -15 -45 -45 -45 -45 -45 -45 -0 -55 -55 -55 -30 -13 -13 -13 -13 -13 -13 -57 -57 -21 -21 -21 -21 -7 -41 -41 -41 -41 -17 -17 -30 -41 -41 -58 -58 -58 -31 -54 -54 -54 -54 -54 -54 -54 -54 -54 -54 -54 -54 -52 -52 -52 -21 -21 -21 -28 -18 -18 -40 -40 -40 -40 -40 -40 -46 -46 -2 -2 -2 -53 -53 -53 -55 -38 -57 -57 -57 -57 -57 -57 -57 -57 -57 -57 -30 -30 -5 -5 -5 -5 -5 -5 -5 -5 -30 -30 -26 -38 -38 diff --git a/examples/machsuite/viterbi/input.data b/examples/machsuite/viterbi/input.data deleted file mode 100644 index 5bea173476..0000000000 --- a/examples/machsuite/viterbi/input.data +++ /dev/null @@ -1,8400 +0,0 @@ -%% -0 -27 -49 -52 -20 -31 -63 -63 -29 -0 -47 -4 -38 -38 -38 -38 -4 -43 -7 -28 -31 -7 -7 -7 -57 -2 -2 -43 -52 -52 -43 -3 -43 -13 -54 -44 -51 -32 -9 -9 -15 -45 -21 -33 -61 -45 -62 -0 -55 -15 -55 -30 -13 -13 -53 -13 -13 -50 -57 -57 -34 -26 -21 -43 -7 -12 -41 -41 -41 -17 -17 -30 -41 -8 -58 -58 -58 -31 -52 -54 -54 -54 -54 -54 -54 -15 -54 -54 -54 -54 -52 -56 -52 -21 -21 -21 -28 -18 -18 -15 -40 -1 -62 -40 -6 -46 -24 -47 -2 -2 -53 -41 -0 -55 -38 -5 -57 -57 -57 -57 -14 -57 -34 -37 -57 -30 -30 -5 -1 -5 -62 -25 -59 -5 -2 -43 -30 -26 -38 -38 -%% -4.6977033615112305 -3.6915655136108398 -4.8652229309082031 -4.7658410072326660 -4.0006790161132812 -3.9517300128936768 -3.4640796184539795 -3.4600069522857666 -4.2856273651123047 -3.6522088050842285 -4.8189344406127930 -3.8075556755065918 -3.8743767738342285 -5.4135279655456543 -4.9173111915588379 -3.6458325386047363 -5.8528852462768555 -11.3210048675537109 -4.9971127510070801 -5.1006979942321777 -3.5980830192565918 -5.3161897659301758 -3.4544019699096680 -3.7314746379852295 -4.9998908042907715 -3.4898567199707031 -4.2091164588928223 -3.5122559070587158 -3.9326364994049072 -7.2767667770385742 -3.6539671421051025 -4.0916681289672852 -3.5044839382171631 -4.5234117507934570 -3.7673256397247314 -4.0265331268310547 -3.7147023677825928 -6.7589721679687500 -3.5749390125274658 -3.7701597213745117 -3.5728175640106201 -5.0258340835571289 -4.9390106201171875 -5.7208223342895508 -6.3652114868164062 -3.5838112831115723 -5.0102572441101074 -4.0017414093017578 -4.2373661994934082 -3.8841004371643066 -5.3679313659667969 -3.9980680942535400 -3.5181968212127686 -4.7306714057922363 -5.5075111389160156 -5.1880970001220703 -4.8259010314941406 -4.2589011192321777 -5.6381106376647949 -3.4522385597229004 -3.5920252799987793 -4.2071061134338379 -5.0856294631958008 -6.0637059211730957 -%% -0.3647365272045135 -4.9231276512145996 -4.5944204330444336 -4.7147903442382812 -7.1150326728820801 -5.0133738517761230 -5.6496667861938477 -5.4293580055236816 -5.2391724586486816 -7.4005656242370605 -6.1314487457275391 -5.3206152915954590 -5.9239287376403809 -4.9198999404907227 -5.2148795127868652 -6.0871820449829102 -5.4823284149169922 -5.8595824241638184 -4.6699790954589844 -9.5012521743774414 -5.3745150566101074 -4.9178509712219238 -8.1592111587524414 -4.7434735298156738 -6.2394599914550781 -4.9367794990539551 -5.1419367790222168 -6.1273303031921387 -4.5456452369689941 -5.7389521598815918 -4.7088541984558105 -5.1490802764892578 -4.6770777702331543 -4.8627514839172363 -4.5703182220458984 -4.6513271331787109 -4.6872596740722656 -6.7702026367187500 -5.5194621086120605 -4.7802023887634277 -5.6165161132812500 -6.6856932640075684 -4.8043341636657715 -5.5908851623535156 -5.7905011177062988 -6.0547194480895996 -5.2467393875122070 -9.6797342300415039 -4.8427228927612305 -5.1764659881591797 -4.9787082672119141 -6.2177505493164062 -6.0823264122009277 -6.7566337585449219 -7.7526793479919434 -4.5929460525512695 -7.7419705390930176 -7.0722618103027344 -5.7353696823120117 -4.9384665489196777 -4.5726962089538574 -9.7167978286743164 -6.2019395828247070 -6.0779948234558105 -4.8539266586303711 -0.3883351087570190 -6.5415120124816895 -5.9378714561462402 -4.6425256729125977 -4.6745700836181641 -5.3227057456970215 -4.6399221420288086 -5.0971941947937012 -6.0973510742187500 -4.6961007118225098 -6.2225308418273926 -4.6787300109863281 -8.1103687286376953 -8.1239500045776367 -11.2945766448974609 -4.6731653213500977 -5.8991298675537109 -6.2259011268615723 -5.0359096527099609 -4.8172564506530762 -4.7753572463989258 -6.0839881896972656 -5.3642945289611816 -6.5574011802673340 -5.5861878395080566 -4.8810935020446777 -5.2768578529357910 -6.5386328697204590 -4.8660359382629395 -5.2399787902832031 -5.1377558708190918 -4.7132449150085449 -4.9263257980346680 -5.3522758483886719 -4.8488874435424805 -4.8839769363403320 -6.3251528739929199 -8.9082489013671875 -4.8496737480163574 -5.4948277473449707 -5.4915084838867188 -4.5513372421264648 -8.6902666091918945 -6.9261889457702637 -5.8221282958984375 -4.5800852775573730 -5.1471939086914062 -5.5316905975341797 -4.5532484054565430 -7.5655579566955566 -5.6662611961364746 -5.4445972442626953 -4.8510217666625977 -5.3230557441711426 -5.8615045547485352 -5.7943882942199707 -8.8137626647949219 -5.3760509490966797 -7.9137930870056152 -5.0833277702331543 -4.8899073600769043 -4.5889973640441895 -4.6745934486389160 -4.5255880355834961 -6.5552487373352051 -0.3647627234458923 -6.2733407020568848 -4.8740806579589844 -4.5783290863037109 -6.1459074020385742 -7.2801003456115723 -4.9428844451904297 -4.7410974502563477 -4.5797281265258789 -5.1214370727539062 -5.0774893760681152 -5.7407546043395996 -6.0400853157043457 -5.4934220314025879 -5.0746436119079590 -5.6266641616821289 -4.8585801124572754 -6.5017080307006836 -4.6389431953430176 -4.5621299743652344 -5.1763653755187988 -11.6287260055541992 -6.4199523925781250 -5.7757649421691895 -5.4879975318908691 -4.5616559982299805 -7.5957226753234863 -5.1148753166198730 -5.3781585693359375 -8.4162654876708984 -5.2221083641052246 -5.8428344726562500 -5.3719611167907715 -5.5488333702087402 -6.6926488876342773 -9.1913852691650391 -7.0435843467712402 -8.0824098587036133 -5.3506636619567871 -5.2060427665710449 -5.8775625228881836 -4.7243022918701172 -4.7870993614196777 -5.1289091110229492 -7.0916314125061035 -4.5252461433410645 -4.6905126571655273 -5.2599248886108398 -6.7244267463684082 -4.6237578392028809 -5.0613951683044434 -4.8863344192504883 -4.6794667243957520 -7.0165281295776367 -5.2497291564941406 -5.9305205345153809 -7.3026289939880371 -5.3601045608520508 -6.5560235977172852 -4.8138523101806641 -5.4975342750549316 -5.6210279464721680 -5.5993432998657227 -6.6075944900512695 -5.4378523826599121 -0.3993035852909088 -6.1359033584594727 -5.5539646148681641 -4.7392392158508301 -6.0897908210754395 -6.9303627014160156 -7.0020017623901367 -5.8560414314270020 -5.8277077674865723 -5.6499538421630859 -4.9388041496276855 -5.6766047477722168 -4.9737787246704102 -7.6916155815124512 -7.2123508453369141 -4.8827672004699707 -4.6801600456237793 -6.1150755882263184 -7.1039152145385742 -4.5973749160766602 -4.9474120140075684 -4.6279211044311523 -4.6947102546691895 -4.6206345558166504 -5.6246066093444824 -6.2927470207214355 -4.8474168777465820 -5.5436162948608398 -4.9342088699340820 -5.4742932319641113 -5.1165580749511719 -6.7471666336059570 -5.2288012504577637 -7.5319614410400391 -4.8901329040527344 -4.7118992805480957 -5.1055245399475098 -6.5609230995178223 -6.6843628883361816 -4.5862679481506348 -5.5448288917541504 -4.7729678153991699 -5.6594586372375488 -5.3223028182983398 -4.8663249015808105 -4.7548527717590332 -4.6510238647460938 -4.9672508239746094 -8.8739852905273438 -5.7874917984008789 -7.6719493865966797 -4.6204724311828613 -4.8252964019775391 -4.9598517417907715 -4.7348241806030273 -5.3446402549743652 -4.9279356002807617 -8.7314624786376953 -4.7231645584106445 -4.6134657859802246 -4.8225164413452148 -4.6297111511230469 -5.2178583145141602 -4.6685194969177246 -4.6680331230163574 -0.3960325717926025 -5.0626144409179688 -4.7490711212158203 -7.2643861770629883 -6.6990771293640137 -5.0720195770263672 -4.5814208984375000 -5.6359066963195801 -6.3252258300781250 -6.7505698204040527 -4.5852909088134766 -5.1770668029785156 -5.6245551109313965 -4.5633268356323242 -5.5985264778137207 -4.7374596595764160 -4.9924139976501465 -5.7606697082519531 -9.4042987823486328 -4.7025198936462402 -5.8347902297973633 -5.0358018875122070 -4.6265735626220703 -5.0410685539245605 -5.6363677978515625 -5.5956950187683105 -5.0032014846801758 -5.2198634147644043 -6.5298762321472168 -5.0780720710754395 -5.6964206695556641 -5.5630407333374023 -5.7794833183288574 -5.1816453933715820 -5.5329585075378418 -5.1126518249511719 -6.4240617752075195 -5.7024841308593750 -4.9645156860351562 -5.5352654457092285 -5.5863547325134277 -4.9736390113830566 -5.2727379798889160 -4.6239733695983887 -7.9204726219177246 -6.7208347320556641 -5.0912399291992188 -6.3493347167968750 -7.2230987548828125 -4.6948652267456055 -6.0729761123657227 -4.8426413536071777 -5.8418669700622559 -4.8735570907592773 -5.9653859138488770 -4.6136026382446289 -6.4926834106445312 -5.4385395050048828 -4.8274259567260742 -5.2811307907104492 -4.5884051322937012 -5.3302435874938965 -4.6366028785705566 -5.3594555854797363 -4.8499379158020020 -0.4103006124496460 -5.0691828727722168 -5.9803223609924316 -5.1664118766784668 -5.3857512474060059 -5.0351853370666504 -4.9582037925720215 -9.0657472610473633 -4.5734190940856934 -6.6515793800354004 -5.9631872177124023 -5.4292211532592773 -6.6245932579040527 -5.0023670196533203 -5.5785031318664551 -6.0225062370300293 -4.6082496643066406 -4.9578380584716797 -6.2465209960937500 -4.6989803314208984 -4.9358496665954590 -5.0509343147277832 -5.1173586845397949 -5.7934088706970215 -5.1474990844726562 -4.7013592720031738 -5.0089311599731445 -6.2784028053283691 -4.5982780456542969 -4.7061161994934082 -5.4144592285156250 -5.9424390792846680 -4.6779084205627441 -5.0634608268737793 -6.1984672546386719 -4.6416087150573730 -4.8942866325378418 -5.2248368263244629 -6.6342568397521973 -6.5129013061523438 -4.6313056945800781 -6.3361124992370605 -5.2012324333190918 -5.0404105186462402 -6.0586690902709961 -4.5911493301391602 -7.7177381515502930 -4.5800743103027344 -6.1663384437561035 -8.4972038269042969 -4.9386639595031738 -5.8535375595092773 -4.8818783760070801 -7.1353321075439453 -6.4328083992004395 -5.0358872413635254 -4.9632549285888672 -5.7251954078674316 -5.3552050590515137 -5.1438112258911133 -5.3293509483337402 -8.9340906143188477 -5.0943098068237305 -5.1491508483886719 -4.9747223854064941 -0.3568325042724609 -8.9664230346679688 -4.7995958328247070 -5.9756770133972168 -4.8676037788391113 -5.5550608634948730 -5.6522798538208008 -6.6713275909423828 -5.3344163894653320 -4.5529479980468750 -9.0098829269409180 -4.6797270774841309 -5.7664213180541992 -5.3473205566406250 -5.8313274383544922 -4.9772796630859375 -5.7264351844787598 -6.5760698318481445 -5.5040788650512695 -5.9209847450256348 -6.3274741172790527 -4.8545041084289551 -4.9413914680480957 -5.0590190887451172 -5.7732810974121094 -5.1897726058959961 -4.6153903007507324 -5.2276616096496582 -5.0293645858764648 -4.9471325874328613 -5.0677466392517090 -8.2744884490966797 -5.8276805877685547 -10.0010900497436523 -5.0106654167175293 -4.6429133415222168 -6.9225220680236816 -6.1158432960510254 -5.2848691940307617 -5.6006278991699219 -4.9930090904235840 -5.2593674659729004 -5.1865940093994141 -4.9287681579589844 -5.2214078903198242 -5.6559886932373047 -5.2716498374938965 -5.7625765800476074 -4.6103425025939941 -7.1776037216186523 -5.6546373367309570 -5.1723432540893555 -4.5252432823181152 -5.5066246986389160 -9.6941127777099609 -7.7458481788635254 -5.4518175125122070 -4.6756463050842285 -5.6672296524047852 -5.0141983032226562 -5.0249567031860352 -6.3350319862365723 -5.2261724472045898 -8.2780427932739258 -5.4021182060241699 -0.4135851860046387 -5.5376343727111816 -6.0636239051818848 -5.1397700309753418 -6.0514802932739258 -7.5109639167785645 -5.0797996520996094 -4.9594888687133789 -4.8316931724548340 -5.8212194442749023 -4.9168567657470703 -4.6351246833801270 -5.0221219062805176 -5.1252512931823730 -4.5948266983032227 -4.9969625473022461 -5.0544533729553223 -5.8391838073730469 -6.5117220878601074 -4.9860701560974121 -5.1424751281738281 -4.6318831443786621 -4.6817350387573242 -4.6585984230041504 -5.2797541618347168 -4.5947914123535156 -5.7178425788879395 -5.7808198928833008 -5.9304618835449219 -6.2248134613037109 -5.1996145248413086 -4.8643970489501953 -5.3751912117004395 -5.0939559936523438 -4.8678388595581055 -5.1867833137512207 -7.1554884910583496 -7.1641426086425781 -7.0009150505065918 -5.6527047157287598 -4.7597403526306152 -4.8640542030334473 -5.3268737792968750 -5.7241582870483398 -5.7206387519836426 -4.8770203590393066 -5.2277913093566895 -5.8434791564941406 -7.3218650817871094 -4.9107031822204590 -4.8099985122680664 -4.7397727966308594 -4.7072057723999023 -4.8571825027465820 -6.1597795486450195 -4.8372926712036133 -4.8541727066040039 -4.5595545768737793 -4.9096651077270508 -6.7243666648864746 -4.5725431442260742 -5.1414713859558105 -6.1770787239074707 -7.6763186454772949 -6.1128730773925781 -0.3796440660953522 -5.8659772872924805 -6.2953262329101562 -4.9803609848022461 -4.6811270713806152 -5.0358829498291016 -4.9858961105346680 -5.3967947959899902 -5.6438975334167480 -4.8034653663635254 -5.1635665893554688 -4.5600600242614746 -4.8049311637878418 -8.6083726882934570 -4.6171293258666992 -5.1521697044372559 -8.0861082077026367 -5.2553935050964355 -4.9379286766052246 -5.1068696975708008 -6.2822847366333008 -5.3292155265808105 -6.0196323394775391 -5.4098339080810547 -5.7447547912597656 -4.6330842971801758 -6.2712335586547852 -5.2794752120971680 -5.2672538757324219 -4.5627694129943848 -8.3455076217651367 -4.9112582206726074 -6.6263937950134277 -5.1390156745910645 -5.7466373443603516 -5.1252679824829102 -6.5196504592895508 -9.1985082626342773 -5.6055316925048828 -5.6289868354797363 -5.3655147552490234 -5.3141112327575684 -4.6968650817871094 -4.6290760040283203 -6.3014535903930664 -4.5476765632629395 -5.2831196784973145 -6.6164097785949707 -6.6595654487609863 -5.1070413589477539 -4.7505006790161133 -6.8972587585449219 -6.4754614830017090 -5.3095932006835938 -5.3841800689697266 -4.6848030090332031 -5.2016720771789551 -10.0899734497070312 -11.2956390380859375 -4.9306783676147461 -4.9055743217468262 -4.8480091094970703 -5.1882042884826660 -5.6382384300231934 -4.8150000572204590 -0.3910277485847473 -5.0572400093078613 -5.5277485847473145 -4.6650457382202148 -4.6759514808654785 -4.7857089042663574 -5.0483427047729492 -4.9396271705627441 -5.2885351181030273 -5.3030505180358887 -4.5869984626770020 -6.2849206924438477 -5.8491096496582031 -6.4715962409973145 -6.3023800849914551 -8.6485662460327148 -4.6955161094665527 -5.0494036674499512 -4.5812177658081055 -5.6816711425781250 -5.7937936782836914 -5.2137932777404785 -4.9375176429748535 -4.7167086601257324 -4.7149419784545898 -6.0833797454833984 -5.3406538963317871 -5.4232630729675293 -6.3577394485473633 -5.5230007171630859 -5.4480662345886230 -6.1814389228820801 -5.2411432266235352 -5.8699884414672852 -4.6050200462341309 -5.7609338760375977 -6.8919086456298828 -6.2694129943847656 -6.1602373123168945 -6.3817939758300781 -4.9053206443786621 -5.3625841140747070 -5.7942881584167480 -5.3811945915222168 -5.6116504669189453 -5.2707076072692871 -6.1036705970764160 -7.6385154724121094 -7.2855486869812012 -4.6484279632568359 -4.7291259765625000 -4.8681592941284180 -4.8872857093811035 -4.6461548805236816 -4.6732397079467773 -6.5561218261718750 -5.3896212577819824 -4.7260432243347168 -5.4730834960937500 -5.0081887245178223 -6.6265015602111816 -4.6490197181701660 -5.0085711479187012 -4.7454628944396973 -4.8547773361206055 -0.4291140437126160 -7.2595114707946777 -4.6894874572753906 -5.2229938507080078 -5.3875088691711426 -4.8021769523620605 -6.0919384956359863 -4.8909277915954590 -5.7470574378967285 -4.7908506393432617 -5.0221266746520996 -4.6823525428771973 -5.4638462066650391 -6.8140106201171875 -7.9121394157409668 -6.6939153671264648 -6.6929259300231934 -4.7625074386596680 -5.2596182823181152 -7.5294685363769531 -5.2456588745117188 -4.7609243392944336 -5.0895204544067383 -5.2173542976379395 -4.7181468009948730 -7.5456852912902832 -4.6423220634460449 -4.7669596672058105 -7.0832591056823730 -5.0404973030090332 -4.7301526069641113 -4.8597979545593262 -4.8276677131652832 -4.8978052139282227 -5.7633419036865234 -4.9349360466003418 -5.2792134284973145 -4.7859182357788086 -6.6383867263793945 -6.0122418403625488 -4.7616424560546875 -5.7529492378234863 -4.7229213714599609 -4.7878303527832031 -5.1475620269775391 -7.4529294967651367 -5.7388114929199219 -4.7912478446960449 -4.9034643173217773 -6.2166171073913574 -4.8327665328979492 -4.9667849540710449 -4.5932683944702148 -8.2801065444946289 -5.0380396842956543 -5.2541136741638184 -4.6252899169921875 -4.7852983474731445 -6.0653562545776367 -4.6707191467285156 -4.7248134613037109 -5.0880446434020996 -5.7963485717773438 -6.8114080429077148 -4.9293656349182129 -0.4120784401893616 -4.6214447021484375 -4.9118700027465820 -6.0505189895629883 -4.6808929443359375 -6.8904924392700195 -8.9541301727294922 -6.7261710166931152 -5.5593199729919434 -5.5014295578002930 -6.3921670913696289 -4.9982409477233887 -4.8566403388977051 -4.6410055160522461 -4.9124283790588379 -5.9549393653869629 -6.0247588157653809 -4.6261487007141113 -6.4963736534118652 -4.9316325187683105 -4.6096000671386719 -6.0773196220397949 -4.7601909637451172 -8.7147998809814453 -6.6989488601684570 -4.7950634956359863 -4.6506695747375488 -5.2808742523193359 -5.2016201019287109 -5.4376950263977051 -6.8881120681762695 -5.2732906341552734 -4.7424130439758301 -5.4692730903625488 -7.2792720794677734 -4.6289987564086914 -5.1979603767395020 -6.7641911506652832 -5.1881828308105469 -6.1156525611877441 -4.7053279876708984 -5.2788376808166504 -4.8760290145874023 -6.0454907417297363 -7.3173213005065918 -4.6507511138916016 -4.8864817619323730 -5.1647262573242188 -5.7062554359436035 -4.8188128471374512 -6.5668435096740723 -4.7244000434875488 -5.1784720420837402 -5.2415833473205566 -6.3870325088500977 -4.8761253356933594 -6.7379055023193359 -5.3378367424011230 -5.1858677864074707 -4.9035620689392090 -4.8169889450073242 -5.2868537902832031 -5.9512200355529785 -5.1057124137878418 -5.1102013587951660 -0.4240580797195435 -5.0641913414001465 -5.3746657371520996 -5.8998146057128906 -4.8971610069274902 -5.0034298896789551 -4.9728097915649414 -5.3235807418823242 -4.6009683609008789 -4.7526626586914062 -8.0000514984130859 -4.8038024902343750 -6.7152376174926758 -4.9223423004150391 -4.7782163619995117 -4.6405615806579590 -4.7864475250244141 -5.5237708091735840 -4.7075924873352051 -4.9897551536560059 -5.0463576316833496 -4.6125798225402832 -7.0268368721008301 -4.6073551177978516 -5.8781089782714844 -5.2406544685363770 -4.9191489219665527 -5.3615808486938477 -5.4963665008544922 -5.1293520927429199 -5.2746138572692871 -4.6003336906433105 -6.0575652122497559 -4.8598957061767578 -5.3555192947387695 -8.1490612030029297 -5.3980703353881836 -5.3290109634399414 -4.7263426780700684 -5.2355771064758301 -4.6501646041870117 -7.0129480361938477 -5.0357017517089844 -4.6403903961181641 -11.6659517288208008 -5.4612274169921875 -6.7796869277954102 -5.3056416511535645 -5.2280220985412598 -5.0969872474670410 -6.5822544097900391 -6.4702887535095215 -4.6134600639343262 -6.0335259437561035 -7.1512508392333984 -5.0643386840820312 -8.0262918472290039 -5.4363889694213867 -5.5318212509155273 -5.2053542137145996 -8.3834123611450195 -5.1781859397888184 -5.2574748992919922 -6.7375497817993164 -6.8831715583801270 -0.3952900171279907 -5.7643947601318359 -6.4043450355529785 -5.4497866630554199 -4.5862045288085938 -4.5674386024475098 -5.8186783790588379 -5.1441149711608887 -4.8620166778564453 -4.7687244415283203 -6.0562925338745117 -4.8200078010559082 -6.0930566787719727 -5.2534794807434082 -4.8595938682556152 -4.7243914604187012 -4.9322209358215332 -4.8200888633728027 -5.7913599014282227 -5.6681785583496094 -5.9468750953674316 -6.0915570259094238 -4.7277011871337891 -5.8206529617309570 -4.8647475242614746 -6.8956332206726074 -4.9417934417724609 -5.1376605033874512 -6.1108694076538086 -5.0872826576232910 -4.5816421508789062 -6.9825935363769531 -6.5877752304077148 -4.5664119720458984 -4.6827263832092285 -6.7972383499145508 -5.5088853836059570 -4.8727798461914062 -6.1938695907592773 -5.0991888046264648 -6.3363294601440430 -6.7126059532165527 -4.8022446632385254 -4.9145860671997070 -4.7866325378417969 -5.2374978065490723 -5.0386815071105957 -4.9835762977600098 -4.9627718925476074 -4.6588077545166016 -5.0044751167297363 -4.5590133666992188 -5.7568836212158203 -6.4889879226684570 -5.9881577491760254 -6.3075270652770996 -5.1644511222839355 -6.3116474151611328 -6.2423429489135742 -5.4150528907775879 -5.9136123657226562 -4.6838808059692383 -5.0068979263305664 -5.3173370361328125 -6.6729393005371094 -0.3598697483539581 -5.3881464004516602 -4.6805834770202637 -5.0125169754028320 -5.2873930931091309 -5.0211782455444336 -4.6332345008850098 -4.9673476219177246 -5.2409820556640625 -4.8295702934265137 -6.3146057128906250 -6.4546771049499512 -8.2533674240112305 -5.9821176528930664 -4.7425627708435059 -4.9564342498779297 -5.4991998672485352 -10.1393747329711914 -5.4852252006530762 -6.9371914863586426 -4.6915421485900879 -4.9376401901245117 -4.9485692977905273 -5.0894579887390137 -4.5423455238342285 -5.0802302360534668 -6.0368599891662598 -5.1647882461547852 -8.2119531631469727 -6.8951821327209473 -6.0185985565185547 -5.0822811126708984 -4.8192358016967773 -4.7168111801147461 -4.5853900909423828 -5.7358183860778809 -6.3182682991027832 -5.2187891006469727 -6.7636380195617676 -6.0024600028991699 -10.7311258316040039 -6.3410906791687012 -5.4025430679321289 -5.9591407775878906 -5.6235065460205078 -4.6946692466735840 -4.9507417678833008 -5.3617143630981445 -5.9272484779357910 -4.7238206863403320 -6.0916709899902344 -5.7934966087341309 -8.9954481124877930 -5.3437333106994629 -5.7042641639709473 -5.3350653648376465 -4.6924943923950195 -4.5812287330627441 -6.3378024101257324 -6.1291408538818359 -4.6924562454223633 -4.7446293830871582 -4.7840070724487305 -7.4197010993957520 -4.8270993232727051 -0.4056955873966217 -4.7137737274169922 -5.0685043334960938 -6.5677661895751953 -8.2912969589233398 -6.8287515640258789 -5.3482584953308105 -4.7317924499511719 -5.4349713325500488 -5.7412595748901367 -5.1283769607543945 -5.9867072105407715 -5.5226535797119141 -4.9717836380004883 -4.8373165130615234 -4.8218407630920410 -5.1041359901428223 -5.6614184379577637 -4.7983312606811523 -4.9827580451965332 -5.4379873275756836 -5.2154994010925293 -5.8145923614501953 -5.5953531265258789 -5.2699799537658691 -5.7748842239379883 -6.1580595970153809 -5.5232806205749512 -4.7241535186767578 -4.9255895614624023 -4.8561949729919434 -4.9776916503906250 -4.7032990455627441 -6.1149730682373047 -5.0718016624450684 -4.9844331741333008 -5.0364508628845215 -5.2288312911987305 -5.8177924156188965 -5.8582663536071777 -5.0384988784790039 -7.4948258399963379 -5.7902669906616211 -5.6371965408325195 -4.6064796447753906 -5.3978600502014160 -4.6051931381225586 -4.6234169006347656 -5.1002173423767090 -4.7109580039978027 -5.0326499938964844 -5.8546357154846191 -5.0724616050720215 -7.3778052330017090 -4.7753067016601562 -4.6309080123901367 -5.8419227600097656 -4.8000555038452148 -4.5802569389343262 -4.9781002998352051 -6.0314044952392578 -6.7047681808471680 -5.0658168792724609 -5.8812956809997559 -5.2895574569702148 -0.4181474149227142 -6.4831042289733887 -5.9415559768676758 -4.7579922676086426 -5.7300529479980469 -4.6674027442932129 -7.8504810333251953 -4.8814353942871094 -4.5999598503112793 -5.1050772666931152 -5.4842600822448730 -6.7854390144348145 -5.2073531150817871 -4.6525216102600098 -6.0795550346374512 -4.9699945449829102 -4.7623524665832520 -4.7439780235290527 -6.4448699951171875 -5.8871712684631348 -6.9030137062072754 -4.8083214759826660 -6.5763444900512695 -4.6886916160583496 -5.3358011245727539 -5.9726901054382324 -5.4656786918640137 -5.6000528335571289 -4.7653336524963379 -4.7015900611877441 -6.0232934951782227 -5.0855770111083984 -5.2428355216979980 -4.6451611518859863 -5.2285637855529785 -5.3450312614440918 -5.4037957191467285 -4.7645187377929688 -5.8157572746276855 -4.6357932090759277 -4.8566703796386719 -4.7899956703186035 -5.6428446769714355 -5.8257417678833008 -6.1368641853332520 -5.0023784637451172 -6.2308464050292969 -5.0840096473693848 -8.5337305068969727 -6.0982899665832520 -4.7878661155700684 -5.0471973419189453 -4.9508671760559082 -5.5155582427978516 -4.7517247200012207 -5.2486181259155273 -4.8786754608154297 -5.1468486785888672 -4.9133424758911133 -4.8499031066894531 -5.6648154258728027 -6.2720518112182617 -7.5068778991699219 -4.7557153701782227 -4.7474694252014160 -0.4359841644763947 -4.9182109832763672 -5.3055253028869629 -4.9715700149536133 -8.3313970565795898 -5.1448960304260254 -6.3202848434448242 -4.7135519981384277 -4.7963457107543945 -4.9778890609741211 -4.6058907508850098 -4.9259963035583496 -5.5813689231872559 -4.6488928794860840 -4.9535536766052246 -6.3850393295288086 -5.6877889633178711 -4.8207840919494629 -5.6210889816284180 -4.7253389358520508 -5.4009099006652832 -5.6115980148315430 -9.5045814514160156 -4.6727337837219238 -5.0418605804443359 -4.8364853858947754 -5.2278189659118652 -6.8269810676574707 -4.8406400680541992 -5.2575774192810059 -5.9096956253051758 -4.8555393218994141 -6.5340495109558105 -4.8884825706481934 -5.1092920303344727 -4.9719905853271484 -4.6154961585998535 -6.5245227813720703 -5.7539658546447754 -4.6181440353393555 -5.7298932075500488 -5.9014482498168945 -4.8036689758300781 -5.5911817550659180 -6.0589561462402344 -4.8311052322387695 -4.7917847633361816 -5.0082778930664062 -4.6478333473205566 -4.8399834632873535 -7.4928112030029297 -4.9086380004882812 -4.5655484199523926 -5.6567749977111816 -5.0628080368041992 -6.9057641029357910 -4.7913975715637207 -4.7561769485473633 -6.1761484146118164 -4.6326274871826172 -5.2456398010253906 -5.5172986984252930 -4.7748727798461914 -7.8850460052490234 -7.4150190353393555 -0.4061063230037689 -5.1050586700439453 -6.2299127578735352 -7.7068181037902832 -5.3468108177185059 -5.2501053810119629 -6.0069284439086914 -4.6315898895263672 -5.7608633041381836 -6.0145010948181152 -5.4237236976623535 -5.1905918121337891 -5.1249113082885742 -4.6511497497558594 -7.1634769439697266 -4.6170053482055664 -4.9227347373962402 -5.3087134361267090 -6.1051607131958008 -6.7686553001403809 -5.9284553527832031 -4.8449563980102539 -5.0723919868469238 -5.5947437286376953 -4.6344456672668457 -4.7832732200622559 -5.3434190750122070 -5.5923123359680176 -6.5926580429077148 -4.8185353279113770 -6.2610106468200684 -5.5298099517822266 -4.7139010429382324 -6.1866283416748047 -5.2713809013366699 -4.7283325195312500 -4.9126729965209961 -4.9557313919067383 -4.6825766563415527 -6.3572459220886230 -5.6501722335815430 -6.7517623901367188 -4.6704425811767578 -5.7919106483459473 -4.9887542724609375 -4.7981896400451660 -5.7530622482299805 -14.2744846343994141 -5.1525011062622070 -4.7020726203918457 -4.6835799217224121 -6.0360288619995117 -5.2110357284545898 -5.0143642425537109 -6.1510434150695801 -5.8580293655395508 -4.6280651092529297 -8.6141901016235352 -5.0274095535278320 -5.2864127159118652 -5.9703855514526367 -4.7872848510742188 -4.6583037376403809 -5.5513176918029785 -5.9682478904724121 -0.3646701872348785 -9.7585830688476562 -5.1749606132507324 -8.2325344085693359 -5.5488519668579102 -5.3076128959655762 -5.0231504440307617 -5.7371048927307129 -4.5806918144226074 -5.5840268135070801 -4.5691556930541992 -5.6708841323852539 -5.1322326660156250 -6.8039135932922363 -6.1791915893554688 -4.9783606529235840 -6.7364745140075684 -4.7484259605407715 -4.7565412521362305 -6.9454288482666016 -6.4543714523315430 -5.1405534744262695 -6.4395265579223633 -5.2111549377441406 -7.0001201629638672 -4.5700464248657227 -8.6961698532104492 -6.5548553466796875 -5.4117889404296875 -5.4867157936096191 -5.5996656417846680 -8.0732259750366211 -4.7165007591247559 -4.5497713088989258 -4.9010162353515625 -4.6422109603881836 -5.8203558921813965 -4.5808591842651367 -4.8151664733886719 -5.4465422630310059 -4.7522978782653809 -5.9361276626586914 -9.1476259231567383 -6.3240895271301270 -4.9264545440673828 -5.6799201965332031 -6.1859574317932129 -4.7011528015136719 -5.5303969383239746 -4.8512921333312988 -7.7953896522521973 -4.8245854377746582 -5.8334770202636719 -5.8384265899658203 -6.5455341339111328 -7.4746451377868652 -5.8088908195495605 -6.2285490036010742 -7.9682407379150391 -6.4288268089294434 -4.5595145225524902 -5.4422330856323242 -4.9560904502868652 -6.1825323104858398 -5.4258856773376465 -0.3949948251247406 -6.1844477653503418 -4.7600102424621582 -4.6065096855163574 -5.2660770416259766 -5.7322950363159180 -6.3062920570373535 -4.8107976913452148 -5.0822782516479492 -5.0644707679748535 -7.6086373329162598 -4.7416234016418457 -4.6387205123901367 -7.3698806762695312 -6.0589361190795898 -10.0299720764160156 -4.7291765213012695 -4.5644607543945312 -5.4515018463134766 -8.1862545013427734 -4.7463450431823730 -5.2869668006896973 -4.6268310546875000 -8.4203433990478516 -4.8250064849853516 -4.6504740715026855 -5.1253576278686523 -4.5596179962158203 -5.0543308258056641 -5.1167740821838379 -4.8109049797058105 -4.7885546684265137 -5.5807275772094727 -4.6266107559204102 -5.9298777580261230 -6.0639495849609375 -4.7731742858886719 -5.4263801574707031 -4.6505012512207031 -4.9731392860412598 -8.4021863937377930 -4.6950540542602539 -5.0320954322814941 -7.0316805839538574 -4.9228496551513672 -5.1965975761413574 -4.6551361083984375 -5.1455130577087402 -4.7072014808654785 -7.1013283729553223 -5.2639203071594238 -4.9002184867858887 -5.3424315452575684 -5.3271346092224121 -4.5910243988037109 -4.7978043556213379 -5.3055906295776367 -4.7036924362182617 -5.7959818840026855 -5.1259155273437500 -7.3354020118713379 -5.3352265357971191 -6.7867293357849121 -6.2469215393066406 -5.8818669319152832 -0.4047247171401978 -5.3598628044128418 -8.1593122482299805 -5.4286770820617676 -6.4752063751220703 -6.4285988807678223 -5.4742197990417480 -4.7016811370849609 -4.7486867904663086 -5.7785706520080566 -6.1957902908325195 -4.6845364570617676 -4.7736620903015137 -6.8379421234130859 -5.7093338966369629 -4.6565427780151367 -7.3037667274475098 -4.7479977607727051 -5.8290748596191406 -4.8023085594177246 -4.7710733413696289 -5.1251749992370605 -6.1940145492553711 -4.8291325569152832 -5.6373176574707031 -4.5873031616210938 -5.1744203567504883 -7.3202366828918457 -7.4024543762207031 -5.2460794448852539 -5.4033069610595703 -6.3545813560485840 -5.6423749923706055 -4.6596269607543945 -4.6509876251220703 -4.8651766777038574 -4.9835915565490723 -4.6799921989440918 -5.3592934608459473 -6.6176762580871582 -4.5717506408691406 -5.4121437072753906 -5.4489154815673828 -5.5696434974670410 -5.7145900726318359 -4.9275927543640137 -5.4703197479248047 -4.8907518386840820 -5.6688089370727539 -6.8269872665405273 -5.5030031204223633 -6.3317470550537109 -5.6978225708007812 -6.3177051544189453 -6.2311015129089355 -5.5832324028015137 -5.0927019119262695 -4.8927378654479980 -5.9465522766113281 -5.7463583946228027 -5.5494103431701660 -5.8355450630187988 -5.3466434478759766 -6.5198860168457031 -4.8367967605590820 -0.3742017447948456 -4.5361580848693848 -4.6545367240905762 -5.0784416198730469 -7.6992816925048828 -4.8221731185913086 -5.0157356262207031 -4.8541622161865234 -4.7063989639282227 -5.0499110221862793 -7.0327024459838867 -5.9615955352783203 -4.8957734107971191 -7.0669031143188477 -4.9189052581787109 -5.7150444984436035 -4.9891066551208496 -5.1375279426574707 -5.3672356605529785 -7.8342061042785645 -5.9290199279785156 -4.5813608169555664 -6.4138545989990234 -4.9319424629211426 -4.6484355926513672 -5.9183793067932129 -5.3754005432128906 -5.2353491783142090 -4.6311898231506348 -6.0958647727966309 -5.8051609992980957 -5.2323894500732422 -4.6933083534240723 -5.3030390739440918 -6.5662746429443359 -4.8676562309265137 -5.1824722290039062 -4.6127305030822754 -5.0539035797119141 -6.2170333862304688 -5.5909414291381836 -5.4744529724121094 -4.7247977256774902 -4.9897155761718750 -4.9587893486022949 -4.9567818641662598 -5.2262082099914551 -6.9636659622192383 -5.6286458969116211 -6.4616661071777344 -6.4431734085083008 -5.4713606834411621 -7.7466754913330078 -5.4475975036621094 -4.7876758575439453 -4.6436519622802734 -5.2705044746398926 -4.9750375747680664 -5.4062457084655762 -4.6026344299316406 -5.7568888664245605 -5.7348051071166992 -4.6839475631713867 -4.6906819343566895 -5.6223778724670410 -0.4096570312976837 -4.9263215065002441 -6.1585373878479004 -4.6464543342590332 -5.2106943130493164 -4.8044891357421875 -4.7877902984619141 -4.9538822174072266 -5.0645861625671387 -5.7835292816162109 -4.8444237709045410 -5.8703651428222656 -5.6918025016784668 -5.2619433403015137 -5.8069944381713867 -4.6558885574340820 -4.8392314910888672 -6.2590069770812988 -6.6821541786193848 -7.6778264045715332 -5.4298486709594727 -4.6754221916198730 -5.3359618186950684 -4.6129789352416992 -5.0291709899902344 -5.0932350158691406 -6.2435784339904785 -5.7594976425170898 -4.9622602462768555 -5.2552900314331055 -5.7653241157531738 -9.1894645690917969 -4.9330005645751953 -6.0423030853271484 -6.1186327934265137 -4.5744414329528809 -5.4577217102050781 -4.7893776893615723 -5.8442463874816895 -5.3635578155517578 -4.9919791221618652 -4.7172589302062988 -6.1456990242004395 -7.2591152191162109 -4.6989321708679199 -5.0378251075744629 -4.7262907028198242 -5.4278945922851562 -4.7860260009765625 -5.1754927635192871 -4.8412899971008301 -4.7765078544616699 -4.7960634231567383 -5.1692485809326172 -5.9100646972656250 -4.6854262351989746 -4.7128438949584961 -4.6299247741699219 -5.5877137184143066 -4.7450432777404785 -6.1716308593750000 -4.8287701606750488 -6.6329231262207031 -5.9873075485229492 -5.6451835632324219 -0.3974435627460480 -5.6733803749084473 -4.5702481269836426 -6.4280414581298828 -4.5981750488281250 -6.8263425827026367 -4.7940688133239746 -5.5387578010559082 -8.2936716079711914 -5.0419478416442871 -8.1035070419311523 -4.9604024887084961 -4.8356404304504395 -4.7345848083496094 -5.0140457153320312 -5.0196800231933594 -4.9646611213684082 -7.4019031524658203 -7.7673110961914062 -5.1041646003723145 -7.0201478004455566 -5.7623000144958496 -4.8944516181945801 -6.1167612075805664 -4.7466793060302734 -5.6224699020385742 -4.5868315696716309 -8.1019716262817383 -4.7110338211059570 -5.6133108139038086 -6.3438701629638672 -4.8302464485168457 -5.2624764442443848 -5.1019258499145508 -5.9097094535827637 -5.1109399795532227 -6.3914289474487305 -6.9858369827270508 -5.8971815109252930 -6.5843124389648438 -6.4069347381591797 -5.8718781471252441 -5.6595621109008789 -5.4294099807739258 -4.6236162185668945 -5.0648880004882812 -6.6419744491577148 -6.1227221488952637 -4.7208456993103027 -4.7820820808410645 -5.7561111450195312 -4.9072141647338867 -6.6658358573913574 -5.7133169174194336 -4.7087593078613281 -4.6109962463378906 -7.3435034751892090 -4.7639088630676270 -4.9081153869628906 -4.8216452598571777 -6.3007211685180664 -4.5660886764526367 -4.8094816207885742 -5.4678645133972168 -6.5595140457153320 -0.3934434652328491 -4.8072276115417480 -5.1883397102355957 -4.5656118392944336 -7.2123813629150391 -4.8062629699707031 -5.7125668525695801 -6.2196893692016602 -4.8163394927978516 -7.1559944152832031 -6.1297807693481445 -5.7964429855346680 -5.2272090911865234 -5.1182317733764648 -5.5878691673278809 -5.3988890647888184 -5.8895497322082520 -7.2546167373657227 -5.5789322853088379 -5.3220977783203125 -4.5560851097106934 -5.7585163116455078 -4.8896994590759277 -4.5802431106567383 -4.5651078224182129 -6.0046982765197754 -4.7829203605651855 -5.7724051475524902 -6.2026052474975586 -6.8213338851928711 -5.0546321868896484 -5.8995180130004883 -6.0970773696899414 -6.1699867248535156 -4.5736727714538574 -4.7891573905944824 -5.4640674591064453 -6.5434141159057617 -4.5668425559997559 -6.3145003318786621 -4.6571283340454102 -5.5139589309692383 -5.6401505470275879 -4.7843399047851562 -4.6141848564147949 -4.9364986419677734 -5.2252616882324219 -5.0991792678833008 -4.5601730346679688 -5.8923459053039551 -5.1518659591674805 -5.3514342308044434 -4.9397821426391602 -6.2754836082458496 -4.6510267257690430 -4.6550955772399902 -5.1338548660278320 -4.9373130798339844 -5.4650263786315918 -7.7039995193481445 -4.5978794097900391 -5.6021347045898438 -5.4705128669738770 -5.8226518630981445 -6.9271745681762695 -0.3862540423870087 -5.4503722190856934 -6.6131954193115234 -4.6362481117248535 -5.7390170097351074 -5.9416704177856445 -5.0283584594726562 -6.9443635940551758 -4.5679821968078613 -5.1736435890197754 -4.7780103683471680 -7.0412845611572266 -4.5700407028198242 -5.9549312591552734 -5.7702322006225586 -5.1245408058166504 -7.5537247657775879 -6.1391525268554688 -6.0909237861633301 -5.6251697540283203 -4.8850946426391602 -4.6899466514587402 -6.1921491622924805 -6.2006435394287109 -7.4169497489929199 -5.8195781707763672 -6.7673449516296387 -4.7299385070800781 -5.6741094589233398 -4.7952132225036621 -4.9185757637023926 -7.6476373672485352 -4.7505855560302734 -5.3017835617065430 -5.2983326911926270 -6.5050830841064453 -4.5886445045471191 -5.4419608116149902 -4.6504688262939453 -4.5357894897460938 -7.7401456832885742 -5.9381785392761230 -4.9300827980041504 -5.1872901916503906 -5.9727835655212402 -6.8180170059204102 -5.8813004493713379 -6.2083435058593750 -5.2564506530761719 -5.2102780342102051 -5.2301964759826660 -5.9852442741394043 -4.9390873908996582 -4.9071364402770996 -6.5381445884704590 -5.1674180030822754 -5.9694223403930664 -5.2604942321777344 -6.1342430114746094 -5.0257596969604492 -5.0525960922241211 -6.0055069923400879 -4.5529079437255859 -6.9160661697387695 -5.7300968170166016 -0.3381691277027130 -7.6872758865356445 -4.7820410728454590 -6.9600753784179688 -5.0547494888305664 -4.7831139564514160 -5.7672924995422363 -4.5897946357727051 -4.5354962348937988 -6.7181134223937988 -4.9860663414001465 -7.8761048316955566 -6.4135146141052246 -4.8995432853698730 -5.0810213088989258 -6.1545495986938477 -5.1462488174438477 -5.6133866310119629 -5.3287220001220703 -5.8766150474548340 -6.0474653244018555 -7.0571608543395996 -5.1757593154907227 -4.6096296310424805 -5.5009155273437500 -4.9747705459594727 -5.5128808021545410 -5.0029444694519043 -7.3644337654113770 -5.9829177856445312 -4.9626364707946777 -7.6643252372741699 -6.2092342376708984 -8.7969999313354492 -5.1058440208435059 -5.5422258377075195 -4.9460091590881348 -5.7295808792114258 -6.2309646606445312 -5.1851000785827637 -5.2972164154052734 -5.5691776275634766 -4.6341643333435059 -6.9226918220520020 -5.3575062751770020 -5.1792235374450684 -5.5233573913574219 -4.6802635192871094 -6.5047130584716797 -5.3312020301818848 -5.6879744529724121 -4.9521703720092773 -4.6778411865234375 -5.5033926963806152 -4.5542054176330566 -5.0380787849426270 -5.3232307434082031 -4.8677787780761719 -4.9975519180297852 -6.1859245300292969 -6.0204973220825195 -5.2550587654113770 -5.1442179679870605 -7.0964484214782715 -7.7938790321350098 -0.3916929662227631 -4.5754213333129883 -4.9724192619323730 -4.9219093322753906 -5.9776282310485840 -5.0450940132141113 -4.7580537796020508 -11.2827196121215820 -10.0215578079223633 -5.8444156646728516 -4.8028140068054199 -8.8963136672973633 -6.5898265838623047 -4.8912634849548340 -4.6338324546813965 -4.6843299865722656 -8.7495622634887695 -4.8026757240295410 -4.7616772651672363 -4.6971349716186523 -5.3072457313537598 -6.1559205055236816 -4.9513006210327148 -6.3397798538208008 -5.3216037750244141 -4.5575485229492188 -4.5892767906188965 -6.0222187042236328 -4.6766672134399414 -5.3228473663330078 -5.7413115501403809 -5.8538632392883301 -6.3630104064941406 -5.2898855209350586 -4.9520435333251953 -6.4119658470153809 -8.2125482559204102 -5.0891308784484863 -4.7355022430419922 -4.6224126815795898 -4.7320852279663086 -5.0773429870605469 -5.1886882781982422 -5.3597173690795898 -6.2766690254211426 -4.7439279556274414 -5.4249596595764160 -4.5991592407226562 -5.0134167671203613 -4.9820804595947266 -5.1634721755981445 -4.9316992759704590 -5.6038203239440918 -5.3321704864501953 -6.2574629783630371 -4.8414363861083984 -9.6141481399536133 -5.2403016090393066 -6.3577647209167480 -8.3833885192871094 -5.2473597526550293 -5.4026885032653809 -6.3123555183410645 -5.5125808715820312 -4.6030950546264648 -0.3857631981372833 -4.8747730255126953 -5.3174371719360352 -7.1487159729003906 -6.4754366874694824 -5.6121754646301270 -4.7345337867736816 -4.7682967185974121 -5.2789278030395508 -6.5601444244384766 -5.5856266021728516 -7.2176761627197266 -5.4294614791870117 -4.5933609008789062 -5.4659967422485352 -5.5419297218322754 -7.3033351898193359 -5.3254446983337402 -4.5824832916259766 -4.8772282600402832 -5.8144865036010742 -6.2667393684387207 -4.7738394737243652 -5.6742377281188965 -4.9846525192260742 -7.3049931526184082 -4.7347278594970703 -5.9963331222534180 -4.9337420463562012 -5.4286994934082031 -4.8354372978210449 -5.7648739814758301 -4.7786035537719727 -5.9020314216613770 -5.3570189476013184 -5.2322444915771484 -6.2287678718566895 -6.4039921760559082 -4.9590129852294922 -6.2690539360046387 -7.1525607109069824 -5.5849370956420898 -5.4391565322875977 -5.1736526489257812 -4.7845444679260254 -4.6602077484130859 -5.1197638511657715 -4.6289992332458496 -6.1162705421447754 -8.8260307312011719 -4.9212613105773926 -4.7264108657836914 -5.0899844169616699 -4.7673840522766113 -5.4592275619506836 -5.9028220176696777 -5.5087051391601562 -5.3644857406616211 -5.3744492530822754 -5.0635628700256348 -4.7151408195495605 -4.7811546325683594 -4.8367452621459961 -7.0568594932556152 -5.4541192054748535 -0.4060233235359192 -4.9222660064697266 -4.6101298332214355 -4.7971582412719727 -6.3429217338562012 -4.9726681709289551 -5.3114724159240723 -4.6945800781250000 -5.4255843162536621 -4.8762121200561523 -5.5156278610229492 -4.5863347053527832 -5.2156300544738770 -6.0592608451843262 -5.2379817962646484 -5.6446380615234375 -4.6393089294433594 -4.5946707725524902 -6.2076935768127441 -5.4260706901550293 -5.3840932846069336 -5.4678230285644531 -4.7917847633361816 -5.4089117050170898 -5.9604053497314453 -8.4994916915893555 -5.3197360038757324 -5.2818450927734375 -6.7017793655395508 -9.8565273284912109 -4.7365355491638184 -5.0455017089843750 -6.4410719871520996 -4.8610587120056152 -4.6070218086242676 -4.6095261573791504 -5.0725736618041992 -5.3172082901000977 -4.8931603431701660 -4.7738847732543945 -6.4432749748229980 -5.4307899475097656 -5.0302524566650391 -4.8799815177917480 -4.7049727439880371 -5.5908341407775879 -4.6000699996948242 -4.6527886390686035 -6.1732997894287109 -5.1374955177307129 -4.9721183776855469 -4.7010107040405273 -6.3354387283325195 -5.2703971862792969 -5.1728291511535645 -7.7287011146545410 -6.3796958923339844 -4.5928878784179688 -4.6629185676574707 -6.5643248558044434 -4.7113833427429199 -5.0080165863037109 -4.6678953170776367 -5.7798986434936523 -4.6404838562011719 -0.4263936877250671 -5.2953872680664062 -6.0175180435180664 -7.5181202888488770 -5.0535869598388672 -4.9789986610412598 -5.5100231170654297 -5.1356120109558105 -5.4038372039794922 -5.2793798446655273 -5.6074686050415039 -5.1400957107543945 -6.6463537216186523 -5.7985515594482422 -5.1544847488403320 -6.0252223014831543 -5.9411926269531250 -6.3541021347045898 -4.8184299468994141 -5.9538922309875488 -6.1533961296081543 -5.1072716712951660 -5.5755352973937988 -4.8652796745300293 -6.4143071174621582 -4.8988046646118164 -4.7001094818115234 -6.1161913871765137 -4.9889016151428223 -5.9374823570251465 -4.6239628791809082 -4.8658232688903809 -5.2556018829345703 -4.9542636871337891 -5.0403075218200684 -5.0239434242248535 -5.3266243934631348 -4.6907634735107422 -4.7893619537353516 -6.3739590644836426 -4.9992570877075195 -6.2110137939453125 -4.9590349197387695 -4.7283434867858887 -6.3172774314880371 -4.7722859382629395 -4.8263320922851562 -4.6963281631469727 -5.5039358139038086 -5.1977772712707520 -4.6733617782592773 -4.6605482101440430 -5.2896575927734375 -5.1678681373596191 -4.9808616638183594 -5.0606713294982910 -4.8569211959838867 -5.2285704612731934 -5.4942507743835449 -6.4006052017211914 -8.0388822555541992 -5.0668382644653320 -5.0886383056640625 -5.1853027343750000 -4.7892217636108398 -0.4870155453681946 -4.8085331916809082 -4.8280811309814453 -4.7895345687866211 -4.8214240074157715 -4.7927818298339844 -4.6973233222961426 -5.7502865791320801 -5.0307731628417969 -5.0074329376220703 -4.7604975700378418 -5.4574003219604492 -7.4935312271118164 -5.4252581596374512 -5.0069909095764160 -5.0268220901489258 -4.6731262207031250 -5.4550132751464844 -4.6817011833190918 -4.6719326972961426 -5.4488310813903809 -6.2690958976745605 -5.0983657836914062 -5.5623259544372559 -5.3560628890991211 -4.7832841873168945 -5.2004156112670898 -4.7085695266723633 -7.6280179023742676 -5.5428352355957031 -4.7299633026123047 -5.3435397148132324 -4.8278651237487793 -4.8711128234863281 -5.0853118896484375 -5.3115744590759277 -4.7213988304138184 -4.6618528366088867 -7.1624975204467773 -5.1070775985717773 -6.2191901206970215 -5.2003941535949707 -5.9291572570800781 -6.2331032752990723 -5.1471996307373047 -5.7027993202209473 -6.4472308158874512 -5.7534732818603516 -5.3123164176940918 -4.9110603332519531 -6.7301626205444336 -4.6927781105041504 -9.3703966140747070 -4.8490042686462402 -5.6932740211486816 -5.5053668022155762 -5.2396693229675293 -6.6532826423645020 -10.5882472991943359 -4.5979127883911133 -4.8827133178710938 -4.9999399185180664 -5.2340602874755859 -4.9430694580078125 -4.5932650566101074 -0.3993696868419647 -4.7750401496887207 -4.7985715866088867 -5.3253769874572754 -4.7445921897888184 -7.6065444946289062 -5.2174992561340332 -4.5701613426208496 -5.3118944168090820 -4.8564934730529785 -10.4062204360961914 -5.5718641281127930 -5.6718592643737793 -4.6719713211059570 -5.0733852386474609 -5.7013645172119141 -5.5695357322692871 -4.8306002616882324 -7.3294839859008789 -4.7989673614501953 -5.9220786094665527 -5.4082517623901367 -6.5870103836059570 -4.8450622558593750 -4.9471302032470703 -5.2282691001892090 -5.3363661766052246 -5.7158699035644531 -6.7693285942077637 -4.7330150604248047 -5.0237174034118652 -5.1821079254150391 -5.1387200355529785 -9.0026369094848633 -7.9540767669677734 -5.2637758255004883 -4.6506938934326172 -5.1853170394897461 -4.7562804222106934 -5.4072742462158203 -4.6275720596313477 -5.7618532180786133 -4.7483415603637695 -5.2995028495788574 -5.2709741592407227 -5.1981334686279297 -5.9064087867736816 -5.4539465904235840 -7.1200685501098633 -4.7207798957824707 -5.9954323768615723 -6.4907016754150391 -5.3534426689147949 -6.2876749038696289 -6.2208228111267090 -4.9755959510803223 -4.7285504341125488 -4.8581237792968750 -4.7966089248657227 -4.5927634239196777 -4.7558374404907227 -4.5985612869262695 -4.6917748451232910 -5.4526634216308594 -8.3837413787841797 -0.4314699172973633 -4.9134068489074707 -6.9895291328430176 -4.9661664962768555 -5.3335108757019043 -9.2695140838623047 -4.6632709503173828 -5.0977325439453125 -5.2226243019104004 -4.7288646697998047 -5.6250319480895996 -4.6759276390075684 -4.6631035804748535 -7.7840838432312012 -5.2436623573303223 -6.2928099632263184 -4.6091070175170898 -4.6684684753417969 -6.0185909271240234 -5.2421207427978516 -4.8557658195495605 -5.3864798545837402 -4.7817087173461914 -5.3849883079528809 -5.5709824562072754 -6.9608230590820312 -5.1332015991210938 -4.8768768310546875 -4.7786726951599121 -5.2282495498657227 -5.0109024047851562 -4.7697644233703613 -4.9027085304260254 -6.0060400962829590 -4.6372942924499512 -4.7312641143798828 -5.8133730888366699 -4.6107511520385742 -7.6973400115966797 -4.7751460075378418 -7.0231733322143555 -5.3973083496093750 -5.2624025344848633 -5.5357084274291992 -4.9111828804016113 -6.8807234764099121 -4.8500351905822754 -4.6617445945739746 -5.3059663772583008 -5.0412983894348145 -4.6372838020324707 -5.7045645713806152 -7.6829919815063477 -5.2692542076110840 -5.9762940406799316 -5.0319890975952148 -5.1138367652893066 -6.2750496864318848 -5.4877686500549316 -5.2484593391418457 -4.8277387619018555 -4.8340954780578613 -5.3270359039306641 -4.6859879493713379 -7.3372960090637207 -0.4357778131961823 -5.6150770187377930 -4.7082438468933105 -8.7972173690795898 -5.0466847419738770 -5.3772501945495605 -4.6353440284729004 -5.0254330635070801 -5.5872406959533691 -7.0514254570007324 -6.5702252388000488 -5.2583827972412109 -4.6366930007934570 -4.9149098396301270 -6.0742902755737305 -5.8651194572448730 -4.9258809089660645 -5.1604862213134766 -4.8096880912780762 -5.7895593643188477 -4.6877675056457520 -5.1009130477905273 -4.8922042846679688 -4.8318004608154297 -4.6095843315124512 -6.1572976112365723 -5.2787680625915527 -4.7327275276184082 -5.0999236106872559 -5.0933618545532227 -5.2889981269836426 -5.0022172927856445 -6.3092160224914551 -5.3697814941406250 -5.2807159423828125 -4.8816881179809570 -5.3241872787475586 -5.9414501190185547 -4.7112545967102051 -5.1328029632568359 -4.6453108787536621 -5.7124929428100586 -5.7877421379089355 -5.1336712837219238 -5.2903394699096680 -4.8736195564270020 -5.4805870056152344 -5.3429188728332520 -4.8716211318969727 -5.4595384597778320 -4.6754369735717773 -4.7665333747863770 -5.0394105911254883 -4.7561626434326172 -5.1490745544433594 -5.0707845687866211 -6.5110673904418945 -4.7258801460266113 -5.7084002494812012 -4.7372961044311523 -5.2224879264831543 -4.7718906402587891 -4.9585380554199219 -5.0170021057128906 -4.8717317581176758 -0.4475215971469879 -4.7245116233825684 -4.9589962959289551 -7.5129437446594238 -5.5139341354370117 -6.2577023506164551 -4.6103978157043457 -5.7167468070983887 -4.6564397811889648 -7.7681875228881836 -7.1081008911132812 -4.6241550445556641 -5.3127551078796387 -5.6272592544555664 -4.6459012031555176 -5.2487707138061523 -5.3961257934570312 -5.8407354354858398 -5.8668956756591797 -5.8036384582519531 -5.7151913642883301 -4.8665175437927246 -4.6609430313110352 -4.9525213241577148 -5.1916604042053223 -5.4816856384277344 -4.8570365905761719 -5.2090520858764648 -5.5159235000610352 -4.9247436523437500 -4.9960227012634277 -5.7045383453369141 -6.3855085372924805 -6.1173067092895508 -4.6876587867736816 -4.5707130432128906 -6.7404065132141113 -6.5128512382507324 -5.6410946846008301 -5.2455444335937500 -4.5542716979980469 -4.6628584861755371 -5.0252485275268555 -5.4397745132446289 -6.4555211067199707 -4.9536595344543457 -5.1713948249816895 -4.8819136619567871 -6.0780291557312012 -6.1417465209960938 -5.6904010772705078 -5.4468822479248047 -6.6843862533569336 -4.6915073394775391 -4.6832065582275391 -4.8366136550903320 -4.8366255760192871 -4.7054843902587891 -4.6503858566284180 -5.0349617004394531 -7.8313999176025391 -6.1887879371643066 -7.0222368240356445 -5.7344927787780762 -5.3155813217163086 -0.3783260881900787 -6.3664846420288086 -6.3653197288513184 -5.0218129158020020 -5.5301575660705566 -5.2332944869995117 -5.3218097686767578 -5.1592459678649902 -5.3127646446228027 -4.6001024246215820 -5.7995085716247559 -6.9350123405456543 -4.9088253974914551 -4.7943816184997559 -5.5255088806152344 -7.1470427513122559 -4.7665390968322754 -5.0540442466735840 -5.6313238143920898 -6.4506149291992188 -6.9510760307312012 -4.6495966911315918 -5.6983013153076172 -4.8595848083496094 -4.9163494110107422 -7.1582112312316895 -5.9980030059814453 -4.7054319381713867 -7.3319482803344727 -5.1152639389038086 -5.2908701896667480 -6.0040707588195801 -5.2685527801513672 -5.6628470420837402 -4.5701680183410645 -5.2939796447753906 -4.6370935440063477 -5.0377659797668457 -5.3096413612365723 -4.5996603965759277 -5.0458064079284668 -5.8914361000061035 -5.0132551193237305 -4.6916399002075195 -6.5177292823791504 -4.6245150566101074 -4.8943753242492676 -5.4217243194580078 -8.2495403289794922 -4.6310625076293945 -5.2799348831176758 -5.1460037231445312 -5.2004480361938477 -4.8991813659667969 -4.9551601409912109 -6.2773079872131348 -5.8464341163635254 -4.6920747756958008 -4.5792713165283203 -5.4108395576477051 -7.2013101577758789 -4.8587837219238281 -6.7709741592407227 -5.0762910842895508 -5.9641795158386230 -0.4095428287982941 -7.0014572143554688 -5.1763906478881836 -5.5030903816223145 -4.8889627456665039 -5.2233262062072754 -5.9910659790039062 -6.1149730682373047 -7.2363090515136719 -5.2384700775146484 -5.8369517326354980 -4.5986838340759277 -5.7151141166687012 -5.8155765533447266 -6.3246989250183105 -4.6481633186340332 -5.6968317031860352 -5.7069363594055176 -4.6426696777343750 -4.8179459571838379 -6.3861413002014160 -4.6507282257080078 -5.7370276451110840 -4.6675901412963867 -5.9207596778869629 -5.1985735893249512 -4.7257428169250488 -5.6495885848999023 -5.7369952201843262 -4.9236373901367188 -5.5661234855651855 -4.9954075813293457 -4.7086529731750488 -5.5184383392333984 -8.4895515441894531 -9.1111459732055664 -6.4112896919250488 -4.6951456069946289 -4.8753209114074707 -4.5836300849914551 -5.7494530677795410 -4.7020587921142578 -5.0208234786987305 -5.0777597427368164 -6.2712841033935547 -5.4185333251953125 -5.3233823776245117 -4.7128725051879883 -5.4994745254516602 -6.0876531600952148 -4.6118249893188477 -6.0735845565795898 -5.5978541374206543 -4.5911436080932617 -7.7199788093566895 -4.7628350257873535 -4.9714784622192383 -5.6035141944885254 -5.3356375694274902 -4.7882833480834961 -5.5399308204650879 -4.9694528579711914 -8.0822649002075195 -5.8434610366821289 -5.6829266548156738 -0.3906819224357605 -5.1269245147705078 -4.6313166618347168 -5.5901613235473633 -5.5508885383605957 -5.1632852554321289 -5.8609428405761719 -4.7426843643188477 -4.7147226333618164 -4.9643793106079102 -8.4729833602905273 -5.1231956481933594 -4.6000003814697266 -4.7073187828063965 -5.2683300971984863 -5.9887380599975586 -6.2993831634521484 -5.3278641700744629 -5.3965406417846680 -4.5809779167175293 -7.7666096687316895 -6.0917835235595703 -5.6029062271118164 -6.0088372230529785 -8.2008609771728516 -5.1328916549682617 -5.3854756355285645 -4.6794610023498535 -6.3366508483886719 -4.8563146591186523 -8.2106790542602539 -5.4974060058593750 -7.1889944076538086 -5.3617315292358398 -4.9988989830017090 -5.9538540840148926 -9.0311079025268555 -5.9635791778564453 -7.1137623786926270 -5.1309914588928223 -4.6381974220275879 -5.5582709312438965 -4.9549942016601562 -5.9559054374694824 -5.2112693786621094 -7.4486699104309082 -7.0503039360046387 -4.6630935668945312 -4.8933582305908203 -4.7281584739685059 -4.7588329315185547 -4.7592945098876953 -5.3360877037048340 -5.2927093505859375 -4.5970249176025391 -4.7092957496643066 -5.8653473854064941 -4.8884630203247070 -4.6742897033691406 -5.2573947906494141 -5.2451238632202148 -6.3479585647583008 -7.8236374855041504 -4.8969969749450684 -5.8602313995361328 -0.3984481394290924 -5.4640297889709473 -5.4668030738830566 -4.7841482162475586 -5.2311029434204102 -6.0136251449584961 -4.6663589477539062 -5.5838069915771484 -7.2498478889465332 -5.1520547866821289 -5.0624098777770996 -4.9730615615844727 -4.9803390502929688 -6.0629119873046875 -4.8574233055114746 -4.5814061164855957 -6.6031546592712402 -5.0041327476501465 -4.9239144325256348 -5.9514989852905273 -4.6135859489440918 -4.8323602676391602 -6.5144262313842773 -5.4918532371520996 -4.6516880989074707 -5.1212477684020996 -5.0657162666320801 -5.7323822975158691 -5.1434197425842285 -8.4052457809448242 -4.8427834510803223 -5.4134612083435059 -5.7204465866088867 -4.9497413635253906 -5.5751190185546875 -4.6552929878234863 -5.0313153266906738 -6.2407441139221191 -6.2114052772521973 -4.6627788543701172 -4.7697215080261230 -5.6450595855712891 -7.5839657783508301 -4.9216279983520508 -7.6230802536010742 -6.3066277503967285 -5.5350027084350586 -4.8118729591369629 -4.9018435478210449 -4.6884493827819824 -6.5030803680419922 -5.3884201049804688 -5.5286774635314941 -4.7170834541320801 -5.0282869338989258 -4.9543151855468750 -6.0231022834777832 -4.6143832206726074 -4.7867889404296875 -4.6838779449462891 -4.6992077827453613 -4.9396967887878418 -8.3436126708984375 -5.9273972511291504 -5.4916677474975586 -0.4098384976387024 -4.7387981414794922 -8.1759805679321289 -4.7970700263977051 -4.9968619346618652 -5.8486676216125488 -4.6407170295715332 -4.8606042861938477 -8.4210653305053711 -5.6156225204467773 -5.0156564712524414 -5.0506405830383301 -5.6727542877197266 -5.5000410079956055 -4.6460447311401367 -5.6965703964233398 -4.8075499534606934 -4.9430565834045410 -6.9769620895385742 -4.6757597923278809 -6.8313579559326172 -5.8836417198181152 -6.5388879776000977 -4.6325459480285645 -5.0701198577880859 -5.2873029708862305 -5.9217529296875000 -4.7399091720581055 -4.6138477325439453 -5.8016052246093750 -5.8594913482666016 -8.8419246673583984 -4.9629855155944824 -5.2075610160827637 -5.7321796417236328 -5.1303873062133789 -8.4686479568481445 -5.1608610153198242 -9.2221002578735352 -7.1644253730773926 -7.3700456619262695 -4.7969732284545898 -5.1672120094299316 -5.0529851913452148 -4.9100432395935059 -4.5831651687622070 -5.3385910987854004 -4.9179043769836426 -5.3623385429382324 -4.6014003753662109 -5.4829397201538086 -4.9529447555541992 -5.5240087509155273 -4.7261109352111816 -4.7962079048156738 -6.0250515937805176 -4.9905538558959961 -4.9259448051452637 -4.8594756126403809 -6.8145174980163574 -4.6979308128356934 -4.6379075050354004 -5.5800981521606445 -4.6158056259155273 -4.5969038009643555 -0.4153261184692383 -4.6543912887573242 -5.4159998893737793 -6.0671863555908203 -5.8594779968261719 -4.7694997787475586 -7.5688099861145020 -4.6087808609008789 -5.8377895355224609 -5.4457163810729980 -4.9599366188049316 -6.3575158119201660 -7.9428920745849609 -5.3426423072814941 -5.2784481048583984 -5.6800107955932617 -6.2790446281433105 -5.1556487083435059 -4.9930706024169922 -5.9817972183227539 -5.5018062591552734 -4.7514033317565918 -5.9659848213195801 -6.1416754722595215 -5.9763607978820801 -4.7448263168334961 -4.7135639190673828 -5.2204604148864746 -4.5880522727966309 -5.9484624862670898 -4.8059358596801758 -4.9272747039794922 -5.4750680923461914 -4.9742259979248047 -5.9788770675659180 -4.6746063232421875 -5.6732873916625977 -5.8755288124084473 -4.8866057395935059 -5.0102782249450684 -5.3021478652954102 -5.1954669952392578 -6.1839194297790527 -4.8817882537841797 -5.5221252441406250 -4.7670731544494629 -4.6331515312194824 -5.4958105087280273 -4.8194980621337891 -7.6663050651550293 -4.8101692199707031 -4.7673993110656738 -6.0452566146850586 -5.2892851829528809 -6.3931541442871094 -4.8405756950378418 -7.7322649955749512 -5.9233155250549316 -8.9274673461914062 -4.6292705535888672 -4.9854850769042969 -5.7322392463684082 -6.0180912017822266 -5.1229681968688965 -5.3354024887084961 -0.3969305157661438 -5.1903581619262695 -4.6327013969421387 -5.4923710823059082 -9.0790224075317383 -5.8874702453613281 -4.5563039779663086 -4.6806797981262207 -7.6166868209838867 -4.8504180908203125 -6.8425879478454590 -4.9170517921447754 -5.0266299247741699 -5.2736301422119141 -5.1338214874267578 -5.1888780593872070 -6.2179055213928223 -4.5783028602600098 -7.0431399345397949 -5.3264164924621582 -7.2064881324768066 -4.9434347152709961 -4.6948342323303223 -4.6127452850341797 -4.7445249557495117 -4.7677702903747559 -4.6286983489990234 -4.7236857414245605 -5.3209166526794434 -6.9301061630249023 -6.7281913757324219 -5.1331896781921387 -5.2096395492553711 -5.7504954338073730 -6.7452573776245117 -4.5871739387512207 -5.8145236968994141 -5.2516775131225586 -5.7235388755798340 -5.2316226959228516 -6.7202882766723633 -6.8791027069091797 -6.0095767974853516 -4.7116885185241699 -5.1976089477539062 -4.6517891883850098 -5.7202463150024414 -5.7406516075134277 -5.6312022209167480 -4.7706212997436523 -4.8397316932678223 -5.5189838409423828 -4.5857629776000977 -4.6024441719055176 -7.7578010559082031 -4.6732392311096191 -8.8545846939086914 -4.7917933464050293 -5.5321702957153320 -4.9384627342224121 -4.8680033683776855 -6.7679305076599121 -5.1050190925598145 -7.0361623764038086 -6.4196844100952148 -0.4254818558692932 -5.4532637596130371 -5.7095417976379395 -5.0053968429565430 -5.5161247253417969 -4.8340659141540527 -5.4170408248901367 -4.6945385932922363 -6.1335496902465820 -4.6340694427490234 -6.0547122955322266 -4.6171402931213379 -5.0859813690185547 -5.0576491355895996 -4.6653075218200684 -4.9561071395874023 -4.8302497863769531 -7.6355786323547363 -5.6923642158508301 -5.6002292633056641 -5.2752041816711426 -5.2741217613220215 -4.9217481613159180 -7.0033764839172363 -5.4585413932800293 -6.6445660591125488 -7.9869379997253418 -7.2849063873291016 -5.0609941482543945 -4.9764089584350586 -5.3982005119323730 -5.9649662971496582 -4.6843137741088867 -5.6394867897033691 -7.1169447898864746 -4.9873151779174805 -6.9653925895690918 -5.6885247230529785 -6.5521054267883301 -4.9082717895507812 -4.5813488960266113 -5.3846721649169922 -5.8236236572265625 -4.9713392257690430 -4.8112063407897949 -6.0765643119812012 -4.8033366203308105 -4.5871429443359375 -6.4195647239685059 -4.9646797180175781 -6.2538928985595703 -7.0804181098937988 -5.4137039184570312 -5.3533883094787598 -4.5672526359558105 -5.1635165214538574 -4.9481825828552246 -4.9722318649291992 -4.7510614395141602 -4.7317705154418945 -5.8516559600830078 -6.1993412971496582 -5.2099280357360840 -5.4476304054260254 -4.7594342231750488 -0.3913832306861877 -5.7925796508789062 -5.0642066001892090 -4.5578103065490723 -5.9154334068298340 -5.6516261100769043 -6.2008037567138672 -4.9055848121643066 -4.6233768463134766 -6.7477793693542480 -5.1046819686889648 -4.9249577522277832 -5.8238439559936523 -4.7591691017150879 -4.7319903373718262 -6.1791253089904785 -5.2644100189208984 -4.5756826400756836 -6.0627961158752441 -5.5460076332092285 -4.7201008796691895 -5.2450385093688965 -5.7784295082092285 -4.5639395713806152 -5.1871685981750488 -7.1014943122863770 -6.4170918464660645 -4.9326682090759277 -5.7102746963500977 -5.3452839851379395 -5.6262440681457520 -4.6001973152160645 -7.5509834289550781 -7.5641713142395020 -5.1183705329895020 -4.7203803062438965 -4.7665581703186035 -4.7715206146240234 -6.7393608093261719 -8.5506134033203125 -4.6110548973083496 -5.0349092483520508 -4.5849366188049316 -5.9991488456726074 -5.8085727691650391 -6.1518502235412598 -4.8218507766723633 -5.0717391967773438 -5.7668490409851074 -4.6067161560058594 -5.2581553459167480 -8.6517419815063477 -4.5684170722961426 -5.5423359870910645 -7.5644493103027344 -4.9811654090881348 -5.5513825416564941 -6.7176413536071777 -5.2166175842285156 -8.6840572357177734 -4.8237633705139160 -5.2924604415893555 -4.7295308113098145 -4.6825051307678223 -5.5757975578308105 -0.3988853096961975 -8.0508842468261719 -4.8294196128845215 -4.7606811523437500 -4.8372216224670410 -9.5709638595581055 -5.8324675559997559 -5.3892722129821777 -5.1811280250549316 -5.0414724349975586 -5.1379089355468750 -5.5580735206604004 -4.6936821937561035 -5.0588116645812988 -6.1902680397033691 -4.7223682403564453 -6.1601805686950684 -4.7193198204040527 -6.7275476455688477 -7.6931581497192383 -4.8661413192749023 -4.9154562950134277 -4.9846472740173340 -5.7228474617004395 -4.6316156387329102 -6.1036353111267090 -7.6474080085754395 -5.2389478683471680 -4.8089103698730469 -4.6357774734497070 -7.2309265136718750 -5.2227988243103027 -5.0628089904785156 -5.8868680000305176 -5.5389447212219238 -5.5614972114562988 -6.2215671539306641 -7.5249714851379395 -4.5957355499267578 -5.5325455665588379 -5.6545906066894531 -5.0725235939025879 -5.1901416778564453 -5.8739080429077148 -4.8476052284240723 -5.8820095062255859 -6.2498269081115723 -4.6975221633911133 -7.4587111473083496 -6.3121852874755859 -6.0797176361083984 -5.8343596458435059 -4.6806797981262207 -8.9927034378051758 -6.0780372619628906 -5.1360197067260742 -7.0424642562866211 -4.6161894798278809 -5.2741999626159668 -5.6504693031311035 -5.5736002922058105 -7.6381530761718750 -5.3749704360961914 -5.7781000137329102 -6.5754218101501465 -0.3656352460384369 -4.5619382858276367 -6.4262971878051758 -7.1495180130004883 -4.5889267921447754 -5.0015010833740234 -5.1860737800598145 -5.2110552787780762 -4.8021507263183594 -5.1333169937133789 -5.3472199440002441 -4.6830959320068359 -4.6704816818237305 -5.4245333671569824 -5.0273566246032715 -4.8311247825622559 -4.6849713325500488 -4.6687674522399902 -7.2429571151733398 -5.0228085517883301 -5.6039934158325195 -5.3123745918273926 -6.3988451957702637 -4.9218668937683105 -4.6562542915344238 -5.3822007179260254 -5.9609394073486328 -5.7112231254577637 -6.3349723815917969 -5.1815443038940430 -6.9358491897583008 -7.4552483558654785 -5.0413689613342285 -5.4654645919799805 -5.2261133193969727 -4.8438372611999512 -5.0792384147644043 -6.2513928413391113 -4.6305208206176758 -4.9670696258544922 -5.4011640548706055 -5.4900527000427246 -4.9121313095092773 -5.1027483940124512 -7.2399692535400391 -5.2137432098388672 -5.2409090995788574 -7.1109633445739746 -4.8017296791076660 -5.6950759887695312 -4.7902755737304688 -5.4069938659667969 -4.8927078247070312 -5.0365443229675293 -5.2531995773315430 -4.5848264694213867 -5.0831437110900879 -5.4428415298461914 -6.7663531303405762 -6.5636777877807617 -6.0696935653686523 -6.8773341178894043 -6.3993010520935059 -6.4875082969665527 -4.6639571189880371 -0.3973765075206757 -5.3470921516418457 -4.7003798484802246 -5.6393761634826660 -5.1115145683288574 -4.7078614234924316 -4.5883307456970215 -4.9376430511474609 -6.2784247398376465 -4.6098966598510742 -5.5543937683105469 -4.8672971725463867 -5.3281879425048828 -5.5458145141601562 -4.6490974426269531 -4.9324026107788086 -4.9920954704284668 -6.0215563774108887 -4.7673616409301758 -6.0690817832946777 -4.6657752990722656 -4.8784513473510742 -4.8984727859497070 -6.4601759910583496 -6.5925469398498535 -5.4959411621093750 -4.6298294067382812 -6.4420518875122070 -5.2949872016906738 -4.7080712318420410 -4.7673497200012207 -5.2075843811035156 -5.2402548789978027 -4.5811948776245117 -5.7022972106933594 -10.3035478591918945 -5.8609695434570312 -6.2288522720336914 -7.9884123802185059 -6.0814480781555176 -6.7986788749694824 -4.8863067626953125 -6.3284516334533691 -6.9125185012817383 -4.7037801742553711 -4.6406126022338867 -5.0216164588928223 -5.5593800544738770 -5.0338468551635742 -5.1822953224182129 -5.5949945449829102 -5.5907235145568848 -4.6748619079589844 -5.6337251663208008 -6.0540108680725098 -5.8137660026550293 -8.2060136795043945 -4.6737322807312012 -5.6328520774841309 -5.3591332435607910 -4.9901118278503418 -4.9507412910461426 -6.2326865196228027 -7.0032649040222168 -4.5990476608276367 -0.3745321929454803 -5.1586422920227051 -5.3483147621154785 -5.3269009590148926 -4.9820308685302734 -5.1333665847778320 -7.5949425697326660 -5.3307228088378906 -5.6792306900024414 -4.7028303146362305 -5.9113793373107910 -5.0531673431396484 -6.5656933784484863 -5.0362095832824707 -4.7069435119628906 -6.6599264144897461 -4.9326357841491699 -6.1675910949707031 -4.7934389114379883 -4.7044486999511719 -5.9534702301025391 -5.2209773063659668 -5.2724533081054688 -4.8019642829895020 -5.2732324600219727 -5.0691723823547363 -4.6093106269836426 -5.0536341667175293 -5.5587539672851562 -4.9453234672546387 -6.4427080154418945 -5.3833317756652832 -5.4137983322143555 -5.4434905052185059 -4.7195558547973633 -5.2808609008789062 -5.0549907684326172 -6.1762704849243164 -5.6108369827270508 -5.1302309036254883 -5.1275510787963867 -5.7659840583801270 -4.9324178695678711 -4.6141610145568848 -5.9354524612426758 -4.7473125457763672 -4.6240291595458984 -4.9649534225463867 -4.8899044990539551 -4.6532940864562988 -4.7172684669494629 -4.7277579307556152 -5.9800677299499512 -4.7629108428955078 -5.3622059822082520 -4.9661917686462402 -6.1953611373901367 -5.5487875938415527 -6.8627309799194336 -5.7644810676574707 -6.1319932937622070 -5.7988791465759277 -4.6322307586669922 -5.6454195976257324 -5.7087817192077637 -0.4260166883468628 -6.0008459091186523 -5.4371080398559570 -5.0357041358947754 -6.2187418937683105 -4.6007304191589355 -4.9726228713989258 -5.2124738693237305 -4.8734622001647949 -4.9263582229614258 -6.7058515548706055 -5.1618738174438477 -5.6649279594421387 -5.2830743789672852 -5.9333901405334473 -6.6083278656005859 -5.3268709182739258 -7.2558040618896484 -6.7518215179443359 -5.2218461036682129 -4.5632643699645996 -4.6148505210876465 -5.4437141418457031 -5.1068224906921387 -4.7160944938659668 -8.6128063201904297 -7.7703037261962891 -4.6741209030151367 -5.1410603523254395 -7.2008156776428223 -4.5627307891845703 -4.8035073280334473 -4.6922602653503418 -6.4323492050170898 -5.5421152114868164 -6.0031523704528809 -5.1549267768859863 -4.6076335906982422 -4.8914480209350586 -5.2606573104858398 -6.1164999008178711 -4.8590636253356934 -6.3830070495605469 -6.4336695671081543 -5.6186647415161133 -5.3944931030273438 -6.1891045570373535 -5.1834321022033691 -4.5724077224731445 -6.0899076461791992 -8.1118841171264648 -4.6414713859558105 -4.5295143127441406 -6.1454601287841797 -5.4055104255676270 -10.9577198028564453 -5.0086717605590820 -4.5396628379821777 -5.7624793052673340 -6.5528159141540527 -4.8869462013244629 -4.5938158035278320 -5.7563138008117676 -4.7128729820251465 -4.6963901519775391 -0.3688896894454956 -6.2514348030090332 -7.0605196952819824 -6.3840212821960449 -6.0202665328979492 -5.1688575744628906 -6.1246924400329590 -5.5156173706054688 -7.8428182601928711 -5.0357851982116699 -5.4632873535156250 -5.6080880165100098 -4.7805213928222656 -5.5526046752929688 -4.6396522521972656 -5.2839112281799316 -4.9834256172180176 -4.9838218688964844 -5.0528063774108887 -5.5357708930969238 -4.5880093574523926 -6.1641221046447754 -5.1171598434448242 -7.3042731285095215 -6.1672444343566895 -5.0200452804565430 -6.2831621170043945 -4.6649780273437500 -4.8947291374206543 -5.1021151542663574 -4.9142894744873047 -5.6801810264587402 -4.5891327857971191 -5.4788169860839844 -5.1298851966857910 -6.4418430328369141 -4.8665733337402344 -6.8570704460144043 -5.5953221321105957 -5.5242576599121094 -4.7528986930847168 -5.7105970382690430 -4.9305562973022461 -5.7446041107177734 -5.5824723243713379 -5.4305157661437988 -5.5070514678955078 -4.9220046997070312 -4.7638587951660156 -5.6587095260620117 -5.2660169601440430 -5.2233767509460449 -5.9706578254699707 -5.4069576263427734 -5.3665137290954590 -6.9814529418945312 -5.8261961936950684 -4.9514250755310059 -5.0943942070007324 -4.9089226722717285 -4.8013367652893066 -4.9358634948730469 -4.8865165710449219 -5.2531213760375977 -5.8753867149353027 -0.3945233523845673 -5.5440478324890137 -5.0028691291809082 -7.2413172721862793 -4.9492020606994629 -5.4060287475585938 -5.2745103836059570 -4.5642476081848145 -5.6274557113647461 -5.3892049789428711 -5.9051990509033203 -7.0501103401184082 -4.8506937026977539 -4.8450212478637695 -4.9761357307434082 -4.7779479026794434 -4.6199760437011719 -4.6725764274597168 -6.6696662902832031 -4.6375675201416016 -4.7550411224365234 -4.8004112243652344 -4.7349572181701660 -6.4702396392822266 -4.8331613540649414 -4.9626350402832031 -6.0092101097106934 -4.6353840827941895 -5.1913890838623047 -8.6114606857299805 -5.8826932907104492 -7.2721018791198730 -5.9593052864074707 -6.3607454299926758 -5.3194260597229004 -4.7075586318969727 -4.8656015396118164 -5.2210941314697266 -6.4540967941284180 -5.7066645622253418 -4.6665868759155273 -5.9333143234252930 -4.7262082099914551 -5.1681156158447266 -5.1266827583312988 -10.4323053359985352 -5.6861324310302734 -5.9418587684631348 -4.8252348899841309 -6.3192219734191895 -5.7633304595947266 -4.8120832443237305 -4.7170658111572266 -4.8799657821655273 -4.6325240135192871 -4.9987187385559082 -4.9032206535339355 -8.4181318283081055 -6.5562372207641602 -6.4225707054138184 -6.2904839515686035 -6.0474052429199219 -4.6269559860229492 -4.5938372611999512 -7.0182728767395020 -0.4209654629230499 -6.0985355377197266 -4.6422491073608398 -4.7752127647399902 -4.8208060264587402 -4.8361139297485352 -4.8190517425537109 -5.9367046356201172 -6.6230354309082031 -5.5594921112060547 -6.1830997467041016 -5.2564277648925781 -5.0323653221130371 -6.3312249183654785 -4.7427773475646973 -6.0552134513854980 -5.6168365478515625 -4.7886161804199219 -4.6581759452819824 -7.0158529281616211 -5.5317988395690918 -5.6973824501037598 -4.7880144119262695 -4.5304870605468750 -4.5742845535278320 -4.7097964286804199 -4.6309504508972168 -5.8916449546813965 -6.5641260147094727 -6.8204655647277832 -5.1721162796020508 -6.5005321502685547 -4.8185143470764160 -7.6019225120544434 -5.9344501495361328 -5.1113271713256836 -5.6047143936157227 -5.9792914390563965 -5.4744696617126465 -8.0558223724365234 -6.0106334686279297 -5.8746204376220703 -7.2076935768127441 -5.4190192222595215 -6.7034087181091309 -6.6730856895446777 -4.8744916915893555 -5.4367160797119141 -4.8814935684204102 -4.8039164543151855 -6.5768074989318848 -9.0399160385131836 -5.0418243408203125 -5.5353269577026367 -4.5513730049133301 -5.8586831092834473 -4.8357148170471191 -5.2516698837280273 -5.9629678726196289 -5.5381584167480469 -5.8047361373901367 -5.5896105766296387 -5.3492550849914551 -5.1186718940734863 -5.0457072257995605 -0.3586586117744446 -4.9239101409912109 -4.7290005683898926 -5.5568761825561523 -6.2173352241516113 -5.0560302734375000 -6.5087895393371582 -4.6815562248229980 -4.6502552032470703 -8.1435804367065430 -4.9993944168090820 -6.2094502449035645 -6.2502002716064453 -6.1838440895080566 -5.3081455230712891 -5.0359239578247070 -5.6557893753051758 -4.6315245628356934 -5.5902566909790039 -5.2648711204528809 -4.6793246269226074 -5.6234908103942871 -5.1375303268432617 -7.1589741706848145 -6.0652341842651367 -5.2467565536499023 -7.0309572219848633 -5.3850231170654297 -4.7092914581298828 -5.1584553718566895 -4.6980528831481934 -5.5436010360717773 -5.1507549285888672 -4.5916690826416016 -5.5183691978454590 -4.7544097900390625 -5.9143972396850586 -6.4985065460205078 -4.6792192459106445 -5.2232322692871094 -5.2995972633361816 -5.4574608802795410 -5.3540892601013184 -5.8960399627685547 -6.3633332252502441 -7.9481859207153320 -5.3160662651062012 -5.1526193618774414 -5.1092061996459961 -4.5573348999023438 -6.2927765846252441 -5.9366779327392578 -4.8846726417541504 -5.8136100769042969 -4.6436710357666016 -5.3298554420471191 -4.6463913917541504 -4.9384303092956543 -5.3027315139770508 -5.0193185806274414 -5.7594985961914062 -4.9981689453125000 -5.0832796096801758 -4.6034326553344727 -4.9524650573730469 -0.3811038434505463 -6.5028414726257324 -6.8414936065673828 -5.4517459869384766 -6.4952087402343750 -6.0623106956481934 -6.3093066215515137 -4.7120494842529297 -5.4863538742065430 -4.8030352592468262 -5.7743306159973145 -5.8960342407226562 -6.7378745079040527 -5.4437346458435059 -5.0737371444702148 -5.2513542175292969 -4.6804151535034180 -4.6300482749938965 -6.0305643081665039 -5.6836271286010742 -5.0328469276428223 -5.7625246047973633 -5.2900838851928711 -4.7601633071899414 -4.8973178863525391 -6.0463304519653320 -6.4479823112487793 -6.1771516799926758 -4.8969569206237793 -5.7661094665527344 -4.5627226829528809 -5.1981763839721680 -4.6152877807617188 -5.7871932983398438 -5.8267445564270020 -5.6771178245544434 -6.8476862907409668 -6.4446492195129395 -6.0352129936218262 -4.8592615127563477 -5.2483859062194824 -5.1893167495727539 -7.4191961288452148 -4.6668748855590820 -4.6364412307739258 -5.1776661872863770 -5.4843635559082031 -4.7044796943664551 -5.3508038520812988 -4.5519590377807617 -4.6402254104614258 -4.6806025505065918 -4.9464130401611328 -5.5236377716064453 -5.2791328430175781 -4.6584920883178711 -4.8965892791748047 -7.0321369171142578 -6.2233023643493652 -4.9620370864868164 -5.6976647377014160 -5.5011353492736816 -6.9448494911193848 -6.2897782325744629 -5.7694640159606934 -0.3897401988506317 -8.2550401687622070 -6.3637270927429199 -5.4302368164062500 -6.7405710220336914 -4.7488622665405273 -4.5750617980957031 -5.3172554969787598 -5.3186807632446289 -5.0144343376159668 -5.9959664344787598 -4.9261326789855957 -6.0876336097717285 -5.0675144195556641 -4.9638457298278809 -5.3231329917907715 -6.8668041229248047 -4.8572182655334473 -5.3917903900146484 -4.7673797607421875 -4.6820530891418457 -6.3190889358520508 -5.3746104240417480 -4.6037845611572266 -7.3020262718200684 -5.2827062606811523 -5.3109869956970215 -4.7038459777832031 -5.9240202903747559 -4.5538272857666016 -5.8786654472351074 -5.1683454513549805 -6.1401538848876953 -6.9068274497985840 -6.4475593566894531 -4.6245565414428711 -5.3067631721496582 -7.3882465362548828 -6.4808077812194824 -4.9517855644226074 -5.3230624198913574 -6.1925444602966309 -4.9170155525207520 -8.2038917541503906 -4.7388763427734375 -6.1787772178649902 -5.3928775787353516 -4.5981988906860352 -5.0924863815307617 -5.4214019775390625 -6.0008463859558105 -5.3390269279479980 -4.6413831710815430 -7.0995779037475586 -5.6584377288818359 -4.9761123657226562 -6.5770778656005859 -4.9917531013488770 -5.0442357063293457 -5.3012075424194336 -5.5253829956054688 -5.3010239601135254 -5.6446642875671387 -4.6619982719421387 -4.6625537872314453 -0.3918080627918243 -4.9128589630126953 -4.5858078002929688 -6.6040463447570801 -5.5730628967285156 -6.2249794006347656 -4.5709133148193359 -4.5503234863281250 -4.8222231864929199 -5.5324854850769043 -4.9782552719116211 -6.2571945190429688 -5.9607644081115723 -5.1587157249450684 -4.6624574661254883 -4.8184890747070312 -5.0730514526367188 -5.6548409461975098 -4.8896627426147461 -4.7902612686157227 -6.2974500656127930 -6.5313591957092285 -7.8844804763793945 -4.8550791740417480 -5.0465240478515625 -5.3507270812988281 -4.8752684593200684 -4.8330602645874023 -5.7677602767944336 -4.6790380477905273 -5.3334097862243652 -5.9298405647277832 -7.1006965637207031 -5.1039824485778809 -6.8301930427551270 -5.8567299842834473 -4.8961920738220215 -5.1472868919372559 -5.0231738090515137 -5.5234441757202148 -4.7734313011169434 -4.8849205970764160 -4.5877060890197754 -5.0142922401428223 -5.0054788589477539 -7.2341780662536621 -4.6180191040039062 -5.9389605522155762 -5.7191214561462402 -6.7468919754028320 -5.4967050552368164 -9.4713563919067383 -5.3476119041442871 -5.9209327697753906 -4.6659078598022461 -5.3697347640991211 -6.0433511734008789 -6.9831299781799316 -5.8553109169006348 -6.6211986541748047 -5.2854843139648438 -6.7053246498107910 -4.5642910003662109 -5.4953355789184570 -5.1057081222534180 -0.3899135887622833 -4.7096829414367676 -5.0334687232971191 -4.6395788192749023 -6.3016271591186523 -5.8316097259521484 -6.3287258148193359 -6.1511368751525879 -6.5555725097656250 -4.8042149543762207 -4.8978581428527832 -4.7944273948669434 -6.8770875930786133 -5.1616511344909668 -8.0520658493041992 -4.8156285285949707 -5.5537343025207520 -4.9972815513610840 -8.8825283050537109 -7.1091542243957520 -5.4015769958496094 -5.2960987091064453 -5.0532879829406738 -5.3035893440246582 -4.8760762214660645 -4.9068021774291992 -4.9782547950744629 -5.4072089195251465 -4.6049628257751465 -5.7524371147155762 -5.1782875061035156 -4.8882193565368652 -9.0267887115478516 -5.6808342933654785 -4.9098930358886719 -6.2114295959472656 -4.6384396553039551 -5.1563200950622559 -4.8504438400268555 -4.6321129798889160 -5.0391364097595215 -5.0779476165771484 -8.7940654754638672 -4.8221578598022461 -4.9722814559936523 -5.4069838523864746 -4.6238436698913574 -4.6187887191772461 -5.5635323524475098 -5.3346028327941895 -7.3890542984008789 -7.0425615310668945 -4.6598997116088867 -6.2836775779724121 -4.8295125961303711 -4.6341276168823242 -5.5153927803039551 -4.7207531929016113 -5.5819945335388184 -5.4074234962463379 -5.7530360221862793 -6.2729821205139160 -5.1757230758666992 -7.7160310745239258 -4.7107739448547363 -0.3867928683757782 -6.1978383064270020 -5.2284760475158691 -6.0022249221801758 -5.8785152435302734 -5.2969470024108887 -4.6523714065551758 -5.3415460586547852 -4.6749801635742188 -5.9055409431457520 -4.6054015159606934 -5.6308588981628418 -6.7753529548645020 -4.5975775718688965 -5.9568305015563965 -4.9074144363403320 -4.8336858749389648 -4.8752107620239258 -5.0537438392639160 -5.2315320968627930 -5.0077757835388184 -4.9210758209228516 -5.8442821502685547 -5.6870584487915039 -4.7386751174926758 -5.4956932067871094 -4.8285017013549805 -4.6356458663940430 -5.1107835769653320 -4.8241209983825684 -4.7177772521972656 -4.9094800949096680 -4.9908280372619629 -5.4998011589050293 -5.8046960830688477 -5.4673399925231934 -5.7773284912109375 -5.6310200691223145 -5.0168771743774414 -5.3252453804016113 -6.2598538398742676 -6.1076617240905762 -4.6667017936706543 -4.7922091484069824 -6.2675027847290039 -5.9537239074707031 -7.9930381774902344 -6.2409477233886719 -4.8716192245483398 -5.6398506164550781 -4.8846631050109863 -5.2351155281066895 -4.8291039466857910 -5.7447175979614258 -4.6459417343139648 -5.6830077171325684 -5.8957171440124512 -4.7810621261596680 -5.1044330596923828 -5.3322973251342773 -5.5360541343688965 -5.0337986946105957 -4.6187505722045898 -4.6843461990356445 -7.8918428421020508 -0.4359594583511353 -5.2252535820007324 -8.6512603759765625 -4.8360571861267090 -4.7815995216369629 -5.6104102134704590 -5.0695662498474121 -5.0080037117004395 -8.4406652450561523 -4.9465270042419434 -4.6018896102905273 -4.9842367172241211 -4.6891942024230957 -6.4118628501892090 -8.3909893035888672 -5.3604607582092285 -6.4040770530700684 -5.0508060455322266 -4.7209916114807129 -5.4056587219238281 -4.5697307586669922 -4.6819801330566406 -6.4722995758056641 -4.8094840049743652 -4.6194481849670410 -7.9661059379577637 -5.4065132141113281 -6.6671247482299805 -5.8659229278564453 -5.0042166709899902 -5.3831615447998047 -6.1982965469360352 -5.5064258575439453 -5.0388474464416504 -5.7248387336730957 -5.4785456657409668 -4.9803829193115234 -5.3390011787414551 -4.6954131126403809 -5.6814627647399902 -5.5315060615539551 -4.8358216285705566 -4.9544773101806641 -6.8254919052124023 -4.9661893844604492 -4.7435746192932129 -4.6094708442687988 -5.1381173133850098 -5.1429347991943359 -5.1114120483398438 -4.9728627204895020 -5.0585293769836426 -5.1877522468566895 -5.7660031318664551 -5.2768921852111816 -4.8240141868591309 -7.3878693580627441 -5.0383267402648926 -5.2459344863891602 -7.0473980903625488 -5.6707444190979004 -6.3477129936218262 -4.6152534484863281 -5.9476208686828613 -7.0556697845458984 -0.4009276926517487 -7.7840886116027832 -4.6625423431396484 -6.0817055702209473 -5.6143383979797363 -6.8711872100830078 -6.0860185623168945 -4.8754425048828125 -5.8324165344238281 -7.4900555610656738 -7.3868403434753418 -4.9605760574340820 -8.0406494140625000 -4.9401841163635254 -4.6076316833496094 -4.9128351211547852 -7.1930108070373535 -6.4206762313842773 -4.5988407135009766 -5.0613503456115723 -6.7032046318054199 -4.8433370590209961 -4.7710156440734863 -5.3091087341308594 -4.6193928718566895 -6.6301259994506836 -4.7415666580200195 -4.8004040718078613 -4.8029742240905762 -5.2167620658874512 -4.6166543960571289 -6.6068310737609863 -7.1773214340209961 -5.9636187553405762 -6.5252289772033691 -6.2356429100036621 -5.3663020133972168 -5.1701574325561523 -5.8137259483337402 -5.3627748489379883 -5.5214581489562988 -5.4943022727966309 -6.6178417205810547 -5.2266521453857422 -5.5522274971008301 -6.9311046600341797 -5.2506594657897949 -4.8580031394958496 -5.0968112945556641 -4.9692559242248535 -6.8099713325500488 -4.6713824272155762 -9.8889598846435547 -5.3809709548950195 -4.9220242500305176 -5.5535798072814941 -4.5650973320007324 -4.8759841918945312 -5.5530877113342285 -5.0614857673645020 -4.8468790054321289 -4.6339755058288574 -5.1369376182556152 -5.3949379920959473 -4.5490226745605469 -0.3818646371364594 -5.0061483383178711 -5.2174839973449707 -6.4178686141967773 -5.4841923713684082 -5.0625171661376953 -6.0448727607727051 -4.8361473083496094 -4.9979386329650879 -4.8143286705017090 -6.7336859703063965 -6.1533932685852051 -5.5725388526916504 -5.0077247619628906 -5.1845340728759766 -6.5212221145629883 -5.6232886314392090 -4.6389122009277344 -4.6112799644470215 -4.7291746139526367 -5.3037085533142090 -5.4645562171936035 -4.9016232490539551 -7.0852627754211426 -4.9845666885375977 -6.0345969200134277 -4.6450619697570801 -4.6969656944274902 -4.9771456718444824 -4.5635914802551270 -4.8108129501342773 -5.7861499786376953 -5.1005082130432129 -7.9606409072875977 -6.4152688980102539 -6.5683703422546387 -5.5603413581848145 -4.5775947570800781 -6.9163241386413574 -5.8281412124633789 -7.2755374908447266 -5.7520542144775391 -6.6228175163269043 -5.6683268547058105 -6.7382178306579590 -4.7890429496765137 -5.2458686828613281 -4.6365513801574707 -5.0956683158874512 -4.7979278564453125 -6.3932781219482422 -4.7214484214782715 -5.1504788398742676 -6.7936272621154785 -5.3608722686767578 -4.7233386039733887 -5.7618694305419922 -4.9348702430725098 -4.8199691772460938 -4.6573309898376465 -6.1949720382690430 -4.8810553550720215 -5.2442941665649414 -5.6518607139587402 -5.1677517890930176 -0.3970996737480164 -%% -0.4172363877296448 -4.9350113868713379 -4.7725162506103516 -5.1860518455505371 -5.3515377044677734 -6.1930727958679199 -5.8339300155639648 -5.0268068313598633 -5.2298269271850586 -4.9189176559448242 -5.1026463508605957 -5.0528607368469238 -5.2068052291870117 -4.8958697319030762 -4.5967063903808594 -4.6614403724670410 -5.5465230941772461 -5.1797933578491211 -4.6257534027099609 -4.7040357589721680 -5.0379290580749512 -5.4123191833496094 -5.2523779869079590 -4.6190180778503418 -5.5017766952514648 -4.7223701477050781 -5.9833168983459473 -4.9890379905700684 -6.1040306091308594 -6.7230134010314941 -4.6095046997070312 -4.9592657089233398 -4.8282165527343750 -5.9893932342529297 -6.2079310417175293 -5.3429899215698242 -5.1833047866821289 -4.6723790168762207 -5.3169898986816406 -4.7966456413269043 -5.0113353729248047 -4.7195301055908203 -5.2253413200378418 -6.3260717391967773 -5.7887330055236816 -5.2311820983886719 -6.3452777862548828 -8.6547718048095703 -4.7714529037475586 -6.5164518356323242 -6.4971141815185547 -5.0692806243896484 -7.8510880470275879 -5.9160370826721191 -5.5961408615112305 -6.0954198837280273 -4.7535524368286133 -4.5813822746276855 -7.9057230949401855 -6.6084856986999512 -4.6501822471618652 -4.6321020126342773 -5.8261547088623047 -7.2408814430236816 -6.9691505432128906 -0.3556748628616333 -4.9805612564086914 -5.1026024818420410 -7.4280195236206055 -5.8474755287170410 -5.0063004493713379 -6.9101848602294922 -6.4771947860717773 -6.3095541000366211 -5.0624823570251465 -5.2053847312927246 -5.3091812133789062 -6.7209315299987793 -5.7167406082153320 -6.4717202186584473 -4.7590560913085938 -6.8214006423950195 -6.9060263633728027 -5.8512773513793945 -7.3023681640625000 -4.9697966575622559 -5.2459416389465332 -4.9048876762390137 -4.7072992324829102 -4.5400500297546387 -4.9986624717712402 -5.9875764846801758 -5.1374440193176270 -5.4286332130432129 -4.6965904235839844 -5.0296173095703125 -6.0069208145141602 -5.4761881828308105 -6.2382969856262207 -7.0953445434570312 -5.2290539741516113 -5.6609225273132324 -4.6857709884643555 -6.0867171287536621 -4.9162607192993164 -5.3065209388732910 -4.5626296997070312 -4.9924030303955078 -4.8409733772277832 -5.2722415924072266 -6.0358433723449707 -4.8332548141479492 -7.4415917396545410 -4.8693342208862305 -4.8216595649719238 -5.9098110198974609 -4.8534207344055176 -5.1565213203430176 -6.6956100463867188 -6.2425169944763184 -4.9594993591308594 -4.6537127494812012 -9.2467441558837891 -4.6901082992553711 -6.2559866905212402 -6.0301475524902344 -5.5289969444274902 -4.9921875000000000 -4.7146162986755371 -5.2058706283569336 -0.4521527290344238 -5.1073417663574219 -5.6384272575378418 -4.7234454154968262 -5.5318880081176758 -4.8559417724609375 -4.9568195343017578 -6.3490729331970215 -4.7934064865112305 -5.3097405433654785 -6.1523637771606445 -5.1119885444641113 -6.8740301132202148 -4.9492673873901367 -4.6971521377563477 -4.7622790336608887 -7.7017984390258789 -5.0585842132568359 -5.4204039573669434 -5.1408605575561523 -4.8050742149353027 -4.7234520912170410 -5.5303235054016113 -4.9418516159057617 -4.7859129905700684 -5.7417387962341309 -4.9011464118957520 -5.6031517982482910 -4.7648649215698242 -4.9169893264770508 -5.8627562522888184 -5.4512410163879395 -8.1001977920532227 -5.6403007507324219 -4.6794943809509277 -5.7699794769287109 -4.8296475410461426 -5.0819869041442871 -8.7920417785644531 -4.7530975341796875 -5.9825577735900879 -4.7434687614440918 -4.9030256271362305 -4.6766247749328613 -6.4574117660522461 -4.9076857566833496 -5.6946558952331543 -5.5132174491882324 -5.7428460121154785 -5.0505490303039551 -4.6262021064758301 -6.1224222183227539 -4.9240536689758301 -5.0405011177062988 -4.9163651466369629 -4.7670297622680664 -5.3317995071411133 -5.0689921379089355 -6.0388293266296387 -4.6243138313293457 -4.6527614593505859 -5.3799443244934082 -6.0345120429992676 -5.0973844528198242 -6.8390212059020996 -0.3688806593418121 -4.6654124259948730 -6.6786069869995117 -5.6026682853698730 -5.9616322517395020 -4.7752733230590820 -5.1428637504577637 -5.7246899604797363 -7.2101082801818848 -4.5942449569702148 -5.7830815315246582 -5.5839886665344238 -7.2935595512390137 -4.6743631362915039 -6.1750798225402832 -6.4746232032775879 -5.8546414375305176 -5.7885107994079590 -4.5987777709960938 -4.8963398933410645 -5.2315263748168945 -5.6279168128967285 -5.6923441886901855 -4.8292865753173828 -5.7831358909606934 -5.9927768707275391 -6.0842795372009277 -5.1307826042175293 -5.1235880851745605 -6.1332783699035645 -4.6985921859741211 -5.0996756553649902 -4.5502595901489258 -4.8915648460388184 -5.3837852478027344 -4.5747623443603516 -5.9225358963012695 -4.9555478096008301 -6.2200651168823242 -4.8686304092407227 -8.0143337249755859 -5.2307658195495605 -5.7124471664428711 -5.8552494049072266 -4.9813346862792969 -4.6623072624206543 -5.3525919914245605 -4.6217198371887207 -5.9810047149658203 -7.7751040458679199 -8.3815937042236328 -4.6478233337402344 -7.1693787574768066 -5.9795613288879395 -6.0817708969116211 -4.8683133125305176 -4.7572989463806152 -4.5967049598693848 -5.4939274787902832 -7.4719800949096680 -4.8581690788269043 -5.1081080436706543 -4.6447949409484863 -5.2531809806823730 -5.6324295997619629 -0.3878174722194672 -5.2994999885559082 -5.0233421325683594 -5.7800030708312988 -4.8431873321533203 -5.5956277847290039 -6.3240151405334473 -6.2023768424987793 -6.2819895744323730 -6.3990168571472168 -5.1677746772766113 -5.1468544006347656 -5.8739018440246582 -5.2391662597656250 -5.4502172470092773 -5.7078752517700195 -4.8567128181457520 -5.4965982437133789 -4.9330105781555176 -4.5687780380249023 -5.7959504127502441 -4.5627536773681641 -5.7490835189819336 -6.0289263725280762 -5.3868780136108398 -6.1848983764648438 -6.7804250717163086 -4.8596611022949219 -4.6447968482971191 -7.7119979858398438 -5.7758760452270508 -5.2165665626525879 -5.6873168945312500 -5.0999498367309570 -5.0612196922302246 -10.3300867080688477 -4.6420550346374512 -4.7664685249328613 -4.8183655738830566 -7.5667500495910645 -5.2031612396240234 -4.9280133247375488 -5.0997157096862793 -4.8600754737854004 -5.2099127769470215 -4.9057760238647461 -4.7010216712951660 -6.0057644844055176 -9.6619729995727539 -6.8103575706481934 -4.6325817108154297 -5.8061194419860840 -6.2856416702270508 -4.8794388771057129 -6.1964945793151855 -4.5972447395324707 -5.0315608978271484 -4.9778122901916504 -5.2642359733581543 -5.1459846496582031 -4.6928467750549316 -4.8376421928405762 -4.6201248168945312 -5.9458522796630859 -6.7284746170043945 -0.3733122646808624 -4.8193588256835938 -5.6999859809875488 -5.9774975776672363 -5.4770116806030273 -5.5747065544128418 -7.0394473075866699 -4.7616891860961914 -5.0579142570495605 -6.0466837882995605 -4.6245074272155762 -5.9993176460266113 -5.1367993354797363 -5.5391640663146973 -7.3958292007446289 -5.3869867324829102 -5.6447381973266602 -4.5627799034118652 -5.4898486137390137 -5.9375152587890625 -5.9362068176269531 -4.6744914054870605 -5.4891209602355957 -7.2233610153198242 -8.3634157180786133 -5.4888763427734375 -7.9635009765625000 -5.1590814590454102 -6.0758204460144043 -4.8023934364318848 -5.9122347831726074 -5.3151359558105469 -5.3201642036437988 -4.7321572303771973 -4.8118295669555664 -5.8490905761718750 -6.6940293312072754 -4.6984453201293945 -5.3396525382995605 -4.6727795600891113 -5.1824135780334473 -4.5695495605468750 -5.4412078857421875 -4.8179812431335449 -4.6542897224426270 -7.0659737586975098 -5.5501694679260254 -4.8001480102539062 -5.7280716896057129 -5.6650166511535645 -5.5397963523864746 -5.1237344741821289 -6.1619534492492676 -5.4259209632873535 -6.1975789070129395 -5.7526354789733887 -4.8903589248657227 -4.9226365089416504 -5.5047578811645508 -5.1528244018554688 -6.0716233253479004 -4.8016242980957031 -4.6139006614685059 -4.9788503646850586 -5.4865832328796387 -0.3620363473892212 -5.4035162925720215 -6.0457887649536133 -6.1852655410766602 -4.6600203514099121 -4.5406198501586914 -5.5199780464172363 -6.7059259414672852 -5.2736291885375977 -5.3204870223999023 -6.7445368766784668 -7.7943644523620605 -5.0932030677795410 -6.7275147438049316 -5.7014360427856445 -6.9734759330749512 -6.6961393356323242 -4.6352581977844238 -7.0526914596557617 -6.4711585044860840 -5.7099976539611816 -6.7010583877563477 -6.5039987564086914 -4.9333443641662598 -5.0376472473144531 -4.7773380279541016 -5.7007412910461426 -4.7647285461425781 -5.3616900444030762 -4.7970409393310547 -4.7372899055480957 -4.7116909027099609 -5.2746911048889160 -5.2994227409362793 -6.4129271507263184 -6.3445873260498047 -5.2155194282531738 -5.2946643829345703 -4.6877145767211914 -5.8204245567321777 -7.5706000328063965 -5.0066199302673340 -5.6101155281066895 -5.3456530570983887 -6.2824463844299316 -5.1522092819213867 -6.7518382072448730 -6.0114960670471191 -5.1554160118103027 -4.6778688430786133 -7.2340598106384277 -5.4493126869201660 -4.7186326980590820 -5.1251907348632812 -5.3676872253417969 -4.7483549118041992 -4.5916652679443359 -5.6702713966369629 -7.9288673400878906 -5.2000675201416016 -4.8052382469177246 -5.1118631362915039 -4.8451972007751465 -4.6773791313171387 -6.4840736389160156 -0.3877965807914734 -4.7895746231079102 -6.1838607788085938 -4.6733450889587402 -5.8963418006896973 -6.0390019416809082 -4.9696025848388672 -5.5824875831604004 -5.5883517265319824 -6.3281450271606445 -4.6682081222534180 -5.1018748283386230 -6.4806032180786133 -4.7678184509277344 -5.0264863967895508 -5.0410771369934082 -4.5577502250671387 -5.5394635200500488 -5.9093198776245117 -7.5171532630920410 -5.1656603813171387 -4.5580306053161621 -4.9274458885192871 -5.3650722503662109 -7.2106699943542480 -5.2071609497070312 -5.3567137718200684 -4.7759160995483398 -5.5630130767822266 -4.6784009933471680 -6.7417273521423340 -5.8348612785339355 -5.5414743423461914 -4.5763821601867676 -6.3995923995971680 -5.0497574806213379 -5.2690486907958984 -7.1983919143676758 -6.7281365394592285 -4.9832201004028320 -5.4381628036499023 -4.9573078155517578 -5.6619935035705566 -7.1598896980285645 -4.7656183242797852 -5.9196119308471680 -5.4021286964416504 -4.9742426872253418 -5.1017580032348633 -5.2048592567443848 -5.6925182342529297 -6.6853184700012207 -5.4071450233459473 -4.7746973037719727 -4.8244609832763672 -5.6391859054565430 -5.2099552154541016 -5.4819951057434082 -5.5076351165771484 -6.0163249969482422 -4.9919323921203613 -5.2951812744140625 -7.0514116287231445 -4.9062271118164062 -4.7973079681396484 -0.3652083277702332 -5.1288228034973145 -5.8066167831420898 -4.9137568473815918 -9.8605194091796875 -5.0339760780334473 -7.4349637031555176 -5.8825216293334961 -5.1653366088867188 -7.2243194580078125 -5.1192102432250977 -4.8792009353637695 -4.7256879806518555 -5.1080703735351562 -6.6517505645751953 -6.5091032981872559 -5.1947255134582520 -5.3699407577514648 -5.8464145660400391 -5.0959539413452148 -10.1169033050537109 -6.1409969329833984 -5.1394119262695312 -4.8911504745483398 -7.2015080451965332 -5.2626118659973145 -6.9103894233703613 -4.7359075546264648 -4.8686242103576660 -4.6806244850158691 -5.0909190177917480 -6.1753406524658203 -8.5843400955200195 -7.3731594085693359 -5.8353528976440430 -4.7195301055908203 -4.7916460037231445 -4.9799242019653320 -4.5327572822570801 -5.1616907119750977 -4.7521791458129883 -5.1707506179809570 -5.3777880668640137 -5.0237145423889160 -4.6416974067687988 -5.0444684028625488 -5.1257801055908203 -6.1286678314208984 -5.4934210777282715 -6.6204109191894531 -4.9479713439941406 -5.8193774223327637 -5.4044346809387207 -4.7807526588439941 -6.9322247505187988 -5.5329642295837402 -6.3566093444824219 -6.2031183242797852 -4.6821122169494629 -5.0057196617126465 -4.6394495964050293 -7.6056342124938965 -4.8514752388000488 -5.2097773551940918 -8.0258646011352539 -0.3989003300666809 -4.6194963455200195 -4.9558954238891602 -4.7254486083984375 -4.8757367134094238 -5.4390797615051270 -4.5847978591918945 -5.2838578224182129 -5.2541613578796387 -5.7017679214477539 -4.5784530639648438 -5.2402982711791992 -5.3977265357971191 -5.2825865745544434 -4.7097182273864746 -6.1725888252258301 -5.3055315017700195 -8.4780397415161133 -5.8631672859191895 -4.8882465362548828 -7.3401446342468262 -5.2923150062561035 -4.5997152328491211 -5.2950801849365234 -7.5231947898864746 -4.7498602867126465 -5.1180438995361328 -5.1546602249145508 -5.2173099517822266 -4.9373431205749512 -5.3926682472229004 -4.9161286354064941 -9.7354555130004883 -4.7177853584289551 -5.7407078742980957 -5.5128655433654785 -4.9405965805053711 -6.0745205879211426 -5.6061353683471680 -7.0313472747802734 -5.4432177543640137 -5.1864385604858398 -5.1137380599975586 -6.7354917526245117 -4.6268858909606934 -9.1212730407714844 -8.6223812103271484 -4.7732686996459961 -6.1138792037963867 -5.3435897827148438 -4.6324238777160645 -5.4387865066528320 -4.9601845741271973 -4.7597188949584961 -5.7027626037597656 -8.0618953704833984 -5.2828993797302246 -5.1110701560974121 -5.2741236686706543 -5.2847900390625000 -4.6285672187805176 -6.8888726234436035 -5.2401304244995117 -4.7268509864807129 -4.7930574417114258 -0.4260498285293579 -4.9787988662719727 -5.6827235221862793 -6.0459818840026855 -5.2675008773803711 -4.7316579818725586 -5.5966453552246094 -4.6059632301330566 -5.0220270156860352 -4.7000718116760254 -4.5965065956115723 -4.8064017295837402 -4.7432093620300293 -4.7026586532592773 -6.5330047607421875 -6.6770372390747070 -5.3124489784240723 -5.1243457794189453 -8.6244192123413086 -4.7867932319641113 -8.4150276184082031 -5.1112270355224609 -4.9047493934631348 -6.3499369621276855 -6.2768917083740234 -4.7593436241149902 -6.2338533401489258 -4.7790608406066895 -9.3745155334472656 -4.6232495307922363 -6.9859967231750488 -6.4624261856079102 -5.0635790824890137 -5.0900926589965820 -4.6594886779785156 -7.8373675346374512 -6.2593870162963867 -5.2138509750366211 -4.8426489830017090 -4.9396343231201172 -6.5290217399597168 -4.6438703536987305 -5.0832033157348633 -5.4734292030334473 -5.7812027931213379 -4.6629791259765625 -4.7378382682800293 -5.1845812797546387 -5.1748914718627930 -5.9886207580566406 -4.9338030815124512 -4.6719789505004883 -5.0170950889587402 -5.3298449516296387 -5.3517541885375977 -4.6229019165039062 -7.0847392082214355 -4.6239848136901855 -4.5525512695312500 -6.0016942024230957 -4.9002566337585449 -4.6228389739990234 -5.2315454483032227 -5.3280315399169922 -5.8688678741455078 -0.3882398307323456 -5.0881814956665039 -4.7864651679992676 -5.4575705528259277 -5.3616995811462402 -6.5541458129882812 -5.2522535324096680 -4.8956212997436523 -6.2826118469238281 -4.6306300163269043 -5.9102792739868164 -5.3783268928527832 -5.4793295860290527 -5.4846506118774414 -10.0608835220336914 -5.0245451927185059 -5.1544289588928223 -5.9205718040466309 -5.1146302223205566 -4.6736640930175781 -5.3840937614440918 -4.9055991172790527 -4.7520537376403809 -5.1992316246032715 -6.0194935798645020 -5.4372525215148926 -4.9794473648071289 -5.6037244796752930 -5.2070531845092773 -4.7021074295043945 -5.1380949020385742 -4.7238988876342773 -5.8209452629089355 -5.2539157867431641 -5.5586719512939453 -6.6122822761535645 -7.6090850830078125 -4.7513380050659180 -4.6380462646484375 -4.6879396438598633 -6.2014589309692383 -8.0192508697509766 -4.5585064888000488 -5.5789089202880859 -6.1534528732299805 -4.5568203926086426 -6.2757167816162109 -6.7973990440368652 -5.7585234642028809 -5.5205674171447754 -6.4582147598266602 -6.4833660125732422 -6.6909718513488770 -4.9213981628417969 -6.6730542182922363 -5.0672826766967773 -8.3789873123168945 -5.9865703582763672 -5.1558651924133301 -4.8313136100769043 -4.7102870941162109 -5.9524087905883789 -4.9001569747924805 -5.6863040924072266 -5.6279554367065430 -0.4283172488212585 -5.1037063598632812 -5.0384206771850586 -4.7116632461547852 -5.4659686088562012 -5.3827247619628906 -4.6090469360351562 -4.6181864738464355 -6.0426626205444336 -5.1101846694946289 -4.7756853103637695 -5.6671729087829590 -5.7548046112060547 -5.0014619827270508 -4.6422858238220215 -7.8970451354980469 -4.9694242477416992 -4.7776503562927246 -4.9438819885253906 -4.6671919822692871 -4.5930666923522949 -5.2674388885498047 -4.8662467002868652 -5.2947454452514648 -7.7051191329956055 -5.4317421913146973 -5.7484316825866699 -5.0496983528137207 -5.2627439498901367 -5.3482780456542969 -4.7603697776794434 -5.3992228507995605 -5.2381906509399414 -5.0083179473876953 -4.7123184204101562 -5.9539351463317871 -8.0917453765869141 -5.4142541885375977 -4.8360342979431152 -6.8380231857299805 -5.5931067466735840 -6.2517108917236328 -4.6381034851074219 -4.7702474594116211 -6.9556183815002441 -8.6511783599853516 -4.9212775230407715 -4.7545843124389648 -4.8694028854370117 -4.6886558532714844 -5.3923192024230957 -5.6046786308288574 -5.4069857597351074 -4.7251815795898438 -6.1759586334228516 -7.0821018218994141 -4.7901082038879395 -5.5092377662658691 -4.8994750976562500 -4.8547992706298828 -5.2531399726867676 -4.8903183937072754 -4.8385472297668457 -5.4994440078735352 -5.0573182106018066 -0.4438266158103943 -8.7615299224853516 -4.6867327690124512 -5.1381726264953613 -4.7084541320800781 -6.3237190246582031 -5.0446152687072754 -5.0926260948181152 -5.1296930313110352 -4.8255057334899902 -4.6465687751770020 -4.9539856910705566 -5.5249166488647461 -4.7547540664672852 -6.2947459220886230 -4.9829421043395996 -6.4758501052856445 -5.0297927856445312 -5.1455354690551758 -4.6634378433227539 -4.8103895187377930 -4.9573950767517090 -4.8309154510498047 -4.7726960182189941 -6.2827653884887695 -5.3840913772583008 -4.7974677085876465 -5.5517334938049316 -6.2463688850402832 -6.1694865226745605 -6.4421691894531250 -5.2557220458984375 -5.4812521934509277 -6.0098505020141602 -5.0102047920227051 -4.6638259887695312 -5.4657702445983887 -4.7164087295532227 -4.6989769935607910 -5.1341042518615723 -6.0600104331970215 -4.8353619575500488 -4.7397866249084473 -5.9618902206420898 -6.9732670783996582 -5.5031251907348633 -5.1025285720825195 -4.6325688362121582 -5.7490220069885254 -4.6126961708068848 -6.1649804115295410 -4.6489357948303223 -4.8534359931945801 -4.9785852432250977 -5.8709902763366699 -4.9755644798278809 -6.1408386230468750 -5.9922261238098145 -4.6293153762817383 -4.5924849510192871 -5.3542990684509277 -5.8411984443664551 -4.8236336708068848 -4.6119799613952637 -4.8446388244628906 -0.4210376441478729 -5.1095099449157715 -4.6639208793640137 -4.7873892784118652 -7.3012695312500000 -5.3798294067382812 -6.5488152503967285 -5.4395608901977539 -5.7745437622070312 -4.6378335952758789 -4.8843350410461426 -7.4273490905761719 -6.4358530044555664 -4.6438798904418945 -6.0125551223754883 -6.1280479431152344 -4.8128776550292969 -4.9629893302917480 -6.0289883613586426 -5.8042616844177246 -4.8292708396911621 -5.2024364471435547 -7.7185420989990234 -4.9117732048034668 -5.0165953636169434 -7.1980881690979004 -4.9242200851440430 -5.9700698852539062 -6.1289882659912109 -4.7991299629211426 -4.9605417251586914 -5.8858447074890137 -5.8470315933227539 -5.9485526084899902 -7.1140704154968262 -4.7997941970825195 -4.6861510276794434 -5.3467020988464355 -4.6425662040710449 -4.6135640144348145 -5.1016039848327637 -5.5840134620666504 -8.5819644927978516 -5.2551927566528320 -4.6283097267150879 -5.0352282524108887 -4.8212480545043945 -5.4552965164184570 -4.7474217414855957 -8.9130792617797852 -4.7931776046752930 -6.5151414871215820 -6.5251569747924805 -5.4987483024597168 -5.1696534156799316 -7.3844389915466309 -4.7367181777954102 -5.5122733116149902 -6.4358820915222168 -5.0926041603088379 -5.5935873985290527 -5.3615946769714355 -6.2885971069335938 -5.6638727188110352 -4.7146849632263184 -0.3533430695533752 -4.6084208488464355 -6.1910376548767090 -4.7724838256835938 -4.8513946533203125 -4.6951899528503418 -4.5671634674072266 -6.4421663284301758 -6.3196873664855957 -4.9027643203735352 -5.1493463516235352 -5.6428256034851074 -4.7083077430725098 -5.4823250770568848 -6.4030704498291016 -9.1371374130249023 -5.5239119529724121 -6.0810794830322266 -5.0274796485900879 -5.8723230361938477 -5.4500684738159180 -4.8750386238098145 -4.7582674026489258 -5.1473531723022461 -6.4945125579833984 -4.8108835220336914 -4.5519332885742188 -5.6721849441528320 -4.5683612823486328 -5.0016369819641113 -5.5218710899353027 -5.8760681152343750 -6.2918405532836914 -5.8640022277832031 -5.2676610946655273 -7.2561545372009277 -6.4003524780273438 -5.5791873931884766 -5.4319853782653809 -10.7098951339721680 -5.0328116416931152 -4.8164205551147461 -5.0286779403686523 -5.4703044891357422 -6.7047224044799805 -7.7282171249389648 -5.3538355827331543 -6.0249495506286621 -5.1570734977722168 -4.6148214340209961 -6.1347131729125977 -4.7096691131591797 -5.8987188339233398 -4.6551675796508789 -5.6306843757629395 -5.2097473144531250 -4.6250867843627930 -5.1963529586791992 -5.4908151626586914 -4.8956604003906250 -5.5888390541076660 -5.3365674018859863 -5.3316092491149902 -5.1995749473571777 -5.7565460205078125 -0.3988341689109802 -5.3913440704345703 -4.7396030426025391 -6.2719516754150391 -4.9696397781372070 -5.3231949806213379 -5.8397264480590820 -7.6482872962951660 -4.7697381973266602 -6.7683596611022949 -5.4111528396606445 -4.5862512588500977 -4.6091561317443848 -7.9145689010620117 -6.3981661796569824 -5.3354339599609375 -6.4388842582702637 -4.6817755699157715 -7.7437458038330078 -7.4005393981933594 -6.2485680580139160 -4.7268772125244141 -4.9739747047424316 -4.5784044265747070 -5.0820150375366211 -4.8366913795471191 -8.6323699951171875 -4.6866798400878906 -6.7935862541198730 -5.3263468742370605 -4.6875720024108887 -5.5245547294616699 -4.7671775817871094 -4.8447327613830566 -6.9218134880065918 -6.3633837699890137 -4.9671058654785156 -4.5944786071777344 -5.1251573562622070 -5.4132428169250488 -6.2578759193420410 -4.7880201339721680 -5.3863043785095215 -5.4141225814819336 -5.0574069023132324 -5.6093826293945312 -5.1126222610473633 -6.4782691001892090 -5.0523290634155273 -6.1379990577697754 -4.8727340698242188 -5.9101943969726562 -5.0163965225219727 -5.8373203277587891 -4.6272091865539551 -6.0584435462951660 -5.5298018455505371 -6.0219869613647461 -5.0624122619628906 -8.3892021179199219 -7.0273261070251465 -4.9406304359436035 -4.8163433074951172 -4.9629468917846680 -5.9925274848937988 -0.4341366887092590 -5.5758256912231445 -6.5202989578247070 -5.0114750862121582 -5.2450733184814453 -4.6611685752868652 -5.6522078514099121 -4.6288266181945801 -5.0473246574401855 -4.6020627021789551 -5.8011336326599121 -5.0723118782043457 -5.7162456512451172 -5.0946741104125977 -5.1434788703918457 -4.6449313163757324 -4.8183717727661133 -6.8034758567810059 -5.7908248901367188 -6.0553059577941895 -4.6454663276672363 -5.5212998390197754 -5.4187784194946289 -5.2618932723999023 -4.7879142761230469 -5.3454537391662598 -8.2306346893310547 -5.2789807319641113 -6.3208184242248535 -4.7132382392883301 -4.7269363403320312 -4.9279956817626953 -5.2323594093322754 -4.8445472717285156 -4.9867324829101562 -5.5937533378601074 -5.0381312370300293 -5.2238917350769043 -5.8448543548583984 -6.2105212211608887 -4.5977349281311035 -4.7676630020141602 -4.9868726730346680 -5.0888051986694336 -4.6650776863098145 -4.7015757560729980 -4.7415232658386230 -5.6171050071716309 -5.5860710144042969 -5.5182614326477051 -4.7705464363098145 -6.4783911705017090 -5.6676545143127441 -4.6517214775085449 -4.6436686515808105 -4.7548332214355469 -4.6995348930358887 -6.7769756317138672 -5.0129504203796387 -4.9236860275268555 -5.1218609809875488 -4.6091227531433105 -5.4074311256408691 -5.9899344444274902 -4.9182114601135254 -0.4339244663715363 -7.8321967124938965 -4.8531150817871094 -6.8374204635620117 -4.6077241897583008 -4.8072800636291504 -5.9341559410095215 -4.6291546821594238 -4.6108603477478027 -6.9183220863342285 -6.1450910568237305 -4.9562554359436035 -5.7973003387451172 -4.7877645492553711 -5.2977647781372070 -5.8915824890136719 -5.2701802253723145 -5.2733139991760254 -6.0349626541137695 -4.7234945297241211 -5.8582658767700195 -6.1586890220642090 -4.8673319816589355 -6.7880325317382812 -5.1494112014770508 -6.1753125190734863 -5.1603322029113770 -6.8983154296875000 -4.9133400917053223 -4.7344446182250977 -4.7300539016723633 -5.6070885658264160 -9.8225927352905273 -4.9487686157226562 -5.1004109382629395 -5.0941905975341797 -5.0390009880065918 -4.6419320106506348 -5.0408020019531250 -4.8383994102478027 -5.2533144950866699 -5.0250267982482910 -4.8322243690490723 -4.7243227958679199 -5.6594514846801758 -5.2371973991394043 -7.4800858497619629 -6.1390547752380371 -4.7207489013671875 -5.1552152633666992 -6.2445502281188965 -6.8872880935668945 -6.8022513389587402 -4.6998310089111328 -4.7860593795776367 -5.9390516281127930 -5.1990599632263184 -4.6747570037841797 -4.6028175354003906 -4.8148512840270996 -6.0821995735168457 -5.3164119720458984 -4.7596087455749512 -5.1921358108520508 -5.2661838531494141 -0.4028917849063873 -4.9110832214355469 -4.6599745750427246 -4.7840080261230469 -4.9304046630859375 -5.2419734001159668 -5.3735222816467285 -5.1746573448181152 -5.8890366554260254 -5.7374382019042969 -5.3699817657470703 -6.1041941642761230 -4.8543481826782227 -6.4961862564086914 -5.7229280471801758 -4.6805658340454102 -6.3684201240539551 -6.5567383766174316 -4.9643392562866211 -4.9590606689453125 -6.9002161026000977 -4.7888360023498535 -4.6188597679138184 -6.9397830963134766 -4.7626976966857910 -6.6315946578979492 -4.9128222465515137 -4.6074714660644531 -5.2284007072448730 -4.6803641319274902 -4.8817791938781738 -6.4925460815429688 -6.3420567512512207 -7.3231978416442871 -5.1641454696655273 -4.7665438652038574 -5.1127424240112305 -5.8108558654785156 -5.6788043975830078 -4.8586845397949219 -4.8735580444335938 -5.9404892921447754 -5.1714763641357422 -5.2462220191955566 -6.4487924575805664 -6.4892802238464355 -5.3108263015747070 -4.8981099128723145 -5.3366060256958008 -7.3280653953552246 -4.5918269157409668 -6.4618611335754395 -4.9517879486083984 -5.5033974647521973 -4.5741081237792969 -5.2066841125488281 -4.5711383819580078 -5.5038437843322754 -5.4350156784057617 -5.3801717758178711 -6.4846205711364746 -6.7651968002319336 -6.8924989700317383 -5.0895934104919434 -6.0348434448242188 -0.3784841001033783 -4.9424409866333008 -11.8338890075683594 -5.1134901046752930 -4.7103214263916016 -4.8005847930908203 -5.9590120315551758 -4.6173944473266602 -4.7357926368713379 -7.6433963775634766 -7.5104985237121582 -4.9391169548034668 -4.8469538688659668 -4.7568130493164062 -4.9429025650024414 -6.1430530548095703 -7.9299416542053223 -6.3563113212585449 -4.8766388893127441 -5.1355385780334473 -5.9673290252685547 -5.6619248390197754 -5.2915396690368652 -7.4275560379028320 -4.7299284934997559 -4.5878224372863770 -5.4973831176757812 -4.8298411369323730 -5.3555240631103516 -4.6764707565307617 -7.2059202194213867 -6.2722682952880859 -5.8746829032897949 -4.9717860221862793 -5.6706075668334961 -4.7457504272460938 -5.3987541198730469 -4.8938956260681152 -5.2053418159484863 -4.9005632400512695 -5.0954694747924805 -5.3885116577148438 -7.4025883674621582 -5.8905267715454102 -7.2430567741394043 -4.7460803985595703 -4.9601073265075684 -5.4867630004882812 -4.7382831573486328 -4.7044425010681152 -6.0020585060119629 -5.0103220939636230 -5.0796513557434082 -4.6941676139831543 -5.7019133567810059 -4.9374084472656250 -5.3406076431274414 -4.8151574134826660 -5.3371143341064453 -4.5969638824462891 -6.1959366798400879 -5.5480589866638184 -4.9623727798461914 -5.5104827880859375 -5.2513027191162109 -0.4314683675765991 -5.3447356224060059 -5.5104365348815918 -5.4323983192443848 -4.6750764846801758 -4.9299936294555664 -5.1195402145385742 -4.9518160820007324 -6.6441712379455566 -4.9927806854248047 -5.4909467697143555 -8.5377435684204102 -5.3916373252868652 -4.7005352973937988 -5.2585272789001465 -5.0940380096435547 -5.5162611007690430 -4.6650047302246094 -4.9704103469848633 -4.9947180747985840 -5.4044966697692871 -5.1210069656372070 -5.2516055107116699 -6.4017729759216309 -6.5223155021667480 -5.6849021911621094 -4.9014739990234375 -5.3808560371398926 -6.0766530036926270 -4.7541985511779785 -6.4609856605529785 -4.6657133102416992 -5.1054673194885254 -4.9930553436279297 -4.9709134101867676 -5.3712749481201172 -5.8391585350036621 -4.8909902572631836 -5.1433978080749512 -5.2616505622863770 -6.2934389114379883 -5.0934953689575195 -4.6364626884460449 -5.5467896461486816 -4.7596287727355957 -5.9626717567443848 -5.0637698173522949 -4.9328656196594238 -4.6564426422119141 -4.7861237525939941 -4.8747935295104980 -5.4434599876403809 -4.9951562881469727 -7.2143073081970215 -6.2355985641479492 -4.8023991584777832 -4.8853902816772461 -7.8326263427734375 -5.0223908424377441 -6.3765716552734375 -4.7171626091003418 -5.4764494895935059 -4.7181129455566406 -4.6490697860717773 -4.8812174797058105 -0.4322844743728638 -6.9808115959167480 -5.1179704666137695 -5.0523233413696289 -5.3995499610900879 -4.6149702072143555 -5.3461847305297852 -5.6200370788574219 -4.8056225776672363 -5.9356260299682617 -5.0684289932250977 -5.0550136566162109 -4.6110630035400391 -5.5425891876220703 -6.9838790893554688 -5.1815829277038574 -6.2926273345947266 -4.8768558502197266 -5.7210917472839355 -4.6019682884216309 -7.1578707695007324 -4.7170591354370117 -5.4965100288391113 -5.0707249641418457 -5.8397307395935059 -5.6928935050964355 -4.6264123916625977 -5.2054433822631836 -6.6875271797180176 -4.7798533439636230 -5.5423359870910645 -6.9557547569274902 -6.3472390174865723 -4.6458535194396973 -4.6510696411132812 -4.6829218864440918 -5.0773425102233887 -4.6965894699096680 -4.8548989295959473 -6.8721628189086914 -6.1069712638854980 -5.5410647392272949 -5.1325020790100098 -4.7249565124511719 -5.3115086555480957 -7.6608552932739258 -5.2549653053283691 -5.4754214286804199 -7.1585717201232910 -9.2728891372680664 -4.6784572601318359 -5.4729914665222168 -4.8569149971008301 -4.7813615798950195 -6.6923651695251465 -5.3805451393127441 -4.9648203849792480 -7.0187811851501465 -5.1037945747375488 -6.1012601852416992 -5.5328822135925293 -4.9962334632873535 -7.0704741477966309 -5.3201427459716797 -4.8966383934020996 -0.3782436847686768 -5.6616816520690918 -4.5569467544555664 -7.2819848060607910 -5.0616035461425781 -5.3978223800659180 -4.9064478874206543 -4.7550668716430664 -5.0184836387634277 -6.1106514930725098 -5.6353836059570312 -5.5855383872985840 -4.6316199302673340 -6.2833170890808105 -5.1009387969970703 -5.8093466758728027 -4.6425147056579590 -5.6432642936706543 -7.1617379188537598 -6.5623240470886230 -5.6113405227661133 -7.3220748901367188 -4.7634115219116211 -4.5467948913574219 -5.2445240020751953 -4.5430307388305664 -7.0999531745910645 -6.7025532722473145 -5.4101576805114746 -4.5656700134277344 -7.1459255218505859 -4.7548451423645020 -5.6990227699279785 -5.9059329032897949 -4.8455295562744141 -4.9831557273864746 -5.8637752532958984 -8.8023376464843750 -5.2903599739074707 -4.5768666267395020 -4.5740680694580078 -6.7240304946899414 -6.0722918510437012 -5.6470303535461426 -5.7209105491638184 -4.9972796440124512 -6.4727039337158203 -5.2810325622558594 -5.3593149185180664 -5.0717821121215820 -5.0661520957946777 -4.7346935272216797 -5.7298059463500977 -5.1004714965820312 -5.6723370552062988 -8.0497255325317383 -4.8951549530029297 -4.6995272636413574 -4.7029857635498047 -5.0454473495483398 -4.5984783172607422 -4.9936966896057129 -5.2157669067382812 -5.1850986480712891 -5.3245105743408203 -0.4143236577510834 -5.8750576972961426 -4.5898327827453613 -5.0702714920043945 -4.8866996765136719 -4.7181191444396973 -5.3432273864746094 -7.2510986328125000 -5.1067643165588379 -5.3690824508666992 -4.7492623329162598 -5.1307158470153809 -5.1054725646972656 -5.5777869224548340 -4.5960083007812500 -5.7505292892456055 -5.1177725791931152 -6.5223355293273926 -4.6885819435119629 -4.9032869338989258 -5.3257884979248047 -5.2726082801818848 -6.9228706359863281 -5.2283692359924316 -4.9596686363220215 -5.7010602951049805 -4.7569475173950195 -4.7710614204406738 -5.6058502197265625 -6.3557410240173340 -5.6053533554077148 -6.4243283271789551 -5.6480593681335449 -6.7116460800170898 -4.6449551582336426 -5.2268571853637695 -4.7894573211669922 -9.0996055603027344 -4.6808042526245117 -5.1303143501281738 -5.4023375511169434 -4.9878654479980469 -5.5950512886047363 -9.5998954772949219 -5.1220927238464355 -5.4663214683532715 -5.7037129402160645 -5.6110677719116211 -4.7073206901550293 -5.8014602661132812 -4.6978120803833008 -5.4676728248596191 -5.1140270233154297 -4.9514641761779785 -6.6636238098144531 -4.7512798309326172 -4.9412660598754883 -5.6506438255310059 -4.7694258689880371 -5.1800599098205566 -5.2235603332519531 -5.6780824661254883 -5.3813166618347168 -5.1093878746032715 -5.0955834388732910 -0.3569416105747223 -4.7234501838684082 -5.8195562362670898 -5.2162365913391113 -5.8263716697692871 -6.6037144660949707 -5.0474843978881836 -5.1625728607177734 -8.4842720031738281 -4.9594039916992188 -4.9626746177673340 -10.0924272537231445 -6.0148663520812988 -6.6376028060913086 -5.6990375518798828 -4.5671191215515137 -4.8547258377075195 -6.4794850349426270 -4.6801414489746094 -5.6752824783325195 -4.8364820480346680 -5.8301830291748047 -8.0792827606201172 -6.0132536888122559 -5.8911423683166504 -6.0837221145629883 -5.1571779251098633 -6.0518226623535156 -5.2478561401367188 -5.3225049972534180 -5.5972228050231934 -5.4872817993164062 -6.5153617858886719 -5.9240460395812988 -4.9821233749389648 -5.1132321357727051 -4.9694209098815918 -5.2873215675354004 -4.8491969108581543 -5.1156983375549316 -5.0832648277282715 -4.9800353050231934 -5.5553154945373535 -5.2070574760437012 -5.0829100608825684 -5.4371623992919922 -5.1582574844360352 -5.1120595932006836 -5.5330853462219238 -5.3622303009033203 -5.3977527618408203 -4.8032174110412598 -5.9285273551940918 -4.6795716285705566 -7.2855067253112793 -4.7031035423278809 -4.9156861305236816 -5.9449553489685059 -4.8316178321838379 -6.7048716545104980 -5.0083189010620117 -5.3246202468872070 -5.8594613075256348 -4.6657409667968750 -4.8495755195617676 -0.4211205542087555 -4.9756107330322266 -4.5996503829956055 -4.8797497749328613 -5.5317082405090332 -5.0513601303100586 -5.5816707611083984 -5.0805869102478027 -5.1162395477294922 -4.9116086959838867 -6.4871478080749512 -6.3095560073852539 -6.6324877738952637 -4.5951528549194336 -6.1956896781921387 -5.2655491828918457 -6.6112074851989746 -6.1171870231628418 -5.8263988494873047 -4.8610553741455078 -5.3934497833251953 -5.0033059120178223 -6.0316720008850098 -5.4508109092712402 -5.3314185142517090 -7.6714587211608887 -4.8474478721618652 -4.6961226463317871 -5.2043919563293457 -4.6093726158142090 -4.7739930152893066 -5.7372627258300781 -4.6519379615783691 -4.8310961723327637 -6.5517101287841797 -5.5447878837585449 -5.1653985977172852 -4.7467856407165527 -4.8303461074829102 -6.3617877960205078 -4.6361861228942871 -4.8459997177124023 -4.8757681846618652 -4.7449493408203125 -4.7854433059692383 -5.1316819190979004 -5.3725018501281738 -5.3141522407531738 -4.5458564758300781 -6.3158879280090332 -4.9264683723449707 -5.1540160179138184 -4.7369494438171387 -4.8771429061889648 -6.6131300926208496 -6.3774247169494629 -4.6922807693481445 -5.3595132827758789 -4.5945544242858887 -5.0050716400146484 -5.4043726921081543 -5.6146354675292969 -6.2581005096435547 -6.3473091125488281 -5.2941374778747559 -0.3796644508838654 -4.9150643348693848 -5.8102803230285645 -6.0229930877685547 -7.6059994697570801 -6.4932851791381836 -4.7152419090270996 -6.9069604873657227 -4.6262845993041992 -5.1132183074951172 -6.9340419769287109 -5.0016112327575684 -6.6673560142517090 -4.7497367858886719 -7.6205182075500488 -5.5062026977539062 -6.1012687683105469 -5.2064304351806641 -4.5782198905944824 -4.7398452758789062 -6.0399141311645508 -5.8461999893188477 -4.6891927719116211 -5.9870533943176270 -5.8751101493835449 -4.6167535781860352 -6.0066385269165039 -6.0455431938171387 -5.0417013168334961 -5.8854331970214844 -4.9523568153381348 -7.5765824317932129 -5.5291085243225098 -4.8624162673950195 -6.2852921485900879 -6.3582029342651367 -9.8438568115234375 -4.9064607620239258 -5.5180311203002930 -4.9855308532714844 -6.0842828750610352 -6.3314018249511719 -4.9995427131652832 -5.7561450004577637 -6.4863810539245605 -5.3755874633789062 -4.6998748779296875 -4.9197535514831543 -5.2555809020996094 -6.0637879371643066 -4.8752698898315430 -9.5626506805419922 -4.8995809555053711 -7.2290754318237305 -4.9676718711853027 -5.8281459808349609 -4.6122837066650391 -4.7543482780456543 -5.5420246124267578 -4.5593690872192383 -5.8532376289367676 -5.5861554145812988 -4.5719156265258789 -8.2208776473999023 -5.8957858085632324 -0.3755325078964233 -5.2249884605407715 -5.6731777191162109 -7.3943042755126953 -4.7054500579833984 -9.8571701049804688 -5.7090749740600586 -7.1648664474487305 -8.4218883514404297 -4.7003545761108398 -7.2327351570129395 -4.6688995361328125 -4.8730173110961914 -5.6352677345275879 -5.4599475860595703 -6.9562253952026367 -5.7632761001586914 -5.9884133338928223 -4.9827189445495605 -5.4761614799499512 -4.7193846702575684 -4.7817015647888184 -5.2997713088989258 -6.5311746597290039 -5.7148051261901855 -4.7379627227783203 -4.8209075927734375 -6.8588151931762695 -4.8484106063842773 -4.5399823188781738 -5.7136073112487793 -4.8046951293945312 -7.9369249343872070 -5.2068986892700195 -4.8059420585632324 -4.8293304443359375 -5.3544163703918457 -5.1236896514892578 -8.0822315216064453 -5.0945525169372559 -7.0931239128112793 -4.9286303520202637 -5.7731461524963379 -4.7449851036071777 -5.2681126594543457 -5.3264737129211426 -5.9884757995605469 -5.1264224052429199 -4.8619790077209473 -4.7633099555969238 -8.0085821151733398 -5.8285455703735352 -5.1523437500000000 -5.0171627998352051 -6.3598508834838867 -5.3950133323669434 -6.3033595085144043 -4.9247870445251465 -5.3710408210754395 -4.6989893913269043 -4.6217918395996094 -6.4736118316650391 -4.8793315887451172 -4.8894829750061035 -6.7057771682739258 -0.4103604555130005 -5.5446457862854004 -6.8089494705200195 -5.2247519493103027 -4.9652094841003418 -4.7790851593017578 -5.8176655769348145 -4.8248944282531738 -4.9146494865417480 -5.1076478958129883 -4.6488261222839355 -4.8781857490539551 -5.1133446693420410 -4.6287274360656738 -7.7656335830688477 -4.6262187957763672 -5.0601425170898438 -5.8786611557006836 -5.5223159790039062 -6.9470381736755371 -5.9028468132019043 -4.7904591560363770 -5.1021785736083984 -4.5863609313964844 -5.7678489685058594 -5.4296050071716309 -5.7915787696838379 -4.9097995758056641 -4.7620410919189453 -7.1485986709594727 -5.1077857017517090 -5.3499894142150879 -4.9739274978637695 -4.8096137046813965 -5.4184780120849609 -5.2346820831298828 -5.1167030334472656 -6.6315255165100098 -5.4492597579956055 -6.6511697769165039 -5.8048582077026367 -4.7137498855590820 -4.6004657745361328 -4.6365871429443359 -4.6011734008789062 -5.3783097267150879 -7.7999286651611328 -5.0971179008483887 -5.9191036224365234 -4.7032775878906250 -5.0182948112487793 -4.8670959472656250 -6.4366416931152344 -5.0873231887817383 -4.8886632919311523 -4.7805519104003906 -6.6119852066040039 -5.7460451126098633 -4.7372322082519531 -5.5634846687316895 -6.7779870033264160 -5.7357616424560547 -6.1302437782287598 -4.7636580467224121 -5.2257695198059082 -0.4030857384204865 -4.5632257461547852 -4.7241930961608887 -4.5912938117980957 -7.6425132751464844 -5.8025798797607422 -6.4655132293701172 -5.0946788787841797 -5.0423579216003418 -6.6310081481933594 -4.9916486740112305 -5.1369814872741699 -6.6356492042541504 -4.5751509666442871 -6.8368034362792969 -4.6122221946716309 -4.6097521781921387 -6.3539581298828125 -8.2698106765747070 -4.7930216789245605 -6.2162485122680664 -6.0300388336181641 -5.3075079917907715 -6.6024985313415527 -5.1612763404846191 -4.8913135528564453 -5.2278800010681152 -5.2884173393249512 -4.6081085205078125 -6.6670465469360352 -4.6318054199218750 -6.1217041015625000 -4.5877628326416016 -6.4418349266052246 -4.9336228370666504 -7.5589318275451660 -5.1504712104797363 -6.7063765525817871 -4.7047452926635742 -6.1345911026000977 -4.8044180870056152 -4.8197641372680664 -5.6640563011169434 -5.4079294204711914 -5.1162695884704590 -6.5212574005126953 -4.6909794807434082 -5.3671412467956543 -4.9647078514099121 -5.2134599685668945 -4.6870589256286621 -5.3208794593811035 -4.8576045036315918 -4.6342024803161621 -6.1376724243164062 -5.3245658874511719 -5.0237360000610352 -4.8538813591003418 -6.0572433471679688 -6.6467752456665039 -4.7589774131774902 -6.2776308059692383 -4.8077445030212402 -4.7051215171813965 -4.6193027496337891 -0.4345825910568237 -5.7353854179382324 -4.5984358787536621 -5.4073672294616699 -4.6989297866821289 -5.0438108444213867 -4.6308526992797852 -4.9767508506774902 -5.0557065010070801 -5.0629782676696777 -6.1671361923217773 -4.9634680747985840 -7.8849701881408691 -4.8708119392395020 -6.0853676795959473 -7.0893602371215820 -4.6526679992675781 -4.6551294326782227 -5.0611724853515625 -4.6530013084411621 -5.2617249488830566 -4.9877381324768066 -7.7293286323547363 -8.4607295989990234 -5.3189697265625000 -4.6999483108520508 -5.2137579917907715 -5.3174471855163574 -6.5512862205505371 -6.3784084320068359 -4.7548818588256836 -5.6520657539367676 -5.4457559585571289 -4.6598114967346191 -6.6987833976745605 -4.7619466781616211 -5.0392570495605469 -5.0542836189270020 -4.5953998565673828 -5.3306617736816406 -4.6703157424926758 -4.8969306945800781 -4.9830341339111328 -5.5590028762817383 -5.9310607910156250 -11.1290941238403320 -6.0858478546142578 -4.8699450492858887 -5.7069697380065918 -7.2121748924255371 -4.7386345863342285 -5.3084125518798828 -5.6247410774230957 -4.9295144081115723 -4.6002931594848633 -8.7508087158203125 -8.1286134719848633 -5.2254533767700195 -4.5838613510131836 -4.6277551651000977 -5.0964856147766113 -5.4429950714111328 -4.7614669799804688 -4.6416873931884766 -4.7588491439819336 -0.4191697835922241 -7.1169056892395020 -6.4420819282531738 -6.0386142730712891 -5.9013018608093262 -5.3564195632934570 -4.6336441040039062 -4.9978871345520020 -4.6220331192016602 -5.9584379196166992 -5.6778998374938965 -7.9734215736389160 -4.6204395294189453 -4.7643036842346191 -4.7717008590698242 -4.6108546257019043 -5.9644842147827148 -5.1384010314941406 -4.6443319320678711 -5.1569209098815918 -5.8498592376708984 -5.7876973152160645 -5.6888585090637207 -6.8061122894287109 -6.8314485549926758 -4.7084441184997559 -6.5534300804138184 -4.7748246192932129 -5.5163154602050781 -4.8061637878417969 -5.5096478462219238 -6.5929174423217773 -5.6639180183410645 -5.1758260726928711 -4.5839309692382812 -5.5424466133117676 -5.0101881027221680 -5.6814799308776855 -4.8306851387023926 -5.9637703895568848 -5.6678481101989746 -5.0333819389343262 -5.1517767906188965 -5.2425856590270996 -4.6045851707458496 -5.6738266944885254 -5.1652879714965820 -4.6349778175354004 -5.7661232948303223 -5.0541954040527344 -5.9003772735595703 -5.6055169105529785 -4.6672053337097168 -4.9622278213500977 -6.7943058013916016 -5.5613088607788086 -6.2739028930664062 -4.5625438690185547 -4.8667254447937012 -5.2138905525207520 -4.6868705749511719 -4.7399101257324219 -7.0432691574096680 -5.5556244850158691 -6.1119484901428223 -0.3976427912712097 -5.1937885284423828 -5.6092271804809570 -4.8467450141906738 -4.9060907363891602 -4.9520168304443359 -5.3600301742553711 -5.6761798858642578 -6.5627832412719727 -5.0601553916931152 -8.0589857101440430 -4.7316098213195801 -6.1974282264709473 -5.1973514556884766 -6.1190862655639648 -6.6655497550964355 -7.5896053314208984 -6.6181292533874512 -4.7863330841064453 -6.2074742317199707 -4.6454310417175293 -4.8619632720947266 -4.5773072242736816 -7.4714007377624512 -6.4207038879394531 -4.7033390998840332 -4.7096185684204102 -5.0056195259094238 -4.7371020317077637 -7.4269571304321289 -5.8403010368347168 -7.5108771324157715 -6.7822909355163574 -7.5990948677062988 -6.0659308433532715 -4.7021951675415039 -6.3828830718994141 -5.0808868408203125 -5.0121302604675293 -6.3055291175842285 -4.9462566375732422 -4.6560597419738770 -5.7123918533325195 -6.1488299369812012 -7.5158019065856934 -5.5327339172363281 -5.0093965530395508 -5.7097759246826172 -6.0700860023498535 -4.6161808967590332 -4.7304272651672363 -4.8156943321228027 -4.6416153907775879 -10.0008525848388672 -4.7306880950927734 -5.7486834526062012 -4.9621958732604980 -4.7549161911010742 -4.7366008758544922 -4.6456789970397949 -4.7973365783691406 -4.7912201881408691 -4.5837607383728027 -5.1943068504333496 -6.6231231689453125 -0.4148429930210114 -5.3612227439880371 -4.6882367134094238 -7.4859519004821777 -4.7618799209594727 -4.7419753074645996 -5.3885469436645508 -4.8333754539489746 -4.8180742263793945 -5.7682337760925293 -5.0450286865234375 -5.9662499427795410 -4.7242608070373535 -4.5769920349121094 -4.8185029029846191 -5.6447911262512207 -5.4814505577087402 -5.7221221923828125 -6.9044928550720215 -5.1414747238159180 -6.9196929931640625 -8.6257982254028320 -4.6283740997314453 -5.0345025062561035 -8.6697082519531250 -5.0851683616638184 -5.3945555686950684 -5.8576545715332031 -4.9970917701721191 -4.9475312232971191 -4.8475794792175293 -5.4120726585388184 -5.7948822975158691 -6.2429456710815430 -4.9339776039123535 -6.0889973640441895 -4.8249444961547852 -4.5705704689025879 -4.7218656539916992 -5.5356245040893555 -5.3079485893249512 -5.3553628921508789 -6.4531679153442383 -6.3216938972473145 -7.4872422218322754 -5.6370797157287598 -6.6391177177429199 -6.6286659240722656 -4.7156376838684082 -4.9732875823974609 -6.4334764480590820 -4.8852882385253906 -5.7017521858215332 -6.4048132896423340 -7.4674682617187500 -5.0016417503356934 -5.3377108573913574 -6.2371840476989746 -5.7698111534118652 -4.9676518440246582 -4.9279274940490723 -4.6051969528198242 -5.1981873512268066 -5.9326915740966797 -6.6644554138183594 -0.3995843231678009 -5.0919375419616699 -4.7427492141723633 -4.5906624794006348 -5.3444480895996094 -4.9204235076904297 -6.4652404785156250 -5.7746477127075195 -7.3199925422668457 -4.6967983245849609 -4.6466960906982422 -4.6052026748657227 -7.6726961135864258 -5.4286980628967285 -4.6711230278015137 -4.8162350654602051 -10.1981525421142578 -4.5833396911621094 -7.0520939826965332 -4.7737979888916016 -4.8161168098449707 -4.6018714904785156 -4.9904370307922363 -7.5844597816467285 -4.6346268653869629 -4.9565811157226562 -5.4706711769104004 -5.0076389312744141 -5.3683257102966309 -4.7041726112365723 -7.6694450378417969 -4.6045331954956055 -4.9688596725463867 -5.4646000862121582 -4.7341542243957520 -5.5774650573730469 -4.6767749786376953 -6.4375123977661133 -4.9007668495178223 -5.8417277336120605 -5.7076745033264160 -4.8162879943847656 -4.8411836624145508 -4.9654073715209961 -6.4599957466125488 -5.4514341354370117 -7.0431780815124512 -5.1861457824707031 -4.7901043891906738 -6.0325450897216797 -6.3500971794128418 -5.6202468872070312 -4.7764239311218262 -5.5708398818969727 -4.8696289062500000 -6.2544875144958496 -5.1278610229492188 -5.2468557357788086 -4.6403765678405762 -5.2751474380493164 -6.4645571708679199 -4.9969315528869629 -4.6415767669677734 -6.9229674339294434 -7.9649224281311035 -0.4161665737628937 -8.8587675094604492 -4.9546432495117188 -6.9232530593872070 -4.6804175376892090 -7.1523556709289551 -4.9675102233886719 -4.5836992263793945 -4.7261300086975098 -5.6146979331970215 -5.3206171989440918 -4.7357692718505859 -5.8587265014648438 -5.8392496109008789 -5.2521548271179199 -4.7706079483032227 -5.0807733535766602 -7.3634653091430664 -4.9157571792602539 -5.4056138992309570 -4.6560692787170410 -4.9812006950378418 -4.6471843719482422 -5.5160160064697266 -4.9861083030700684 -5.0291695594787598 -5.4388365745544434 -5.0092806816101074 -5.5609502792358398 -6.1521582603454590 -6.8754143714904785 -4.7497992515563965 -4.7462854385375977 -5.0650534629821777 -5.5054616928100586 -5.3379378318786621 -6.3232755661010742 -4.6188006401062012 -4.7514219284057617 -5.3365817070007324 -6.2211627960205078 -7.0014576911926270 -6.7995471954345703 -4.5981101989746094 -5.9544034004211426 -7.4116401672363281 -4.5952615737915039 -4.9328699111938477 -5.4384217262268066 -6.4042191505432129 -5.8245811462402344 -4.7151141166687012 -4.8055891990661621 -5.0580806732177734 -4.6733837127685547 -4.8434567451477051 -5.8289585113525391 -6.2260880470275879 -6.0741748809814453 -5.8013515472412109 -4.5907568931579590 -7.7158765792846680 -5.4447731971740723 -5.9054207801818848 -5.5722150802612305 -0.4213387370109558 -6.2621068954467773 -4.9014010429382324 -4.6343665122985840 -4.9576282501220703 -4.9787969589233398 -7.1189303398132324 -5.1734642982482910 -5.5546693801879883 -4.8225159645080566 -4.8416180610656738 -4.6506848335266113 -5.7273287773132324 -5.0549387931823730 -5.0387072563171387 -4.6105360984802246 -5.4141635894775391 -4.6379404067993164 -5.0993657112121582 -6.6805210113525391 -5.2479801177978516 -4.6835222244262695 -7.2329297065734863 -4.8515858650207520 -4.7149319648742676 -4.6297597885131836 -5.2715897560119629 -4.7092266082763672 -5.8694591522216797 -5.2594723701477051 -5.9689955711364746 -5.0887908935546875 -5.4198656082153320 -4.6491851806640625 -4.5884337425231934 -5.0596184730529785 -5.6048693656921387 -5.1627111434936523 -4.9852957725524902 -6.8810896873474121 -4.6463632583618164 -4.7983183860778809 -4.5742473602294922 -5.9496655464172363 -6.1856322288513184 -5.8205423355102539 -4.9131994247436523 -5.5906581878662109 -4.9822049140930176 -4.9098739624023438 -4.8962984085083008 -7.9990363121032715 -5.6912293434143066 -5.4918017387390137 -6.0386610031127930 -4.7803692817687988 -5.9625687599182129 -4.6837706565856934 -6.0086188316345215 -4.6985406875610352 -5.5430598258972168 -4.7299175262451172 -7.3409781455993652 -6.5415019989013672 -6.4979248046875000 -0.3998342752456665 -5.8243026733398438 -4.8341445922851562 -6.3383789062500000 -5.6138219833374023 -5.7963037490844727 -5.5552392005920410 -4.6993999481201172 -4.5624060630798340 -4.8342952728271484 -7.4010491371154785 -6.5453987121582031 -5.8397216796875000 -4.9375185966491699 -5.3303737640380859 -5.4161815643310547 -4.6137366294860840 -4.9863634109497070 -5.1914610862731934 -4.6975193023681641 -5.3798046112060547 -6.9543242454528809 -6.6142144203186035 -4.6014347076416016 -4.7890233993530273 -8.1156692504882812 -8.1241493225097656 -5.5810241699218750 -6.6038455963134766 -4.9314136505126953 -5.3754897117614746 -4.8405303955078125 -5.2296056747436523 -5.4935212135314941 -4.7374191284179688 -5.0954508781433105 -5.8169922828674316 -5.1049132347106934 -4.7423992156982422 -5.6286888122558594 -7.0628924369812012 -4.8621053695678711 -5.1222715377807617 -4.9881005287170410 -4.6832094192504883 -4.7143607139587402 -5.1031675338745117 -4.6338133811950684 -5.0548224449157715 -4.8254590034484863 -4.7478709220886230 -5.4875779151916504 -6.7658848762512207 -5.0710525512695312 -4.8872699737548828 -6.5821509361267090 -5.2912049293518066 -6.2325339317321777 -4.7316894531250000 -5.0314874649047852 -6.7214508056640625 -5.8136663436889648 -4.7039422988891602 -5.5453252792358398 -5.1353006362915039 -0.4248380064964294 -5.3060221672058105 -5.7073698043823242 -7.7021245956420898 -5.1321086883544922 -4.6920895576477051 -5.1481266021728516 -5.1895260810852051 -5.4837632179260254 -5.0605053901672363 -5.6292710304260254 -5.7511434555053711 -5.7441515922546387 -4.9573893547058105 -4.6159806251525879 -6.0799994468688965 -5.6238765716552734 -5.0969548225402832 -4.9465284347534180 -5.8359408378601074 -4.9624328613281250 -4.8596458435058594 -4.7249989509582520 -5.8560585975646973 -4.6242957115173340 -4.8503136634826660 -5.8664946556091309 -5.6387839317321777 -5.8035125732421875 -5.5755643844604492 -4.9192552566528320 -4.7743897438049316 -5.0384421348571777 -5.1456475257873535 -5.6832728385925293 -5.4382205009460449 -5.5818600654602051 -5.6939554214477539 -4.6096525192260742 -6.9536290168762207 -5.2904872894287109 -5.5651907920837402 -5.3805480003356934 -4.7770404815673828 -4.8926153182983398 -4.7217640876770020 -4.8712668418884277 -4.9449691772460938 -7.1423430442810059 -4.8301453590393066 -5.5419220924377441 -5.5525674819946289 -6.1863074302673340 -5.3088316917419434 -4.7370333671569824 -4.9828124046325684 -6.0112700462341309 -5.0476913452148438 -5.8254299163818359 -6.5968828201293945 -5.4839119911193848 -4.8321905136108398 -5.8672299385070801 -4.7366929054260254 -5.6321702003479004 -0.3949781954288483 -7.5574169158935547 -4.9167385101318359 -6.2427396774291992 -5.6962375640869141 -6.9775805473327637 -5.7575697898864746 -4.5729594230651855 -5.4804801940917969 -5.2294521331787109 -4.7805838584899902 -5.3260540962219238 -5.8438820838928223 -6.7213439941406250 -6.5589532852172852 -5.0314302444458008 -4.7935161590576172 -5.4200258255004883 -4.9899044036865234 -5.2621793746948242 -4.7347607612609863 -4.9169120788574219 -4.7101602554321289 -5.0417814254760742 -5.4387578964233398 -4.8180732727050781 -7.7677950859069824 -4.5725908279418945 -6.2107410430908203 -4.9989304542541504 -7.0792427062988281 -8.8517646789550781 -4.7441778182983398 -6.3342318534851074 -5.8814301490783691 -5.0960040092468262 -5.2805275917053223 -5.5140776634216309 -4.7751598358154297 -6.5212259292602539 -4.5694046020507812 -5.0972380638122559 -5.3787879943847656 -4.6121687889099121 -6.3011674880981445 -5.3952035903930664 -7.1331329345703125 -5.0550861358642578 -7.0048732757568359 -5.1864871978759766 -5.6643996238708496 -4.9081096649169922 -7.2126493453979492 -5.7708210945129395 -4.8097929954528809 -4.6288361549377441 -4.7308988571166992 -5.0947427749633789 -7.3379077911376953 -5.2976436614990234 -5.4436979293823242 -6.5653491020202637 -5.0321378707885742 -5.6217312812805176 -5.3053507804870605 -0.3723965287208557 -5.0599989891052246 -6.0090699195861816 -5.0271344184875488 -5.8432688713073730 -5.4735693931579590 -5.2196564674377441 -4.9879765510559082 -5.2822046279907227 -5.1223149299621582 -6.8445916175842285 -5.5332417488098145 -5.0277252197265625 -5.1119909286499023 -8.0150442123413086 -4.8711986541748047 -4.7604637145996094 -5.7702164649963379 -4.5628318786621094 -4.6593470573425293 -6.9079589843750000 -8.0937910079956055 -4.5813970565795898 -6.0618896484375000 -4.6858720779418945 -4.7167067527770996 -7.1018257141113281 -5.1094522476196289 -4.6830844879150391 -7.5029826164245605 -7.1528768539428711 -5.9760684967041016 -4.7309389114379883 -6.4971170425415039 -4.8227844238281250 -4.5797309875488281 -4.7231502532958984 -4.7922325134277344 -5.0253763198852539 -4.8148002624511719 -5.5214810371398926 -6.0388565063476562 -4.6378459930419922 -5.1874208450317383 -5.9668841361999512 -4.8696517944335938 -4.6050229072570801 -4.9606194496154785 -5.1468200683593750 -5.8582201004028320 -4.8074650764465332 -4.7826876640319824 -4.6213846206665039 -5.4213166236877441 -5.0080904960632324 -4.7303924560546875 -4.7082605361938477 -4.8822684288024902 -7.0792384147644043 -8.1922111511230469 -5.0655069351196289 -6.4465188980102539 -5.4346642494201660 -6.2942113876342773 -5.8606166839599609 -0.4124643206596375 -5.4066395759582520 -5.0222697257995605 -5.7164392471313477 -6.0265774726867676 -6.3602404594421387 -4.7539529800415039 -5.9875650405883789 -5.3001499176025391 -4.7936305999755859 -4.7982659339904785 -5.7199811935424805 -5.2849493026733398 -7.7935032844543457 -9.1870584487915039 -5.4798169136047363 -5.2942991256713867 -5.3858532905578613 -4.6644153594970703 -4.7386560440063477 -5.2936563491821289 -6.5237517356872559 -7.4081354141235352 -4.8538718223571777 -7.5952162742614746 -4.8622145652770996 -4.9032797813415527 -4.9569215774536133 -5.4244852066040039 -5.0441946983337402 -5.1851754188537598 -7.3631858825683594 -5.0773291587829590 -5.7351207733154297 -5.5072002410888672 -5.1145982742309570 -4.8029818534851074 -5.2128033638000488 -4.7541565895080566 -5.0239977836608887 -4.7037787437438965 -5.5800218582153320 -7.6648449897766113 -5.6374955177307129 -4.9338445663452148 -5.9706072807312012 -5.7296385765075684 -6.6549839973449707 -5.6277570724487305 -4.9032793045043945 -4.6482057571411133 -4.8873243331909180 -5.1722979545593262 -6.3931393623352051 -6.6204442977905273 -6.9930877685546875 -5.1920261383056641 -4.6768803596496582 -5.5005636215209961 -5.2182350158691406 -4.7684993743896484 -5.2305688858032227 -4.5856900215148926 -5.0165176391601562 -4.9465670585632324 -0.4253169596195221 -4.6290006637573242 -9.5511407852172852 -4.9695339202880859 -4.9317216873168945 -4.9157857894897461 -4.6782770156860352 -4.5894827842712402 -4.7788839340209961 -6.2249574661254883 -5.0017018318176270 -4.6269922256469727 -5.1955280303955078 -5.8655228614807129 -4.7312474250793457 -5.9651207923889160 -5.2322216033935547 -6.7258172035217285 -5.1391000747680664 -6.8177723884582520 -4.8395652770996094 -5.7436852455139160 -5.2270483970642090 -6.1401810646057129 -4.8264260292053223 -7.2586193084716797 -4.7358484268188477 -7.4653506278991699 -5.2577590942382812 -7.4767580032348633 -5.4406890869140625 -5.0784235000610352 -5.7899880409240723 -5.6260561943054199 -5.4653973579406738 -5.3171296119689941 -5.0030479431152344 -4.6293234825134277 -7.2437152862548828 -5.0463728904724121 -4.8047466278076172 -5.7735090255737305 -5.3989772796630859 -5.6575269699096680 -4.7182517051696777 -4.6393270492553711 -6.8177304267883301 -4.5850043296813965 -4.6306037902832031 -5.2609562873840332 -4.6269564628601074 -4.8538284301757812 -5.5396175384521484 -5.2556982040405273 -4.6086049079895020 -4.6578364372253418 -4.6356611251831055 -5.8908205032348633 -7.8511071205139160 -5.0345392227172852 -7.7242627143859863 -5.0538382530212402 -5.9274759292602539 -5.1455078125000000 -5.0748319625854492 -0.4120934605598450 -4.8480939865112305 -5.8794221878051758 -5.2583675384521484 -5.5722017288208008 -4.6766376495361328 -4.8349561691284180 -4.7624244689941406 -4.9168987274169922 -6.2442641258239746 -4.8851757049560547 -6.3965706825256348 -5.2829694747924805 -5.1233096122741699 -5.5428619384765625 -5.8768687248229980 -4.7481575012207031 -5.4428544044494629 -5.3844442367553711 -5.9325628280639648 -7.2930583953857422 -5.1055855751037598 -7.1532297134399414 -6.7044434547424316 -5.0819497108459473 -5.4636564254760742 -4.6879839897155762 -6.3977327346801758 -5.2461261749267578 -4.8241910934448242 -4.8492107391357422 -5.4531555175781250 -6.3466744422912598 -4.6822633743286133 -4.5569334030151367 -4.6036643981933594 -5.2527365684509277 -4.6563949584960938 -6.3748230934143066 -5.3829045295715332 -4.6282215118408203 -5.6456484794616699 -5.9341545104980469 -5.7406311035156250 -7.0097928047180176 -4.5589141845703125 -6.5756759643554688 -5.8800182342529297 -8.9125423431396484 -6.6325850486755371 -6.0896258354187012 -8.3950719833374023 -5.7086167335510254 -5.0760908126831055 -5.5650067329406738 -4.6753015518188477 -4.5519185066223145 -7.0017619132995605 -5.0036330223083496 -5.1860885620117188 -4.6616010665893555 -5.7294912338256836 -4.8068623542785645 -5.6399989128112793 -5.4088263511657715 -0.3928565382957458 -5.0011162757873535 -4.7613549232482910 -6.7324843406677246 -8.6635522842407227 -5.0192222595214844 -4.9046473503112793 -5.7973423004150391 -5.1154508590698242 -5.9782652854919434 -4.7370834350585938 -5.8610105514526367 -4.9092073440551758 -5.5545368194580078 -5.2278485298156738 -4.9395561218261719 -4.9873890876770020 -4.6770834922790527 -4.7076878547668457 -4.5820145606994629 -5.0723490715026855 -5.3491053581237793 -4.6590075492858887 -6.1257100105285645 -7.5936861038208008 -6.1845231056213379 -4.5605278015136719 -6.0442104339599609 -5.0065307617187500 -6.6029357910156250 -6.9042153358459473 -6.8223147392272949 -5.2092614173889160 -6.4129095077514648 -5.4940981864929199 -5.4547247886657715 -5.3743071556091309 -5.5925612449645996 -5.1871170997619629 -4.8054990768432617 -5.2631926536560059 -7.0177583694458008 -5.2648873329162598 -4.8409905433654785 -5.4244737625122070 -5.3158288002014160 -4.9099655151367188 -8.5879240036010742 -5.6113305091857910 -6.7714915275573730 -5.5918340682983398 -5.0375413894653320 -4.7839827537536621 -4.6570110321044922 -4.8979516029357910 -4.6850042343139648 -4.8325567245483398 -6.9622426033020020 -5.3809695243835449 -5.0832910537719727 -8.6279182434082031 -5.0611295700073242 -7.4785647392272949 -4.5890398025512695 -5.0006604194641113 -0.3971879780292511 -5.5669140815734863 -4.5860733985900879 -5.2582354545593262 -5.5630788803100586 -5.0604128837585449 -5.7925782203674316 -4.7530426979064941 -4.6072764396667480 -4.6772422790527344 -5.0765337944030762 -5.2862882614135742 -4.8568921089172363 -4.9655809402465820 -4.8181943893432617 -6.5100746154785156 -5.0763983726501465 -8.4985532760620117 -4.9805908203125000 -4.7117390632629395 -5.2605981826782227 -7.4099068641662598 -4.7284216880798340 -5.6553349494934082 -4.9326763153076172 -4.7211575508117676 -7.8083581924438477 -5.2000570297241211 -8.4495925903320312 -4.7736630439758301 -6.4753732681274414 -6.6534504890441895 -5.3889632225036621 -5.7623615264892578 -5.2322196960449219 -4.7895021438598633 -10.0894269943237305 -5.2386484146118164 -5.1873335838317871 -5.6735200881958008 -5.0741820335388184 -5.3417844772338867 -7.2559232711791992 -5.7425498962402344 -4.6717457771301270 -5.2484517097473145 -5.2631568908691406 -5.0813431739807129 -6.0854668617248535 -4.7363457679748535 -5.2321472167968750 -5.1749553680419922 -7.3557710647583008 -4.6130146980285645 -5.0638532638549805 -5.4836449623107910 -5.5041646957397461 -5.5852003097534180 -4.6104044914245605 -5.1923017501831055 -7.4562611579895020 -4.6289339065551758 -4.6637835502624512 -4.6959028244018555 -5.0252146720886230 -0.4153592586517334 -6.9802184104919434 -7.3271741867065430 -5.0813331604003906 -6.2200808525085449 -5.6037902832031250 -4.7215657234191895 -4.7384610176086426 -4.7196264266967773 -4.7375416755676270 -5.9174757003784180 -4.6866426467895508 -5.1326656341552734 -4.9459624290466309 -5.2880449295043945 -5.0509357452392578 -4.7553391456604004 -6.9561867713928223 -5.7014408111572266 -5.5934233665466309 -4.8082623481750488 -7.8356986045837402 -4.7656183242797852 -5.4881591796875000 -5.2982916831970215 -4.5995211601257324 -5.0469307899475098 -4.6829266548156738 -4.7587623596191406 -4.9498047828674316 -4.7169222831726074 -4.5897908210754395 -5.2218675613403320 -5.1083936691284180 -5.1349701881408691 -4.7819271087646484 -6.2134537696838379 -5.3597054481506348 -4.6538362503051758 -5.1315407752990723 -4.5828557014465332 -6.1519131660461426 -4.7452793121337891 -5.3247117996215820 -4.8585004806518555 -4.6071310043334961 -4.6834073066711426 -4.9039697647094727 -4.6641674041748047 -6.5012254714965820 -4.7623624801635742 -7.1197552680969238 -5.1677908897399902 -5.9152159690856934 -4.9727649688720703 -5.4962863922119141 -5.6159958839416504 -4.9135584831237793 -9.6176977157592773 -5.3597016334533691 -5.2451291084289551 -6.0655207633972168 -5.2712082862854004 -7.9110779762268066 -4.9220438003540039 -0.4063091576099396 -5.6206083297729492 -5.1414475440979004 -5.6939692497253418 -6.6823406219482422 -8.8749246597290039 -6.3877124786376953 -6.3356881141662598 -7.3026432991027832 -4.7734713554382324 -5.5105862617492676 -5.8685741424560547 -4.6829624176025391 -5.1129026412963867 -6.0946483612060547 -5.5328693389892578 -5.6741294860839844 -10.3952131271362305 -5.0587062835693359 -5.5299038887023926 -5.1760039329528809 -4.7439770698547363 -4.9245080947875977 -4.9993014335632324 -5.9410095214843750 -5.7387642860412598 -5.6073627471923828 -7.0166659355163574 -5.4866747856140137 -6.4764013290405273 -4.6649260520935059 -5.4947133064270020 -5.4123759269714355 -5.4878034591674805 -4.6159362792968750 -5.0352292060852051 -5.6696519851684570 -4.6611599922180176 -5.4568653106689453 -4.7138738632202148 -4.8309340476989746 -4.9364833831787109 -7.5059719085693359 -4.9532594680786133 -6.0257649421691895 -5.6778116226196289 -4.7198944091796875 -4.9012165069580078 -4.8015618324279785 -6.1355581283569336 -4.5726642608642578 -5.7331075668334961 -7.9438037872314453 -6.5117931365966797 -4.7102460861206055 -5.4551963806152344 -5.0983724594116211 -6.8419752120971680 -4.6194376945495605 -5.0257077217102051 -7.4911322593688965 -4.8470745086669922 -5.1761031150817871 -4.8161439895629883 -5.0835924148559570 -0.4052280783653259 -5.3228721618652344 -4.6755700111389160 -6.8028612136840820 -5.2233099937438965 -4.8747515678405762 -5.9156007766723633 -5.3510642051696777 -4.7577953338623047 -4.7029409408569336 -7.2178945541381836 -4.6617846488952637 -5.9348096847534180 -5.9064264297485352 -5.2390232086181641 -4.6646466255187988 -4.7003750801086426 -5.7772517204284668 -5.4381880760192871 -4.9675321578979492 -6.6948404312133789 -5.0001783370971680 -5.5264739990234375 -5.6238121986389160 -5.4672584533691406 -5.0666365623474121 -7.0929484367370605 -4.7005200386047363 -5.0896949768066406 -5.4241986274719238 -4.6395220756530762 -6.1675815582275391 -5.8824844360351562 -4.8446826934814453 -5.0501670837402344 -8.8768014907836914 -6.1484937667846680 -7.3845653533935547 -4.8492527008056641 -5.7938914299011230 -5.0416440963745117 -5.4299106597900391 -4.9914550781250000 -6.1038990020751953 -5.3414354324340820 -4.6178750991821289 -5.8489475250244141 -5.4345712661743164 -5.4302701950073242 -4.5799622535705566 -4.7505083084106445 -5.7658109664916992 -4.7104496955871582 -4.7529845237731934 -4.7607374191284180 -5.1826062202453613 -5.4085354804992676 -4.6458783149719238 -4.8238248825073242 -5.2058200836181641 -5.4683294296264648 -5.3705558776855469 -5.1346731185913086 -5.5008778572082520 -4.9925298690795898 -0.4084534049034119 -6.9280405044555664 -5.2972278594970703 -4.6704607009887695 -5.8714900016784668 -7.0819225311279297 -5.6218309402465820 -4.6188554763793945 -5.7209200859069824 -7.2631907463073730 -5.2185764312744141 -5.2500615119934082 -5.5921382904052734 -4.6965723037719727 -5.2872166633605957 -4.6200551986694336 -4.7069749832153320 -5.1638226509094238 -5.3875651359558105 -7.6002006530761719 -4.8938198089599609 -4.8696074485778809 -5.3363852500915527 -6.2070217132568359 -7.4586505889892578 -4.8792018890380859 -5.7115693092346191 -4.5453867912292480 -7.2043614387512207 -6.1361956596374512 -7.0243196487426758 -4.6559000015258789 -5.3125319480895996 -4.7291235923767090 -5.0613117218017578 -4.9677200317382812 -5.2508716583251953 -5.6888341903686523 -5.0821723937988281 -5.0022325515747070 -4.8901305198669434 -6.0710716247558594 -6.8517122268676758 -5.1876344680786133 -5.6016182899475098 -4.6156134605407715 -5.3811631202697754 -4.5577955245971680 -6.2149233818054199 -4.6098041534423828 -4.6861920356750488 -4.6712574958801270 -5.8983840942382812 -4.8264946937561035 -4.9619250297546387 -6.1454582214355469 -5.7827510833740234 -5.2305088043212891 -5.2608175277709961 -6.9517240524291992 -11.3559675216674805 -7.2601246833801270 -5.5651454925537109 -4.5834994316101074 -6.6526398658752441 -0.3796290755271912 -4.7518324851989746 -8.5843982696533203 -4.7532157897949219 -7.1420149803161621 -5.4587163925170898 -5.0805616378784180 -7.1074056625366211 -5.1900296211242676 -6.2868585586547852 -5.2300825119018555 -5.0366244316101074 -9.1779146194458008 -4.6987419128417969 -5.0386328697204590 -6.0822525024414062 -4.6954035758972168 -5.9237399101257324 -4.7752509117126465 -4.9184451103210449 -5.8561520576477051 -5.9661841392517090 -5.1313366889953613 -5.2047500610351562 -5.8317203521728516 -5.6715245246887207 -5.3986010551452637 -4.8802509307861328 -6.3341040611267090 -5.8495173454284668 -4.9806699752807617 -6.9709730148315430 -6.9101662635803223 -4.9878492355346680 -5.3704204559326172 -8.0380287170410156 -5.7910971641540527 -9.0496873855590820 -4.6944141387939453 -5.1178421974182129 -5.1688761711120605 -5.9469552040100098 -6.8270211219787598 -4.9001741409301758 -4.6448020935058594 -4.5883798599243164 -5.1420841217041016 -5.2955288887023926 -5.0397663116455078 -4.7906961441040039 -6.4081602096557617 -5.0974545478820801 -5.2544384002685547 -4.7877769470214844 -4.5681929588317871 -4.7966971397399902 -4.8771095275878906 -4.7977576255798340 -4.9164862632751465 -4.7479801177978516 -4.9302248954772949 -4.7958502769470215 -5.3439211845397949 -4.7569208145141602 -5.5322484970092773 -0.4090643525123596 -4.7965836524963379 -5.0708756446838379 -6.2023425102233887 -5.9074068069458008 -6.1963109970092773 -4.6677780151367188 -5.9357466697692871 -5.5854897499084473 -6.3954949378967285 -6.0927095413208008 -5.6550378799438477 -4.6788854598999023 -4.8645815849304199 -4.6647090911865234 -4.6833024024963379 -5.9803853034973145 -5.9485034942626953 -5.4940915107727051 -4.6801767349243164 -6.0092687606811523 -9.0067386627197266 -6.7461385726928711 -7.0007205009460449 -4.6144013404846191 -4.8045411109924316 -4.6455092430114746 -7.5076861381530762 -5.6020107269287109 -5.1540064811706543 -7.2180242538452148 -6.1253218650817871 -4.9221549034118652 -5.0494718551635742 -7.0948309898376465 -4.9766535758972168 -4.7406473159790039 -6.0077962875366211 -4.8496928215026855 -6.8793025016784668 -5.0746893882751465 -7.3519034385681152 -5.5341053009033203 -4.9276413917541504 -5.1668829917907715 -5.4026184082031250 -5.1672339439392090 -5.2874059677124023 -5.4803395271301270 -5.0381979942321777 -5.8759450912475586 -6.0203371047973633 -5.5278649330139160 -4.6197867393493652 -4.8622298240661621 -5.1271524429321289 -4.8019394874572754 -5.4332609176635742 -4.6691241264343262 -6.0095191001892090 -5.1931214332580566 -4.8687767982482910 -5.3425364494323730 -5.0949234962463379 -5.8419332504272461 -0.3992297351360321 -5.2477993965148926 -5.3134312629699707 -4.8285608291625977 -5.9874510765075684 -5.3143186569213867 -5.2152976989746094 -5.5518436431884766 -4.8874726295471191 -5.6020798683166504 -4.8133430480957031 -5.2613625526428223 -5.3568696975708008 -7.1081781387329102 -6.2085490226745605 -4.7349038124084473 -5.9605569839477539 -4.9749436378479004 -5.2522439956665039 -4.7909789085388184 -5.8057761192321777 -4.6658759117126465 -5.2614579200744629 -4.6948328018188477 -7.9943099021911621 -5.5399556159973145 -4.8885774612426758 -4.8660960197448730 -4.8345398902893066 -4.6706442832946777 -5.0842638015747070 -5.3269891738891602 -6.2507896423339844 -5.1537599563598633 -5.5091819763183594 -4.9996328353881836 -4.5989456176757812 -4.6169829368591309 -5.1253108978271484 -6.0035042762756348 -4.6292152404785156 -5.5576262474060059 -5.1184129714965820 -5.0954685211181641 -5.7240552902221680 -4.8125324249267578 -6.8198995590209961 -4.6820812225341797 -6.1157135963439941 -4.9709792137145996 -5.2040309906005859 -6.0385727882385254 -4.9542665481567383 -8.5342855453491211 -4.6660599708557129 -6.4330797195434570 -4.8196754455566406 -5.0917472839355469 -5.4336934089660645 -5.0485100746154785 -5.4648408889770508 -4.9381279945373535 -4.8603053092956543 -4.8017101287841797 -4.8843007087707520 -0.4303493201732635 -5.4071073532104492 -4.8194117546081543 -6.7681989669799805 -5.3145642280578613 -5.6431803703308105 -5.8238244056701660 -4.8953638076782227 -5.5850148200988770 -5.3726105690002441 -5.0389704704284668 -4.6804327964782715 -4.9013733863830566 -7.6072063446044922 -5.6553888320922852 -5.2325973510742188 -5.9818792343139648 -5.0294418334960938 -6.0880355834960938 -5.2113180160522461 -7.0298519134521484 -6.9177589416503906 -4.5838866233825684 -5.8860020637512207 -4.8923087120056152 -4.6888084411621094 -5.0248103141784668 -6.4984178543090820 -4.6469445228576660 -6.6787457466125488 -5.5237941741943359 -5.9333004951477051 -4.6213278770446777 -7.6701207160949707 -5.4262876510620117 -5.1666002273559570 -4.8792896270751953 -5.9964013099670410 -4.6059041023254395 -5.4114918708801270 -5.3015255928039551 -5.0634722709655762 -5.1479835510253906 -5.8774166107177734 -5.7237396240234375 -6.6882438659667969 -6.9939980506896973 -6.5192260742187500 -5.7675342559814453 -4.5643897056579590 -4.7883839607238770 -7.4490017890930176 -6.1683926582336426 -4.6920433044433594 -4.8914904594421387 -5.4394311904907227 -6.0504312515258789 -6.9381532669067383 -4.6528706550598145 -5.7752084732055664 -7.2919054031372070 -4.7271442413330078 -4.7137894630432129 -4.6440730094909668 -5.1555476188659668 -0.3868679106235504 -4.9656853675842285 -4.9800171852111816 -5.8674983978271484 -5.7310562133789062 -4.8856158256530762 -5.6372570991516113 -5.1954135894775391 -4.5486879348754883 -6.1542005538940430 -4.6389269828796387 -6.3298931121826172 -5.0118837356567383 -5.0520706176757812 -6.2631578445434570 -6.5776686668395996 -4.5599637031555176 -6.0505199432373047 -5.5716242790222168 -6.9898242950439453 -4.7086548805236816 -8.8981828689575195 -5.4312462806701660 -4.7513723373413086 -4.6394481658935547 -6.3352546691894531 -5.2603311538696289 -5.1345596313476562 -5.0405783653259277 -8.2676000595092773 -4.5856032371520996 -4.6873979568481445 -6.1694831848144531 -6.5506510734558105 -4.7502837181091309 -4.8486738204956055 -4.7025065422058105 -4.7822456359863281 -4.5734481811523438 -9.7045545578002930 -4.5811796188354492 -5.7309899330139160 -6.5031437873840332 -5.6097803115844727 -7.1365981101989746 -6.5355348587036133 -4.9030084609985352 -4.8959069252014160 -4.5921974182128906 -5.2658753395080566 -6.6471881866455078 -8.9198675155639648 -5.8321595191955566 -6.5206351280212402 -4.6098947525024414 -4.6855664253234863 -4.7838792800903320 -7.3001303672790527 -4.7362627983093262 -7.6027412414550781 -4.7519841194152832 -5.0614953041076660 -5.0892901420593262 -7.2061614990234375 -5.1044273376464844 -0.3957059681415558 -4.7619171142578125 -5.8003783226013184 -7.6174359321594238 -5.4347405433654785 -5.0534377098083496 -5.0202956199645996 -4.7242560386657715 -4.9094653129577637 -4.8091278076171875 -6.3928999900817871 -4.6242074966430664 -4.8269944190979004 -4.6477508544921875 -5.3187966346740723 -5.1731696128845215 -5.5953817367553711 -6.3393106460571289 -4.7381296157836914 -5.6878013610839844 -7.7171430587768555 -5.2403383255004883 -5.2060260772705078 -5.3910794258117676 -5.0876865386962891 -6.6130166053771973 -5.9268293380737305 -4.9665465354919434 -6.2399287223815918 -5.7597799301147461 -4.7865123748779297 -5.4508628845214844 -5.7289514541625977 -5.6325426101684570 -7.1982026100158691 -4.7425360679626465 -5.0433077812194824 -4.6638302803039551 -5.0335922241210938 -5.7240009307861328 -4.6138877868652344 -5.5441431999206543 -5.2087554931640625 -4.5965232849121094 -4.7550992965698242 -4.9831333160400391 -5.0883107185363770 -6.1748809814453125 -4.6039910316467285 -4.6501212120056152 -5.1835436820983887 -5.0417265892028809 -5.9262385368347168 -5.9556884765625000 -5.5062990188598633 -4.7887382507324219 -5.4138913154602051 -5.3029356002807617 -4.9923191070556641 -5.1058349609375000 -5.2372322082519531 -8.0224895477294922 -5.1271681785583496 -8.4228105545043945 -4.6504101753234863 -0.4324452877044678 -4.8646807670593262 -5.7784895896911621 -4.6068840026855469 -5.6034379005432129 -4.5919666290283203 -5.2915496826171875 -6.3411216735839844 -6.4967937469482422 -6.1796307563781738 -6.2277650833129883 -4.7867112159729004 -4.6159410476684570 -7.8132305145263672 -4.6709556579589844 -4.9371871948242188 -5.9878869056701660 -8.5397653579711914 -5.0063114166259766 -4.6542215347290039 -5.3068122863769531 -5.5757822990417480 -4.9999437332153320 -5.0784339904785156 -4.7446546554565430 -4.9796776771545410 -4.9889492988586426 -5.5428190231323242 -5.7456650733947754 -4.8114242553710938 -5.0576567649841309 -6.2405490875244141 -4.6388773918151855 -5.3518610000610352 -5.0754251480102539 -4.9064202308654785 -6.3721160888671875 -4.9340577125549316 -5.7063565254211426 -6.5257453918457031 -9.4473342895507812 -4.6294670104980469 -4.7233228683471680 -4.9138298034667969 -4.8612246513366699 -4.6215028762817383 -5.3934617042541504 -5.6603918075561523 -4.7168521881103516 -5.2686247825622559 -4.9827995300292969 -4.7691164016723633 -5.1595110893249512 -7.3938622474670410 -5.7255883216857910 -5.2611980438232422 -4.6099581718444824 -5.1217527389526367 -4.8675231933593750 -5.9479861259460449 -4.8416213989257812 -10.4674911499023438 -5.6934022903442383 -4.6217408180236816 -5.4295320510864258 -0.4209170639514923 -8.2857074737548828 -5.0315351486206055 -4.7757163047790527 -4.9863252639770508 -5.7975487709045410 -4.6300263404846191 -6.3826355934143066 -5.1651515960693359 -4.6673135757446289 -6.9651942253112793 -6.2465128898620605 -4.8892230987548828 -5.3852329254150391 -5.3363118171691895 -5.1959180831909180 -6.1211996078491211 -8.7150993347167969 -5.5231962203979492 -5.0230813026428223 -4.6863818168640137 -8.9468040466308594 -5.1212692260742188 -5.2611379623413086 -5.2611751556396484 -4.7985463142395020 -5.5755815505981445 -4.5952749252319336 -5.0770177841186523 -5.4970064163208008 -6.8705472946166992 -5.1276464462280273 -5.0626087188720703 -5.1329650878906250 -5.4193468093872070 -4.5977873802185059 -4.8948106765747070 -4.9484348297119141 -5.9914436340332031 -5.3666787147521973 -4.7101526260375977 -4.6824383735656738 -4.8479661941528320 -5.5832858085632324 -5.3371562957763672 -4.9243893623352051 -4.7980918884277344 -6.5315885543823242 -4.7610635757446289 -4.7263355255126953 -5.6165351867675781 -5.4170069694519043 -6.1548552513122559 -6.5160279273986816 -4.5869007110595703 -4.8090624809265137 -5.3097629547119141 -4.5819382667541504 -4.8135671615600586 -5.0883140563964844 -5.1671013832092285 -6.6657247543334961 -6.7168340682983398 -5.7955303192138672 -5.3254661560058594 -0.4197379052639008 -4.6676559448242188 -5.2752442359924316 -6.1619911193847656 -5.7851262092590332 -4.6940336227416992 -5.1807160377502441 -7.8641190528869629 -5.3788528442382812 -5.2178401947021484 -5.8871626853942871 -4.9793872833251953 -6.9466309547424316 -6.3453073501586914 -4.6409502029418945 -7.2745676040649414 -6.3307371139526367 -4.8102989196777344 -4.9140214920043945 -6.0627155303955078 -5.5094923973083496 -4.5352401733398438 -4.5533285140991211 -9.2724990844726562 -5.9089965820312500 -5.7057857513427734 -5.1613969802856445 -5.2137985229492188 -5.8434777259826660 -5.0098190307617188 -8.3872957229614258 -5.2100839614868164 -4.9119715690612793 -4.6340684890747070 -6.1726031303405762 -5.4582529067993164 -6.0041732788085938 -4.5430545806884766 -5.8697447776794434 -6.5225343704223633 -5.0856800079345703 -4.9941215515136719 -5.4836235046386719 -6.6548099517822266 -4.6664443016052246 -8.3518133163452148 -6.8889894485473633 -5.6561694145202637 -5.3388533592224121 -5.5243110656738281 -5.2508931159973145 -6.7920756340026855 -5.0433235168457031 -7.7400364875793457 -4.5329284667968750 -6.5117387771606445 -7.9259891510009766 -4.7743611335754395 -4.8210330009460449 -4.5594925880432129 -4.9263148307800293 -5.2958889007568359 -7.9056820869445801 -4.6292486190795898 -5.8211560249328613 -0.3575941324234009 -5.0572853088378906 -7.2429337501525879 -4.8485550880432129 -4.7384443283081055 -4.8605065345764160 -7.0527687072753906 -5.0850458145141602 -4.9259829521179199 -8.0563468933105469 -7.1868910789489746 -5.4678549766540527 -4.8033547401428223 -5.6624813079833984 -4.7440104484558105 -4.9173712730407715 -4.6995849609375000 -5.5020322799682617 -4.6261119842529297 -5.0726375579833984 -5.4069638252258301 -4.7470059394836426 -4.7936458587646484 -4.7756700515747070 -6.5457925796508789 -5.0052623748779297 -4.6090044975280762 -5.0617523193359375 -5.2466039657592773 -6.5483775138854980 -6.8477797508239746 -4.9201183319091797 -4.8297300338745117 -5.1023116111755371 -4.7715630531311035 -5.7982392311096191 -5.6473183631896973 -5.3003611564636230 -7.1589293479919434 -5.2610692977905273 -4.9898047447204590 -5.7877607345581055 -4.6796555519104004 -5.0565428733825684 -5.8917551040649414 -4.7432413101196289 -5.5468764305114746 -6.1584839820861816 -4.8695902824401855 -4.7606024742126465 -6.7665963172912598 -4.6858520507812500 -4.9744877815246582 -4.6309103965759277 -4.9563760757446289 -7.1813955307006836 -4.6107673645019531 -4.7246627807617188 -5.4801421165466309 -5.3384227752685547 -8.5489597320556641 -4.8573966026306152 -5.4838166236877441 -4.6350255012512207 -6.2599544525146484 -0.4424279034137726 -6.4557204246520996 -4.8425354957580566 -5.5804877281188965 -4.5807180404663086 -5.3621678352355957 -4.7826814651489258 -4.6863336563110352 -5.2437787055969238 -5.9759488105773926 -4.9990644454956055 -7.0524230003356934 -6.2671327590942383 -5.0384855270385742 -4.9306640625000000 -4.5939192771911621 -5.4082946777343750 -4.7515649795532227 -4.7171201705932617 -5.3230714797973633 -5.6954016685485840 -5.2613115310668945 -4.5930175781250000 -7.1029453277587891 -5.0703821182250977 -7.1161694526672363 -4.9522066116333008 -4.5964083671569824 -5.3603982925415039 -7.1042108535766602 -5.4961752891540527 -5.5125188827514648 -5.1345195770263672 -6.1426253318786621 -5.1494455337524414 -5.0760302543640137 -5.3625569343566895 -5.2336115837097168 -5.2970676422119141 -5.0679683685302734 -5.2894678115844727 -6.0877318382263184 -6.0995726585388184 -6.4384822845458984 -5.4697823524475098 -4.9011940956115723 -5.1731905937194824 -4.7154355049133301 -4.8198189735412598 -6.1499052047729492 -4.5646729469299316 -4.6168146133422852 -4.7281012535095215 -6.1519017219543457 -7.3824734687805176 -6.9268097877502441 -5.5258326530456543 -6.1847524642944336 -6.7176322937011719 -5.6889634132385254 -5.1503415107727051 -7.1879553794860840 -4.5754318237304688 -6.1458549499511719 -5.1796908378601074 -0.3867698013782501 -6.3265905380249023 -4.6910228729248047 -10.0759878158569336 -6.8876209259033203 -5.3347539901733398 -5.2797408103942871 -8.8298168182373047 -4.5920138359069824 -4.5996251106262207 -5.6126003265380859 -6.5290980339050293 -5.5749311447143555 -5.0314402580261230 -5.2436470985412598 -5.4500279426574707 -5.1612668037414551 -5.0138359069824219 -5.3106536865234375 -5.2387790679931641 -6.0791778564453125 -6.7849855422973633 -4.8203206062316895 -4.6326956748962402 -4.9788427352905273 -6.7320995330810547 -8.1753110885620117 -5.3502564430236816 -6.6050238609313965 -5.2559604644775391 -7.6731166839599609 -4.5571641921997070 -7.3750028610229492 -5.5261893272399902 -4.7985181808471680 -5.3669404983520508 -7.2660017013549805 -4.9839448928833008 -6.5090017318725586 -5.9840278625488281 -5.1536655426025391 -4.8677387237548828 -5.2328453063964844 -7.2034740447998047 -5.1261038780212402 -4.7078843116760254 -4.7977223396301270 -5.1054263114929199 -5.2337608337402344 -4.9990401268005371 -4.8422636985778809 -4.7531247138977051 -4.6345515251159668 -5.4485836029052734 -5.1158013343811035 -5.5572175979614258 -4.6224946975708008 -7.3421125411987305 -4.8253493309020996 -4.8711810111999512 -4.6369066238403320 -5.5968222618103027 -5.4993400573730469 -4.6631793975830078 -5.3197779655456543 -0.3979627192020416 diff --git a/examples/machsuite/viterbi/test.data b/examples/machsuite/viterbi/test.data deleted file mode 100644 index afa6db31dd..0000000000 --- a/examples/machsuite/viterbi/test.data +++ /dev/null @@ -1,19 +0,0 @@ -%% -0 -1 -2 -%% -0.6 -0.4 -%% -0.7 -0.3 -0.4 -0.6 -%% -0.5 -0.4 -0.1 -0.1 -0.3 -0.6 diff --git a/examples/machsuite/viterbi/viterbi_allo.py b/examples/machsuite/viterbi/viterbi_allo.py index 98f623e0d6..2075ce0bab 100644 --- a/examples/machsuite/viterbi/viterbi_allo.py +++ b/examples/machsuite/viterbi/viterbi_allo.py @@ -1,8 +1,12 @@ +import os +import sys import allo from allo.ir.types import float32, int32 import numpy as np -from read import read_viterbi_input -from write import write_output_data + +_dir = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, _dir) +from viterbi import viterbi as viterbi_ref N_OBS:int32 = 140 N_STATES:int32 = 64 @@ -31,7 +35,7 @@ def viterbi(obs: int32[N_OBS], init: float32[N_STATES], transition: float32[N_ST if p < min_p: min_p = p min_s = s - + path:int32[N_OBS] path[N_OBS-1] = min_s @@ -48,21 +52,17 @@ def viterbi(obs: int32[N_OBS], init: float32[N_STATES], transition: float32[N_ST return path -import os -from viterbi import viterbi as viterbi_ref +np.random.seed(42) + +# Generate random HMM parameters in -log probability space +init = np.random.rand(N_STATES).astype(np.float32) * 10.0 +transition = np.random.rand(N_STATES, N_STATES).astype(np.float32) * 10.0 +emission = np.random.rand(N_STATES, N_TOKENS).astype(np.float32) * 10.0 +obs = np.random.randint(0, N_TOKENS, size=N_OBS).astype(np.int32) s = allo.customize(viterbi) mod = s.build() -data_dir = os.path.dirname(os.path.abspath(__file__)) -inputfile = os.path.join(data_dir, 'input.data') -init, transition, emission, obs = read_viterbi_input(inputfile) - -init = np.array(init, dtype=np.float32) -transition = np.array(transition, dtype=np.float32) -emission = np.array(emission, dtype=np.float32) -obs = np.array(obs, dtype=np.int32) - path = mod(obs, init, transition, emission) # Run Python reference for comparison From 57ee663985f6ebef9cb19bc353cd8fc7e82471db Mon Sep 17 00:00:00 2001 From: Niansong Zhang Date: Thu, 5 Feb 2026 20:00:51 -0500 Subject: [PATCH 05/16] [MachSuite] Add parameterized problem sizes and pytest integration Add psize.json with "full" and "small" size tiers for all 19 benchmarks, following the polybench pattern. Guard module-level allo.customize()/build() calls so kernel files can be imported without side effects. Add test_*() functions to each benchmark that accept a size parameter, and create test_machsuite.py as the pytest entry point using small sizes for CI. Co-Authored-By: Claude Opus 4.6 --- examples/machsuite/__init__.py | 0 examples/machsuite/aes/aes.py | 5 +- examples/machsuite/aes/run_test.py | 7 +- examples/machsuite/backprop/__init__.py | 0 examples/machsuite/backprop/run_test.py | 26 +++- examples/machsuite/bfs/bfs_bulk_allo.py | 41 ++++--- examples/machsuite/bfs/bfs_queue_allo.py | 39 +++--- examples/machsuite/bfs/run_test.py | 104 ++++++++++++++++ examples/machsuite/fft/strided/strided_fft.py | 6 +- .../machsuite/fft/strided/test_strided.py | 29 ++++- .../machsuite/fft/transpose/test_transpose.py | 18 ++- .../machsuite/fft/transpose/transpose_fft.py | 6 +- examples/machsuite/gemm/__init__.py | 0 examples/machsuite/gemm/gemm_ncubed.py | 7 +- examples/machsuite/gemm/testing.py | 14 ++- examples/machsuite/gemm/testing_blocked.py | 33 ++++- examples/machsuite/kmp/__init__.py | 0 examples/machsuite/kmp/kmp.py | 51 ++++---- examples/machsuite/md/grid/md_kernel_test.py | 40 ++++-- examples/machsuite/md/knn/md_kernel_test.py | 33 +++-- examples/machsuite/merge/mergesort.py | 19 +-- examples/machsuite/merge/testing.py | 19 ++- examples/machsuite/nw/__init__.py | 0 examples/machsuite/nw/test_nw.py | 25 +++- examples/machsuite/psize.json | 20 +++ examples/machsuite/sort/__init__.py | 0 examples/machsuite/sort/radix/__init__.py | 0 examples/machsuite/sort/radix/test_radix.py | 26 +++- examples/machsuite/spmv/crs/run_test.py | 23 +++- examples/machsuite/spmv/ellpack/ellpack.py | 58 +-------- examples/machsuite/spmv/ellpack/run_test.py | 23 +++- examples/machsuite/stencil/__init__.py | 0 examples/machsuite/stencil/stencil2d.py | 35 +++--- examples/machsuite/stencil/stencil3d.py | 77 ++++++------ examples/machsuite/stencil/test_stencil.py | 114 ++++++++++++++++++ examples/machsuite/test_machsuite.py | 112 +++++++++++++++++ examples/machsuite/viterbi/run_test.py | 49 ++++++++ examples/machsuite/viterbi/viterbi_allo.py | 27 +++-- 38 files changed, 824 insertions(+), 262 deletions(-) create mode 100644 examples/machsuite/__init__.py create mode 100644 examples/machsuite/backprop/__init__.py create mode 100644 examples/machsuite/bfs/run_test.py create mode 100644 examples/machsuite/gemm/__init__.py create mode 100644 examples/machsuite/kmp/__init__.py create mode 100644 examples/machsuite/nw/__init__.py create mode 100644 examples/machsuite/psize.json create mode 100644 examples/machsuite/sort/__init__.py create mode 100644 examples/machsuite/sort/radix/__init__.py create mode 100644 examples/machsuite/stencil/__init__.py create mode 100644 examples/machsuite/stencil/test_stencil.py create mode 100644 examples/machsuite/test_machsuite.py create mode 100644 examples/machsuite/viterbi/run_test.py diff --git a/examples/machsuite/__init__.py b/examples/machsuite/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/machsuite/aes/aes.py b/examples/machsuite/aes/aes.py index 3493b6c31c..e7f65d6de9 100644 --- a/examples/machsuite/aes/aes.py +++ b/examples/machsuite/aes/aes.py @@ -180,5 +180,6 @@ def encrypt_ecb(k: uint8[32], buf: uint8[16]): add_round_key(buf, temp_key) -s = allo.customize(encrypt_ecb) -mod = s.build(target="llvm") \ No newline at end of file +if __name__ == "__main__": + s = allo.customize(encrypt_ecb) + mod = s.build(target="llvm") \ No newline at end of file diff --git a/examples/machsuite/aes/run_test.py b/examples/machsuite/aes/run_test.py index d016329119..af962a4a13 100644 --- a/examples/machsuite/aes/run_test.py +++ b/examples/machsuite/aes/run_test.py @@ -7,7 +7,8 @@ sys.path.insert(0, _dir) from aes import encrypt_ecb -if __name__ == "__main__": + +def test_aes(): # AES-256 test vector: key = 0..31, plaintext = 0x00,0x11,...,0xFF k = np.array(list(range(32)), dtype=np.uint8) buf = np.array([0, 17, 34, 51, 68, 85, 102, 119, @@ -23,3 +24,7 @@ np.testing.assert_array_equal(buf, expected) print("PASS!") + + +if __name__ == "__main__": + test_aes() diff --git a/examples/machsuite/backprop/__init__.py b/examples/machsuite/backprop/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/machsuite/backprop/run_test.py b/examples/machsuite/backprop/run_test.py index ca15ce70d1..bd27334d8d 100644 --- a/examples/machsuite/backprop/run_test.py +++ b/examples/machsuite/backprop/run_test.py @@ -1,13 +1,29 @@ import os import sys +import json import allo import numpy as np _dir = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, _dir) -from backprop import backprop, INPUT_DIMENSION, POSSIBLE_OUTPUTS, TRAINING_SETS, NODES_PER_LAYER +import backprop + + +def test_backprop(psize="small"): + setting_path = os.path.join(os.path.dirname(__file__), "..", "psize.json") + with open(setting_path, "r") as fp: + sizes = json.load(fp) + params = sizes["backprop"][psize] + + # Patch module constants before customize() + for key, val in params.items(): + setattr(backprop, key, val) + + INPUT_DIMENSION = backprop.INPUT_DIMENSION + POSSIBLE_OUTPUTS = backprop.POSSIBLE_OUTPUTS + TRAINING_SETS = backprop.TRAINING_SETS + NODES_PER_LAYER = backprop.NODES_PER_LAYER -if __name__ == "__main__": np.random.seed(42) # Generate random weights, biases, and training data @@ -20,9 +36,13 @@ training_data = np.random.randn(TRAINING_SETS * INPUT_DIMENSION).astype(np.float32) training_targets = np.random.randn(TRAINING_SETS * POSSIBLE_OUTPUTS).astype(np.float32) - s = allo.customize(backprop) + s = allo.customize(backprop.backprop) mod = s.build(target="llvm") # Run-only test: MachSuite's check.data is known to not match mod(weights1, weights2, weights3, biases1, biases2, biases3, training_data, training_targets) print("PASS!") + + +if __name__ == "__main__": + test_backprop("full") diff --git a/examples/machsuite/bfs/bfs_bulk_allo.py b/examples/machsuite/bfs/bfs_bulk_allo.py index b71218b781..1eb0795a06 100644 --- a/examples/machsuite/bfs/bfs_bulk_allo.py +++ b/examples/machsuite/bfs/bfs_bulk_allo.py @@ -42,30 +42,31 @@ def bfs_bulk(nodes: int32[N_NODES_2], edges: int32[N_EDGES], starting_node: int3 return level, level_counts -import random -random.seed(42) +if __name__ == "__main__": + import random + random.seed(42) -s = allo.customize(bfs_bulk) -mod = s.build(target="llvm") + s = allo.customize(bfs_bulk) + mod = s.build(target="llvm") -# Generate graph programmatically -generated_data = generate_random_graph() + # Generate graph programmatically + generated_data = generate_random_graph() -# Convert to numpy arrays matching the data file format -nodes_list = [] -for node in generated_data['nodes']: - nodes_list.append(node.edge_begin) - nodes_list.append(node.edge_end) -edges_list = [edge.dst for edge in generated_data['edges']] + # Convert to numpy arrays matching the data file format + nodes_list = [] + for node in generated_data['nodes']: + nodes_list.append(node.edge_begin) + nodes_list.append(node.edge_end) + edges_list = [edge.dst for edge in generated_data['edges']] -np_A = np.array(nodes_list, np.int32) -np_B = np.array(edges_list, np.int32) -np_C = generated_data['starting_node'] + np_A = np.array(nodes_list, np.int32) + np_B = np.array(edges_list, np.int32) + np_C = generated_data['starting_node'] -(D, F) = mod(np_A, np_B, np_C) + (D, F) = mod(np_A, np_B, np_C) -(golden_D, golden_F) = bfs_bulk_test(np_A, np_B, np_C) + (golden_D, golden_F) = bfs_bulk_test(np_A, np_B, np_C) -np.testing.assert_allclose(D, golden_D, rtol=1e-5, atol=1e-5) -np.testing.assert_allclose(F, golden_F, rtol=1e-5, atol=1e-5) -print("PASS!") + np.testing.assert_allclose(D, golden_D, rtol=1e-5, atol=1e-5) + np.testing.assert_allclose(F, golden_F, rtol=1e-5, atol=1e-5) + print("PASS!") diff --git a/examples/machsuite/bfs/bfs_queue_allo.py b/examples/machsuite/bfs/bfs_queue_allo.py index 709787c80d..771bb9b000 100644 --- a/examples/machsuite/bfs/bfs_queue_allo.py +++ b/examples/machsuite/bfs/bfs_queue_allo.py @@ -47,29 +47,30 @@ def bfs_queue(nodes: int32[N_NODES_2], edges: int32[N_EDGES], starting_node: int return level, level_counts -import random -random.seed(42) +if __name__ == "__main__": + import random + random.seed(42) -s = allo.customize(bfs_queue) -mod = s.build(target="llvm") + s = allo.customize(bfs_queue) + mod = s.build(target="llvm") -# Generate graph programmatically (same seed as bulk) -generated_data = generate_random_graph() + # Generate graph programmatically (same seed as bulk) + generated_data = generate_random_graph() -nodes_list = [] -for node in generated_data['nodes']: - nodes_list.append(node.edge_begin) - nodes_list.append(node.edge_end) -edges_list = [edge.dst for edge in generated_data['edges']] + nodes_list = [] + for node in generated_data['nodes']: + nodes_list.append(node.edge_begin) + nodes_list.append(node.edge_end) + edges_list = [edge.dst for edge in generated_data['edges']] -np_A = np.array(nodes_list, np.int32) -np_B = np.array(edges_list, np.int32) -np_C = generated_data['starting_node'] + np_A = np.array(nodes_list, np.int32) + np_B = np.array(edges_list, np.int32) + np_C = generated_data['starting_node'] -(D, F) = mod(np_A, np_B, np_C) + (D, F) = mod(np_A, np_B, np_C) -(golden_D, golden_F) = bfs_queue_test(np_A, np_B, np_C) + (golden_D, golden_F) = bfs_queue_test(np_A, np_B, np_C) -np.testing.assert_allclose(D, golden_D, rtol=1e-5, atol=1e-5) -np.testing.assert_allclose(F, golden_F, rtol=1e-5, atol=1e-5) -print("PASS!") + np.testing.assert_allclose(D, golden_D, rtol=1e-5, atol=1e-5) + np.testing.assert_allclose(F, golden_F, rtol=1e-5, atol=1e-5) + print("PASS!") diff --git a/examples/machsuite/bfs/run_test.py b/examples/machsuite/bfs/run_test.py new file mode 100644 index 0000000000..de3cdd609d --- /dev/null +++ b/examples/machsuite/bfs/run_test.py @@ -0,0 +1,104 @@ +import os +import sys +import json +import random +import allo +import numpy as np + +_dir = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, _dir) +import generate +import bfs_bulk_python +import bfs_queue_python +import bfs_bulk_allo as bfs_bulk_mod +import bfs_queue_allo as bfs_queue_mod + + +def _patch_bfs_sizes(params): + """Patch BFS size constants across all relevant modules.""" + N_NODES = params["N_NODES"] + N_EDGES = params["N_EDGES"] + N_LEVELS = params["N_LEVELS"] + + # Compute SCALE from N_NODES (log2) + scale = 0 + n = N_NODES + while n > 1: + n >>= 1 + scale += 1 + + # Patch generate.py + generate.N_NODES = N_NODES + generate.N_EDGES = N_EDGES + generate.SCALE = scale + + # Patch python reference modules + bfs_bulk_python.N_NODES = N_NODES + bfs_bulk_python.N_EDGES = N_EDGES + bfs_bulk_python.N_LEVELS = N_LEVELS + + bfs_queue_python.N_NODES = N_NODES + bfs_queue_python.N_EDGES = N_EDGES + bfs_queue_python.N_LEVELS = N_LEVELS + + # Patch allo kernel modules + bfs_bulk_mod.N_NODES = N_NODES + bfs_bulk_mod.N_NODES_2 = N_NODES * 2 + bfs_bulk_mod.N_EDGES = N_EDGES + bfs_bulk_mod.N_LEVELS = N_LEVELS + + bfs_queue_mod.N_NODES = N_NODES + bfs_queue_mod.N_NODES_2 = N_NODES * 2 + bfs_queue_mod.N_EDGES = N_EDGES + bfs_queue_mod.N_LEVELS = N_LEVELS + + +def _generate_and_run(mod_func, ref_func, params): + """Build, generate graph, run kernel and reference, compare.""" + random.seed(42) + + s = allo.customize(mod_func) + mod = s.build(target="llvm") + + generated_data = generate.generate_random_graph() + + nodes_list = [] + for node in generated_data['nodes']: + nodes_list.append(node.edge_begin) + nodes_list.append(node.edge_end) + edges_list = [edge.dst for edge in generated_data['edges']] + + np_A = np.array(nodes_list, np.int32) + np_B = np.array(edges_list, np.int32) + np_C = generated_data['starting_node'] + + (D, F) = mod(np_A, np_B, np_C) + (golden_D, golden_F) = ref_func(np_A, np_B, np_C) + + np.testing.assert_allclose(D, golden_D, rtol=1e-5, atol=1e-5) + np.testing.assert_allclose(F, golden_F, rtol=1e-5, atol=1e-5) + + +def test_bfs_bulk(psize="small"): + setting_path = os.path.join(os.path.dirname(__file__), "..", "psize.json") + with open(setting_path, "r") as fp: + sizes = json.load(fp) + params = sizes["bfs"][psize] + _patch_bfs_sizes(params) + _generate_and_run(bfs_bulk_mod.bfs_bulk, bfs_bulk_python.bfs_bulk_test, params) + print("BFS Bulk PASS!") + + +def test_bfs_queue(psize="small"): + setting_path = os.path.join(os.path.dirname(__file__), "..", "psize.json") + with open(setting_path, "r") as fp: + sizes = json.load(fp) + params = sizes["bfs"][psize] + _patch_bfs_sizes(params) + _generate_and_run(bfs_queue_mod.bfs_queue, bfs_queue_python.bfs_queue_test, params) + print("BFS Queue PASS!") + + +if __name__ == "__main__": + test_bfs_bulk("full") + test_bfs_queue("full") diff --git a/examples/machsuite/fft/strided/strided_fft.py b/examples/machsuite/fft/strided/strided_fft.py index 082481f3eb..a954640f81 100644 --- a/examples/machsuite/fft/strided/strided_fft.py +++ b/examples/machsuite/fft/strided/strided_fft.py @@ -63,6 +63,6 @@ def fft(real: float32[FFT_SIZE], img: float32[FFT_SIZE], real_twid: float32[FFT_ span >>= 1 log += 1 -s = allo.customize(fft) - -mod = s.build(target="llvm") \ No newline at end of file +if __name__ == "__main__": + s = allo.customize(fft) + mod = s.build(target="llvm") \ No newline at end of file diff --git a/examples/machsuite/fft/strided/test_strided.py b/examples/machsuite/fft/strided/test_strided.py index d0dfb59c56..ca7165d5ec 100644 --- a/examples/machsuite/fft/strided/test_strided.py +++ b/examples/machsuite/fft/strided/test_strided.py @@ -1,10 +1,16 @@ # Copyright Allo authors. All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 +import os +import sys +import json import numpy as np import math +import allo -from strided_fft import fft, mod, FFT_SIZE, FFT_SIZE_HALF +_dir = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, _dir) +import strided_fft def python_strided_fft(real, img, real_twid, img_twid): @@ -42,7 +48,22 @@ def python_strided_fft(real, img, real_twid, img_twid): return r, im -def test_strided_fft(): +def test_strided_fft(psize="small"): + setting_path = os.path.join(os.path.dirname(__file__), "..", "..", "psize.json") + with open(setting_path, "r") as fp: + sizes = json.load(fp) + params = sizes["fft_strided"][psize] + + FFT_SIZE = params["FFT_SIZE"] + FFT_SIZE_HALF = FFT_SIZE // 2 + + # Patch module constants + strided_fft.FFT_SIZE = FFT_SIZE + strided_fft.FFT_SIZE_HALF = FFT_SIZE_HALF + + s = allo.customize(strided_fft.fft) + mod = s.build(target="llvm") + np.random.seed(42) # Generate random complex input @@ -67,4 +88,6 @@ def test_strided_fft(): np.testing.assert_allclose(img, ref_img, rtol=1e-5, atol=1e-5) print("PASS!") -test_strided_fft() + +if __name__ == "__main__": + test_strided_fft("full") diff --git a/examples/machsuite/fft/transpose/test_transpose.py b/examples/machsuite/fft/transpose/test_transpose.py index 7667774281..723b6f258a 100644 --- a/examples/machsuite/fft/transpose/test_transpose.py +++ b/examples/machsuite/fft/transpose/test_transpose.py @@ -1,11 +1,21 @@ # Copyright Allo authors. All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 +import os +import sys import numpy as np +import allo -from transpose_fft import fft1D_512, mod +_dir = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, _dir) +from transpose_fft import fft1D_512 + + +def test_transpose_fft(psize="small"): + # fft_transpose is hardcoded to 512, no size parameters to patch + s = allo.customize(fft1D_512) + mod = s.build(target="llvm") -def test_transpose_fft(): np.random.seed(42) # Generate random complex input @@ -23,4 +33,6 @@ def test_transpose_fft(): np.testing.assert_allclose(img, fft_ref.imag, rtol=1e-3, atol=1e-3) print("PASS!") -test_transpose_fft() + +if __name__ == "__main__": + test_transpose_fft("full") diff --git a/examples/machsuite/fft/transpose/transpose_fft.py b/examples/machsuite/fft/transpose/transpose_fft.py index 535d37e5fe..0c1442c707 100644 --- a/examples/machsuite/fft/transpose/transpose_fft.py +++ b/examples/machsuite/fft/transpose/transpose_fft.py @@ -541,7 +541,7 @@ def fft1D_512(work_x: float32[512], work_y: float32[512]): work_y[6 * stride + tid] = data_y[reversed[6]] work_y[7 * stride + tid] = data_y[reversed[7]] -s = allo.customize(fft1D_512) - -mod = s.build(target="llvm") +if __name__ == "__main__": + s = allo.customize(fft1D_512) + mod = s.build(target="llvm") diff --git a/examples/machsuite/gemm/__init__.py b/examples/machsuite/gemm/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/machsuite/gemm/gemm_ncubed.py b/examples/machsuite/gemm/gemm_ncubed.py index be672a862c..816a05fb33 100644 --- a/examples/machsuite/gemm/gemm_ncubed.py +++ b/examples/machsuite/gemm/gemm_ncubed.py @@ -10,6 +10,7 @@ def gemm(A: float32[64, 64], B: float32[64, 64]) -> float32[64, 64]: return C -s = allo.customize(gemm) -mod =s.build() -print(s.module) \ No newline at end of file +if __name__ == "__main__": + s = allo.customize(gemm) + mod = s.build() + print(s.module) \ No newline at end of file diff --git a/examples/machsuite/gemm/testing.py b/examples/machsuite/gemm/testing.py index 222fe2558e..0ed8b69215 100644 --- a/examples/machsuite/gemm/testing.py +++ b/examples/machsuite/gemm/testing.py @@ -9,19 +9,21 @@ from gemm_ncubed import gemm -def main(): - m1 = np.random.randint(0, 100, (64, 64)).astype(np.float32) - m2 = np.random.randint(0, 100, (64, 64)).astype(np.float32) - # print(m1,m2) +def test_gemm_ncubed(psize="small"): + # gemm_ncubed is hardcoded to 64x64, no size parameters to patch + N = 64 + np.random.seed(42) + m1 = np.random.randint(0, 100, (N, N)).astype(np.float32) + m2 = np.random.randint(0, 100, (N, N)).astype(np.float32) s = allo.customize(gemm) mod = s.build(target="llvm") - actual = mod(m1, m2) + actual = mod(m1, m2) check = np.matmul(m1, m2) np.testing.assert_allclose(actual, check, rtol=1e-5, atol=1e-5) print("PASS!") if __name__ == "__main__": - main() \ No newline at end of file + test_gemm_ncubed("full") diff --git a/examples/machsuite/gemm/testing_blocked.py b/examples/machsuite/gemm/testing_blocked.py index d6b7b0649e..dc15d383be 100644 --- a/examples/machsuite/gemm/testing_blocked.py +++ b/examples/machsuite/gemm/testing_blocked.py @@ -1,13 +1,34 @@ +import os +import sys +import json import allo import numpy as np -from gemm_blocked import bbgemm from allo.ir.types import int32 -def main(): - m1 = np.random.randint(0, 10, (1024, 1024)).astype(np.int32) - m2 = np.random.randint(0, 10, (1024, 1024)).astype(np.int32) +_dir = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, _dir) +import gemm_blocked - s = allo.customize(bbgemm) + +def test_gemm_blocked(psize="small"): + setting_path = os.path.join(os.path.dirname(__file__), "..", "psize.json") + with open(setting_path, "r") as fp: + sizes = json.load(fp) + params = sizes["gemm_blocked"][psize] + + # Patch module constants before customize() + for key, val in params.items(): + setattr(gemm_blocked, key, val) + + M = gemm_blocked.M + N = gemm_blocked.N + K = gemm_blocked.K + + np.random.seed(42) + m1 = np.random.randint(0, 10, (M, K)).astype(np.int32) + m2 = np.random.randint(0, 10, (K, N)).astype(np.int32) + + s = allo.customize(gemm_blocked.bbgemm) mod = s.build(target="llvm") actual = mod(m1, m2) @@ -17,4 +38,4 @@ def main(): if __name__ == "__main__": - main() + test_gemm_blocked("full") diff --git a/examples/machsuite/kmp/__init__.py b/examples/machsuite/kmp/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/machsuite/kmp/kmp.py b/examples/machsuite/kmp/kmp.py index 6ffa5550f9..901f4ccd7a 100644 --- a/examples/machsuite/kmp/kmp.py +++ b/examples/machsuite/kmp/kmp.py @@ -1,7 +1,6 @@ import allo import os import json -import pytest import numpy as np from allo.ir.types import int32, uint8, index import allo.ir.types as T @@ -14,53 +13,53 @@ def python_kmp(pattern, input): for q in range(1, len(pattern)): - while k > 0 and pattern[k] != pattern[q]: + while k > 0 and pattern[k] != pattern[q]: k = kmp_next[k - 1] - + if pattern[q] == pattern[k]: k += 1 kmp_next[q] = k - + matches = 0 q = 0 for i in range(len(input)): while (q > 0 and pattern[q] != input[i]): q = kmp_next[q - 1] - + if (pattern[q] == input[i]): q += 1 - + if (q >= len(pattern)): matches += 1 q = kmp_next[q - 1] - return matches + return matches ### allo implementation ### def kmp(concrete_type, s, p): def kmp_kernal[ - T: (uint8, int32), S: uint8, P: uint8 + T: (uint8, int32), S: uint8, P: uint8 ](pattern: "T[P]", input_str: "T[S]", kmp_next: "T[P]", matches: "T[1]"): - + k: index = 0 x: index = 1 - + for i in allo.grid((P - 1), name = "CPF"): while k > 0 and pattern[k] != pattern[x]: k = kmp_next[k-1] - + if pattern[k] == pattern[x]: k += 1 kmp_next[x] = k x += 1 - + q: index = 0 for i in allo.grid(S, name = "KMP"): while (q > 0 and pattern[q] != input_str[i]): q = kmp_next[q-1] - + if (pattern[q] == input_str[i]): q += 1 @@ -68,17 +67,23 @@ def kmp_kernal[ matches[0] += 1 q = kmp_next[q-1] - - + + sch = allo.customize(kmp_kernal, instantiate = [concrete_type, s, p]) return sch -def test_kmp(): - S = 100 - P = 100 +def test_kmp(psize="small"): + setting_path = os.path.join(os.path.dirname(__file__), "..", "psize.json") + with open(setting_path, "r") as fp: + sizes = json.load(fp) + params = sizes["kmp"][psize] + S = params["S"] + P = params["P"] + + np.random.seed(42) concrete_type = uint8 sch = kmp(concrete_type, S, P) @@ -88,8 +93,6 @@ def test_kmp(): Pattern = np.random.randint(1, 5, size = P).astype(np.uint8) KMP_next = np.zeros(P).astype(np.uint8) - debug_var = np.zeros(S).astype(np.uint8) - kmp_matches = np.zeros(1).astype(np.uint8) mod = sch.build() @@ -98,10 +101,8 @@ def test_kmp(): mod(Pattern, Input_str, KMP_next, kmp_matches) np.testing.assert_allclose(kmp_matches[0], kmp_matches_ref, rtol=1e-5, atol=1e-5) + print("PASS!") -test_kmp() - - - - +if __name__ == "__main__": + test_kmp("full") diff --git a/examples/machsuite/md/grid/md_kernel_test.py b/examples/machsuite/md/grid/md_kernel_test.py index 7daede0174..7fcac34b1a 100644 --- a/examples/machsuite/md/grid/md_kernel_test.py +++ b/examples/machsuite/md/grid/md_kernel_test.py @@ -1,17 +1,19 @@ -import md +import os +import sys +import json import allo import numpy as np -import os -blockSide = 4 -densityFactor = 10 -domainEdge = 20.0 -blockEdge = domainEdge / blockSide +_dir = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, _dir) +import md + lj1 = 1.5 lj2 = 2.0 +domainEdge = 20.0 -def md_force_ref(n_points, pos_x, pos_y, pos_z): +def md_force_ref(n_points, pos_x, pos_y, pos_z, blockSide): """Python reference for MD grid force computation.""" force_x = np.zeros_like(pos_x) force_y = np.zeros_like(pos_y) @@ -51,7 +53,23 @@ def md_force_ref(n_points, pos_x, pos_y, pos_z): return force_x, force_y, force_z -if __name__ == "__main__": +def test_md_grid(psize="small"): + setting_path = os.path.join(os.path.dirname(__file__), "..", "..", "psize.json") + with open(setting_path, "r") as fp: + sizes = json.load(fp) + params = sizes["md_grid"][psize] + + blockSide = params["blockSide"] + densityFactor = params["densityFactor"] + blockEdge = domainEdge / blockSide + + # Patch md module constants + md.blockSide = blockSide + md.densityFactor = densityFactor + md.domainEdge = domainEdge + md.blockEdge = blockEdge + md.nBlocks = blockSide * blockSide * blockSide + np.random.seed(42) # Generate random atom positions within grid blocks @@ -79,9 +97,13 @@ def md_force_ref(n_points, pos_x, pos_y, pos_z): forceY = mod_y(np_n_points, np_pos_x, np_pos_y, np_pos_z) forceZ = mod_z(np_n_points, np_pos_x, np_pos_y, np_pos_z) - check_x, check_y, check_z = md_force_ref(np_n_points, np_pos_x, np_pos_y, np_pos_z) + check_x, check_y, check_z = md_force_ref(np_n_points, np_pos_x, np_pos_y, np_pos_z, blockSide) np.testing.assert_allclose(forceX, check_x, rtol=1e-5, atol=1e-5) np.testing.assert_allclose(forceY, check_y, rtol=1e-5, atol=1e-5) np.testing.assert_allclose(forceZ, check_z, rtol=1e-5, atol=1e-5) print("PASS!") + + +if __name__ == "__main__": + test_md_grid("full") diff --git a/examples/machsuite/md/knn/md_kernel_test.py b/examples/machsuite/md/knn/md_kernel_test.py index a52a845219..97e7a4d4c9 100644 --- a/examples/machsuite/md/knn/md_kernel_test.py +++ b/examples/machsuite/md/knn/md_kernel_test.py @@ -1,16 +1,19 @@ -import md +import os +import sys +import json import allo import numpy as np -import os -nAtoms = 256 -maxNeighbors = 16 +_dir = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, _dir) +import md + domainEdge = 20.0 lj1 = 1.5 lj2 = 2.0 -def md_knn_force_ref(pos_x, pos_y, pos_z, NL): +def md_knn_force_ref(pos_x, pos_y, pos_z, NL, nAtoms, maxNeighbors): """Python reference for MD KNN force computation.""" force_x = np.zeros(nAtoms, dtype=np.float64) force_y = np.zeros(nAtoms, dtype=np.float64) @@ -43,7 +46,19 @@ def md_knn_force_ref(pos_x, pos_y, pos_z, NL): return force_x, force_y, force_z -if __name__ == "__main__": +def test_md_knn(psize="small"): + setting_path = os.path.join(os.path.dirname(__file__), "..", "..", "psize.json") + with open(setting_path, "r") as fp: + sizes = json.load(fp) + params = sizes["md_knn"][psize] + + nAtoms = params["nAtoms"] + maxNeighbors = params["maxNeighbors"] + + # Patch md module constants + md.nAtoms = nAtoms + md.maxNeighbors = maxNeighbors + np.random.seed(42) # Generate random atom positions @@ -71,9 +86,13 @@ def md_knn_force_ref(pos_x, pos_y, pos_z, NL): forceY = mod_y(np_pos_x, np_pos_y, np_pos_z, np_NL) forceZ = mod_z(np_pos_x, np_pos_y, np_pos_z, np_NL) - check_x, check_y, check_z = md_knn_force_ref(np_pos_x, np_pos_y, np_pos_z, np_NL) + check_x, check_y, check_z = md_knn_force_ref(np_pos_x, np_pos_y, np_pos_z, np_NL, nAtoms, maxNeighbors) np.testing.assert_allclose(forceX, check_x, rtol=1e-5, atol=1e-5) np.testing.assert_allclose(forceY, check_y, rtol=1e-5, atol=1e-5) np.testing.assert_allclose(forceZ, check_z, rtol=1e-5, atol=1e-5) print("PASS!") + + +if __name__ == "__main__": + test_md_knn("full") diff --git a/examples/machsuite/merge/mergesort.py b/examples/machsuite/merge/mergesort.py index 7414382c83..09cd526ed4 100644 --- a/examples/machsuite/merge/mergesort.py +++ b/examples/machsuite/merge/mergesort.py @@ -58,12 +58,13 @@ def merge_sort(a:int32[N]) -> int32[N]: return a -s = allo.customize(merge_sort) -mod = s.build() - -# Test -a = np.random.randint(0, 10000, N).astype(np.int32) -result = mod(a) -expected = np.sort(a).astype(np.int32) -np.testing.assert_array_equal(result, expected) -print("PASS!") \ No newline at end of file +if __name__ == "__main__": + s = allo.customize(merge_sort) + mod = s.build() + + # Test + a = np.random.randint(0, 10000, N).astype(np.int32) + result = mod(a) + expected = np.sort(a).astype(np.int32) + np.testing.assert_array_equal(result, expected) + print("PASS!") \ No newline at end of file diff --git a/examples/machsuite/merge/testing.py b/examples/machsuite/merge/testing.py index 289c630c9c..214dc8b83d 100644 --- a/examples/machsuite/merge/testing.py +++ b/examples/machsuite/merge/testing.py @@ -1,19 +1,28 @@ import os import sys +import json import allo import numpy as np from allo.ir.types import int32 _dir = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, _dir) -from mergesort import merge_sort +import mergesort -def main(): +def test_merge(psize="small"): + setting_path = os.path.join(os.path.dirname(__file__), "..", "psize.json") + with open(setting_path, "r") as fp: + sizes = json.load(fp) + params = sizes["merge"][psize] + + N = params["N"] + mergesort.N = N + np.random.seed(42) - values = np.random.randint(0, 100000, size=2048).astype(np.int32) + values = np.random.randint(0, 100000, size=N).astype(np.int32) - s = allo.customize(merge_sort) + s = allo.customize(mergesort.merge_sort) mod = s.build() actual = mod(values) @@ -23,4 +32,4 @@ def main(): if __name__ == "__main__": - main() + test_merge("full") diff --git a/examples/machsuite/nw/__init__.py b/examples/machsuite/nw/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/machsuite/nw/test_nw.py b/examples/machsuite/nw/test_nw.py index edf230243e..52b09ca424 100644 --- a/examples/machsuite/nw/test_nw.py +++ b/examples/machsuite/nw/test_nw.py @@ -3,12 +3,13 @@ import os import sys +import json import numpy as np import allo _dir = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, _dir) -from nw import needwun, ALEN, BLEN, RESULT_LEN +import nw def nw_reference(seq_a, seq_b): @@ -91,7 +92,23 @@ def nw_reference(seq_a, seq_b): return result -def test_nw(): +def test_nw(psize="small"): + setting_path = os.path.join(os.path.dirname(__file__), "..", "psize.json") + with open(setting_path, "r") as fp: + sizes = json.load(fp) + params = sizes["nw"][psize] + + ALEN = params["ALEN"] + BLEN = params["BLEN"] + RESULT_LEN = ALEN + BLEN + MATRIX_SIZE = (ALEN + 1) * (BLEN + 1) + + # Patch nw module constants + nw.ALEN = ALEN + nw.BLEN = BLEN + nw.RESULT_LEN = RESULT_LEN + nw.MATRIX_SIZE = MATRIX_SIZE + np.random.seed(42) # Generate random DNA-like sequences @@ -100,7 +117,7 @@ def test_nw(): seq_b = np.array([alphabet[i] for i in np.random.randint(0, 4, size=BLEN)], dtype=np.int32) # Build and run - s = allo.customize(needwun) + s = allo.customize(nw.needwun) mod = s.build() out = mod(seq_a, seq_b) @@ -111,4 +128,4 @@ def test_nw(): print("PASS!") if __name__ == "__main__": - test_nw() + test_nw("full") diff --git a/examples/machsuite/psize.json b/examples/machsuite/psize.json new file mode 100644 index 0000000000..5ca62882e6 --- /dev/null +++ b/examples/machsuite/psize.json @@ -0,0 +1,20 @@ +{ + "aes": { "full": {}, "small": {} }, + "backprop": { "full": {"INPUT_DIMENSION": 13, "POSSIBLE_OUTPUTS": 3, "TRAINING_SETS": 163, "NODES_PER_LAYER": 64}, "small": {"INPUT_DIMENSION": 13, "POSSIBLE_OUTPUTS": 3, "TRAINING_SETS": 16, "NODES_PER_LAYER": 8} }, + "bfs": { "full": {"N_NODES": 256, "N_EDGES": 4096, "N_LEVELS": 10}, "small": {"N_NODES": 32, "N_EDGES": 256, "N_LEVELS": 6} }, + "fft_strided": { "full": {"FFT_SIZE": 1024}, "small": {"FFT_SIZE": 64} }, + "fft_transpose": { "full": {"SIZE": 512}, "small": {"SIZE": 512} }, + "gemm_ncubed": { "full": {"N": 64}, "small": {"N": 64} }, + "gemm_blocked": { "full": {"M": 1024, "N": 1024, "K": 1024, "S": 8}, "small": {"M": 32, "N": 32, "K": 32, "S": 8} }, + "kmp": { "full": {"S": 100, "P": 100}, "small": {"S": 32, "P": 16} }, + "md_grid": { "full": {"blockSide": 4, "densityFactor": 10}, "small": {"blockSide": 2, "densityFactor": 4} }, + "md_knn": { "full": {"nAtoms": 256, "maxNeighbors": 16}, "small": {"nAtoms": 32, "maxNeighbors": 4} }, + "merge": { "full": {"N": 2048}, "small": {"N": 64} }, + "nw": { "full": {"ALEN": 128, "BLEN": 128}, "small": {"ALEN": 16, "BLEN": 16} }, + "radix": { "full": {"SIZE": 2048}, "small": {"SIZE": 64} }, + "spmv_crs": { "full": {"N": 494, "NNZ": 1666}, "small": {"N": 32, "NNZ": 96} }, + "spmv_ellpack": { "full": {"N": 494, "L": 10}, "small": {"N": 32, "L": 4} }, + "stencil2d": { "full": {"row_size": 128, "col_size": 64}, "small": {"row_size": 16, "col_size": 8} }, + "stencil3d": { "full": {"height_size": 32, "col_size": 32, "row_size": 16}, "small": {"height_size": 8, "col_size": 8, "row_size": 4} }, + "viterbi": { "full": {"N_OBS": 140, "N_STATES": 64, "N_TOKENS": 64}, "small": {"N_OBS": 20, "N_STATES": 8, "N_TOKENS": 8} } +} diff --git a/examples/machsuite/sort/__init__.py b/examples/machsuite/sort/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/machsuite/sort/radix/__init__.py b/examples/machsuite/sort/radix/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/machsuite/sort/radix/test_radix.py b/examples/machsuite/sort/radix/test_radix.py index 50461710b5..82cac89422 100644 --- a/examples/machsuite/sort/radix/test_radix.py +++ b/examples/machsuite/sort/radix/test_radix.py @@ -3,18 +3,36 @@ import os import sys +import json import numpy as np import allo _dir = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, _dir) -from radix_sort import ss_sort, SIZE +import radix_sort + + +def test_radix_sort(psize="small"): + setting_path = os.path.join(os.path.dirname(__file__), "..", "..", "psize.json") + with open(setting_path, "r") as fp: + sizes = json.load(fp) + params = sizes["radix"][psize] + + SIZE = params["SIZE"] + + # Patch module constants and derived values + radix_sort.SIZE = SIZE + radix_sort.NUMOFBLOCKS = SIZE // 4 + radix_sort.ELEMENTSPERBLOCK = 4 + radix_sort.RADIXSIZE = 4 + radix_sort.BUCKETSIZE = radix_sort.NUMOFBLOCKS * radix_sort.RADIXSIZE + radix_sort.SCAN_BLOCK = 16 + radix_sort.SCAN_RADIX = radix_sort.BUCKETSIZE // radix_sort.SCAN_BLOCK -def test_radix_sort(): np.random.seed(42) np_input = np.random.randint(0, 100000, size=SIZE).astype(np.int32) - s = allo.customize(ss_sort) + s = allo.customize(radix_sort.ss_sort) mod = s.build() result = mod(np_input) @@ -23,4 +41,4 @@ def test_radix_sort(): print("PASS!") if __name__ == "__main__": - test_radix_sort() + test_radix_sort("full") diff --git a/examples/machsuite/spmv/crs/run_test.py b/examples/machsuite/spmv/crs/run_test.py index 57089ef5f8..bea4cef452 100644 --- a/examples/machsuite/spmv/crs/run_test.py +++ b/examples/machsuite/spmv/crs/run_test.py @@ -1,11 +1,12 @@ import os import sys +import json import allo import numpy as np _dir = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, _dir) -from crs import crs, N, NNZ +import crs as crs_mod def generate_sparse_crs(n, nnz, rng): @@ -29,7 +30,19 @@ def generate_sparse_crs(n, nnz, rng): return values, columns, rows -if __name__ == "__main__": +def test_spmv_crs(psize="small"): + setting_path = os.path.join(os.path.dirname(__file__), "..", "..", "psize.json") + with open(setting_path, "r") as fp: + sizes = json.load(fp) + params = sizes["spmv_crs"][psize] + + N = params["N"] + NNZ = params["NNZ"] + + # Patch module constants + crs_mod.N = N + crs_mod.NNZ = NNZ + rng = np.random.default_rng(42) values, columns, rows = generate_sparse_crs(N, NNZ, rng) @@ -42,9 +55,13 @@ def generate_sparse_crs(n, nnz, rng): dense[i, columns[j]] = values[j] expected = dense @ vector - s = allo.customize(crs) + s = allo.customize(crs_mod.crs) mod = s.build() actual = mod(values, columns, rows, vector) np.testing.assert_allclose(actual, expected, rtol=1e-5, atol=1e-5) print("PASS!") + + +if __name__ == "__main__": + test_spmv_crs("full") diff --git a/examples/machsuite/spmv/ellpack/ellpack.py b/examples/machsuite/spmv/ellpack/ellpack.py index 3526ab922c..aa854b2c6f 100644 --- a/examples/machsuite/spmv/ellpack/ellpack.py +++ b/examples/machsuite/spmv/ellpack/ellpack.py @@ -2,10 +2,6 @@ import numpy as np from allo.ir.types import int32, float64 -# Generate a random size for a matrix -r = np.random.randint(1, 10) -c = np.random.randint(1, 10) - N = 494 # Number of rows L = 10 # Number of non zero entries in row @@ -15,54 +11,10 @@ def ellpack(NZ: float64[N*L], cols: int32[N*L], vec: float64[N]) -> float64[N]: for i, j in allo.grid(N, L): if cols[j + i*L] != -1: # For rows with fewer than L non zero entries out[i] += NZ[j + i*L] * vec[cols[j + i*L]] - - return out - -s = allo.customize(ellpack) -mod = s.build() -# print(s.module) - - - -## Testing -# Generating Random Sparse Matrix -upperbound = [] -for i in range(r): - upperbound.append([np.random.randint(1,np.random.randint(2,10))]) - -rMatrix = np.random.randint(0, high=upperbound, size=(len(upperbound), c)).astype(np.int32) - -# Generating Random Vector -vector = np.random.randint(0, 100, (c)).astype(np.int32) - - -# Applying Ellpack Format -def ellpack_format(matrix): - values = [] - columns = [] - - - for i in range(len(matrix)): - for j in range(len(matrix[i])): - if matrix[i][j] != 0: - columns.append(j) - else: - columns.append(-1) - values.append(matrix[i][j]) - - values = np.array(values).astype(np.float64) - columns = np.array(columns).astype(np.int32) - - return (values, columns) - -values, columns = ellpack_format(rMatrix) - -# expected = np.matmul(rMatrix, vector) -# observed = mod(values, columns, vector) - -# np.testing.assert_allclose(observed, expected, rtol=1e-5, atol=1e-5) - - - + return out +if __name__ == "__main__": + s = allo.customize(ellpack) + mod = s.build() + print(s.module) diff --git a/examples/machsuite/spmv/ellpack/run_test.py b/examples/machsuite/spmv/ellpack/run_test.py index ccf5b5efce..db466dc6cb 100644 --- a/examples/machsuite/spmv/ellpack/run_test.py +++ b/examples/machsuite/spmv/ellpack/run_test.py @@ -1,11 +1,12 @@ import os import sys +import json import allo import numpy as np _dir = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, _dir) -from ellpack import ellpack, N, L +import ellpack as ellpack_mod def generate_sparse_ellpack(n, l, rng): @@ -22,7 +23,19 @@ def generate_sparse_ellpack(n, l, rng): return values, columns -if __name__ == "__main__": +def test_spmv_ellpack(psize="small"): + setting_path = os.path.join(os.path.dirname(__file__), "..", "..", "psize.json") + with open(setting_path, "r") as fp: + sizes = json.load(fp) + params = sizes["spmv_ellpack"][psize] + + N = params["N"] + L = params["L"] + + # Patch module constants + ellpack_mod.N = N + ellpack_mod.L = L + rng = np.random.default_rng(42) values, columns = generate_sparse_ellpack(N, L, rng) @@ -35,9 +48,13 @@ def generate_sparse_ellpack(n, l, rng): dense[i, columns[i * L + j]] = values[i * L + j] expected = dense @ vector - s = allo.customize(ellpack) + s = allo.customize(ellpack_mod.ellpack) mod = s.build() observed = mod(values, columns, vector) np.testing.assert_allclose(observed, expected, rtol=1e-5, atol=1e-5) print("PASS!") + + +if __name__ == "__main__": + test_spmv_ellpack("full") diff --git a/examples/machsuite/stencil/__init__.py b/examples/machsuite/stencil/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/machsuite/stencil/stencil2d.py b/examples/machsuite/stencil/stencil2d.py index 9c8d311212..60921ca540 100644 --- a/examples/machsuite/stencil/stencil2d.py +++ b/examples/machsuite/stencil/stencil2d.py @@ -16,24 +16,25 @@ def stencil2d(orig: int32[row_size, col_size], filter: int32[f_size] ) -> int32[ sol[i, j] = temp return sol -s = allo.customize(stencil2d) -mod = s.build(target="llvm") +if __name__ == "__main__": + s = allo.customize(stencil2d) + mod = s.build(target="llvm") -np.random.seed(42) -np_orig = np.random.randint(0, 100, (row_size, col_size)).astype(np.int32) -np_filter = np.random.randint(0, 10, (f_size,)).astype(np.int32) + np.random.seed(42) + np_orig = np.random.randint(0, 100, (row_size, col_size)).astype(np.int32) + np_filter = np.random.randint(0, 10, (f_size,)).astype(np.int32) -np_sol = mod(np_orig, np_filter) + np_sol = mod(np_orig, np_filter) -# Python reference -ref_sol = np.zeros((row_size, col_size), dtype=np.int32) -for r in range(row_size - 2): - for c in range(col_size - 2): - temp = 0 - for k1 in range(3): - for k2 in range(3): - temp += np_filter[k1 * 3 + k2] * np_orig[r + k1, c + k2] - ref_sol[r, c] = temp + # Python reference + ref_sol = np.zeros((row_size, col_size), dtype=np.int32) + for r in range(row_size - 2): + for c in range(col_size - 2): + temp = 0 + for k1 in range(3): + for k2 in range(3): + temp += np_filter[k1 * 3 + k2] * np_orig[r + k1, c + k2] + ref_sol[r, c] = temp -np.testing.assert_allclose(np_sol, ref_sol, rtol=1e-5, atol=1e-5) -print("PASS!") + np.testing.assert_allclose(np_sol, ref_sol, rtol=1e-5, atol=1e-5) + print("PASS!") diff --git a/examples/machsuite/stencil/stencil3d.py b/examples/machsuite/stencil/stencil3d.py index fe82865ff0..37b15653b2 100644 --- a/examples/machsuite/stencil/stencil3d.py +++ b/examples/machsuite/stencil/stencil3d.py @@ -41,48 +41,49 @@ def stencil3d(C: int32[2], orig: int32[row_size, col_size, height_size]) -> int3 return sol -s = allo.customize(stencil3d) -mod = s.build(target="llvm") +if __name__ == "__main__": + s = allo.customize(stencil3d) + mod = s.build(target="llvm") -np.random.seed(42) -np_C = np.random.randint(1, 5, size=2).astype(np.int32) -np_orig = np.random.randint(0, 100, (row_size, col_size, height_size)).astype(np.int32) + np.random.seed(42) + np_C = np.random.randint(1, 5, size=2).astype(np.int32) + np_orig = np.random.randint(0, 100, (row_size, col_size, height_size)).astype(np.int32) -np_sol = mod(np_C, np_orig) + np_sol = mod(np_C, np_orig) -# Python reference -ref_sol = np.zeros((row_size, col_size, height_size), dtype=np.int32) + # Python reference + ref_sol = np.zeros((row_size, col_size, height_size), dtype=np.int32) -# Boundary: top/bottom height planes -for j in range(col_size): - for k in range(row_size): - ref_sol[k, j, 0] = np_orig[k, j, 0] - ref_sol[k, j, height_size - 1] = np_orig[k, j, height_size - 1] + # Boundary: top/bottom height planes + for j in range(col_size): + for k in range(row_size): + ref_sol[k, j, 0] = np_orig[k, j, 0] + ref_sol[k, j, height_size - 1] = np_orig[k, j, height_size - 1] -# Boundary: front/back col planes -for i in range(height_size - 1): - for k in range(row_size): - ref_sol[k, 0, i+1] = np_orig[k, 0, i+1] - ref_sol[k, col_size - 1, i+1] = np_orig[k, col_size - 1, i+1] + # Boundary: front/back col planes + for i in range(height_size - 1): + for k in range(row_size): + ref_sol[k, 0, i+1] = np_orig[k, 0, i+1] + ref_sol[k, col_size - 1, i+1] = np_orig[k, col_size - 1, i+1] -# Boundary: left/right row planes -for j in range(col_size - 2): - for i in range(height_size - 2): - ref_sol[0, j+1, i+1] = np_orig[0, j+1, i+1] - ref_sol[row_size - 1, j+1, i+1] = np_orig[row_size - 1, j+1, i+1] - -# Interior stencil -for i in range(height_size - 2): + # Boundary: left/right row planes for j in range(col_size - 2): - for k in range(row_size - 2): - s0 = np_orig[k+1, j+1, i+1] - s1 = (np_orig[k+1, j+1, i+2] + - np_orig[k+1, j+1, i] + - np_orig[k+1, j+2, i+1] + - np_orig[k+1, j, i+1] + - np_orig[k+2, j+1, i+1] + - np_orig[k, j+1, i+1]) - ref_sol[k+1, j+1, i+1] = s0 * np_C[0] + s1 * np_C[1] - -np.testing.assert_allclose(np_sol, ref_sol, rtol=1e-5, atol=1e-5) -print("PASS!") + for i in range(height_size - 2): + ref_sol[0, j+1, i+1] = np_orig[0, j+1, i+1] + ref_sol[row_size - 1, j+1, i+1] = np_orig[row_size - 1, j+1, i+1] + + # Interior stencil + for i in range(height_size - 2): + for j in range(col_size - 2): + for k in range(row_size - 2): + s0 = np_orig[k+1, j+1, i+1] + s1 = (np_orig[k+1, j+1, i+2] + + np_orig[k+1, j+1, i] + + np_orig[k+1, j+2, i+1] + + np_orig[k+1, j, i+1] + + np_orig[k+2, j+1, i+1] + + np_orig[k, j+1, i+1]) + ref_sol[k+1, j+1, i+1] = s0 * np_C[0] + s1 * np_C[1] + + np.testing.assert_allclose(np_sol, ref_sol, rtol=1e-5, atol=1e-5) + print("PASS!") diff --git a/examples/machsuite/stencil/test_stencil.py b/examples/machsuite/stencil/test_stencil.py new file mode 100644 index 0000000000..3884dad733 --- /dev/null +++ b/examples/machsuite/stencil/test_stencil.py @@ -0,0 +1,114 @@ +import os +import sys +import json +import allo +import numpy as np + +_dir = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, _dir) +import stencil2d as stencil2d_mod +import stencil3d as stencil3d_mod + + +def test_stencil2d(psize="small"): + setting_path = os.path.join(os.path.dirname(__file__), "..", "psize.json") + with open(setting_path, "r") as fp: + sizes = json.load(fp) + params = sizes["stencil2d"][psize] + + row_size = params["row_size"] + col_size = params["col_size"] + + # Patch module constants + stencil2d_mod.row_size = row_size + stencil2d_mod.col_size = col_size + + s = allo.customize(stencil2d_mod.stencil2d) + mod = s.build(target="llvm") + + np.random.seed(42) + f_size = 9 + np_orig = np.random.randint(0, 100, (row_size, col_size)).astype(np.int32) + np_filter = np.random.randint(0, 10, (f_size,)).astype(np.int32) + + np_sol = mod(np_orig, np_filter) + + # Python reference + ref_sol = np.zeros((row_size, col_size), dtype=np.int32) + for r in range(row_size - 2): + for c in range(col_size - 2): + temp = 0 + for k1 in range(3): + for k2 in range(3): + temp += np_filter[k1 * 3 + k2] * np_orig[r + k1, c + k2] + ref_sol[r, c] = temp + + np.testing.assert_allclose(np_sol, ref_sol, rtol=1e-5, atol=1e-5) + print("Stencil2D PASS!") + + +def test_stencil3d(psize="small"): + setting_path = os.path.join(os.path.dirname(__file__), "..", "psize.json") + with open(setting_path, "r") as fp: + sizes = json.load(fp) + params = sizes["stencil3d"][psize] + + height_size = params["height_size"] + col_size = params["col_size"] + row_size = params["row_size"] + + # Patch module constants + stencil3d_mod.height_size = height_size + stencil3d_mod.col_size = col_size + stencil3d_mod.row_size = row_size + + s = allo.customize(stencil3d_mod.stencil3d) + mod = s.build(target="llvm") + + np.random.seed(42) + np_C = np.random.randint(1, 5, size=2).astype(np.int32) + np_orig = np.random.randint(0, 100, (row_size, col_size, height_size)).astype(np.int32) + + np_sol = mod(np_C, np_orig) + + # Python reference + ref_sol = np.zeros((row_size, col_size, height_size), dtype=np.int32) + + # Boundary: top/bottom height planes + for j in range(col_size): + for k in range(row_size): + ref_sol[k, j, 0] = np_orig[k, j, 0] + ref_sol[k, j, height_size - 1] = np_orig[k, j, height_size - 1] + + # Boundary: front/back col planes + for i in range(height_size - 1): + for k in range(row_size): + ref_sol[k, 0, i+1] = np_orig[k, 0, i+1] + ref_sol[k, col_size - 1, i+1] = np_orig[k, col_size - 1, i+1] + + # Boundary: left/right row planes + for j in range(col_size - 2): + for i in range(height_size - 2): + ref_sol[0, j+1, i+1] = np_orig[0, j+1, i+1] + ref_sol[row_size - 1, j+1, i+1] = np_orig[row_size - 1, j+1, i+1] + + # Interior stencil + for i in range(height_size - 2): + for j in range(col_size - 2): + for k in range(row_size - 2): + s0 = np_orig[k+1, j+1, i+1] + s1 = (np_orig[k+1, j+1, i+2] + + np_orig[k+1, j+1, i] + + np_orig[k+1, j+2, i+1] + + np_orig[k+1, j, i+1] + + np_orig[k+2, j+1, i+1] + + np_orig[k, j+1, i+1]) + ref_sol[k+1, j+1, i+1] = s0 * np_C[0] + s1 * np_C[1] + + np.testing.assert_allclose(np_sol, ref_sol, rtol=1e-5, atol=1e-5) + print("Stencil3D PASS!") + + +if __name__ == "__main__": + test_stencil2d("full") + test_stencil3d("full") diff --git a/examples/machsuite/test_machsuite.py b/examples/machsuite/test_machsuite.py new file mode 100644 index 0000000000..853687882b --- /dev/null +++ b/examples/machsuite/test_machsuite.py @@ -0,0 +1,112 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + +# MachSuite benchmark test suite +# Each test imports and runs the benchmark's test function with "small" problem sizes. +# Run with: pytest examples/machsuite/test_machsuite.py -v + +import importlib.util +import os +import sys + +_machsuite_dir = os.path.dirname(os.path.abspath(__file__)) + + +def _load_test(subdir, filename, func_name): + """Load a test function from a file using importlib to avoid package conflicts.""" + filepath = os.path.join(_machsuite_dir, subdir, filename) + # Ensure the file's directory is on sys.path for its local imports + filedir = os.path.dirname(filepath) + if filedir not in sys.path: + sys.path.insert(0, filedir) + # Clear potentially conflicting cached modules (e.g., 'md' used by both grid and knn) + for name in list(sys.modules): + mod = sys.modules[name] + if hasattr(mod, "__file__") and mod.__file__ and filedir in mod.__file__: + continue # keep modules from this directory + # Remove short module names that might conflict across sub-benchmarks + mod_file = getattr(mod, "__file__", None) + if mod_file and _machsuite_dir in mod_file and name.count(".") == 0: + if name not in ("allo", "numpy", "np", "os", "sys", "json", "math", "random"): + del sys.modules[name] + mod_name = f"machsuite_{subdir.replace('/', '_')}_{filename.replace('.py', '')}" + spec = importlib.util.spec_from_file_location(mod_name, filepath) + mod = importlib.util.module_from_spec(spec) + spec.loader.exec_module(mod) + return getattr(mod, func_name) + + +def test_aes(): + _load_test("aes", "run_test.py", "test_aes")() + + +def test_backprop(): + _load_test("backprop", "run_test.py", "test_backprop")("small") + + +def test_bfs_bulk(): + _load_test("bfs", "run_test.py", "test_bfs_bulk")("small") + + +def test_bfs_queue(): + _load_test("bfs", "run_test.py", "test_bfs_queue")("small") + + +def test_fft_strided(): + _load_test("fft/strided", "test_strided.py", "test_strided_fft")("small") + + +def test_fft_transpose(): + _load_test("fft/transpose", "test_transpose.py", "test_transpose_fft")("small") + + +def test_gemm_ncubed(): + _load_test("gemm", "testing.py", "test_gemm_ncubed")("small") + + +def test_gemm_blocked(): + _load_test("gemm", "testing_blocked.py", "test_gemm_blocked")("small") + + +def test_kmp(): + _load_test("kmp", "kmp.py", "test_kmp")("small") + + +def test_md_grid(): + _load_test("md/grid", "md_kernel_test.py", "test_md_grid")("small") + + +def test_md_knn(): + _load_test("md/knn", "md_kernel_test.py", "test_md_knn")("small") + + +def test_merge(): + _load_test("merge", "testing.py", "test_merge")("small") + + +def test_nw(): + _load_test("nw", "test_nw.py", "test_nw")("small") + + +def test_radix(): + _load_test("sort/radix", "test_radix.py", "test_radix_sort")("small") + + +def test_spmv_crs(): + _load_test("spmv/crs", "run_test.py", "test_spmv_crs")("small") + + +def test_spmv_ellpack(): + _load_test("spmv/ellpack", "run_test.py", "test_spmv_ellpack")("small") + + +def test_stencil2d(): + _load_test("stencil", "test_stencil.py", "test_stencil2d")("small") + + +def test_stencil3d(): + _load_test("stencil", "test_stencil.py", "test_stencil3d")("small") + + +def test_viterbi(): + _load_test("viterbi", "run_test.py", "test_viterbi")("small") diff --git a/examples/machsuite/viterbi/run_test.py b/examples/machsuite/viterbi/run_test.py new file mode 100644 index 0000000000..9cf1234340 --- /dev/null +++ b/examples/machsuite/viterbi/run_test.py @@ -0,0 +1,49 @@ +import os +import sys +import json +import allo +import numpy as np + +_dir = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, _dir) +import viterbi_allo +from viterbi import viterbi as viterbi_ref + + +def test_viterbi(psize="small"): + setting_path = os.path.join(os.path.dirname(__file__), "..", "psize.json") + with open(setting_path, "r") as fp: + sizes = json.load(fp) + params = sizes["viterbi"][psize] + + N_OBS = params["N_OBS"] + N_STATES = params["N_STATES"] + N_TOKENS = params["N_TOKENS"] + + # Patch module constants + viterbi_allo.N_OBS = N_OBS + viterbi_allo.N_STATES = N_STATES + viterbi_allo.N_TOKENS = N_TOKENS + + np.random.seed(42) + + # Generate random HMM parameters in -log probability space + init = np.random.rand(N_STATES).astype(np.float32) * 10.0 + transition = np.random.rand(N_STATES, N_STATES).astype(np.float32) * 10.0 + emission = np.random.rand(N_STATES, N_TOKENS).astype(np.float32) * 10.0 + obs = np.random.randint(0, N_TOKENS, size=N_OBS).astype(np.int32) + + s = allo.customize(viterbi_allo.viterbi) + mod = s.build() + + path = mod(obs, init, transition, emission) + + # Run Python reference for comparison + ref_path = viterbi_ref(obs, init, transition, emission) + + np.testing.assert_array_equal(path, ref_path) + print("PASS!") + + +if __name__ == "__main__": + test_viterbi("full") diff --git a/examples/machsuite/viterbi/viterbi_allo.py b/examples/machsuite/viterbi/viterbi_allo.py index 2075ce0bab..969ec0b367 100644 --- a/examples/machsuite/viterbi/viterbi_allo.py +++ b/examples/machsuite/viterbi/viterbi_allo.py @@ -52,21 +52,22 @@ def viterbi(obs: int32[N_OBS], init: float32[N_STATES], transition: float32[N_ST return path -np.random.seed(42) +if __name__ == "__main__": + np.random.seed(42) -# Generate random HMM parameters in -log probability space -init = np.random.rand(N_STATES).astype(np.float32) * 10.0 -transition = np.random.rand(N_STATES, N_STATES).astype(np.float32) * 10.0 -emission = np.random.rand(N_STATES, N_TOKENS).astype(np.float32) * 10.0 -obs = np.random.randint(0, N_TOKENS, size=N_OBS).astype(np.int32) + # Generate random HMM parameters in -log probability space + init = np.random.rand(N_STATES).astype(np.float32) * 10.0 + transition = np.random.rand(N_STATES, N_STATES).astype(np.float32) * 10.0 + emission = np.random.rand(N_STATES, N_TOKENS).astype(np.float32) * 10.0 + obs = np.random.randint(0, N_TOKENS, size=N_OBS).astype(np.int32) -s = allo.customize(viterbi) -mod = s.build() + s = allo.customize(viterbi) + mod = s.build() -path = mod(obs, init, transition, emission) + path = mod(obs, init, transition, emission) -# Run Python reference for comparison -ref_path = viterbi_ref(obs, init, transition, emission) + # Run Python reference for comparison + ref_path = viterbi_ref(obs, init, transition, emission) -np.testing.assert_array_equal(path, ref_path) -print("PASS!") + np.testing.assert_array_equal(path, ref_path) + print("PASS!") From dcd6ee4ffd38c465b7728bff8321f01194de0611 Mon Sep 17 00:00:00 2001 From: Niansong Zhang Date: Thu, 5 Feb 2026 20:06:56 -0500 Subject: [PATCH 06/16] [MachSuite] Remove unused files: debug scripts, HLS variants, duplicate mergesort dir Remove 14 files (680 lines) not used by the test suite: debug scripts (debug_aes.py, reproduce.py, no-code.py, neg_loop_step.py), file I/O helpers (support.py, read.py, write.py), HLS synthesis variants (*_opt.py), the duplicate mergesort/ directory, and setup-py312.sh. Move top-level imports of removed modules into __main__ guards in generate.py and viterbi.py. Co-Authored-By: Claude Opus 4.6 --- examples/machsuite/aes/debug_aes.py | 59 ------ examples/machsuite/bfs/generate.py | 2 +- examples/machsuite/bfs/support.py | 35 ---- examples/machsuite/gemm/gemm_blocked_opt.py | 23 --- examples/machsuite/gemm/gemm_ncubed_opt.py | 15 -- examples/machsuite/gemm/setup-py312.sh | 24 --- examples/machsuite/md/grid/md_opt.py | 173 ------------------ examples/machsuite/md/knn/md_opt.py | 42 ----- examples/machsuite/md/knn/no-code.py | 15 -- examples/machsuite/md/knn/reproduce.py | 17 -- examples/machsuite/mergesort/mergesort.py | 128 ------------- .../machsuite/mergesort/testing_backup.py | 79 -------- examples/machsuite/viterbi/neg_loop_step.py | 16 -- examples/machsuite/viterbi/read.py | 48 ----- examples/machsuite/viterbi/viterbi.py | 3 +- examples/machsuite/viterbi/write.py | 6 - 16 files changed, 2 insertions(+), 683 deletions(-) delete mode 100644 examples/machsuite/aes/debug_aes.py delete mode 100644 examples/machsuite/bfs/support.py delete mode 100644 examples/machsuite/gemm/gemm_blocked_opt.py delete mode 100644 examples/machsuite/gemm/gemm_ncubed_opt.py delete mode 100644 examples/machsuite/gemm/setup-py312.sh delete mode 100644 examples/machsuite/md/grid/md_opt.py delete mode 100644 examples/machsuite/md/knn/md_opt.py delete mode 100644 examples/machsuite/md/knn/no-code.py delete mode 100644 examples/machsuite/md/knn/reproduce.py delete mode 100644 examples/machsuite/mergesort/mergesort.py delete mode 100644 examples/machsuite/mergesort/testing_backup.py delete mode 100644 examples/machsuite/viterbi/neg_loop_step.py delete mode 100644 examples/machsuite/viterbi/read.py delete mode 100644 examples/machsuite/viterbi/write.py diff --git a/examples/machsuite/aes/debug_aes.py b/examples/machsuite/aes/debug_aes.py deleted file mode 100644 index 550d56019d..0000000000 --- a/examples/machsuite/aes/debug_aes.py +++ /dev/null @@ -1,59 +0,0 @@ -import allo -import numpy as np -from allo.ir.types import uint8, index - -def rj_sbox(x: index) -> uint8: - sbox: uint8[256] = [ - 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, - 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, - 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, - 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, - 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, - 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, - 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, - 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, - 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, - 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, - 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, - 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, - 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, - 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, - 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, - 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, - 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, - 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, - 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, - 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, - 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, - 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, - 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, - 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, - 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, - 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, - 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, - 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, - 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, - 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, - 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, - 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16 - ] - - return sbox[x] - - -def top() -> uint8[256]: - res: uint8[256] - for i in range(256): - ii8: uint8 = i - res[i] = rj_sbox(ii8) - return res - - -s = allo.customize(top) -print(s.module) -module = s.build() -res_np = module() -print("shape of res_np is: ") -print(res_np.shape) -# print as hex -print(','.join([f'{x:02x}' for x in res_np])) \ No newline at end of file diff --git a/examples/machsuite/bfs/generate.py b/examples/machsuite/bfs/generate.py index b1ede40131..c0f876dd39 100644 --- a/examples/machsuite/bfs/generate.py +++ b/examples/machsuite/bfs/generate.py @@ -1,5 +1,4 @@ import random -from support import write_data_to_file # Constants A = 57 B = 19 @@ -78,5 +77,6 @@ def generate_random_graph(): if __name__ == "__main__": + from support import write_data_to_file generated_data = generate_random_graph() write_data_to_file(generated_data) diff --git a/examples/machsuite/bfs/support.py b/examples/machsuite/bfs/support.py deleted file mode 100644 index 9193fc5657..0000000000 --- a/examples/machsuite/bfs/support.py +++ /dev/null @@ -1,35 +0,0 @@ -def write_data_to_file(data, filename="input.data"): - with open(filename, 'w') as f: - f.write(f"%%\n{data['starting_node']}\n") - f.write(f"%%\n") - for node in data['nodes']: - f.write(f"{node.edge_begin}\n{node.edge_end}\n") - f.write(f"%%\n") - for edge in data['edges']: - f.write(f"{edge.dst}\n") - -def write_data_to_file_2(data, filename="check.data"): - with open(filename, 'w') as f: - f.write(f"%%\n") - for item in data: - f.write(f"{item}\n") - - -def read_data_from_file(filename="input.data"): - data = {'nodes': [], 'edges': [], 'starting_node':[]} - count = 0 - - with open(filename, 'r') as f: - for line in f: - line = line.strip() - - if line.startswith("%"): - count += 1 - elif count == 1: - data['starting_node'].append(int(line)) - elif count == 2: - data['nodes'].append(int(line)) - elif count == 3: - data['edges'].append(int(line)) - - return data diff --git a/examples/machsuite/gemm/gemm_blocked_opt.py b/examples/machsuite/gemm/gemm_blocked_opt.py deleted file mode 100644 index 3b921fd12f..0000000000 --- a/examples/machsuite/gemm/gemm_blocked_opt.py +++ /dev/null @@ -1,23 +0,0 @@ -import allo -from allo.ir.types import int32 -import numpy as np - - -def bbgemm(A: int32[64, 64], B: int32[64, 64]) -> int32[64, 64]: - C: int32[64, 64] = 0 - sum_value: int32[1] = 0 - - for i in range(0, 64, 8): - for j in range(0, 64, 8): - for k in range(0, 64, 8): - for ii in range(i, (i + 8) if (i + 8) < 64 else 64): - for jj in range(j, (j + 8) if (j + 8) < 64 else 64): - sum_value[0] = 0 - for kk in range(k, (k + 8) if (k + 8) < 64 else 64): - sum_value[0] += A[ii, kk] * B[kk, jj] - C[ii, jj] += sum_value[0] - return C - -s = allo.customize(bbgemm) -mod =s.build(target="vivado_hls", mode="csynth", project="gemm_blocked.prj") -# print(s.module) \ No newline at end of file diff --git a/examples/machsuite/gemm/gemm_ncubed_opt.py b/examples/machsuite/gemm/gemm_ncubed_opt.py deleted file mode 100644 index 584c4710d3..0000000000 --- a/examples/machsuite/gemm/gemm_ncubed_opt.py +++ /dev/null @@ -1,15 +0,0 @@ -import allo -from allo.ir.types import int32 -import numpy as np -# M, N, K = 1024, 1024, 1024 - -def gemm(A: int32[64, 64], B: int32[64, 64]) -> int32[M, N]: - C: int32[64, 64] = 0.0 - for i, j in allo.grid(64, 64): - for k in allo.reduction(64): - C[i, j] += A[i, k] * B[k, j] - return C - -s = allo.customize(gemm) -mod =s.build(target="vitis_hls", mode="hw", project="gemm_ncubed.prj") -print(s.module) \ No newline at end of file diff --git a/examples/machsuite/gemm/setup-py312.sh b/examples/machsuite/gemm/setup-py312.sh deleted file mode 100644 index d0179f279f..0000000000 --- a/examples/machsuite/gemm/setup-py312.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -# Enable gcc-7 -source /opt/rh/devtoolset-7/enable - -# LLVM -export LLVM_HOME=/work/shared/users/common/llvm-project-18.x -export PREFIX=$LLVM_HOME -export LLVM_BUILD_DIR=$LLVM_HOME/build-patch -export LLVM_SYMBOLIZER_PATH=${LLVM_BUILD_DIR}/bin/llvm-symbolizer -export PATH=$LLVM_BUILD_DIR/bin:$PATH -# LLVM Python Bindings -export PYTHONPATH=$LLVM_HOME/build/tools/mlir/python_packages/mlir_core:$PYTHONPATH - -# HCL dialect -export HCL_DIALECT_BUILD_DIR=/work/shared/users/common/hcl-dialect-18.x/build-py312 -export PYTHONPATH=${HCL_DIALECT_BUILD_DIR}/tools/hcl/python_packages/hcl_core:${PYTHONPATH} -export PATH=${HCL_DIALECT_BUILD_DIR}/bin:$PATH - -# HCL Runtime Library -export LD_LIBRARY_PATH=${HCL_DIALECT_BUILD_DIR}/lib:$LD_LIBRARY_PATH - -# Allo package -# Please intall by yourself \ No newline at end of file diff --git a/examples/machsuite/md/grid/md_opt.py b/examples/machsuite/md/grid/md_opt.py deleted file mode 100644 index 7bd3cadf3f..0000000000 --- a/examples/machsuite/md/grid/md_opt.py +++ /dev/null @@ -1,173 +0,0 @@ -import allo -from allo.ir.types import int32, float32 -import allo.ir.types as T -import os -import json -import pytest -import numpy as np - -# Define MIN and MAX functions to replicate the C macros -nAtoms:int32=256 -domainEdge:float32=20.0 -blockSide:int32=4 -nBlocks:int32=blockSide*blockSide*blockSide -blockEdge:float32=domainEdge/blockSide -densityFactor:int32=10 -lj1:float32=1.5 -lj2:float32=2.0 - - - -def md_top(concrete_type,N,M): - - def md[T: (float32, int32), N: int32 , M:int32 - ](n_points:"T[N,N,N]",position_x:"T[N,N,N,M]", - position_y:"T[N,N,N,M]",position_z:"T[N,N,N,M]", - force_x:"T[N,N,N,M]",force_y:"T[N,N,N,M]", - force_z:"T[N,N,N,M]"): - b1_x_hi:int32 - b1_x_lo:int32 - b1_y_hi:int32 - b1_y_lo:int32 - b1_z_hi:int32 - b1_z_lo:int32 - p_x:float32 - p_y:float32 - p_z:float32 - sum_x:float32 - sum_y:float32 - sum_z:float32 - q_z:float32 - q_x:float32 - q_y:float32 - dx:float32 - dy:float32 - dz:float32 - r2inv:float32 - r6inv:float32 - potential:float32 - f:float32 - - - # Iterate over the grid, block by block - for b0_x in allo.grid(N): - for b0_y in allo.grid(N): - for b0_z in allo.grid(N): - if(b0_x==1): - b1_x_lo=0 - else: - b1_x_lo=b0_x-1 - if(b0_y==1): - b1_y_lo=0 - else: - b1_y_lo=b0_y-1 - if(b0_z==1): - b1_z_lo=0 - else: - b1_z_lo=b0_z-1 - if(b0_x==N-1): - b1_x_hi=N - else: - b1_x_hi=b0_x+2 - if(b0_y==N-1): - b1_y_hi=N - else: - b1_y_hi=b0_y+2 - if(b0_z==N-1): - b1_z_hi=N - else: - b1_z_hi=b0_z+2 - # Iterate over the 3x3x3 (modulo boundary conditions) cube of blocks around b0 - for b1_x in range(b1_x_lo, b1_x_hi): - for b1_y in range(b1_y_lo, b1_y_hi): - for b1_z in range(b1_z_lo, b1_z_hi): - #q_idx_range = n_points[b1_x,b1_y,b1_z] - # for i in range(densityFactor): - # base_q_x[i] = position_x[b1_x,b1_y,b1_z, i] - # base_q_y[i] = position_y[b1_x,b1_y,b1_z, i] - # base_q_z[i] = position_z[b1_x,b1_y,b1_z, i] - ub0: int32 = n_points[b1_x,b1_y,b1_z] - for p_idx in range(ub0): - p_x = position_x[b0_x,b0_y,b0_z,p_idx] - p_y = position_y[b0_x,b0_y,b0_z,p_idx] - p_z = position_z[b0_x,b0_y,b0_z,p_idx] - sum_x = force_x[b0_x,b0_y,b0_z,p_idx] - sum_y = force_y[b0_x,b0_y,b0_z,p_idx] - sum_z = force_z[b0_x,b0_y,b0_z,p_idx] - ub1: int32 = n_points[b1_x,b1_y,b1_z] - for q_idx in range(ub1): - q_x = position_x[b1_x,b1_y,b1_z, q_idx] - q_y = position_y[b1_x,b1_y,b1_z, q_idx] - q_z = position_z[b1_x,b1_y,b1_z, q_idx] - if (q_x != p_x or q_y != p_y or q_z != p_z): - dx = p_x - q_x - dy = p_y - q_y - dz = p_z - q_z - r2inv = 1.0 / (dx * dx + dy * dy + dz * dz) - else: - r2inv=(domainEdge*domainEdge*3.0)*1000 - r6inv = r2inv * r2inv * r2inv - potential = r6inv * (lj1 * r6inv - lj2) - f = r2inv * potential - sum_x += f * dx - sum_y += f * dy - sum_z += f * dz - - force_x[b0_x,b0_y,b0_z,p_idx]=sum_x - force_y[b0_x,b0_y,b0_z,p_idx]=sum_y - force_z[b0_x,b0_y,b0_z,p_idx]=sum_z - - sch=allo.customize(md, instantiate=[concrete_type,N,M]) - print(sch.module) - return sch - - -def parse_data(file):# refers to - data_arrays = [] - current_array = [] - - with open(file, 'r') as f: - for line in f: - if line.strip() == '%%': - if current_array: - data_arrays.append(current_array) - current_array = [] - else: - num = float(line.strip()) - current_array.append(num) - - data_arrays.append(current_array) - return data_arrays - -def test_md(): - N=4 - M=10 - concrete_type=float32 - sch=md_top(concrete_type,N,M) - mod=sch.build(target="vivado_hls",mode="csynth", project="grid.prj") - print(mod) - - input = parse_data("input.data") - check = parse_data("check.data") - check_x=np.array(check[0][0:640]).astype(np.float32).reshape((4,4,4,10)) - check_y=np.array(check[0][640:1280]).astype(np.float32).reshape((4,4,4,10)) - check_z=np.array(check[0][1280:1920]).astype(np.float32).reshape((4,4,4,10)) - - - force_x=np.zeros((4,4,4,10)).astype(np.float32) - force_y=np.zeros((4,4,4,10)).astype(np.float32) - force_z=np.zeros((4,4,4,10)).astype(np.float32) - n_points=np.array(input[0]).astype(np.int32).reshape((4,4,4)) - position_x = np.array(input[1][0:640]).astype(np.float32).reshape((4,4,4,10)) - position_y = np.array(input[1][640:1280]).astype(np.float32).reshape((4,4,4,10)) - position_z = np.array(input[1][1280:1920]).astype(np.float32).reshape((4,4,4,10)) - mod(n_points,position_x,position_y,position_z,force_x,force_y,force_z) - np.testing.assert_allclose(force_x,check_x, rtol=1e-5, atol=1e-5) - np.testing.assert_allclose(force_y,check_y, rtol=1e-5, atol=1e-5) - np.testing.assert_allclose(force_z,check_z, rtol=1e-5, atol=1e-5) - - - - -if __name__ == "__main__": - test_md() diff --git a/examples/machsuite/md/knn/md_opt.py b/examples/machsuite/md/knn/md_opt.py deleted file mode 100644 index e2150dffb8..0000000000 --- a/examples/machsuite/md/knn/md_opt.py +++ /dev/null @@ -1,42 +0,0 @@ -import allo -from allo.ir.types import int32 - -N = 256 -M = 16 - - -def compute_dist( - position_x: int32[N], - position_y: int32[N], - position_z: int32[N], - NL: int32[N, M], - del_x: int32[N], - del_y: int32[N], - del_z: int32[N], -): - for i0, j0 in allo.grid(N, M): - del_x[i0] = position_x[i0] - position_x[NL[i0, j0]] - del_y[i0] = position_y[i0] - position_y[NL[i0, j0]] - del_z[i0] = position_z[i0] - position_z[NL[i0, j0]] - - -def kernel_md( - position_x: int32[N], - position_y: int32[N], - position_z: int32[N], - NL: int32[N, M], - force_x: int32[N], - force_y: int32[N], - force_z: int32[N], -): - del_x: int32[N] - del_y: int32[N] - del_z: int32[N] - compute_dist(position_x, position_y, position_z, NL, del_x, del_y, del_z) - - -s0 = allo.customize(compute_dist) -s0.split("i0", factor=16) -s0.pipeline("i0.inner") -s = allo.customize(kernel_md) -s.compose(s0) diff --git a/examples/machsuite/md/knn/no-code.py b/examples/machsuite/md/knn/no-code.py deleted file mode 100644 index 15e3b105f8..0000000000 --- a/examples/machsuite/md/knn/no-code.py +++ /dev/null @@ -1,15 +0,0 @@ -import allo -from allo.ir.types import int32 - -N = 256 - -def compute( - x: int32[N], - y: int32[N] -): - for i in range(N): - y[i] = x[i] - -s = allo.customize(compute) -s.build(target="vitis_hls", mode="csim", project="test.prj") - diff --git a/examples/machsuite/md/knn/reproduce.py b/examples/machsuite/md/knn/reproduce.py deleted file mode 100644 index 8459e274c7..0000000000 --- a/examples/machsuite/md/knn/reproduce.py +++ /dev/null @@ -1,17 +0,0 @@ -import allo -from allo.ir.types import int32 - -N = 256 -M = 16 - -def compute_dist(x: int32[N], y: int32[N], z: int32[N], NL: int32[N, M], del_x: int32[N], del_y: int32[N], del_z: int32[N]): - for i in allo.grid(N): - for j in allo.grid(M): - del_x[i] = x[i] - x[NL[i, j]] - del_y[i] = y[i] - y[NL[i, j]] - del_z[i] = z[i] - z[NL[i, j]] - -s = allo.customize(compute_dist) -s.split("i",factor=16) -s.pipeline("i.inner") - diff --git a/examples/machsuite/mergesort/mergesort.py b/examples/machsuite/mergesort/mergesort.py deleted file mode 100644 index f5d4b5d975..0000000000 --- a/examples/machsuite/mergesort/mergesort.py +++ /dev/null @@ -1,128 +0,0 @@ - -""" -import allo -from allo.ir.types import int32 -import numpy as np - - -N = 10 #testing purpose -import numpy as np - -def merge_sort(a:int32[N]): - n:int32 = N - size:int32 = 1 - - while size < n - 1: - - left:int32 = 0 - - while left < n - 1: - mid:int32 = left + size - 1 - if(mid>n-1): - mid = n-1 - - right:int32 = left + 2 * size - 1 - if right>n-1: - right= n-1 - - if right >= n: - right = n - 1 - - merge(a, left, mid, right) #something wrong with the merge function - - left = left + size*2 - - size = size*2 - -def merge(a:int32[N], start: int32, mid: int32, stop: int32): - #temp:int32 = np.zeros(stop - start + 1, dtype=np.int32) #something wrong with this line - temp:int32[N] = 0 #changed to this but getting a runtime error saying unsupported node "List" - - i:int32 = start - j:int32 = mid + 1 - k:int32 = 0 - - - while i <= mid or j <= stop: - if j > stop or (i <= mid and a[i] <= a[j]): - temp[k] = a[i] - i += 1 - else: - temp[k] = a[j] - j += 1 - k += 1 - - #a[start:stop + 1] = temp[:k] - - for i in range(k): - a[start + i] = temp[i] - -test_array = np.array([1,2,3,4,5,9,8,7,6,0], dtype=np.int32) -merge_sort(test_array) -print("Sorted :", test_array) -s = allo.customize(merge_sort) -mod = s.build() -print(s.module) - - -""" - -import allo -from allo.ir.types import int32 -import numpy as np - - -N = 10 #testing purpose - -def merge_sort(a:int32[N]): - n:int32 = N - size:int32 = 1 - - while size < n - 1: - - left:int32 = 0 - - while left < n - 1: - mid:int32 = left + size - 1 - if(mid>n-1): - mid = n-1 - - right:int32 = left + 2 * size - 1 - if right>n-1: - right= n-1 - - if right >= n: - right = n - 1 - - merge(a, left, mid, right) - - left = left + size*2 - - size = size*2 - -def merge(a:int32[N], start: int32, mid: int32, stop: int32): - # temp:int32 = np.zeros(stop - start + 1, dtype=np.int32) - temp: int32[N] = 0 - - i:int32 = start - j:int32 = mid + 1 - k:int32 = 0 - - - while i <= mid or j <= stop: - if j > stop or (i <= mid and a[i] <= a[j]): - temp[k] = a[i] - i += 1 - else: - temp[k] = a[j] - j += 1 - k += 1 - - # a[start:stop + 1] = temp[:k] - for i in range(k): - a[start+i] = temp[i] - - -s = allo.customize(merge_sort) -mod = s.build() -print(s.module) \ No newline at end of file diff --git a/examples/machsuite/mergesort/testing_backup.py b/examples/machsuite/mergesort/testing_backup.py deleted file mode 100644 index 54c4c1022e..0000000000 --- a/examples/machsuite/mergesort/testing_backup.py +++ /dev/null @@ -1,79 +0,0 @@ -import allo -import numpy as np -from mergesort import merge_sort -from allo.ir.types import int32 - -N = 5 - -def merge(a, start, m, stop): - temp = np.zeros(N, dtype=np.int32) - for i in range(start, m + 1): - temp[i] = a[i] - for j in range(m+1, stop + 1): - temp[m + 1 + stop - j] = a[j] - - i = start - j = stop - for k in range(start, stop + 1): - tmp_j = temp[j] - tmp_i = temp[i] - if (tmp_j < tmp_i): - a[k] = tmp_j - j -= 1 - else: - a[k] = tmp_i - i += 1 - -def mergesort_reference(a): - start = 0 - stop = N - 1 - m = 1 - while m < stop-start + 1: - for i in range(start, stop, m+m): - f = i - mid = i + m - 1 - to = i + m + m - 1 - if to < stop: - merge(a, f, mid, to) - else: - merge(a, f, mid, stop) - m += m - return a - - -def read_data(filename): - with open(filename, 'r') as file: - lines = file.readlines() - data = [int(line.strip()) for line in lines if not line.startswith("%%")] - return data - -def main(): - # input_data = read_data("input1.data") - # check_data = read_data("check1.data") - - # values = np.array(input_data).astype(np.int32) - values = np.random.randint(0, 100, N).astype(np.int32) - - # check = np.array(check_data).astype(np.int32) - - check = values.copy() - check.sort() - - #print(values) - #print(check) - - # s = allo.customize(merge_sort) - - # mod = s.build() - - # actual = mod(values) - # print(actual) - - mergesort_reference(values) - - np.testing.assert_allclose(values, check, rtol=1e-5, atol=1e-5) - print("correct") - - -if __name__ == "__main__": - main() diff --git a/examples/machsuite/viterbi/neg_loop_step.py b/examples/machsuite/viterbi/neg_loop_step.py deleted file mode 100644 index 4d5f865993..0000000000 --- a/examples/machsuite/viterbi/neg_loop_step.py +++ /dev/null @@ -1,16 +0,0 @@ -import allo -from allo.ir.types import int32 - -N = 256 - -def compute( - x: int32[N], - y: int32[N] -): - for i in range(N-1, -1, -1): - y[i+1] = x[i+1] - - -s = allo.customize(compute) -print(s.module) - diff --git a/examples/machsuite/viterbi/read.py b/examples/machsuite/viterbi/read.py deleted file mode 100644 index d6de190d98..0000000000 --- a/examples/machsuite/viterbi/read.py +++ /dev/null @@ -1,48 +0,0 @@ -import numpy as np - -def read_viterbi_input(file_path): - with open(file_path, 'r') as file: - data = file.readlines() - - sections = [section.strip() for section in ''.join(data).split('%%') if section.strip()] - - if len(sections) != 4: - raise ValueError(f"File format error: expected 4 sections, but found {len(sections)}.") - - try: - obs_data = [float(num.strip()) for num in sections[0].split('\n') if num] - init_data = [float(num.strip()) for num in sections[1].split('\n') if num] - transition_data = [float(num.strip()) for num in sections[2].split('\n') if num] - emission_data = [float(num.strip()) for num in sections[3].split('\n') if num] - except Exception as e: - raise ValueError(f"Error parsing data: {e}") - - # Compute N_STATES by taking the square root of the length of the transition data - N_STATES = len(init_data) - - # Check if N_STATES is valid - if N_STATES * N_STATES != len(transition_data): - raise ValueError(f"Invalid transition matrix size: expected {N_STATES * N_STATES} elements, got {len(transition_data)}.") - - N_TOKENS = len(emission_data) // N_STATES - N_OBS = len(obs_data) - - # Reshape data into matrices and arrays - transition = np.array(transition_data).reshape((N_STATES, N_STATES)) - emission = np.array(emission_data).reshape((N_STATES, N_TOKENS)) - init = np.array(init_data) - obs = np.array(obs_data, dtype=int) - - return init, transition, emission, obs - -# file_path = 'input.data' -# try: -# init, transition, emission, obs = read_viterbi_input(file_path) - -# # Print the parsed sections for verification -# print("Initial probabilities (log-space):\n", init) -# print("Transition matrix (log-space):\n", transition) -# print("Emission matrix (log-space):\n", emission) -# print("Observations:\n", obs) -# except ValueError as e: -# print(f"An error occurred: {e}") diff --git a/examples/machsuite/viterbi/viterbi.py b/examples/machsuite/viterbi/viterbi.py index 68ca375caa..4ef599c49d 100644 --- a/examples/machsuite/viterbi/viterbi.py +++ b/examples/machsuite/viterbi/viterbi.py @@ -1,6 +1,4 @@ import numpy as np -from read import read_viterbi_input -from write import write_output_data def viterbi(obs, init, transition, emission): N_OBS = len(obs) # Number of observations @@ -49,6 +47,7 @@ def viterbi(obs, init, transition, emission): return path if __name__ == '__main__': + from read import read_viterbi_input inputfile = 'input.data' init, transition, emission, obs = read_viterbi_input(inputfile) diff --git a/examples/machsuite/viterbi/write.py b/examples/machsuite/viterbi/write.py deleted file mode 100644 index 7db185847d..0000000000 --- a/examples/machsuite/viterbi/write.py +++ /dev/null @@ -1,6 +0,0 @@ -def write_output_data(filename, path): - with open(filename, 'w') as f: - f.write("%%\n") - - for i in range(len(path)): - f.write(f"{path[i]}\n") From 5a62aaae1beaaeb5977df360186ca8866340f7ea Mon Sep 17 00:00:00 2001 From: Niansong Zhang Date: Thu, 5 Feb 2026 20:12:53 -0500 Subject: [PATCH 07/16] [CI] Add MachSuite benchmarks to CI pipeline Run the 19 MachSuite benchmark tests (small sizes) alongside the existing polybench benchmarks. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/config.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/config.yml b/.github/workflows/config.yml index af19b32a43..8f1a3dcbf4 100644 --- a/.github/workflows/config.yml +++ b/.github/workflows/config.yml @@ -70,6 +70,12 @@ jobs: source activate allo export LLVM_BUILD_DIR=/root/llvm-project/build python3 -m pytest examples/polybench -v + - name: MachSuite + shell: bash + run: | + source activate allo + export LLVM_BUILD_DIR=/root/llvm-project/build + python3 -m pytest examples/machsuite -v - name: PyTorch shell: bash run: | From 87236122883ae46b0b2a55d8255440308fd1ade7 Mon Sep 17 00:00:00 2001 From: Niansong Zhang Date: Thu, 5 Feb 2026 20:20:47 -0500 Subject: [PATCH 08/16] [MachSuite] Apply black formatting and add license headers Co-Authored-By: Claude Opus 4.6 --- examples/machsuite/__init__.py | 2 + examples/machsuite/aes/__init__.py | 2 + examples/machsuite/aes/aes.py | 330 +++++++++++++++--- examples/machsuite/aes/run_test.py | 15 +- examples/machsuite/backprop/__init__.py | 2 + examples/machsuite/backprop/backprop.py | 208 ++++++++--- examples/machsuite/backprop/run_test.py | 18 +- examples/machsuite/bfs/__init__.py | 2 + examples/machsuite/bfs/bfs_bulk_allo.py | 28 +- examples/machsuite/bfs/bfs_bulk_python.py | 9 +- examples/machsuite/bfs/bfs_queue_allo.py | 26 +- examples/machsuite/bfs/bfs_queue_python.py | 6 +- examples/machsuite/bfs/generate.py | 36 +- examples/machsuite/bfs/run_test.py | 9 +- examples/machsuite/fft/__init__.py | 2 + examples/machsuite/fft/strided/__init__.py | 2 + examples/machsuite/fft/strided/strided_fft.py | 27 +- examples/machsuite/fft/transpose/__init__.py | 2 + .../machsuite/fft/transpose/transpose_fft.py | 33 +- examples/machsuite/gemm/__init__.py | 2 + examples/machsuite/gemm/gemm_blocked.py | 8 +- examples/machsuite/gemm/gemm_ncubed.py | 6 +- examples/machsuite/gemm/testing.py | 3 + examples/machsuite/gemm/testing_blocked.py | 3 + examples/machsuite/kmp/__init__.py | 2 + examples/machsuite/kmp/kmp.py | 34 +- examples/machsuite/md/__init__.py | 2 + examples/machsuite/md/grid/__init__.py | 2 + examples/machsuite/md/grid/md.py | 285 +++++++-------- examples/machsuite/md/grid/md_kernel_test.py | 43 ++- examples/machsuite/md/knn/__init__.py | 2 + examples/machsuite/md/knn/md.py | 237 +++++++------ examples/machsuite/md/knn/md_kernel_test.py | 9 +- examples/machsuite/merge/__init__.py | 2 + examples/machsuite/merge/mergesort.py | 51 +-- examples/machsuite/merge/testing.py | 3 + examples/machsuite/nw/__init__.py | 2 + examples/machsuite/nw/test_nw.py | 9 +- examples/machsuite/sort/__init__.py | 2 + examples/machsuite/sort/radix/__init__.py | 2 + examples/machsuite/sort/radix/radix_sort.py | 16 +- examples/machsuite/sort/radix/test_radix.py | 1 + examples/machsuite/spmv/__init__.py | 2 + examples/machsuite/spmv/crs/__init__.py | 2 + examples/machsuite/spmv/crs/crs.py | 12 +- examples/machsuite/spmv/crs/run_test.py | 3 + examples/machsuite/spmv/ellpack/__init__.py | 2 + examples/machsuite/spmv/ellpack/ellpack.py | 15 +- examples/machsuite/spmv/ellpack/run_test.py | 3 + examples/machsuite/stencil/__init__.py | 2 + examples/machsuite/stencil/stencil2d.py | 15 +- examples/machsuite/stencil/stencil3d.py | 69 ++-- examples/machsuite/stencil/test_stencil.py | 33 +- examples/machsuite/test_machsuite.py | 11 +- examples/machsuite/viterbi/__init__.py | 2 + examples/machsuite/viterbi/run_test.py | 3 + examples/machsuite/viterbi/viterbi.py | 34 +- examples/machsuite/viterbi/viterbi_allo.py | 48 ++- 58 files changed, 1177 insertions(+), 564 deletions(-) diff --git a/examples/machsuite/__init__.py b/examples/machsuite/__init__.py index e69de29bb2..1ab7e98c71 100644 --- a/examples/machsuite/__init__.py +++ b/examples/machsuite/__init__.py @@ -0,0 +1,2 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 diff --git a/examples/machsuite/aes/__init__.py b/examples/machsuite/aes/__init__.py index e69de29bb2..1ab7e98c71 100644 --- a/examples/machsuite/aes/__init__.py +++ b/examples/machsuite/aes/__init__.py @@ -0,0 +1,2 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 diff --git a/examples/machsuite/aes/aes.py b/examples/machsuite/aes/aes.py index e7f65d6de9..43ad7867d0 100644 --- a/examples/machsuite/aes/aes.py +++ b/examples/machsuite/aes/aes.py @@ -1,53 +1,281 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import allo import numpy as np from allo.ir.types import uint32, uint8, Struct, index + def F(x: uint8) -> uint8: - return (x << 1) ^ ((x >> 7 & 1) * 0x1b) + return (x << 1) ^ ((x >> 7 & 1) * 0x1B) def rj_sbox(x: uint8) -> uint8: sbox: uint8[256] = [ - 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, - 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, - 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, - 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, - 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, - 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, - 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, - 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, - 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, - 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, - 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, - 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, - 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, - 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, - 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, - 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, - 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, - 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, - 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, - 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, - 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, - 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, - 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, - 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, - 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, - 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, - 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, - 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, - 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, - 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, - 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, - 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16 - ] + 0x63, + 0x7C, + 0x77, + 0x7B, + 0xF2, + 0x6B, + 0x6F, + 0xC5, + 0x30, + 0x01, + 0x67, + 0x2B, + 0xFE, + 0xD7, + 0xAB, + 0x76, + 0xCA, + 0x82, + 0xC9, + 0x7D, + 0xFA, + 0x59, + 0x47, + 0xF0, + 0xAD, + 0xD4, + 0xA2, + 0xAF, + 0x9C, + 0xA4, + 0x72, + 0xC0, + 0xB7, + 0xFD, + 0x93, + 0x26, + 0x36, + 0x3F, + 0xF7, + 0xCC, + 0x34, + 0xA5, + 0xE5, + 0xF1, + 0x71, + 0xD8, + 0x31, + 0x15, + 0x04, + 0xC7, + 0x23, + 0xC3, + 0x18, + 0x96, + 0x05, + 0x9A, + 0x07, + 0x12, + 0x80, + 0xE2, + 0xEB, + 0x27, + 0xB2, + 0x75, + 0x09, + 0x83, + 0x2C, + 0x1A, + 0x1B, + 0x6E, + 0x5A, + 0xA0, + 0x52, + 0x3B, + 0xD6, + 0xB3, + 0x29, + 0xE3, + 0x2F, + 0x84, + 0x53, + 0xD1, + 0x00, + 0xED, + 0x20, + 0xFC, + 0xB1, + 0x5B, + 0x6A, + 0xCB, + 0xBE, + 0x39, + 0x4A, + 0x4C, + 0x58, + 0xCF, + 0xD0, + 0xEF, + 0xAA, + 0xFB, + 0x43, + 0x4D, + 0x33, + 0x85, + 0x45, + 0xF9, + 0x02, + 0x7F, + 0x50, + 0x3C, + 0x9F, + 0xA8, + 0x51, + 0xA3, + 0x40, + 0x8F, + 0x92, + 0x9D, + 0x38, + 0xF5, + 0xBC, + 0xB6, + 0xDA, + 0x21, + 0x10, + 0xFF, + 0xF3, + 0xD2, + 0xCD, + 0x0C, + 0x13, + 0xEC, + 0x5F, + 0x97, + 0x44, + 0x17, + 0xC4, + 0xA7, + 0x7E, + 0x3D, + 0x64, + 0x5D, + 0x19, + 0x73, + 0x60, + 0x81, + 0x4F, + 0xDC, + 0x22, + 0x2A, + 0x90, + 0x88, + 0x46, + 0xEE, + 0xB8, + 0x14, + 0xDE, + 0x5E, + 0x0B, + 0xDB, + 0xE0, + 0x32, + 0x3A, + 0x0A, + 0x49, + 0x06, + 0x24, + 0x5C, + 0xC2, + 0xD3, + 0xAC, + 0x62, + 0x91, + 0x95, + 0xE4, + 0x79, + 0xE7, + 0xC8, + 0x37, + 0x6D, + 0x8D, + 0xD5, + 0x4E, + 0xA9, + 0x6C, + 0x56, + 0xF4, + 0xEA, + 0x65, + 0x7A, + 0xAE, + 0x08, + 0xBA, + 0x78, + 0x25, + 0x2E, + 0x1C, + 0xA6, + 0xB4, + 0xC6, + 0xE8, + 0xDD, + 0x74, + 0x1F, + 0x4B, + 0xBD, + 0x8B, + 0x8A, + 0x70, + 0x3E, + 0xB5, + 0x66, + 0x48, + 0x03, + 0xF6, + 0x0E, + 0x61, + 0x35, + 0x57, + 0xB9, + 0x86, + 0xC1, + 0x1D, + 0x9E, + 0xE1, + 0xF8, + 0x98, + 0x11, + 0x69, + 0xD9, + 0x8E, + 0x94, + 0x9B, + 0x1E, + 0x87, + 0xE9, + 0xCE, + 0x55, + 0x28, + 0xDF, + 0x8C, + 0xA1, + 0x89, + 0x0D, + 0xBF, + 0xE6, + 0x42, + 0x68, + 0x41, + 0x99, + 0x2D, + 0x0F, + 0xB0, + 0x54, + 0xBB, + 0x16, + ] i: uint32 = x return sbox[i] def rj_xtime(x: uint8) -> uint8: - return (x << 1) ^ 0x1b if (x & 0x80) != 0x00 else (x << 1) + return (x << 1) ^ 0x1B if (x & 0x80) != 0x00 else (x << 1) def sub_bytes(buf: uint8[16]): @@ -100,14 +328,14 @@ def mix_columns(buf: uint8[16]): for i in range(0, 16, 4): v[0] = buf[i] - v[1] = buf[i+1] - v[2] = buf[i+2] - v[3] = buf[i+3] + v[1] = buf[i + 1] + v[2] = buf[i + 2] + v[3] = buf[i + 3] v[4] = v[0] ^ v[1] ^ v[2] ^ v[3] - buf[i] ^= v[4] ^ rj_xtime(v[0]^v[1]) - buf[i+1] ^= v[4] ^ rj_xtime(v[1]^v[2]) - buf[i+2] ^= v[4] ^ rj_xtime(v[2]^v[3]) - buf[i+3] ^= v[4] ^ rj_xtime(v[3]^v[0]) + buf[i] ^= v[4] ^ rj_xtime(v[0] ^ v[1]) + buf[i + 1] ^= v[4] ^ rj_xtime(v[1] ^ v[2]) + buf[i + 2] ^= v[4] ^ rj_xtime(v[2] ^ v[3]) + buf[i + 3] ^= v[4] ^ rj_xtime(v[3] ^ v[0]) def expand_enc_key(k: uint8[32], rc: uint8[1]): @@ -118,10 +346,10 @@ def expand_enc_key(k: uint8[32], rc: uint8[1]): rc[0] = F(rc[0]) for i in range(4, 16, 4): - k[i] ^= k[i-4] - k[i+1] ^= k[i-3] - k[i+2] ^= k[i-2] - k[i+3] ^= k[i-1] + k[i] ^= k[i - 4] + k[i + 1] ^= k[i - 3] + k[i + 2] ^= k[i - 2] + k[i + 3] ^= k[i - 1] k[16] ^= rj_sbox(k[12]) k[17] ^= rj_sbox(k[13]) @@ -129,10 +357,10 @@ def expand_enc_key(k: uint8[32], rc: uint8[1]): k[19] ^= rj_sbox(k[15]) for i in range(20, 32, 4): - k[i] ^= k[i-4] - k[i+1] ^= k[i-3] - k[i+2] ^= k[i-2] - k[i+3] ^= k[i-1] + k[i] ^= k[i - 4] + k[i + 1] ^= k[i - 3] + k[i + 2] ^= k[i - 2] + k[i + 3] ^= k[i - 1] def encrypt_ecb(k: uint8[32], buf: uint8[16]): @@ -182,4 +410,4 @@ def encrypt_ecb(k: uint8[32], buf: uint8[16]): if __name__ == "__main__": s = allo.customize(encrypt_ecb) - mod = s.build(target="llvm") \ No newline at end of file + mod = s.build(target="llvm") diff --git a/examples/machsuite/aes/run_test.py b/examples/machsuite/aes/run_test.py index af962a4a13..3185ce5b17 100644 --- a/examples/machsuite/aes/run_test.py +++ b/examples/machsuite/aes/run_test.py @@ -1,3 +1,6 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import os import sys import allo @@ -11,12 +14,16 @@ def test_aes(): # AES-256 test vector: key = 0..31, plaintext = 0x00,0x11,...,0xFF k = np.array(list(range(32)), dtype=np.uint8) - buf = np.array([0, 17, 34, 51, 68, 85, 102, 119, - 136, 153, 170, 187, 204, 221, 238, 255], dtype=np.uint8) + buf = np.array( + [0, 17, 34, 51, 68, 85, 102, 119, 136, 153, 170, 187, 204, 221, 238, 255], + dtype=np.uint8, + ) # Known expected ciphertext from MachSuite reference - expected = np.array([142, 162, 183, 202, 81, 103, 69, 191, - 234, 252, 73, 144, 75, 73, 96, 137], dtype=np.uint8) + expected = np.array( + [142, 162, 183, 202, 81, 103, 69, 191, 234, 252, 73, 144, 75, 73, 96, 137], + dtype=np.uint8, + ) s = allo.customize(encrypt_ecb) mod = s.build(target="llvm") diff --git a/examples/machsuite/backprop/__init__.py b/examples/machsuite/backprop/__init__.py index e69de29bb2..1ab7e98c71 100644 --- a/examples/machsuite/backprop/__init__.py +++ b/examples/machsuite/backprop/__init__.py @@ -0,0 +1,2 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 diff --git a/examples/machsuite/backprop/backprop.py b/examples/machsuite/backprop/backprop.py index a6f9664348..23e003ff67 100644 --- a/examples/machsuite/backprop/backprop.py +++ b/examples/machsuite/backprop/backprop.py @@ -1,3 +1,6 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import allo from allo.ir.types import float32, int32 @@ -11,39 +14,54 @@ # TEST_SETS = 15 # NORM_PARAM = 0.05 -def soft_max(net_outputs: float32[POSSIBLE_OUTPUTS], activations: float32[POSSIBLE_OUTPUTS]): + +def soft_max( + net_outputs: float32[POSSIBLE_OUTPUTS], activations: float32[POSSIBLE_OUTPUTS] +): total: float32 = 0.0 for i in range(POSSIBLE_OUTPUTS): total += allo.exp(-activations[i]) for i in range(POSSIBLE_OUTPUTS): - net_outputs[i] = allo.exp(-activations[i]) / total + net_outputs[i] = allo.exp(-activations[i]) / total -def RELU_NPL(activations: float32[NODES_PER_LAYER], dactivations: float32[NODES_PER_LAYER]): +def RELU_NPL( + activations: float32[NODES_PER_LAYER], dactivations: float32[NODES_PER_LAYER] +): for i in range(NODES_PER_LAYER): dactivations[i] = activations[i] * (1.0 - activations[i]) activations[i] = 1.0 / (1.0 + allo.exp(-activations[i])) -def RELU_PO(activations: float32[POSSIBLE_OUTPUTS], dactivations: float32[POSSIBLE_OUTPUTS]): + +def RELU_PO( + activations: float32[POSSIBLE_OUTPUTS], dactivations: float32[POSSIBLE_OUTPUTS] +): for i in range(POSSIBLE_OUTPUTS): dactivations[i] = activations[i] * (1.0 - activations[i]) activations[i] = 1.0 / (1.0 + allo.exp(-activations[i])) -def add_bias_to_activations_NPL(biases: float32[NODES_PER_LAYER], activations: float32[NODES_PER_LAYER]): +def add_bias_to_activations_NPL( + biases: float32[NODES_PER_LAYER], activations: float32[NODES_PER_LAYER] +): for i in range(NODES_PER_LAYER): activations[i] = activations[i] + biases[i] -def add_bias_to_activations_PO(biases: float32[POSSIBLE_OUTPUTS], activations: float32[POSSIBLE_OUTPUTS]): +def add_bias_to_activations_PO( + biases: float32[POSSIBLE_OUTPUTS], activations: float32[POSSIBLE_OUTPUTS] +): for i in range(POSSIBLE_OUTPUTS): activations[i] = activations[i] + biases[i] def matrix_vector_product_with_bias_input_layer( - biases: float32[NODES_PER_LAYER], weights: float32[INPUT_DIMENSION * NODES_PER_LAYER], - activations: float32[NODES_PER_LAYER], input_sample: float32[INPUT_DIMENSION]): + biases: float32[NODES_PER_LAYER], + weights: float32[INPUT_DIMENSION * NODES_PER_LAYER], + activations: float32[NODES_PER_LAYER], + input_sample: float32[INPUT_DIMENSION], +): for j in range(NODES_PER_LAYER): activations[j] = 0.0 @@ -53,8 +71,11 @@ def matrix_vector_product_with_bias_input_layer( def matrix_vector_product_with_bias_second_layer( - biases: float32[NODES_PER_LAYER], weights: float32[NODES_PER_LAYER * NODES_PER_LAYER], - activations: float32[NODES_PER_LAYER], input_activations: float32[NODES_PER_LAYER]): + biases: float32[NODES_PER_LAYER], + weights: float32[NODES_PER_LAYER * NODES_PER_LAYER], + activations: float32[NODES_PER_LAYER], + input_activations: float32[NODES_PER_LAYER], +): for i in range(NODES_PER_LAYER): activations[i] = 0.0 @@ -64,8 +85,11 @@ def matrix_vector_product_with_bias_second_layer( def matrix_vector_product_with_bias_output_layer( - biases: float32[POSSIBLE_OUTPUTS], weights: float32[NODES_PER_LAYER * POSSIBLE_OUTPUTS], - activations: float32[POSSIBLE_OUTPUTS], input_activations: float32[NODES_PER_LAYER]): + biases: float32[POSSIBLE_OUTPUTS], + weights: float32[NODES_PER_LAYER * POSSIBLE_OUTPUTS], + activations: float32[POSSIBLE_OUTPUTS], + input_activations: float32[NODES_PER_LAYER], +): for j in range(POSSIBLE_OUTPUTS): activations[j] = 0.0 @@ -75,72 +99,107 @@ def matrix_vector_product_with_bias_output_layer( def take_difference( - net_outputs: float32[POSSIBLE_OUTPUTS], solutions: float32[POSSIBLE_OUTPUTS], - output_difference: float32[POSSIBLE_OUTPUTS], dactivations: float32[POSSIBLE_OUTPUTS]): + net_outputs: float32[POSSIBLE_OUTPUTS], + solutions: float32[POSSIBLE_OUTPUTS], + output_difference: float32[POSSIBLE_OUTPUTS], + dactivations: float32[POSSIBLE_OUTPUTS], +): for i in range(POSSIBLE_OUTPUTS): output_difference[i] = (net_outputs[i] - solutions[i]) * -1.0 * dactivations[i] def get_delta_matrix_weights3( - delta_weights3: float32[NODES_PER_LAYER * POSSIBLE_OUTPUTS], - output_difference: float32[POSSIBLE_OUTPUTS], last_activations: float32[NODES_PER_LAYER]): + delta_weights3: float32[NODES_PER_LAYER * POSSIBLE_OUTPUTS], + output_difference: float32[POSSIBLE_OUTPUTS], + last_activations: float32[NODES_PER_LAYER], +): for i, j in allo.grid(NODES_PER_LAYER, POSSIBLE_OUTPUTS): - delta_weights3[i * POSSIBLE_OUTPUTS + j] = last_activations[i] * output_difference[j] + delta_weights3[i * POSSIBLE_OUTPUTS + j] = ( + last_activations[i] * output_difference[j] + ) def get_oracle_activations2( - weights3: float32[NODES_PER_LAYER * POSSIBLE_OUTPUTS], output_differences: float32[POSSIBLE_OUTPUTS], - oracle_activations: float32[NODES_PER_LAYER], dactivations: float32[NODES_PER_LAYER]): + weights3: float32[NODES_PER_LAYER * POSSIBLE_OUTPUTS], + output_differences: float32[POSSIBLE_OUTPUTS], + oracle_activations: float32[NODES_PER_LAYER], + dactivations: float32[NODES_PER_LAYER], +): for i in range(NODES_PER_LAYER): oracle_activations[i] = 0.0 for j in range(POSSIBLE_OUTPUTS): - oracle_activations[i] += output_differences[j] * weights3[i * POSSIBLE_OUTPUTS + j] + oracle_activations[i] += ( + output_differences[j] * weights3[i * POSSIBLE_OUTPUTS + j] + ) oracle_activations[i] = oracle_activations[i] * dactivations[i] def get_delta_matrix_weights2( - delta_weights2: float32[NODES_PER_LAYER * NODES_PER_LAYER], - output_difference: float32[NODES_PER_LAYER], last_activations: float32[NODES_PER_LAYER]): + delta_weights2: float32[NODES_PER_LAYER * NODES_PER_LAYER], + output_difference: float32[NODES_PER_LAYER], + last_activations: float32[NODES_PER_LAYER], +): for i, j in allo.grid(NODES_PER_LAYER, NODES_PER_LAYER): - delta_weights2[i * NODES_PER_LAYER + j] = last_activations[i] * output_difference[j] + delta_weights2[i * NODES_PER_LAYER + j] = ( + last_activations[i] * output_difference[j] + ) def get_oracle_activations1( - weights2: float32[NODES_PER_LAYER * NODES_PER_LAYER], output_differences: float32[NODES_PER_LAYER], - oracle_activations: float32[NODES_PER_LAYER], dactivations: float32[NODES_PER_LAYER]): + weights2: float32[NODES_PER_LAYER * NODES_PER_LAYER], + output_differences: float32[NODES_PER_LAYER], + oracle_activations: float32[NODES_PER_LAYER], + dactivations: float32[NODES_PER_LAYER], +): for i in range(NODES_PER_LAYER): oracle_activations[i] = 0.0 for j in range(NODES_PER_LAYER): - oracle_activations[i] += output_differences[j] * weights2[i * NODES_PER_LAYER + j] + oracle_activations[i] += ( + output_differences[j] * weights2[i * NODES_PER_LAYER + j] + ) oracle_activations[i] = oracle_activations[i] * dactivations[i] def get_delta_matrix_weights1( delta_weights1: float32[INPUT_DIMENSION * NODES_PER_LAYER], - output_difference: float32[NODES_PER_LAYER], last_activations: float32[INPUT_DIMENSION]): + output_difference: float32[NODES_PER_LAYER], + last_activations: float32[INPUT_DIMENSION], +): for i, j in allo.grid(INPUT_DIMENSION, NODES_PER_LAYER): - delta_weights1[i * NODES_PER_LAYER + j] = last_activations[i] * output_difference[j] + delta_weights1[i * NODES_PER_LAYER + j] = ( + last_activations[i] * output_difference[j] + ) def update_weights( - weights1: float32[INPUT_DIMENSION * NODES_PER_LAYER], weights2: float32[NODES_PER_LAYER * NODES_PER_LAYER], - weights3: float32[NODES_PER_LAYER * POSSIBLE_OUTPUTS], d_weights1: float32[INPUT_DIMENSION * NODES_PER_LAYER], - d_weights2: float32[NODES_PER_LAYER * NODES_PER_LAYER], d_weights3: float32[NODES_PER_LAYER * POSSIBLE_OUTPUTS], - biases1: float32[NODES_PER_LAYER], biases2: float32[NODES_PER_LAYER], biases3: float32[POSSIBLE_OUTPUTS], - d_biases1: float32[NODES_PER_LAYER], d_biases2: float32[NODES_PER_LAYER], d_biases3: float32[POSSIBLE_OUTPUTS]): - + weights1: float32[INPUT_DIMENSION * NODES_PER_LAYER], + weights2: float32[NODES_PER_LAYER * NODES_PER_LAYER], + weights3: float32[NODES_PER_LAYER * POSSIBLE_OUTPUTS], + d_weights1: float32[INPUT_DIMENSION * NODES_PER_LAYER], + d_weights2: float32[NODES_PER_LAYER * NODES_PER_LAYER], + d_weights3: float32[NODES_PER_LAYER * POSSIBLE_OUTPUTS], + biases1: float32[NODES_PER_LAYER], + biases2: float32[NODES_PER_LAYER], + biases3: float32[POSSIBLE_OUTPUTS], + d_biases1: float32[NODES_PER_LAYER], + d_biases2: float32[NODES_PER_LAYER], + d_biases3: float32[POSSIBLE_OUTPUTS], +): + # TODO: allo.sqrt() does not currently work with float32 norm1: float32 = 0.0 bias_norm1: float32 = 0.0 for i, j in allo.grid(INPUT_DIMENSION, NODES_PER_LAYER): - weights1[i * NODES_PER_LAYER + j] -= d_weights1[i * NODES_PER_LAYER + j] * LEARNING_RATE + weights1[i * NODES_PER_LAYER + j] -= ( + d_weights1[i * NODES_PER_LAYER + j] * LEARNING_RATE + ) norm1 += weights1[i * NODES_PER_LAYER + j] * weights1[i * NODES_PER_LAYER + j] for i in range(NODES_PER_LAYER): biases1[i] -= d_biases1[i] * LEARNING_RATE @@ -150,7 +209,9 @@ def update_weights( bias_norm1_sqrt = allo.sqrt(bias_norm1) for i, j in allo.grid(INPUT_DIMENSION, NODES_PER_LAYER): - weights1[i * NODES_PER_LAYER + j] = weights1[i * NODES_PER_LAYER + j] / norm1_sqrt + weights1[i * NODES_PER_LAYER + j] = ( + weights1[i * NODES_PER_LAYER + j] / norm1_sqrt + ) for i in range(NODES_PER_LAYER): biases1[i] = biases1[i] / bias_norm1_sqrt @@ -158,7 +219,9 @@ def update_weights( bias_norm2: float32 = 0.0 for i, j in allo.grid(NODES_PER_LAYER, NODES_PER_LAYER): - weights2[i * NODES_PER_LAYER + j] -= d_weights2[i * NODES_PER_LAYER + j] * LEARNING_RATE + weights2[i * NODES_PER_LAYER + j] -= ( + d_weights2[i * NODES_PER_LAYER + j] * LEARNING_RATE + ) norm2 += weights2[i * NODES_PER_LAYER + j] * weights2[i * NODES_PER_LAYER + j] for i in range(NODES_PER_LAYER): biases2[i] -= d_biases2[i] * LEARNING_RATE @@ -168,7 +231,9 @@ def update_weights( bias_norm2_sqrt = allo.sqrt(bias_norm2) for i, j in allo.grid(NODES_PER_LAYER, NODES_PER_LAYER): - weights2[i * NODES_PER_LAYER + j] = weights2[i * NODES_PER_LAYER + j] / norm2_sqrt + weights2[i * NODES_PER_LAYER + j] = ( + weights2[i * NODES_PER_LAYER + j] / norm2_sqrt + ) for i in range(NODES_PER_LAYER): biases2[i] = biases2[i] / bias_norm2_sqrt @@ -176,7 +241,9 @@ def update_weights( bias_norm3: float32 = 0.0 for i, j in allo.grid(NODES_PER_LAYER, POSSIBLE_OUTPUTS): - weights3[i * POSSIBLE_OUTPUTS + j] -= d_weights3[i * POSSIBLE_OUTPUTS + j] * LEARNING_RATE + weights3[i * POSSIBLE_OUTPUTS + j] -= ( + d_weights3[i * POSSIBLE_OUTPUTS + j] * LEARNING_RATE + ) norm3 += weights3[i * POSSIBLE_OUTPUTS + j] * weights3[i * POSSIBLE_OUTPUTS + j] for i in range(POSSIBLE_OUTPUTS): biases3[i] -= d_biases3[i] * LEARNING_RATE @@ -186,16 +253,23 @@ def update_weights( bias_norm3_sqrt = allo.sqrt(bias_norm3) for i, j in allo.grid(NODES_PER_LAYER, POSSIBLE_OUTPUTS): - weights3[i * POSSIBLE_OUTPUTS + j] = weights3[i * POSSIBLE_OUTPUTS + j] / norm3_sqrt + weights3[i * POSSIBLE_OUTPUTS + j] = ( + weights3[i * POSSIBLE_OUTPUTS + j] / norm3_sqrt + ) for i in range(POSSIBLE_OUTPUTS): biases3[i] = biases3[i] / bias_norm3_sqrt def backprop( - weights1: float32[INPUT_DIMENSION * NODES_PER_LAYER], weights2: float32[NODES_PER_LAYER * NODES_PER_LAYER], - weights3: float32[NODES_PER_LAYER * POSSIBLE_OUTPUTS], biases1: float32[NODES_PER_LAYER], - biases2: float32[NODES_PER_LAYER], biases3: float32[POSSIBLE_OUTPUTS], - training_data: float32[TRAINING_SETS * INPUT_DIMENSION], training_targets: float32[TRAINING_SETS * POSSIBLE_OUTPUTS]): + weights1: float32[INPUT_DIMENSION * NODES_PER_LAYER], + weights2: float32[NODES_PER_LAYER * NODES_PER_LAYER], + weights3: float32[NODES_PER_LAYER * POSSIBLE_OUTPUTS], + biases1: float32[NODES_PER_LAYER], + biases2: float32[NODES_PER_LAYER], + biases3: float32[POSSIBLE_OUTPUTS], + training_data: float32[TRAINING_SETS * INPUT_DIMENSION], + training_targets: float32[TRAINING_SETS * POSSIBLE_OUTPUTS], +): # Forward and training structures activations1: float32[NODES_PER_LAYER] = 0.0 @@ -223,29 +297,55 @@ def backprop( training_data_input1: float32[INPUT_DIMENSION] = 0.0 for k in range(INPUT_DIMENSION): training_data_input1[k] = training_data[i * INPUT_DIMENSION + k] - matrix_vector_product_with_bias_input_layer(biases1, weights1, activations1, training_data_input1) + matrix_vector_product_with_bias_input_layer( + biases1, weights1, activations1, training_data_input1 + ) RELU_NPL(activations1, dactivations1) - matrix_vector_product_with_bias_second_layer(biases2, weights2, activations2, activations1) + matrix_vector_product_with_bias_second_layer( + biases2, weights2, activations2, activations1 + ) RELU_NPL(activations2, dactivations2) - matrix_vector_product_with_bias_output_layer(biases3, weights3, activations3, activations2) + matrix_vector_product_with_bias_output_layer( + biases3, weights3, activations3, activations2 + ) RELU_PO(activations3, dactivations3) soft_max(net_outputs, activations3) training_targets_input: float32[POSSIBLE_OUTPUTS] = 0.0 for k in range(POSSIBLE_OUTPUTS): training_targets_input[k] = training_targets[i * POSSIBLE_OUTPUTS + k] - take_difference(net_outputs, training_targets_input, output_difference, dactivations3) + take_difference( + net_outputs, training_targets_input, output_difference, dactivations3 + ) get_delta_matrix_weights3(delta_weights3, output_difference, activations2) - get_oracle_activations2(weights3, output_difference, oracle_activations2, dactivations2) + get_oracle_activations2( + weights3, output_difference, oracle_activations2, dactivations2 + ) get_delta_matrix_weights2(delta_weights2, oracle_activations2, activations1) - get_oracle_activations1(weights2, oracle_activations2, oracle_activations1, dactivations1) + get_oracle_activations1( + weights2, oracle_activations2, oracle_activations1, dactivations1 + ) training_data_input2: float32[INPUT_DIMENSION] = 0.0 for k in range(INPUT_DIMENSION): training_data_input2[k] = training_data[i * INPUT_DIMENSION + k] - get_delta_matrix_weights1(delta_weights1, oracle_activations1, training_data_input2) - - update_weights(weights1, weights2, weights3, delta_weights1, delta_weights2, delta_weights3, - biases1, biases2, biases3, oracle_activations1, oracle_activations2, output_difference) \ No newline at end of file + get_delta_matrix_weights1( + delta_weights1, oracle_activations1, training_data_input2 + ) + + update_weights( + weights1, + weights2, + weights3, + delta_weights1, + delta_weights2, + delta_weights3, + biases1, + biases2, + biases3, + oracle_activations1, + oracle_activations2, + output_difference, + ) diff --git a/examples/machsuite/backprop/run_test.py b/examples/machsuite/backprop/run_test.py index bd27334d8d..69096aa1cd 100644 --- a/examples/machsuite/backprop/run_test.py +++ b/examples/machsuite/backprop/run_test.py @@ -1,3 +1,6 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import os import sys import json @@ -34,13 +37,24 @@ def test_backprop(psize="small"): biases2 = np.random.randn(NODES_PER_LAYER).astype(np.float32) biases3 = np.random.randn(POSSIBLE_OUTPUTS).astype(np.float32) training_data = np.random.randn(TRAINING_SETS * INPUT_DIMENSION).astype(np.float32) - training_targets = np.random.randn(TRAINING_SETS * POSSIBLE_OUTPUTS).astype(np.float32) + training_targets = np.random.randn(TRAINING_SETS * POSSIBLE_OUTPUTS).astype( + np.float32 + ) s = allo.customize(backprop.backprop) mod = s.build(target="llvm") # Run-only test: MachSuite's check.data is known to not match - mod(weights1, weights2, weights3, biases1, biases2, biases3, training_data, training_targets) + mod( + weights1, + weights2, + weights3, + biases1, + biases2, + biases3, + training_data, + training_targets, + ) print("PASS!") diff --git a/examples/machsuite/bfs/__init__.py b/examples/machsuite/bfs/__init__.py index e69de29bb2..1ab7e98c71 100644 --- a/examples/machsuite/bfs/__init__.py +++ b/examples/machsuite/bfs/__init__.py @@ -0,0 +1,2 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 diff --git a/examples/machsuite/bfs/bfs_bulk_allo.py b/examples/machsuite/bfs/bfs_bulk_allo.py index 1eb0795a06..633c0ac385 100644 --- a/examples/machsuite/bfs/bfs_bulk_allo.py +++ b/examples/machsuite/bfs/bfs_bulk_allo.py @@ -1,3 +1,6 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import os import sys import allo @@ -9,14 +12,16 @@ from generate import generate_random_graph from bfs_bulk_python import bfs_bulk_test -N_NODES:int32 = 256 -N_NODES_2:int32 = 512 -N_EDGES:int32 = 4096 -N_LEVELS:int32 = 10 -MAX_LEVEL:int32 = 999999 +N_NODES: int32 = 256 +N_NODES_2: int32 = 512 +N_EDGES: int32 = 4096 +N_LEVELS: int32 = 10 +MAX_LEVEL: int32 = 999999 -def bfs_bulk(nodes: int32[N_NODES_2], edges: int32[N_EDGES], starting_node: int32) -> (int32[N_NODES], int32[N_LEVELS]): +def bfs_bulk( + nodes: int32[N_NODES_2], edges: int32[N_EDGES], starting_node: int32 +) -> (int32[N_NODES], int32[N_LEVELS]): level: int32[N_NODES] = MAX_LEVEL level_counts: int32[N_LEVELS] = 0 level[starting_node] = 0 @@ -29,8 +34,8 @@ def bfs_bulk(nodes: int32[N_NODES_2], edges: int32[N_EDGES], starting_node: int3 tmp_begin: int32 = nodes[2 * n] tmp_end: int32 = nodes[2 * n + 1] for e in range(tmp_begin, tmp_end): - tmp_dst:int32 = edges[e] - tmp_level:int32 = level[tmp_dst] + tmp_dst: int32 = edges[e] + tmp_level: int32 = level[tmp_dst] if tmp_level == MAX_LEVEL: level[tmp_dst] = horizon + 1 @@ -44,6 +49,7 @@ def bfs_bulk(nodes: int32[N_NODES_2], edges: int32[N_EDGES], starting_node: int3 if __name__ == "__main__": import random + random.seed(42) s = allo.customize(bfs_bulk) @@ -54,14 +60,14 @@ def bfs_bulk(nodes: int32[N_NODES_2], edges: int32[N_EDGES], starting_node: int3 # Convert to numpy arrays matching the data file format nodes_list = [] - for node in generated_data['nodes']: + for node in generated_data["nodes"]: nodes_list.append(node.edge_begin) nodes_list.append(node.edge_end) - edges_list = [edge.dst for edge in generated_data['edges']] + edges_list = [edge.dst for edge in generated_data["edges"]] np_A = np.array(nodes_list, np.int32) np_B = np.array(edges_list, np.int32) - np_C = generated_data['starting_node'] + np_C = generated_data["starting_node"] (D, F) = mod(np_A, np_B, np_C) diff --git a/examples/machsuite/bfs/bfs_bulk_python.py b/examples/machsuite/bfs/bfs_bulk_python.py index 4f7eeeb740..f3c67d6288 100644 --- a/examples/machsuite/bfs/bfs_bulk_python.py +++ b/examples/machsuite/bfs/bfs_bulk_python.py @@ -1,9 +1,12 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 N_NODES = 256 N_EDGES = 4096 N_LEVELS = 10 MAX_LEVEL = 999999 + def bfs_bulk_test(nodes, edges, starting_node): level = [MAX_LEVEL] * N_NODES level_counts = [0] * N_LEVELS @@ -28,11 +31,12 @@ def bfs_bulk_test(nodes, edges, starting_node): if cnt == 0: break - else: + else: level_counts[horizon + 1] = cnt return level, level_counts + # 0 # / \ # 1 2 @@ -52,6 +56,3 @@ def bfs_bulk_test(nodes, edges, starting_node): # Print the results # print("Node Levels:", level) # print("Level Counts:", level_counts) - - - diff --git a/examples/machsuite/bfs/bfs_queue_allo.py b/examples/machsuite/bfs/bfs_queue_allo.py index 771bb9b000..a65bba6812 100644 --- a/examples/machsuite/bfs/bfs_queue_allo.py +++ b/examples/machsuite/bfs/bfs_queue_allo.py @@ -1,3 +1,6 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import os import sys import allo @@ -9,14 +12,16 @@ from generate import generate_random_graph from bfs_queue_python import bfs_queue_test -N_NODES:int32 = 256 -N_NODES_2:int32 = 512 -N_EDGES:int32 = 4096 -N_LEVELS:int32 = 10 -MAX_LEVEL:int32 = 999999 +N_NODES: int32 = 256 +N_NODES_2: int32 = 512 +N_EDGES: int32 = 4096 +N_LEVELS: int32 = 10 +MAX_LEVEL: int32 = 999999 -def bfs_queue(nodes: int32[N_NODES_2], edges: int32[N_EDGES], starting_node: int32) -> (int32[N_NODES], int32[N_LEVELS]): +def bfs_queue( + nodes: int32[N_NODES_2], edges: int32[N_EDGES], starting_node: int32 +) -> (int32[N_NODES], int32[N_LEVELS]): level: int32[N_NODES] = MAX_LEVEL level_counts: int32[N_LEVELS] = 0 queue: int32[N_NODES] = 0 @@ -28,7 +33,6 @@ def bfs_queue(nodes: int32[N_NODES_2], edges: int32[N_EDGES], starting_node: int queue[rear] = starting_node rear = (rear + 1) % N_NODES - while front != rear: n: int32 = queue[front] front = (front + 1) % N_NODES @@ -47,8 +51,10 @@ def bfs_queue(nodes: int32[N_NODES_2], edges: int32[N_EDGES], starting_node: int return level, level_counts + if __name__ == "__main__": import random + random.seed(42) s = allo.customize(bfs_queue) @@ -58,14 +64,14 @@ def bfs_queue(nodes: int32[N_NODES_2], edges: int32[N_EDGES], starting_node: int generated_data = generate_random_graph() nodes_list = [] - for node in generated_data['nodes']: + for node in generated_data["nodes"]: nodes_list.append(node.edge_begin) nodes_list.append(node.edge_end) - edges_list = [edge.dst for edge in generated_data['edges']] + edges_list = [edge.dst for edge in generated_data["edges"]] np_A = np.array(nodes_list, np.int32) np_B = np.array(edges_list, np.int32) - np_C = generated_data['starting_node'] + np_C = generated_data["starting_node"] (D, F) = mod(np_A, np_B, np_C) diff --git a/examples/machsuite/bfs/bfs_queue_python.py b/examples/machsuite/bfs/bfs_queue_python.py index f8e92bae05..d3f7790bf5 100644 --- a/examples/machsuite/bfs/bfs_queue_python.py +++ b/examples/machsuite/bfs/bfs_queue_python.py @@ -1,9 +1,12 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 N_NODES = 256 N_EDGES = 4096 N_LEVELS = 10 MAX_LEVEL = 999999 + def bfs_queue_test(nodes, edges, starting_node): level = [MAX_LEVEL] * N_NODES level_counts = [0] * N_LEVELS @@ -16,7 +19,6 @@ def bfs_queue_test(nodes, edges, starting_node): queue[rear] = starting_node rear = (rear + 1) % N_NODES - while front != rear: n = queue[front] front = (front + 1) % N_NODES @@ -35,6 +37,7 @@ def bfs_queue_test(nodes, edges, starting_node): return level, level_counts + # 0 # / \ # 1 2 @@ -54,4 +57,3 @@ def bfs_queue_test(nodes, edges, starting_node): # Print the results # print("Node Levels:", level) # print("Level Counts:", level_counts) - diff --git a/examples/machsuite/bfs/generate.py b/examples/machsuite/bfs/generate.py index c0f876dd39..5241267b3c 100644 --- a/examples/machsuite/bfs/generate.py +++ b/examples/machsuite/bfs/generate.py @@ -1,4 +1,8 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import random + # Constants A = 57 B = 19 @@ -12,11 +16,13 @@ MAX_WEIGHT = 10 MIN_WEIGHT = 1 + class Node: def __init__(self): self.edge_begin = 0 self.edge_end = 0 + class Edge: def __init__(self, dst): self.dst = dst @@ -30,17 +36,16 @@ def generate_random_graph(): r, c = 0, 0 for scale in range(SCALE, 0, -1): rint = random.randint(0, 99) - if rint >= (A + B): - r += (1 << (scale - 1)) + if rint >= (A + B): + r += 1 << (scale - 1) if ((rint >= A) and (rint < (A + B))) or (rint >= (A + B + C)): - c += (1 << (scale - 1)) + c += 1 << (scale - 1) if (adjmat[r][c] == 0) and (r != c): adjmat[r][c] = 1 adjmat[c][r] = 1 e += 1 - # Shuffle matrix for s in range(N_NODES): rint = random.randint(0, N_NODES - 1) @@ -50,33 +55,36 @@ def generate_random_graph(): for r in range(N_NODES): adjmat[r][s], adjmat[r][rint] = adjmat[r][rint], adjmat[r][s] - - data = {'nodes': [Node() for _ in range(N_NODES)], 'edges': []} + data = {"nodes": [Node() for _ in range(N_NODES)], "edges": []} # Scan rows for edge list lengths, and fill edges while we're at it e = 0 for r in range(N_NODES): - data['nodes'][r].edge_begin = 0 - data['nodes'][r].edge_end = 0 + data["nodes"][r].edge_begin = 0 + data["nodes"][r].edge_end = 0 for c in range(N_NODES): if adjmat[r][c]: - data['nodes'][r].edge_end += 1 - data['edges'].append(Edge(dst=c)) + data["nodes"][r].edge_end += 1 + data["edges"].append(Edge(dst=c)) e += 1 for r in range(1, N_NODES): - data['nodes'][r].edge_begin = data['nodes'][r - 1].edge_end - data['nodes'][r].edge_end += data['nodes'][r - 1].edge_end + data["nodes"][r].edge_begin = data["nodes"][r - 1].edge_end + data["nodes"][r].edge_end += data["nodes"][r - 1].edge_end # Pick Starting Node starting_node = random.randint(0, N_NODES - 1) - while data['nodes'][starting_node].edge_end - data['nodes'][starting_node].edge_begin < 2: + while ( + data["nodes"][starting_node].edge_end - data["nodes"][starting_node].edge_begin + < 2 + ): starting_node = random.randint(0, N_NODES - 1) - data['starting_node'] = starting_node + data["starting_node"] = starting_node return data if __name__ == "__main__": from support import write_data_to_file + generated_data = generate_random_graph() write_data_to_file(generated_data) diff --git a/examples/machsuite/bfs/run_test.py b/examples/machsuite/bfs/run_test.py index de3cdd609d..5174cd67a5 100644 --- a/examples/machsuite/bfs/run_test.py +++ b/examples/machsuite/bfs/run_test.py @@ -1,3 +1,6 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import os import sys import json @@ -63,14 +66,14 @@ def _generate_and_run(mod_func, ref_func, params): generated_data = generate.generate_random_graph() nodes_list = [] - for node in generated_data['nodes']: + for node in generated_data["nodes"]: nodes_list.append(node.edge_begin) nodes_list.append(node.edge_end) - edges_list = [edge.dst for edge in generated_data['edges']] + edges_list = [edge.dst for edge in generated_data["edges"]] np_A = np.array(nodes_list, np.int32) np_B = np.array(edges_list, np.int32) - np_C = generated_data['starting_node'] + np_C = generated_data["starting_node"] (D, F) = mod(np_A, np_B, np_C) (golden_D, golden_F) = ref_func(np_A, np_B, np_C) diff --git a/examples/machsuite/fft/__init__.py b/examples/machsuite/fft/__init__.py index e69de29bb2..1ab7e98c71 100644 --- a/examples/machsuite/fft/__init__.py +++ b/examples/machsuite/fft/__init__.py @@ -0,0 +1,2 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 diff --git a/examples/machsuite/fft/strided/__init__.py b/examples/machsuite/fft/strided/__init__.py index e69de29bb2..1ab7e98c71 100644 --- a/examples/machsuite/fft/strided/__init__.py +++ b/examples/machsuite/fft/strided/__init__.py @@ -0,0 +1,2 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 diff --git a/examples/machsuite/fft/strided/strided_fft.py b/examples/machsuite/fft/strided/strided_fft.py index a954640f81..11d69dbb3f 100644 --- a/examples/machsuite/fft/strided/strided_fft.py +++ b/examples/machsuite/fft/strided/strided_fft.py @@ -9,19 +9,25 @@ FFT_SIZE = 1024 FFT_SIZE_HALF = int(FFT_SIZE / 2) + # void fft(double real[FFT_SIZE], double img[FFT_SIZE], double real_twid[FFT_SIZE/2], double img_twid[FFT_SIZE/2]){ -def fft(real: float32[FFT_SIZE], img: float32[FFT_SIZE], real_twid: float32[FFT_SIZE_HALF], img_twid: float32[FFT_SIZE_HALF]): +def fft( + real: float32[FFT_SIZE], + img: float32[FFT_SIZE], + real_twid: float32[FFT_SIZE_HALF], + img_twid: float32[FFT_SIZE_HALF], +): span: int32 = FFT_SIZE >> 1 - log: int32 = 0 + log: int32 = 0 even: int32 = 0 - odd: int32 = 0 + odd: int32 = 0 rootindex: int32 = 0 temp: float32 = 0.0 - + # outer loop iterates over different stages of FFT - while (span > 0): + while span > 0: odd = span - while (odd < FFT_SIZE): + while odd < FFT_SIZE: # odd index, with arr[0] = 1st index, so even is odd odd |= span @@ -51,18 +57,21 @@ def fft(real: float32[FFT_SIZE], img: float32[FFT_SIZE], real_twid: float32[FFT_ rootindex = (even << log) & (FFT_SIZE - 1) # if twiddle factor is non-zero - if rootindex > 0: + if rootindex > 0: # real part is updated temp = real_twid[rootindex] * real[odd] - img_twid[rootindex] * img[odd] # imaginary part is updated - img[odd] = real_twid[rootindex] * img[odd] + img_twid[rootindex] * real[odd] + img[odd] = ( + real_twid[rootindex] * img[odd] + img_twid[rootindex] * real[odd] + ) real[odd] = temp odd += 1 # keeps track of stages using log span >>= 1 log += 1 + if __name__ == "__main__": s = allo.customize(fft) - mod = s.build(target="llvm") \ No newline at end of file + mod = s.build(target="llvm") diff --git a/examples/machsuite/fft/transpose/__init__.py b/examples/machsuite/fft/transpose/__init__.py index e69de29bb2..1ab7e98c71 100644 --- a/examples/machsuite/fft/transpose/__init__.py +++ b/examples/machsuite/fft/transpose/__init__.py @@ -0,0 +1,2 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 diff --git a/examples/machsuite/fft/transpose/transpose_fft.py b/examples/machsuite/fft/transpose/transpose_fft.py index 0c1442c707..ae9e11ef5c 100644 --- a/examples/machsuite/fft/transpose/transpose_fft.py +++ b/examples/machsuite/fft/transpose/transpose_fft.py @@ -8,55 +8,69 @@ import math import numpy as np + def cmplx_M_x(a_x: float32, a_y: float32, b_x: float32, b_y: float32) -> float32: return a_x * b_x - a_y * b_y + def cmplx_M_y(a_x: float32, a_y: float32, b_x: float32, b_y: float32) -> float32: return a_x * b_y + a_y * b_x + def cmplx_MUL_x(a_x: float32, a_y: float32, b_x: float32, b_y: float32) -> float32: return a_x * b_x - a_y * b_y + def cmplx_MUL_y(a_x: float32, a_y: float32, b_x: float32, b_y: float32) -> float32: return a_x * b_y + a_y * b_x + def cmplx_mul_x(a_x: float32, a_y: float32, b_x: float32, b_y: float32) -> float32: return a_x * b_x - a_y * b_y + def cmplx_mul_y(a_x: float32, a_y: float32, b_x: float32, b_y: float32) -> float32: return a_x * b_y + a_y * b_x + def cmplx_add_x(a_x: float32, b_x: float32) -> float32: return a_x + b_x + def cmplx_add_y(a_y: float32, b_y: float32) -> float32: return a_y + b_y + def cmplx_sub_x(a_x: float32, b_x: float32) -> float32: return a_x - b_x + def cmplx_sub_y(a_y: float32, b_y: float32) -> float32: return a_y - b_y + def cm_fl_mul_x(a_x: float32, b: float32) -> float32: return b * a_x + def cm_fl_mul_y(a_y: float32, b: float32) -> float32: return b * a_y + def twiddles8(a_x: float32[8], a_y: float32[8], i: int32, n: int32): PI: float32 = 3.1415926535 reversed8: int32[8] = [0, 4, 2, 6, 1, 5, 3, 7] for j in range(1, 8): # BUG: WITH COS AND SIN NOT BEING ABLE TO DEAL WITH float32 - phi: float32 = (-2 * PI * reversed8[j]/n)*i + phi: float32 = (-2 * PI * reversed8[j] / n) * i phi_x: float32 = allo.cos(phi) phi_y: float32 = allo.sin(phi) tmp_1: float32 = a_x[j] a_x[j] = cmplx_M_x(a_x[j], a_y[j], phi_x, phi_y) a_y[j] = cmplx_M_y(tmp_1, a_y[j], phi_x, phi_y) + def FF2(a0_x: float32, a0_y: float32, a1_x: float32, a1_y: float32) -> float32[4]: d0: float32[4] = 0.0 @@ -67,6 +81,7 @@ def FF2(a0_x: float32, a0_y: float32, a1_x: float32, a1_y: float32) -> float32[4 return d0 + # def FFT4(a0_x: float32, a0_y: float32, a1_x: float32, a1_y: float32, a2_x: float32, a2_y: float32, a3_x: float32, a3_y: float32): # exp_1_44_x: float32 = 0 # exp_1_44_y: float32 = -1 @@ -82,6 +97,7 @@ def FF2(a0_x: float32, a0_y: float32, a1_x: float32, a1_y: float32) -> float32[4 # # FF2(a0_x, a0_y, a1_x, a1_y) # # FF2(a2_x, a2_y, a3_x, a3_y) + def FFT4_1(a_x: float32[8], a_y: float32[8]): exp_1_44_x: float32 = 0.0 exp_1_44_y: float32 = -1.0 @@ -117,6 +133,7 @@ def FFT4_1(a_x: float32[8], a_y: float32[8]): # FFT4(a_x[4], a_y[4], a_x[5], a_y[5], a_x[6], a_y[6], a_x[7], a_y[7]) + def FFT4_2(a_x: float32[8], a_y: float32[8]): exp_1_44_x: float32 = 0.0 exp_1_44_y: float32 = -1.0 @@ -150,6 +167,7 @@ def FFT4_2(a_x: float32[8], a_y: float32[8]): a_x[7] = tmp_5[2] a_y[7] = tmp_5[3] + def FFT8(a_x: float32[8], a_y: float32[8]): M_SQRT1_2: float32 = 0.70710678118654752440 exp_1_8_x: float32 = 1.0 @@ -200,6 +218,7 @@ def FFT8(a_x: float32[8], a_y: float32[8]): # FFT4(a_x[4], a_y[4], a_x[5], a_y[5], a_x[6], a_y[6], a_x[7], a_y[7]) FFT4_2(a_x, a_y) + def loadx8(a_x, x, offset, sx): a_x[0] = x[0 * sx + offset] a_x[1] = x[1 * sx + offset] @@ -210,6 +229,7 @@ def loadx8(a_x, x, offset, sx): a_x[6] = x[6 * sx + offset] a_x[7] = x[7 * sx + offset] + def loady8(a_y: float32[8], x: float32[8 * 8 * 9], offset: int32, sx: int32): a_y[0] = x[0 * sx + offset] a_y[1] = x[1 * sx + offset] @@ -220,6 +240,7 @@ def loady8(a_y: float32[8], x: float32[8 * 8 * 9], offset: int32, sx: int32): a_y[6] = x[6 * sx + offset] a_y[7] = x[7 * sx + offset] + def fft1D_512(work_x: float32[512], work_y: float32[512]): stride: int32 = 64 counter: int32 = 0 @@ -269,7 +290,7 @@ def fft1D_512(work_x: float32[512], work_y: float32[512]): twiddles8(data_x, data_y, counter, 512) # Save for fence - DATA_x[tid * 8] = data_x[0] + DATA_x[tid * 8] = data_x[0] DATA_x[tid * 8 + 1] = data_x[1] DATA_x[tid * 8 + 2] = data_x[2] DATA_x[tid * 8 + 3] = data_x[3] @@ -278,7 +299,7 @@ def fft1D_512(work_x: float32[512], work_y: float32[512]): DATA_x[tid * 8 + 6] = data_x[6] DATA_x[tid * 8 + 7] = data_x[7] - DATA_y[tid * 8] = data_y[0] + DATA_y[tid * 8] = data_y[0] DATA_y[tid * 8 + 1] = data_y[1] DATA_y[tid * 8 + 2] = data_y[2] DATA_y[tid * 8 + 3] = data_y[3] @@ -296,7 +317,7 @@ def fft1D_512(work_x: float32[512], work_y: float32[512]): hi: index = tid_int >> 3 lo: index = tid_int & 7 offset: int32 = hi * 8 + lo - + smem[0 * sx + offset] = DATA_x[tid * 8 + 0] smem[4 * sx + offset] = DATA_x[tid * 8 + 1] smem[1 * sx + offset] = DATA_x[tid * 8 + 4] @@ -361,7 +382,7 @@ def fft1D_512(work_x: float32[512], work_y: float32[512]): loady8(data_y, smem, tmp_1, 8) - DATA_y[tid * 8] = data_y[0] + DATA_y[tid * 8] = data_y[0] DATA_y[tid * 8 + 1] = data_y[1] DATA_y[tid * 8 + 2] = data_y[2] DATA_y[tid * 8 + 3] = data_y[3] @@ -541,7 +562,7 @@ def fft1D_512(work_x: float32[512], work_y: float32[512]): work_y[6 * stride + tid] = data_y[reversed[6]] work_y[7 * stride + tid] = data_y[reversed[7]] + if __name__ == "__main__": s = allo.customize(fft1D_512) mod = s.build(target="llvm") - diff --git a/examples/machsuite/gemm/__init__.py b/examples/machsuite/gemm/__init__.py index e69de29bb2..1ab7e98c71 100644 --- a/examples/machsuite/gemm/__init__.py +++ b/examples/machsuite/gemm/__init__.py @@ -0,0 +1,2 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 diff --git a/examples/machsuite/gemm/gemm_blocked.py b/examples/machsuite/gemm/gemm_blocked.py index fd9043d5f1..121af426d9 100644 --- a/examples/machsuite/gemm/gemm_blocked.py +++ b/examples/machsuite/gemm/gemm_blocked.py @@ -1,9 +1,14 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import allo from allo.ir.types import int32 import numpy as np + M, N, K = 1024, 1024, 1024 S = 8 + def bbgemm(A: int32[M, K], B: int32[K, N]) -> int32[M, N]: C: int32[M, N] = 0 @@ -26,7 +31,8 @@ def bbgemm(A: int32[M, K], B: int32[K, N]) -> int32[M, N]: C[ii, jj] += sum_value return C + if __name__ == "__main__": s = allo.customize(bbgemm) mod = s.build() - print(s.module) \ No newline at end of file + print(s.module) diff --git a/examples/machsuite/gemm/gemm_ncubed.py b/examples/machsuite/gemm/gemm_ncubed.py index 816a05fb33..7774c526e4 100644 --- a/examples/machsuite/gemm/gemm_ncubed.py +++ b/examples/machsuite/gemm/gemm_ncubed.py @@ -1,7 +1,11 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import allo from allo.ir.types import float32 import numpy as np + def gemm(A: float32[64, 64], B: float32[64, 64]) -> float32[64, 64]: C: float32[64, 64] = 0.0 for i, j in allo.grid(64, 64): @@ -13,4 +17,4 @@ def gemm(A: float32[64, 64], B: float32[64, 64]) -> float32[64, 64]: if __name__ == "__main__": s = allo.customize(gemm) mod = s.build() - print(s.module) \ No newline at end of file + print(s.module) diff --git a/examples/machsuite/gemm/testing.py b/examples/machsuite/gemm/testing.py index 0ed8b69215..3e413ab227 100644 --- a/examples/machsuite/gemm/testing.py +++ b/examples/machsuite/gemm/testing.py @@ -1,3 +1,6 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import os import sys import allo diff --git a/examples/machsuite/gemm/testing_blocked.py b/examples/machsuite/gemm/testing_blocked.py index dc15d383be..4b11313874 100644 --- a/examples/machsuite/gemm/testing_blocked.py +++ b/examples/machsuite/gemm/testing_blocked.py @@ -1,3 +1,6 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import os import sys import json diff --git a/examples/machsuite/kmp/__init__.py b/examples/machsuite/kmp/__init__.py index e69de29bb2..1ab7e98c71 100644 --- a/examples/machsuite/kmp/__init__.py +++ b/examples/machsuite/kmp/__init__.py @@ -0,0 +1,2 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 diff --git a/examples/machsuite/kmp/kmp.py b/examples/machsuite/kmp/kmp.py index 901f4ccd7a..42c8595d82 100644 --- a/examples/machsuite/kmp/kmp.py +++ b/examples/machsuite/kmp/kmp.py @@ -1,3 +1,6 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import allo import os import json @@ -23,13 +26,13 @@ def python_kmp(pattern, input): matches = 0 q = 0 for i in range(len(input)): - while (q > 0 and pattern[q] != input[i]): + while q > 0 and pattern[q] != input[i]: q = kmp_next[q - 1] - if (pattern[q] == input[i]): + if pattern[q] == input[i]: q += 1 - if (q >= len(pattern)): + if q >= len(pattern): matches += 1 q = kmp_next[q - 1] @@ -39,16 +42,15 @@ def python_kmp(pattern, input): ### allo implementation ### def kmp(concrete_type, s, p): def kmp_kernal[ - T: (uint8, int32), S: uint8, P: uint8 ](pattern: "T[P]", input_str: "T[S]", kmp_next: "T[P]", matches: "T[1]"): k: index = 0 x: index = 1 - for i in allo.grid((P - 1), name = "CPF"): + for i in allo.grid((P - 1), name="CPF"): while k > 0 and pattern[k] != pattern[x]: - k = kmp_next[k-1] + k = kmp_next[k - 1] if pattern[k] == pattern[x]: k += 1 @@ -56,20 +58,18 @@ def kmp_kernal[ x += 1 q: index = 0 - for i in allo.grid(S, name = "KMP"): - while (q > 0 and pattern[q] != input_str[i]): - q = kmp_next[q-1] + for i in allo.grid(S, name="KMP"): + while q > 0 and pattern[q] != input_str[i]: + q = kmp_next[q - 1] - if (pattern[q] == input_str[i]): + if pattern[q] == input_str[i]: q += 1 if q >= P: matches[0] += 1 - q = kmp_next[q-1] - - + q = kmp_next[q - 1] - sch = allo.customize(kmp_kernal, instantiate = [concrete_type, s, p]) + sch = allo.customize(kmp_kernal, instantiate=[concrete_type, s, p]) return sch @@ -87,10 +87,10 @@ def test_kmp(psize="small"): concrete_type = uint8 sch = kmp(concrete_type, S, P) - #functional correctness checking - Input_str = np.random.randint(1, 5, size = S).astype(np.uint8) + # functional correctness checking + Input_str = np.random.randint(1, 5, size=S).astype(np.uint8) - Pattern = np.random.randint(1, 5, size = P).astype(np.uint8) + Pattern = np.random.randint(1, 5, size=P).astype(np.uint8) KMP_next = np.zeros(P).astype(np.uint8) diff --git a/examples/machsuite/md/__init__.py b/examples/machsuite/md/__init__.py index e69de29bb2..1ab7e98c71 100644 --- a/examples/machsuite/md/__init__.py +++ b/examples/machsuite/md/__init__.py @@ -0,0 +1,2 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 diff --git a/examples/machsuite/md/grid/__init__.py b/examples/machsuite/md/grid/__init__.py index e69de29bb2..1ab7e98c71 100644 --- a/examples/machsuite/md/grid/__init__.py +++ b/examples/machsuite/md/grid/__init__.py @@ -0,0 +1,2 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 diff --git a/examples/machsuite/md/grid/md.py b/examples/machsuite/md/grid/md.py index 067f831d91..752789d97d 100644 --- a/examples/machsuite/md/grid/md.py +++ b/examples/machsuite/md/grid/md.py @@ -1,22 +1,28 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import allo -from allo.ir.types import float64,int32, Int +from allo.ir.types import float64, int32, Int # Define MIN and MAX functions to replicate the C macros -nAtoms:int32=256 -domainEdge:float64=20.0 -blockSide:int32=4 -nBlocks:int32=blockSide*blockSide*blockSide -blockEdge:float64=domainEdge/blockSide -densityFactor:int32=10 -lj1:float64=1.5 -lj2:float64=2.0 - -def MIN(x:int32, y:Int(34))->int32: +nAtoms: int32 = 256 +domainEdge: float64 = 20.0 +blockSide: int32 = 4 +nBlocks: int32 = blockSide * blockSide * blockSide +blockEdge: float64 = domainEdge / blockSide +densityFactor: int32 = 10 +lj1: float64 = 1.5 +lj2: float64 = 2.0 + + +def MIN(x: int32, y: Int(34)) -> int32: return x if x < y else y -def MAX(x:int32, y:Int(34))->int32: + +def MAX(x: int32, y: Int(34)) -> int32: return x if x > y else y + # class dvector_t: # def __init__(self, x:float64, y:float64, z:float64): # self.x = x @@ -30,57 +36,57 @@ def MAX(x:int32, y:Int(34))->int32: # self.z = z -def md_x(n_points:int32[blockSide,blockSide,blockSide], - - position_x:float64[blockSide,blockSide,blockSide,densityFactor], - position_y:float64[blockSide,blockSide,blockSide,densityFactor], - position_z:float64[blockSide,blockSide,blockSide,densityFactor])->float64[blockSide,blockSide,blockSide,densityFactor]: - - - q_x: float64=0.0 - q_y: float64=0.0 - q_z: float64=0.0 - p_x: float64=0.0 - p_y: float64=0.0 - p_z: float64=0.0 - - dx:float64=0.0 - dy:float64=0.0 - dz:float64=0.0 - r2inv:float64=0.0 - r6inv:float64=0.0 - potential:float64=0.0 - f:float64=0.0 - base_q_x: float64[densityFactor]=0.0 - base_q_y: float64[densityFactor]=0.0 - base_q_z: float64[densityFactor]=0.0 - sum_x:float64=0.0 - force_x:float64[blockSide,blockSide,blockSide,densityFactor]=0.0 - - q_idx_range:int32=0 +def md_x( + n_points: int32[blockSide, blockSide, blockSide], + position_x: float64[blockSide, blockSide, blockSide, densityFactor], + position_y: float64[blockSide, blockSide, blockSide, densityFactor], + position_z: float64[blockSide, blockSide, blockSide, densityFactor], +) -> float64[blockSide, blockSide, blockSide, densityFactor]: + + q_x: float64 = 0.0 + q_y: float64 = 0.0 + q_z: float64 = 0.0 + p_x: float64 = 0.0 + p_y: float64 = 0.0 + p_z: float64 = 0.0 + + dx: float64 = 0.0 + dy: float64 = 0.0 + dz: float64 = 0.0 + r2inv: float64 = 0.0 + r6inv: float64 = 0.0 + potential: float64 = 0.0 + f: float64 = 0.0 + base_q_x: float64[densityFactor] = 0.0 + base_q_y: float64[densityFactor] = 0.0 + base_q_z: float64[densityFactor] = 0.0 + sum_x: float64 = 0.0 + force_x: float64[blockSide, blockSide, blockSide, densityFactor] = 0.0 + + q_idx_range: int32 = 0 # Iterate over the grid, block by block - for b0_x,b0_y,b0_z in allo.grid(blockSide,blockSide,blockSide): + for b0_x, b0_y, b0_z in allo.grid(blockSide, blockSide, blockSide): # Iterate over the 3x3x3 (modulo boundary conditions) cube of blocks around b0 for b1_x in range(MAX(0, b0_x - 1), MIN(blockSide, b0_x + 2)): for b1_y in range(MAX(0, b0_y - 1), MIN(blockSide, b0_y + 2)): - for b1_z in range(MAX(0, b0_z - 1), MIN(blockSide, b0_z +2)): - q_idx_range = n_points[b1_x,b1_y,b1_z] + for b1_z in range(MAX(0, b0_z - 1), MIN(blockSide, b0_z + 2)): + q_idx_range = n_points[b1_x, b1_y, b1_z] for q_idx in range(densityFactor): - base_q_x[q_idx] = position_x[b1_x,b1_y,b1_z, q_idx] - base_q_y[q_idx] = position_y[b1_x,b1_y,b1_z, q_idx] - base_q_z[q_idx] = position_z[b1_x,b1_y,b1_z, q_idx] - for p_idx in range(n_points[b0_x,b0_y,b0_z]): - p_x = position_x[b0_x,b0_y,b0_z,p_idx] - p_y = position_y[b0_x,b0_y,b0_z,p_idx] - p_z = position_z[b0_x,b0_y,b0_z,p_idx] - sum_x = force_x[b0_x,b0_y,b0_z,p_idx] + base_q_x[q_idx] = position_x[b1_x, b1_y, b1_z, q_idx] + base_q_y[q_idx] = position_y[b1_x, b1_y, b1_z, q_idx] + base_q_z[q_idx] = position_z[b1_x, b1_y, b1_z, q_idx] + for p_idx in range(n_points[b0_x, b0_y, b0_z]): + p_x = position_x[b0_x, b0_y, b0_z, p_idx] + p_y = position_y[b0_x, b0_y, b0_z, p_idx] + p_z = position_z[b0_x, b0_y, b0_z, p_idx] + sum_x = force_x[b0_x, b0_y, b0_z, p_idx] for q_idx in range(q_idx_range): q_x = base_q_x[q_idx] q_y = base_q_y[q_idx] q_z = base_q_z[q_idx] - if (q_x != p_x or q_y != p_y or q_z != p_z): + if q_x != p_x or q_y != p_y or q_z != p_z: dx = p_x - q_x dy = p_y - q_y dz = p_z - q_z @@ -90,60 +96,61 @@ def md_x(n_points:int32[blockSide,blockSide,blockSide], f = r2inv * potential sum_x += f * dx - force_x[b0_x,b0_y,b0_z,p_idx]=sum_x + force_x[b0_x, b0_y, b0_z, p_idx] = sum_x return force_x -def md_y(n_points:int32[blockSide,blockSide,blockSide], - - position_x:float64[blockSide,blockSide,blockSide,densityFactor], - position_y:float64[blockSide,blockSide,blockSide,densityFactor], - position_z:float64[blockSide,blockSide,blockSide,densityFactor])->float64[blockSide,blockSide,blockSide,densityFactor]: - - - q_x: float64=0.0 - q_y: float64=0.0 - q_z: float64=0.0 - p_x: float64=0.0 - p_y: float64=0.0 - p_z: float64=0.0 - - dx:float64=0.0 - dy:float64=0.0 - dz:float64=0.0 - r2inv:float64=0.0 - r6inv:float64=0.0 - potential:float64=0.0 - f:float64=0.0 - base_q_x: float64[densityFactor]=0.0 - base_q_y: float64[densityFactor]=0.0 - base_q_z: float64[densityFactor]=0.0 - sum_y:float64=0.0 - force_y:float64[blockSide,blockSide,blockSide,densityFactor]=0.0 - - q_idx_range:int32=0 + +def md_y( + n_points: int32[blockSide, blockSide, blockSide], + position_x: float64[blockSide, blockSide, blockSide, densityFactor], + position_y: float64[blockSide, blockSide, blockSide, densityFactor], + position_z: float64[blockSide, blockSide, blockSide, densityFactor], +) -> float64[blockSide, blockSide, blockSide, densityFactor]: + + q_x: float64 = 0.0 + q_y: float64 = 0.0 + q_z: float64 = 0.0 + p_x: float64 = 0.0 + p_y: float64 = 0.0 + p_z: float64 = 0.0 + + dx: float64 = 0.0 + dy: float64 = 0.0 + dz: float64 = 0.0 + r2inv: float64 = 0.0 + r6inv: float64 = 0.0 + potential: float64 = 0.0 + f: float64 = 0.0 + base_q_x: float64[densityFactor] = 0.0 + base_q_y: float64[densityFactor] = 0.0 + base_q_z: float64[densityFactor] = 0.0 + sum_y: float64 = 0.0 + force_y: float64[blockSide, blockSide, blockSide, densityFactor] = 0.0 + + q_idx_range: int32 = 0 # Iterate over the grid, block by block - for b0_x,b0_y,b0_z in allo.grid(blockSide,blockSide,blockSide): + for b0_x, b0_y, b0_z in allo.grid(blockSide, blockSide, blockSide): # Iterate over the 3x3x3 (modulo boundary conditions) cube of blocks around b0 for b1_x in range(MAX(0, b0_x - 1), MIN(blockSide, b0_x + 2)): for b1_y in range(MAX(0, b0_y - 1), MIN(blockSide, b0_y + 2)): - for b1_z in range(MAX(0, b0_z - 1), MIN(blockSide, b0_z +2)): - q_idx_range = n_points[b1_x,b1_y,b1_z] + for b1_z in range(MAX(0, b0_z - 1), MIN(blockSide, b0_z + 2)): + q_idx_range = n_points[b1_x, b1_y, b1_z] for q_idx in range(densityFactor): - base_q_x[q_idx] = position_x[b1_x,b1_y,b1_z, q_idx] - base_q_y[q_idx] = position_y[b1_x,b1_y,b1_z, q_idx] - base_q_z[q_idx] = position_z[b1_x,b1_y,b1_z, q_idx] - for p_idx in range(n_points[b0_x,b0_y,b0_z]): - p_x = position_x[b0_x,b0_y,b0_z,p_idx] - p_y = position_y[b0_x,b0_y,b0_z,p_idx] - p_z = position_z[b0_x,b0_y,b0_z,p_idx] - sum_y = force_y[b0_x,b0_y,b0_z,p_idx] + base_q_x[q_idx] = position_x[b1_x, b1_y, b1_z, q_idx] + base_q_y[q_idx] = position_y[b1_x, b1_y, b1_z, q_idx] + base_q_z[q_idx] = position_z[b1_x, b1_y, b1_z, q_idx] + for p_idx in range(n_points[b0_x, b0_y, b0_z]): + p_x = position_x[b0_x, b0_y, b0_z, p_idx] + p_y = position_y[b0_x, b0_y, b0_z, p_idx] + p_z = position_z[b0_x, b0_y, b0_z, p_idx] + sum_y = force_y[b0_x, b0_y, b0_z, p_idx] for q_idx in range(q_idx_range): q_x = base_q_x[q_idx] q_y = base_q_y[q_idx] q_z = base_q_z[q_idx] - if (q_x != p_x or q_y != p_y or q_z != p_z): + if q_x != p_x or q_y != p_y or q_z != p_z: dx = p_x - q_x dy = p_y - q_y dz = p_z - q_z @@ -153,60 +160,61 @@ def md_y(n_points:int32[blockSide,blockSide,blockSide], f = r2inv * potential sum_y += f * dy - force_y[b0_x,b0_y,b0_z,p_idx]=sum_y + force_y[b0_x, b0_y, b0_z, p_idx] = sum_y return force_y -def md_z(n_points:int32[blockSide,blockSide,blockSide], - - position_x:float64[blockSide,blockSide,blockSide,densityFactor], - position_y:float64[blockSide,blockSide,blockSide,densityFactor], - position_z:float64[blockSide,blockSide,blockSide,densityFactor])->float64[blockSide,blockSide,blockSide,densityFactor]: - - - q_x: float64=0.0 - q_y: float64=0.0 - q_z: float64=0.0 - p_x: float64=0.0 - p_y: float64=0.0 - p_z: float64=0.0 - - dx:float64=0.0 - dy:float64=0.0 - dz:float64=0.0 - r2inv:float64=0.0 - r6inv:float64=0.0 - potential:float64=0.0 - f:float64=0.0 - base_q_x: float64[densityFactor]=0.0 - base_q_y: float64[densityFactor]=0.0 - base_q_z: float64[densityFactor]=0.0 - sum_z:float64=0.0 - force_z:float64[blockSide,blockSide,blockSide,densityFactor]=0.0 - - q_idx_range:int32=0 + +def md_z( + n_points: int32[blockSide, blockSide, blockSide], + position_x: float64[blockSide, blockSide, blockSide, densityFactor], + position_y: float64[blockSide, blockSide, blockSide, densityFactor], + position_z: float64[blockSide, blockSide, blockSide, densityFactor], +) -> float64[blockSide, blockSide, blockSide, densityFactor]: + + q_x: float64 = 0.0 + q_y: float64 = 0.0 + q_z: float64 = 0.0 + p_x: float64 = 0.0 + p_y: float64 = 0.0 + p_z: float64 = 0.0 + + dx: float64 = 0.0 + dy: float64 = 0.0 + dz: float64 = 0.0 + r2inv: float64 = 0.0 + r6inv: float64 = 0.0 + potential: float64 = 0.0 + f: float64 = 0.0 + base_q_x: float64[densityFactor] = 0.0 + base_q_y: float64[densityFactor] = 0.0 + base_q_z: float64[densityFactor] = 0.0 + sum_z: float64 = 0.0 + force_z: float64[blockSide, blockSide, blockSide, densityFactor] = 0.0 + + q_idx_range: int32 = 0 # Iterate over the grid, block by block - for b0_x,b0_y,b0_z in allo.grid(blockSide,blockSide,blockSide): + for b0_x, b0_y, b0_z in allo.grid(blockSide, blockSide, blockSide): # Iterate over the 3x3x3 (modulo boundary conditions) cube of blocks around b0 for b1_x in range(MAX(0, b0_x - 1), MIN(blockSide, b0_x + 2)): for b1_y in range(MAX(0, b0_y - 1), MIN(blockSide, b0_y + 2)): - for b1_z in range(MAX(0, b0_z - 1), MIN(blockSide, b0_z +2)): - q_idx_range = n_points[b1_x,b1_y,b1_z] + for b1_z in range(MAX(0, b0_z - 1), MIN(blockSide, b0_z + 2)): + q_idx_range = n_points[b1_x, b1_y, b1_z] for q_idx in range(densityFactor): - base_q_x[q_idx] = position_x[b1_x,b1_y,b1_z, q_idx] - base_q_y[q_idx] = position_y[b1_x,b1_y,b1_z, q_idx] - base_q_z[q_idx] = position_z[b1_x,b1_y,b1_z, q_idx] - for p_idx in range(n_points[b0_x,b0_y,b0_z]): - p_x = position_x[b0_x,b0_y,b0_z,p_idx] - p_y = position_y[b0_x,b0_y,b0_z,p_idx] - p_z = position_z[b0_x,b0_y,b0_z,p_idx] - sum_z = force_z[b0_x,b0_y,b0_z,p_idx] + base_q_x[q_idx] = position_x[b1_x, b1_y, b1_z, q_idx] + base_q_y[q_idx] = position_y[b1_x, b1_y, b1_z, q_idx] + base_q_z[q_idx] = position_z[b1_x, b1_y, b1_z, q_idx] + for p_idx in range(n_points[b0_x, b0_y, b0_z]): + p_x = position_x[b0_x, b0_y, b0_z, p_idx] + p_y = position_y[b0_x, b0_y, b0_z, p_idx] + p_z = position_z[b0_x, b0_y, b0_z, p_idx] + sum_z = force_z[b0_x, b0_y, b0_z, p_idx] for q_idx in range(q_idx_range): q_x = base_q_x[q_idx] q_y = base_q_y[q_idx] q_z = base_q_z[q_idx] - if (q_x != p_x or q_y != p_y or q_z != p_z): + if q_x != p_x or q_y != p_y or q_z != p_z: dx = p_x - q_x dy = p_y - q_y dz = p_z - q_z @@ -216,19 +224,20 @@ def md_z(n_points:int32[blockSide,blockSide,blockSide], f = r2inv * potential sum_z += f * dz - force_z[b0_x,b0_y,b0_z,p_idx]=sum_z + force_z[b0_x, b0_y, b0_z, p_idx] = sum_z return force_z + if __name__ == "__main__": - s_x=allo.customize(md_x) + s_x = allo.customize(md_x) print(s_x.module) s_x.build() - s_y=allo.customize(md_y) + s_y = allo.customize(md_y) print(s_y.module) s_y.build() - s_z=allo.customize(md_z) + s_z = allo.customize(md_z) print(s_z.module) s_z.build() diff --git a/examples/machsuite/md/grid/md_kernel_test.py b/examples/machsuite/md/grid/md_kernel_test.py index 7fcac34b1a..602e61de85 100644 --- a/examples/machsuite/md/grid/md_kernel_test.py +++ b/examples/machsuite/md/grid/md_kernel_test.py @@ -1,3 +1,6 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import os import sys import json @@ -22,9 +25,9 @@ def md_force_ref(n_points, pos_x, pos_y, pos_z, blockSide): for b0x in range(blockSide): for b0y in range(blockSide): for b0z in range(blockSide): - for b1x in range(max(0, b0x-1), min(blockSide, b0x+2)): - for b1y in range(max(0, b0y-1), min(blockSide, b0y+2)): - for b1z in range(max(0, b0z-1), min(blockSide, b0z+2)): + for b1x in range(max(0, b0x - 1), min(blockSide, b0x + 2)): + for b1y in range(max(0, b0y - 1), min(blockSide, b0y + 2)): + for b1z in range(max(0, b0z - 1), min(blockSide, b0z + 2)): q_range = n_points[b1x, b1y, b1z] for p_idx in range(n_points[b0x, b0y, b0z]): px = pos_x[b0x, b0y, b0z, p_idx] @@ -39,7 +42,7 @@ def md_force_ref(n_points, pos_x, pos_y, pos_z, blockSide): dx = px - qx dy = py - qy dz = pz - qz - r2inv = 1.0 / (dx*dx + dy*dy + dz*dz) + r2inv = 1.0 / (dx * dx + dy * dy + dz * dz) r6inv = r2inv * r2inv * r2inv potential = r6inv * (lj1 * r6inv - lj2) f = r2inv * potential @@ -73,18 +76,32 @@ def test_md_grid(psize="small"): np.random.seed(42) # Generate random atom positions within grid blocks - np_n_points = np.full((blockSide, blockSide, blockSide), densityFactor, dtype=np.int32) - np_pos_x = np.zeros((blockSide, blockSide, blockSide, densityFactor), dtype=np.float64) - np_pos_y = np.zeros((blockSide, blockSide, blockSide, densityFactor), dtype=np.float64) - np_pos_z = np.zeros((blockSide, blockSide, blockSide, densityFactor), dtype=np.float64) + np_n_points = np.full( + (blockSide, blockSide, blockSide), densityFactor, dtype=np.int32 + ) + np_pos_x = np.zeros( + (blockSide, blockSide, blockSide, densityFactor), dtype=np.float64 + ) + np_pos_y = np.zeros( + (blockSide, blockSide, blockSide, densityFactor), dtype=np.float64 + ) + np_pos_z = np.zeros( + (blockSide, blockSide, blockSide, densityFactor), dtype=np.float64 + ) for bx in range(blockSide): for by in range(blockSide): for bz in range(blockSide): for a in range(densityFactor): - np_pos_x[bx, by, bz, a] = bx * blockEdge + np.random.rand() * blockEdge - np_pos_y[bx, by, bz, a] = by * blockEdge + np.random.rand() * blockEdge - np_pos_z[bx, by, bz, a] = bz * blockEdge + np.random.rand() * blockEdge + np_pos_x[bx, by, bz, a] = ( + bx * blockEdge + np.random.rand() * blockEdge + ) + np_pos_y[bx, by, bz, a] = ( + by * blockEdge + np.random.rand() * blockEdge + ) + np_pos_z[bx, by, bz, a] = ( + bz * blockEdge + np.random.rand() * blockEdge + ) s_x = allo.customize(md.md_x) mod_x = s_x.build() @@ -97,7 +114,9 @@ def test_md_grid(psize="small"): forceY = mod_y(np_n_points, np_pos_x, np_pos_y, np_pos_z) forceZ = mod_z(np_n_points, np_pos_x, np_pos_y, np_pos_z) - check_x, check_y, check_z = md_force_ref(np_n_points, np_pos_x, np_pos_y, np_pos_z, blockSide) + check_x, check_y, check_z = md_force_ref( + np_n_points, np_pos_x, np_pos_y, np_pos_z, blockSide + ) np.testing.assert_allclose(forceX, check_x, rtol=1e-5, atol=1e-5) np.testing.assert_allclose(forceY, check_y, rtol=1e-5, atol=1e-5) diff --git a/examples/machsuite/md/knn/__init__.py b/examples/machsuite/md/knn/__init__.py index e69de29bb2..1ab7e98c71 100644 --- a/examples/machsuite/md/knn/__init__.py +++ b/examples/machsuite/md/knn/__init__.py @@ -0,0 +1,2 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 diff --git a/examples/machsuite/md/knn/md.py b/examples/machsuite/md/knn/md.py index d08bad35f2..f44ca22360 100644 --- a/examples/machsuite/md/knn/md.py +++ b/examples/machsuite/md/knn/md.py @@ -1,54 +1,63 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import allo -from allo.ir.types import float64,int32, Int +from allo.ir.types import float64, int32, Int import numpy as np -nAtoms:int32 = 256 -maxNeighbors:int32=16 -lj1:float64=1.5 -lj2:float64=2.0 -domainEdge: float64=20.0 - - -def md_x(position_x:float64[nAtoms], position_y:float64[nAtoms],position_z:float64[nAtoms],NL:int32[nAtoms*maxNeighbors])->float64[nAtoms]: - #-> (float64[nAtoms],float64[nAtoms],float64[nAtoms]): - - i_x: float64=0.0 - i_y: float64=0.0 - i_z: float64=0.0 - jidx: int32=0 - j_x: float64=0.0 - j_y: float64=0.0 - j_z: float64=0.0 - delx: float64=0.0 - dely: float64=0.0 - delz: float64=0.0 - r2inv: float64=0.0 - r6inv: float64=0.0 - potential: float64=0.0 - force: float64=0.0 - fx: float64=0.0 - force_x:float64[nAtoms]=0.0 + +nAtoms: int32 = 256 +maxNeighbors: int32 = 16 +lj1: float64 = 1.5 +lj2: float64 = 2.0 +domainEdge: float64 = 20.0 + + +def md_x( + position_x: float64[nAtoms], + position_y: float64[nAtoms], + position_z: float64[nAtoms], + NL: int32[nAtoms * maxNeighbors], +) -> float64[nAtoms]: + # -> (float64[nAtoms],float64[nAtoms],float64[nAtoms]): + + i_x: float64 = 0.0 + i_y: float64 = 0.0 + i_z: float64 = 0.0 + jidx: int32 = 0 + j_x: float64 = 0.0 + j_y: float64 = 0.0 + j_z: float64 = 0.0 + delx: float64 = 0.0 + dely: float64 = 0.0 + delz: float64 = 0.0 + r2inv: float64 = 0.0 + r6inv: float64 = 0.0 + potential: float64 = 0.0 + force: float64 = 0.0 + fx: float64 = 0.0 + force_x: float64[nAtoms] = 0.0 for i in range(nAtoms): - i_x= position_x[i] - i_y= position_y[i] - i_z= position_z[i] - fx=0.0 + i_x = position_x[i] + i_y = position_y[i] + i_z = position_z[i] + fx = 0.0 # fy:float64=0.0 # fz:float64=0.0 - + for j in range(maxNeighbors): # Get neighbor - jidx= NL[i * maxNeighbors + j] + jidx = NL[i * maxNeighbors + j] # Look up x, y, z positions - j_x= position_x[jidx] - j_y= position_y[jidx] - j_z= position_z[jidx] + j_x = position_x[jidx] + j_y = position_y[jidx] + j_z = position_z[jidx] # Calculate distance delx = i_x - j_x dely = i_y - j_y delz = i_z - j_z - if((delx * delx + dely * dely + delz * delz)==0): - r2inv=(domainEdge*domainEdge*3.0)*1000 + if (delx * delx + dely * dely + delz * delz) == 0: + r2inv = (domainEdge * domainEdge * 3.0) * 1000 else: r2inv = 1.0 / (delx * delx + dely * dely + delz * delz) # Assume no cutoff and always account for all nodes in the area @@ -56,54 +65,60 @@ def md_x(position_x:float64[nAtoms], position_y:float64[nAtoms],position_z:float potential = r6inv * (lj1 * r6inv - lj2) # Sum changes in force force = r2inv * potential - fx = fx+delx * force + fx = fx + delx * force # Update forces after all neighbors are accounted for force_x[i] = fx # force_y[i] = fy # force_z[i] = fz return force_x - #print(f"dF={fx},{fy},{fz}") - -def md_y(position_x:float64[nAtoms], position_y:float64[nAtoms],position_z:float64[nAtoms],NL:int32[nAtoms*maxNeighbors])->float64[nAtoms]: - #-> (float64[nAtoms],float64[nAtoms],float64[nAtoms]): - i_x: float64=0.0 - i_y: float64=0.0 - i_z: float64=0.0 - jidx: int32=0 - j_x: float64=0.0 - j_y: float64=0.0 - j_z: float64=0.0 - delx: float64=0.0 - dely: float64=0.0 - delz: float64=0.0 - r2inv: float64=0.0 - r6inv: float64=0.0 - potential: float64=0.0 - force: float64=0.0 - fy: float64=0.0 - force_y:float64[nAtoms] + # print(f"dF={fx},{fy},{fz}") + + +def md_y( + position_x: float64[nAtoms], + position_y: float64[nAtoms], + position_z: float64[nAtoms], + NL: int32[nAtoms * maxNeighbors], +) -> float64[nAtoms]: + # -> (float64[nAtoms],float64[nAtoms],float64[nAtoms]): + i_x: float64 = 0.0 + i_y: float64 = 0.0 + i_z: float64 = 0.0 + jidx: int32 = 0 + j_x: float64 = 0.0 + j_y: float64 = 0.0 + j_z: float64 = 0.0 + delx: float64 = 0.0 + dely: float64 = 0.0 + delz: float64 = 0.0 + r2inv: float64 = 0.0 + r6inv: float64 = 0.0 + potential: float64 = 0.0 + force: float64 = 0.0 + fy: float64 = 0.0 + force_y: float64[nAtoms] for i in range(nAtoms): - i_x= position_x[i] - i_y= position_y[i] - i_z= position_z[i] - fy=0.0 + i_x = position_x[i] + i_y = position_y[i] + i_z = position_z[i] + fy = 0.0 # fy:float64=0.0 # fz:float64=0.0 - + for j in range(maxNeighbors): # Get neighbor - jidx= NL[i * maxNeighbors + j] + jidx = NL[i * maxNeighbors + j] # Look up x, y, z positions - j_x= position_x[jidx] - j_y= position_y[jidx] - j_z= position_z[jidx] + j_x = position_x[jidx] + j_y = position_y[jidx] + j_z = position_z[jidx] # Calculate distance delx = i_x - j_x dely = i_y - j_y delz = i_z - j_z - if((delx * delx + dely * dely + delz * delz)==0): - r2inv=(domainEdge*domainEdge*3.0)*1000 + if (delx * delx + dely * dely + delz * delz) == 0: + r2inv = (domainEdge * domainEdge * 3.0) * 1000 else: r2inv = 1.0 / (delx * delx + dely * dely + delz * delz) # Assume no cutoff and always account for all nodes in the area @@ -111,54 +126,60 @@ def md_y(position_x:float64[nAtoms], position_y:float64[nAtoms],position_z:float potential = r6inv * (lj1 * r6inv - lj2) # Sum changes in force force = r2inv * potential - fy = fy+dely * force + fy = fy + dely * force # Update forces after all neighbors are accounted for force_y[i] = fy # force_y[i] = fy # force_z[i] = fz return force_y - #print(f"dF={fx},{fy},{fz}") - -def md_z(position_x:float64[nAtoms], position_y:float64[nAtoms],position_z:float64[nAtoms],NL:int32[nAtoms*maxNeighbors])->float64[nAtoms]: - #-> (float64[nAtoms],float64[nAtoms],float64[nAtoms]): - i_x: float64=0.0 - i_y: float64=0.0 - i_z: float64=0.0 - jidx: int32=0 - j_x: float64=0.0 - j_y: float64=0.0 - j_z: float64=0.0 - delx: float64=0.0 - dely: float64=0.0 - delz: float64=0.0 - r2inv: float64=0.0 - r6inv: float64=0.0 - potential: float64=0.0 - force: float64=0.0 - fz: float64=0.0 - force_z:float64[nAtoms] + # print(f"dF={fx},{fy},{fz}") + + +def md_z( + position_x: float64[nAtoms], + position_y: float64[nAtoms], + position_z: float64[nAtoms], + NL: int32[nAtoms * maxNeighbors], +) -> float64[nAtoms]: + # -> (float64[nAtoms],float64[nAtoms],float64[nAtoms]): + i_x: float64 = 0.0 + i_y: float64 = 0.0 + i_z: float64 = 0.0 + jidx: int32 = 0 + j_x: float64 = 0.0 + j_y: float64 = 0.0 + j_z: float64 = 0.0 + delx: float64 = 0.0 + dely: float64 = 0.0 + delz: float64 = 0.0 + r2inv: float64 = 0.0 + r6inv: float64 = 0.0 + potential: float64 = 0.0 + force: float64 = 0.0 + fz: float64 = 0.0 + force_z: float64[nAtoms] for i in range(nAtoms): - i_x= position_x[i] - i_y= position_y[i] - i_z= position_z[i] - fz=0.0 + i_x = position_x[i] + i_y = position_y[i] + i_z = position_z[i] + fz = 0.0 # fy:float64=0.0 # fz:float64=0.0 - + for j in range(maxNeighbors): # Get neighbor - jidx= NL[i * maxNeighbors + j] + jidx = NL[i * maxNeighbors + j] # Look up x, y, z positions - j_x= position_x[jidx] - j_y= position_y[jidx] - j_z= position_z[jidx] + j_x = position_x[jidx] + j_y = position_y[jidx] + j_z = position_z[jidx] # Calculate distance delx = i_x - j_x dely = i_y - j_y delz = i_z - j_z - if((delx * delx + dely * dely + delz * delz)==0): - r2inv=(domainEdge*domainEdge*3.0)*1000 + if (delx * delx + dely * dely + delz * delz) == 0: + r2inv = (domainEdge * domainEdge * 3.0) * 1000 else: r2inv = 1.0 / (delx * delx + dely * dely + delz * delz) # Assume no cutoff and always account for all nodes in the area @@ -166,26 +187,26 @@ def md_z(position_x:float64[nAtoms], position_y:float64[nAtoms],position_z:float potential = r6inv * (lj1 * r6inv - lj2) # Sum changes in force force = r2inv * potential - fz = fz+delz * force + fz = fz + delz * force # Update forces after all neighbors are accounted for force_z[i] = fz # force_y[i] = fy # force_z[i] = fz return force_z - #print(f"dF={fx},{fy},{fz}") + # print(f"dF={fx},{fy},{fz}") + if __name__ == "__main__": - s_x=allo.customize(md_x) + s_x = allo.customize(md_x) print(s_x.module) s_x.build() - s_y=allo.customize(md_y) + s_y = allo.customize(md_y) print(s_y.module) s_y.build() - s_z=allo.customize(md_z) + s_z = allo.customize(md_z) print(s_z.module) s_z.build() print("build success") - diff --git a/examples/machsuite/md/knn/md_kernel_test.py b/examples/machsuite/md/knn/md_kernel_test.py index 97e7a4d4c9..30283bada1 100644 --- a/examples/machsuite/md/knn/md_kernel_test.py +++ b/examples/machsuite/md/knn/md_kernel_test.py @@ -1,3 +1,6 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import os import sys import json @@ -28,7 +31,7 @@ def md_knn_force_ref(pos_x, pos_y, pos_z, NL, nAtoms, maxNeighbors): dx = ix - jx dy = iy - jy dz = iz - jz - r2 = dx*dx + dy*dy + dz*dz + r2 = dx * dx + dy * dy + dz * dz if r2 == 0: r2inv = (domainEdge * domainEdge * 3.0) * 1000 else: @@ -86,7 +89,9 @@ def test_md_knn(psize="small"): forceY = mod_y(np_pos_x, np_pos_y, np_pos_z, np_NL) forceZ = mod_z(np_pos_x, np_pos_y, np_pos_z, np_NL) - check_x, check_y, check_z = md_knn_force_ref(np_pos_x, np_pos_y, np_pos_z, np_NL, nAtoms, maxNeighbors) + check_x, check_y, check_z = md_knn_force_ref( + np_pos_x, np_pos_y, np_pos_z, np_NL, nAtoms, maxNeighbors + ) np.testing.assert_allclose(forceX, check_x, rtol=1e-5, atol=1e-5) np.testing.assert_allclose(forceY, check_y, rtol=1e-5, atol=1e-5) diff --git a/examples/machsuite/merge/__init__.py b/examples/machsuite/merge/__init__.py index e69de29bb2..1ab7e98c71 100644 --- a/examples/machsuite/merge/__init__.py +++ b/examples/machsuite/merge/__init__.py @@ -0,0 +1,2 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 diff --git a/examples/machsuite/merge/mergesort.py b/examples/machsuite/merge/mergesort.py index 09cd526ed4..15081be21d 100644 --- a/examples/machsuite/merge/mergesort.py +++ b/examples/machsuite/merge/mergesort.py @@ -1,29 +1,33 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import allo from allo.ir.types import int32 import numpy as np + N = 2048 -def merge(a:int32[N], start: int32, m: int32, stop: int32): - temp:int32[N] - - tmp_j:int32 - tmp_i:int32 +def merge(a: int32[N], start: int32, m: int32, stop: int32): + temp: int32[N] - i:int32 = start - j:int32 = stop + tmp_j: int32 + tmp_i: int32 + + i: int32 = start + j: int32 = stop for index in range(start, m + 1): temp[index] = a[index] - - for index in range(m+1, stop + 1): + + for index in range(m + 1, stop + 1): temp[m + 1 + stop - index] = a[index] for k in range(start, stop + 1): tmp_j = temp[j] tmp_i = temp[i] - if (tmp_j < tmp_i): + if tmp_j < tmp_i: a[k] = tmp_j j -= 1 else: @@ -31,33 +35,32 @@ def merge(a:int32[N], start: int32, m: int32, stop: int32): i += 1 -def merge_sort(a:int32[N]) -> int32[N]: - start:int32 = 0 - stop:int32 = N - 1 +def merge_sort(a: int32[N]) -> int32[N]: + start: int32 = 0 + stop: int32 = N - 1 - f:int32 - m:int32 = 1 - mid:int32 - to:int32 + f: int32 + m: int32 = 1 + mid: int32 + to: int32 - - while (m < stop-start + 1): - for ii in range(start, stop, m+m): + while m < stop - start + 1: + for ii in range(start, stop, m + m): f = ii mid = ii + m - 1 to = ii + m + m - 1 - if (to <= stop): + if to <= stop: merge(a, f, mid, to) else: merge(a, f, mid, stop) m += m - return a - + + if __name__ == "__main__": s = allo.customize(merge_sort) mod = s.build() @@ -67,4 +70,4 @@ def merge_sort(a:int32[N]) -> int32[N]: result = mod(a) expected = np.sort(a).astype(np.int32) np.testing.assert_array_equal(result, expected) - print("PASS!") \ No newline at end of file + print("PASS!") diff --git a/examples/machsuite/merge/testing.py b/examples/machsuite/merge/testing.py index 214dc8b83d..eb05c9d8c0 100644 --- a/examples/machsuite/merge/testing.py +++ b/examples/machsuite/merge/testing.py @@ -1,3 +1,6 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import os import sys import json diff --git a/examples/machsuite/nw/__init__.py b/examples/machsuite/nw/__init__.py index e69de29bb2..1ab7e98c71 100644 --- a/examples/machsuite/nw/__init__.py +++ b/examples/machsuite/nw/__init__.py @@ -0,0 +1,2 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 diff --git a/examples/machsuite/nw/test_nw.py b/examples/machsuite/nw/test_nw.py index 52b09ca424..ac860c7791 100644 --- a/examples/machsuite/nw/test_nw.py +++ b/examples/machsuite/nw/test_nw.py @@ -113,8 +113,12 @@ def test_nw(psize="small"): # Generate random DNA-like sequences alphabet = [ord(c) for c in "ACGT"] - seq_a = np.array([alphabet[i] for i in np.random.randint(0, 4, size=ALEN)], dtype=np.int32) - seq_b = np.array([alphabet[i] for i in np.random.randint(0, 4, size=BLEN)], dtype=np.int32) + seq_a = np.array( + [alphabet[i] for i in np.random.randint(0, 4, size=ALEN)], dtype=np.int32 + ) + seq_b = np.array( + [alphabet[i] for i in np.random.randint(0, 4, size=BLEN)], dtype=np.int32 + ) # Build and run s = allo.customize(nw.needwun) @@ -127,5 +131,6 @@ def test_nw(psize="small"): np.testing.assert_array_equal(out, expected) print("PASS!") + if __name__ == "__main__": test_nw("full") diff --git a/examples/machsuite/sort/__init__.py b/examples/machsuite/sort/__init__.py index e69de29bb2..1ab7e98c71 100644 --- a/examples/machsuite/sort/__init__.py +++ b/examples/machsuite/sort/__init__.py @@ -0,0 +1,2 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 diff --git a/examples/machsuite/sort/radix/__init__.py b/examples/machsuite/sort/radix/__init__.py index e69de29bb2..1ab7e98c71 100644 --- a/examples/machsuite/sort/radix/__init__.py +++ b/examples/machsuite/sort/radix/__init__.py @@ -0,0 +1,2 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 diff --git a/examples/machsuite/sort/radix/radix_sort.py b/examples/machsuite/sort/radix/radix_sort.py index cf0e99b015..7ac39aaf85 100644 --- a/examples/machsuite/sort/radix/radix_sort.py +++ b/examples/machsuite/sort/radix/radix_sort.py @@ -36,13 +36,17 @@ def ss_sort(a: int32[SIZE]) -> int32[SIZE]: for blockID in range(NUMOFBLOCKS): for i_h in range(4): a_indx = blockID * ELEMENTSPERBLOCK + i_h - bucket_indx = ((a[a_indx] >> (exp * 2)) & 0x3) * NUMOFBLOCKS + blockID + 1 + bucket_indx = ( + ((a[a_indx] >> (exp * 2)) & 0x3) * NUMOFBLOCKS + blockID + 1 + ) bucket[bucket_indx] = bucket[bucket_indx] + 1 else: for blockID in range(NUMOFBLOCKS): for i_h in range(4): a_indx = blockID * ELEMENTSPERBLOCK + i_h - bucket_indx = ((b[a_indx] >> (exp * 2)) & 0x3) * NUMOFBLOCKS + blockID + 1 + bucket_indx = ( + ((b[a_indx] >> (exp * 2)) & 0x3) * NUMOFBLOCKS + blockID + 1 + ) bucket[bucket_indx] = bucket[bucket_indx] + 1 # local_scan @@ -67,7 +71,9 @@ def ss_sort(a: int32[SIZE]) -> int32[SIZE]: if valid_buffer == 0: for blockID_u in range(NUMOFBLOCKS): for i_u in range(4): - bucket_indx = ((a[blockID_u * ELEMENTSPERBLOCK + i_u] >> (exp * 2)) & 0x3) * NUMOFBLOCKS + blockID_u + bucket_indx = ( + (a[blockID_u * ELEMENTSPERBLOCK + i_u] >> (exp * 2)) & 0x3 + ) * NUMOFBLOCKS + blockID_u a_indx = blockID_u * ELEMENTSPERBLOCK + i_u b[bucket[bucket_indx]] = a[a_indx] bucket[bucket_indx] = bucket[bucket_indx] + 1 @@ -75,7 +81,9 @@ def ss_sort(a: int32[SIZE]) -> int32[SIZE]: else: for blockID_u in range(NUMOFBLOCKS): for i_u in range(4): - bucket_indx = ((b[blockID_u * ELEMENTSPERBLOCK + i_u] >> (exp * 2)) & 0x3) * NUMOFBLOCKS + blockID_u + bucket_indx = ( + (b[blockID_u * ELEMENTSPERBLOCK + i_u] >> (exp * 2)) & 0x3 + ) * NUMOFBLOCKS + blockID_u a_indx = blockID_u * ELEMENTSPERBLOCK + i_u a[bucket[bucket_indx]] = b[a_indx] bucket[bucket_indx] = bucket[bucket_indx] + 1 diff --git a/examples/machsuite/sort/radix/test_radix.py b/examples/machsuite/sort/radix/test_radix.py index 82cac89422..97028edf86 100644 --- a/examples/machsuite/sort/radix/test_radix.py +++ b/examples/machsuite/sort/radix/test_radix.py @@ -40,5 +40,6 @@ def test_radix_sort(psize="small"): np.testing.assert_array_equal(result, expected) print("PASS!") + if __name__ == "__main__": test_radix_sort("full") diff --git a/examples/machsuite/spmv/__init__.py b/examples/machsuite/spmv/__init__.py index e69de29bb2..1ab7e98c71 100644 --- a/examples/machsuite/spmv/__init__.py +++ b/examples/machsuite/spmv/__init__.py @@ -0,0 +1,2 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 diff --git a/examples/machsuite/spmv/crs/__init__.py b/examples/machsuite/spmv/crs/__init__.py index e69de29bb2..1ab7e98c71 100644 --- a/examples/machsuite/spmv/crs/__init__.py +++ b/examples/machsuite/spmv/crs/__init__.py @@ -0,0 +1,2 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 diff --git a/examples/machsuite/spmv/crs/crs.py b/examples/machsuite/spmv/crs/crs.py index 2d92a20175..89b534f6c3 100644 --- a/examples/machsuite/spmv/crs/crs.py +++ b/examples/machsuite/spmv/crs/crs.py @@ -1,16 +1,22 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import numpy as np import allo from allo.ir.types import int32, float64 N = 494 # Number of rows -NNZ = 1666 # Number of nonzero values +NNZ = 1666 # Number of nonzero values + -def crs(val: float64[NNZ], cols: int32[NNZ], row: int32[N+1], vec: float64[N]) -> float64[N]: +def crs( + val: float64[NNZ], cols: int32[NNZ], row: int32[N + 1], vec: float64[N] +) -> float64[N]: out: float64[N] = 0.0 for i in range(N): tmp_begin: int32 = row[i] - tmp_end: int32 = row[i+1] + tmp_end: int32 = row[i + 1] for j in range(tmp_begin, tmp_end): out[i] += val[j] * vec[cols[j]] diff --git a/examples/machsuite/spmv/crs/run_test.py b/examples/machsuite/spmv/crs/run_test.py index bea4cef452..bf47d778d7 100644 --- a/examples/machsuite/spmv/crs/run_test.py +++ b/examples/machsuite/spmv/crs/run_test.py @@ -1,3 +1,6 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import os import sys import json diff --git a/examples/machsuite/spmv/ellpack/__init__.py b/examples/machsuite/spmv/ellpack/__init__.py index e69de29bb2..1ab7e98c71 100644 --- a/examples/machsuite/spmv/ellpack/__init__.py +++ b/examples/machsuite/spmv/ellpack/__init__.py @@ -0,0 +1,2 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 diff --git a/examples/machsuite/spmv/ellpack/ellpack.py b/examples/machsuite/spmv/ellpack/ellpack.py index aa854b2c6f..1a2266c2eb 100644 --- a/examples/machsuite/spmv/ellpack/ellpack.py +++ b/examples/machsuite/spmv/ellpack/ellpack.py @@ -1,19 +1,24 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import allo import numpy as np from allo.ir.types import int32, float64 -N = 494 # Number of rows -L = 10 # Number of non zero entries in row +N = 494 # Number of rows +L = 10 # Number of non zero entries in row + -def ellpack(NZ: float64[N*L], cols: int32[N*L], vec: float64[N]) -> float64[N]: +def ellpack(NZ: float64[N * L], cols: int32[N * L], vec: float64[N]) -> float64[N]: out: float64[N] = 0 for i, j in allo.grid(N, L): - if cols[j + i*L] != -1: # For rows with fewer than L non zero entries - out[i] += NZ[j + i*L] * vec[cols[j + i*L]] + if cols[j + i * L] != -1: # For rows with fewer than L non zero entries + out[i] += NZ[j + i * L] * vec[cols[j + i * L]] return out + if __name__ == "__main__": s = allo.customize(ellpack) mod = s.build() diff --git a/examples/machsuite/spmv/ellpack/run_test.py b/examples/machsuite/spmv/ellpack/run_test.py index db466dc6cb..23c176a866 100644 --- a/examples/machsuite/spmv/ellpack/run_test.py +++ b/examples/machsuite/spmv/ellpack/run_test.py @@ -1,3 +1,6 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import os import sys import json diff --git a/examples/machsuite/stencil/__init__.py b/examples/machsuite/stencil/__init__.py index e69de29bb2..1ab7e98c71 100644 --- a/examples/machsuite/stencil/__init__.py +++ b/examples/machsuite/stencil/__init__.py @@ -0,0 +1,2 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 diff --git a/examples/machsuite/stencil/stencil2d.py b/examples/machsuite/stencil/stencil2d.py index 60921ca540..5d5db50e04 100644 --- a/examples/machsuite/stencil/stencil2d.py +++ b/examples/machsuite/stencil/stencil2d.py @@ -1,3 +1,6 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import allo import numpy as np from allo.ir.types import int32 @@ -6,16 +9,20 @@ row_size = 128 f_size = 9 -def stencil2d(orig: int32[row_size, col_size], filter: int32[f_size] ) -> int32[row_size, col_size]: + +def stencil2d( + orig: int32[row_size, col_size], filter: int32[f_size] +) -> int32[row_size, col_size]: sol: int32[row_size, col_size] = 0 - for i, j in allo.grid(row_size-2, col_size-2): - temp: int32= 0 + for i, j in allo.grid(row_size - 2, col_size - 2): + temp: int32 = 0 for m, n in allo.grid(3, 3): - mul: int32= filter[m*3 + n] * orig[(i+m), (j+n)] + mul: int32 = filter[m * 3 + n] * orig[(i + m), (j + n)] temp += mul sol[i, j] = temp return sol + if __name__ == "__main__": s = allo.customize(stencil2d) mod = s.build(target="llvm") diff --git a/examples/machsuite/stencil/stencil3d.py b/examples/machsuite/stencil/stencil3d.py index 37b15653b2..90fbbc1084 100644 --- a/examples/machsuite/stencil/stencil3d.py +++ b/examples/machsuite/stencil/stencil3d.py @@ -1,3 +1,6 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import allo import numpy as np from allo.ir.types import int32 @@ -6,7 +9,10 @@ col_size = 32 row_size = 16 -def stencil3d(C: int32[2], orig: int32[row_size, col_size, height_size]) -> int32[row_size, col_size, height_size]: + +def stencil3d( + C: int32[2], orig: int32[row_size, col_size, height_size] +) -> int32[row_size, col_size, height_size]: sol: int32[row_size, col_size, height_size] = 0 sum0: int32 = 0 sum1: int32 = 0 @@ -19,35 +25,40 @@ def stencil3d(C: int32[2], orig: int32[row_size, col_size, height_size]) -> int3 sol[k, j, height_size - 1] = orig[k, j, height_size - 1] for i, k in allo.grid(height_size - 1, row_size): - sol[k, 0, (i+1)] = orig[k, 0, (i+1)] - sol[k, col_size - 1, (i+1)] = orig[k, col_size - 1, (i+1)] + sol[k, 0, (i + 1)] = orig[k, 0, (i + 1)] + sol[k, col_size - 1, (i + 1)] = orig[k, col_size - 1, (i + 1)] - for j, i in allo.grid(col_size-2, height_size-2): - sol[0, (j+1), (i+1)] = orig[0, (j+1), (i+1)] - sol[row_size - 1, (j+1), (i+1)] = orig[row_size - 1, (j+1), (i+1)] + for j, i in allo.grid(col_size - 2, height_size - 2): + sol[0, (j + 1), (i + 1)] = orig[0, (j + 1), (i + 1)] + sol[row_size - 1, (j + 1), (i + 1)] = orig[row_size - 1, (j + 1), (i + 1)] # Stencil computation - for i, j, k in allo.grid( height_size - 2, col_size - 2, row_size - 2 ): - sum0 = orig[(k+1), (j+1), (i+1)] - sum1 = (orig[(k+1), (j+1), (i+2)] + - orig[(k+1), (j+1), i] + - orig[(k+1), (j+2), (i+1)] + - orig[(k+1), j, (i+1)] + - orig[(k+2), (j+1), (i+1)] + - orig[k, (j+1), (i+1)]) + for i, j, k in allo.grid(height_size - 2, col_size - 2, row_size - 2): + sum0 = orig[(k + 1), (j + 1), (i + 1)] + sum1 = ( + orig[(k + 1), (j + 1), (i + 2)] + + orig[(k + 1), (j + 1), i] + + orig[(k + 1), (j + 2), (i + 1)] + + orig[(k + 1), j, (i + 1)] + + orig[(k + 2), (j + 1), (i + 1)] + + orig[k, (j + 1), (i + 1)] + ) mul0 = sum0 * C[0] mul1 = sum1 * C[1] - sol[(k+1), (j+1), (i+1)] = mul0 + mul1 + sol[(k + 1), (j + 1), (i + 1)] = mul0 + mul1 return sol + if __name__ == "__main__": s = allo.customize(stencil3d) mod = s.build(target="llvm") np.random.seed(42) np_C = np.random.randint(1, 5, size=2).astype(np.int32) - np_orig = np.random.randint(0, 100, (row_size, col_size, height_size)).astype(np.int32) + np_orig = np.random.randint(0, 100, (row_size, col_size, height_size)).astype( + np.int32 + ) np_sol = mod(np_C, np_orig) @@ -63,27 +74,29 @@ def stencil3d(C: int32[2], orig: int32[row_size, col_size, height_size]) -> int3 # Boundary: front/back col planes for i in range(height_size - 1): for k in range(row_size): - ref_sol[k, 0, i+1] = np_orig[k, 0, i+1] - ref_sol[k, col_size - 1, i+1] = np_orig[k, col_size - 1, i+1] + ref_sol[k, 0, i + 1] = np_orig[k, 0, i + 1] + ref_sol[k, col_size - 1, i + 1] = np_orig[k, col_size - 1, i + 1] # Boundary: left/right row planes for j in range(col_size - 2): for i in range(height_size - 2): - ref_sol[0, j+1, i+1] = np_orig[0, j+1, i+1] - ref_sol[row_size - 1, j+1, i+1] = np_orig[row_size - 1, j+1, i+1] + ref_sol[0, j + 1, i + 1] = np_orig[0, j + 1, i + 1] + ref_sol[row_size - 1, j + 1, i + 1] = np_orig[row_size - 1, j + 1, i + 1] # Interior stencil for i in range(height_size - 2): for j in range(col_size - 2): for k in range(row_size - 2): - s0 = np_orig[k+1, j+1, i+1] - s1 = (np_orig[k+1, j+1, i+2] + - np_orig[k+1, j+1, i] + - np_orig[k+1, j+2, i+1] + - np_orig[k+1, j, i+1] + - np_orig[k+2, j+1, i+1] + - np_orig[k, j+1, i+1]) - ref_sol[k+1, j+1, i+1] = s0 * np_C[0] + s1 * np_C[1] + s0 = np_orig[k + 1, j + 1, i + 1] + s1 = ( + np_orig[k + 1, j + 1, i + 2] + + np_orig[k + 1, j + 1, i] + + np_orig[k + 1, j + 2, i + 1] + + np_orig[k + 1, j, i + 1] + + np_orig[k + 2, j + 1, i + 1] + + np_orig[k, j + 1, i + 1] + ) + ref_sol[k + 1, j + 1, i + 1] = s0 * np_C[0] + s1 * np_C[1] np.testing.assert_allclose(np_sol, ref_sol, rtol=1e-5, atol=1e-5) print("PASS!") diff --git a/examples/machsuite/stencil/test_stencil.py b/examples/machsuite/stencil/test_stencil.py index 3884dad733..b7004b544e 100644 --- a/examples/machsuite/stencil/test_stencil.py +++ b/examples/machsuite/stencil/test_stencil.py @@ -1,3 +1,6 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import os import sys import json @@ -67,7 +70,9 @@ def test_stencil3d(psize="small"): np.random.seed(42) np_C = np.random.randint(1, 5, size=2).astype(np.int32) - np_orig = np.random.randint(0, 100, (row_size, col_size, height_size)).astype(np.int32) + np_orig = np.random.randint(0, 100, (row_size, col_size, height_size)).astype( + np.int32 + ) np_sol = mod(np_C, np_orig) @@ -83,27 +88,29 @@ def test_stencil3d(psize="small"): # Boundary: front/back col planes for i in range(height_size - 1): for k in range(row_size): - ref_sol[k, 0, i+1] = np_orig[k, 0, i+1] - ref_sol[k, col_size - 1, i+1] = np_orig[k, col_size - 1, i+1] + ref_sol[k, 0, i + 1] = np_orig[k, 0, i + 1] + ref_sol[k, col_size - 1, i + 1] = np_orig[k, col_size - 1, i + 1] # Boundary: left/right row planes for j in range(col_size - 2): for i in range(height_size - 2): - ref_sol[0, j+1, i+1] = np_orig[0, j+1, i+1] - ref_sol[row_size - 1, j+1, i+1] = np_orig[row_size - 1, j+1, i+1] + ref_sol[0, j + 1, i + 1] = np_orig[0, j + 1, i + 1] + ref_sol[row_size - 1, j + 1, i + 1] = np_orig[row_size - 1, j + 1, i + 1] # Interior stencil for i in range(height_size - 2): for j in range(col_size - 2): for k in range(row_size - 2): - s0 = np_orig[k+1, j+1, i+1] - s1 = (np_orig[k+1, j+1, i+2] + - np_orig[k+1, j+1, i] + - np_orig[k+1, j+2, i+1] + - np_orig[k+1, j, i+1] + - np_orig[k+2, j+1, i+1] + - np_orig[k, j+1, i+1]) - ref_sol[k+1, j+1, i+1] = s0 * np_C[0] + s1 * np_C[1] + s0 = np_orig[k + 1, j + 1, i + 1] + s1 = ( + np_orig[k + 1, j + 1, i + 2] + + np_orig[k + 1, j + 1, i] + + np_orig[k + 1, j + 2, i + 1] + + np_orig[k + 1, j, i + 1] + + np_orig[k + 2, j + 1, i + 1] + + np_orig[k, j + 1, i + 1] + ) + ref_sol[k + 1, j + 1, i + 1] = s0 * np_C[0] + s1 * np_C[1] np.testing.assert_allclose(np_sol, ref_sol, rtol=1e-5, atol=1e-5) print("Stencil3D PASS!") diff --git a/examples/machsuite/test_machsuite.py b/examples/machsuite/test_machsuite.py index 853687882b..ba4e7db3bd 100644 --- a/examples/machsuite/test_machsuite.py +++ b/examples/machsuite/test_machsuite.py @@ -27,7 +27,16 @@ def _load_test(subdir, filename, func_name): # Remove short module names that might conflict across sub-benchmarks mod_file = getattr(mod, "__file__", None) if mod_file and _machsuite_dir in mod_file and name.count(".") == 0: - if name not in ("allo", "numpy", "np", "os", "sys", "json", "math", "random"): + if name not in ( + "allo", + "numpy", + "np", + "os", + "sys", + "json", + "math", + "random", + ): del sys.modules[name] mod_name = f"machsuite_{subdir.replace('/', '_')}_{filename.replace('.py', '')}" spec = importlib.util.spec_from_file_location(mod_name, filepath) diff --git a/examples/machsuite/viterbi/__init__.py b/examples/machsuite/viterbi/__init__.py index e69de29bb2..1ab7e98c71 100644 --- a/examples/machsuite/viterbi/__init__.py +++ b/examples/machsuite/viterbi/__init__.py @@ -0,0 +1,2 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 diff --git a/examples/machsuite/viterbi/run_test.py b/examples/machsuite/viterbi/run_test.py index 9cf1234340..d8ff306380 100644 --- a/examples/machsuite/viterbi/run_test.py +++ b/examples/machsuite/viterbi/run_test.py @@ -1,3 +1,6 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import os import sys import json diff --git a/examples/machsuite/viterbi/viterbi.py b/examples/machsuite/viterbi/viterbi.py index 4ef599c49d..0f5ed50828 100644 --- a/examples/machsuite/viterbi/viterbi.py +++ b/examples/machsuite/viterbi/viterbi.py @@ -1,9 +1,13 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import numpy as np + def viterbi(obs, init, transition, emission): - N_OBS = len(obs) # Number of observations - N_STATES = len(init) # Number of states - N_TOKENS = emission.shape[1] # Number of tokens + N_OBS = len(obs) # Number of observations + N_STATES = len(init) # Number of states + N_TOKENS = emission.shape[1] # Number of tokens # Initialize log-likelihood matrix llike = np.zeros((N_OBS, N_STATES)) @@ -16,29 +20,29 @@ def viterbi(obs, init, transition, emission): # Iteratively compute the probabilities over time for t in range(1, N_OBS): for curr in range(N_STATES): - min_p = llike[t-1][0] + transition[0, curr] + emission[curr, obs[t]] + min_p = llike[t - 1][0] + transition[0, curr] + emission[curr, obs[t]] for prev in range(1, N_STATES): - p = llike[t-1][prev] + transition[prev, curr] + emission[curr, obs[t]] + p = llike[t - 1][prev] + transition[prev, curr] + emission[curr, obs[t]] if p < min_p: min_p = p llike[t][curr] = min_p # Identify end state min_s = 0 - min_p = llike[N_OBS-1][0] + min_p = llike[N_OBS - 1][0] for s in range(1, N_STATES): - p = llike[N_OBS-1][s] + p = llike[N_OBS - 1][s] if p < min_p: min_p = p min_s = s - path[N_OBS-1] = min_s + path[N_OBS - 1] = min_s # Backtrack to recover full path - for t in range(N_OBS-2, -1, -1): + for t in range(N_OBS - 2, -1, -1): min_s = 0 - min_p = llike[t][0] + transition[0, path[t+1]] + min_p = llike[t][0] + transition[0, path[t + 1]] for s in range(1, N_STATES): - p = llike[t][s] + transition[s, path[t+1]] + p = llike[t][s] + transition[s, path[t + 1]] if p < min_p: min_p = p min_s = s @@ -46,9 +50,11 @@ def viterbi(obs, init, transition, emission): return path -if __name__ == '__main__': + +if __name__ == "__main__": from read import read_viterbi_input - inputfile = 'input.data' + + inputfile = "input.data" init, transition, emission, obs = read_viterbi_input(inputfile) # Taking -log of probabilities for -log space @@ -58,6 +64,6 @@ def viterbi(obs, init, transition, emission): path = viterbi(obs, init, transition, emission) print(path) - + # output_file = 'check.data' # write_output_data(output_file, path) diff --git a/examples/machsuite/viterbi/viterbi_allo.py b/examples/machsuite/viterbi/viterbi_allo.py index 969ec0b367..a0cb251549 100644 --- a/examples/machsuite/viterbi/viterbi_allo.py +++ b/examples/machsuite/viterbi/viterbi_allo.py @@ -1,3 +1,6 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + import os import sys import allo @@ -8,43 +11,53 @@ sys.path.insert(0, _dir) from viterbi import viterbi as viterbi_ref -N_OBS:int32 = 140 -N_STATES:int32 = 64 -N_TOKENS:int32 = 64 +N_OBS: int32 = 140 +N_STATES: int32 = 64 +N_TOKENS: int32 = 64 + -def viterbi(obs: int32[N_OBS], init: float32[N_STATES], transition: float32[N_STATES, N_STATES], emission: float32[N_STATES, N_TOKENS]) -> int32[N_OBS]: +def viterbi( + obs: int32[N_OBS], + init: float32[N_STATES], + transition: float32[N_STATES, N_STATES], + emission: float32[N_STATES, N_TOKENS], +) -> int32[N_OBS]: - llike:float32[N_OBS, N_STATES] + llike: float32[N_OBS, N_STATES] for s in range(N_STATES): llike[0, s] = init[s] + emission[s, obs[0]] for t in range(1, N_OBS): for curr in range(N_STATES): - min_p:float32 = llike[t-1, 0] + transition[0, curr] + emission[curr, obs[t]] + min_p: float32 = ( + llike[t - 1, 0] + transition[0, curr] + emission[curr, obs[t]] + ) for prev in range(1, N_STATES): - p:float32 = llike[t-1, prev] + transition[prev, curr] + emission[curr, obs[t]] + p: float32 = ( + llike[t - 1, prev] + transition[prev, curr] + emission[curr, obs[t]] + ) if p < min_p: min_p = p llike[t, curr] = min_p - min_s:int32 = 0 - min_p:float32 = llike[N_OBS-1, 0] + min_s: int32 = 0 + min_p: float32 = llike[N_OBS - 1, 0] for s in range(1, N_STATES): - p:float32 = llike[N_OBS-1, s] + p: float32 = llike[N_OBS - 1, s] if p < min_p: min_p = p min_s = s - path:int32[N_OBS] - path[N_OBS-1] = min_s + path: int32[N_OBS] + path[N_OBS - 1] = min_s - for t in range(N_OBS-1): - actual_t:int32 = N_OBS - 2 - t - min_s:int32 = 0 - min_p:float32 = llike[actual_t, 0] + transition[0, path[actual_t + 1]] + for t in range(N_OBS - 1): + actual_t: int32 = N_OBS - 2 - t + min_s: int32 = 0 + min_p: float32 = llike[actual_t, 0] + transition[0, path[actual_t + 1]] for s in range(1, N_STATES): - p:float32 = llike[actual_t, s] + transition[s, path[actual_t + 1]] + p: float32 = llike[actual_t, s] + transition[s, path[actual_t + 1]] if p < min_p: min_p = p min_s = s @@ -52,6 +65,7 @@ def viterbi(obs: int32[N_OBS], init: float32[N_STATES], transition: float32[N_ST return path + if __name__ == "__main__": np.random.seed(42) From 577763e1f26c2278d893d6cc03638fbcb8a837a9 Mon Sep 17 00:00:00 2001 From: Niansong Zhang Date: Thu, 5 Feb 2026 20:40:02 -0500 Subject: [PATCH 09/16] [MachSuite] Add conftest.py to prevent duplicate test collection When pytest discovers examples/machsuite/ as a directory, it was collecting tests from both test_machsuite.py and individual subdirectory files (34 items), causing module name collisions (md/grid/md.py vs md/knn/md.py) and fatal aborts. The conftest.py ignores all benchmark subdirectories so only test_machsuite.py is collected (19 items). Co-Authored-By: Claude Opus 4.6 --- examples/machsuite/conftest.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 examples/machsuite/conftest.py diff --git a/examples/machsuite/conftest.py b/examples/machsuite/conftest.py new file mode 100644 index 0000000000..cfe697e6ea --- /dev/null +++ b/examples/machsuite/conftest.py @@ -0,0 +1,13 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + +import os + +# Only collect tests from test_machsuite.py to avoid module name collisions +# (e.g., md/grid/md.py vs md/knn/md.py) when pytest discovers subdirectories. +_this_dir = os.path.dirname(__file__) +collect_ignore = [ + os.path.join(_this_dir, d) + for d in os.listdir(_this_dir) + if os.path.isdir(os.path.join(_this_dir, d)) and d != "__pycache__" +] From ca52a3e831a1f30841606c179c3a2955101ea6c5 Mon Sep 17 00:00:00 2001 From: Niansong Zhang Date: Thu, 5 Feb 2026 20:46:45 -0500 Subject: [PATCH 10/16] [MachSuite] Clean up unused imports, duplicate functions, and commented-out code Address Copilot review findings: - Remove duplicate float32/int32 imports and unused cmplx_MUL_x/y in transpose_fft.py - Remove unused imports (numpy, math, Struct, index, Int, int32, float32, T) across 11 files - Remove commented-out FFT4 block and class definitions Co-Authored-By: Claude Opus 4.6 --- examples/machsuite/aes/aes.py | 3 +- examples/machsuite/backprop/backprop.py | 2 +- .../machsuite/fft/transpose/transpose_fft.py | 28 +------------------ examples/machsuite/gemm/testing.py | 2 +- examples/machsuite/gemm/testing_blocked.py | 2 +- examples/machsuite/kmp/kmp.py | 1 - examples/machsuite/md/grid/md.py | 13 --------- examples/machsuite/md/knn/md.py | 3 +- examples/machsuite/merge/testing.py | 2 +- 9 files changed, 7 insertions(+), 49 deletions(-) diff --git a/examples/machsuite/aes/aes.py b/examples/machsuite/aes/aes.py index 43ad7867d0..4e5be66dcf 100644 --- a/examples/machsuite/aes/aes.py +++ b/examples/machsuite/aes/aes.py @@ -2,8 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 import allo -import numpy as np -from allo.ir.types import uint32, uint8, Struct, index +from allo.ir.types import uint32, uint8 def F(x: uint8) -> uint8: diff --git a/examples/machsuite/backprop/backprop.py b/examples/machsuite/backprop/backprop.py index 23e003ff67..f82bed2b06 100644 --- a/examples/machsuite/backprop/backprop.py +++ b/examples/machsuite/backprop/backprop.py @@ -2,7 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 import allo -from allo.ir.types import float32, int32 +from allo.ir.types import float32 INPUT_DIMENSION = 13 POSSIBLE_OUTPUTS = 3 diff --git a/examples/machsuite/fft/transpose/transpose_fft.py b/examples/machsuite/fft/transpose/transpose_fft.py index ae9e11ef5c..45639ceaed 100644 --- a/examples/machsuite/fft/transpose/transpose_fft.py +++ b/examples/machsuite/fft/transpose/transpose_fft.py @@ -4,9 +4,7 @@ # transpose_fft.py import allo -from allo.ir.types import float32, int32, float32, int32, index -import math -import numpy as np +from allo.ir.types import float32, int32, index def cmplx_M_x(a_x: float32, a_y: float32, b_x: float32, b_y: float32) -> float32: @@ -17,14 +15,6 @@ def cmplx_M_y(a_x: float32, a_y: float32, b_x: float32, b_y: float32) -> float32 return a_x * b_y + a_y * b_x -def cmplx_MUL_x(a_x: float32, a_y: float32, b_x: float32, b_y: float32) -> float32: - return a_x * b_x - a_y * b_y - - -def cmplx_MUL_y(a_x: float32, a_y: float32, b_x: float32, b_y: float32) -> float32: - return a_x * b_y + a_y * b_x - - def cmplx_mul_x(a_x: float32, a_y: float32, b_x: float32, b_y: float32) -> float32: return a_x * b_x - a_y * b_y @@ -82,22 +72,6 @@ def FF2(a0_x: float32, a0_y: float32, a1_x: float32, a1_y: float32) -> float32[4 return d0 -# def FFT4(a0_x: float32, a0_y: float32, a1_x: float32, a1_y: float32, a2_x: float32, a2_y: float32, a3_x: float32, a3_y: float32): -# exp_1_44_x: float32 = 0 -# exp_1_44_y: float32 = -1 - -# FF2(a0_x, a0_y, a2_x, a2_y) - -# # FF2(a1_x, a1_y, a3_x, a3_y) -# # tmp = a3_x - -# # a3_x = a3_x * exp_1_44_x - a3_y * exp_1_44_y -# # a3_y = tmp * exp_1_44_y - a3_y * exp_1_44_x - -# # FF2(a0_x, a0_y, a1_x, a1_y) -# # FF2(a2_x, a2_y, a3_x, a3_y) - - def FFT4_1(a_x: float32[8], a_y: float32[8]): exp_1_44_x: float32 = 0.0 exp_1_44_y: float32 = -1.0 diff --git a/examples/machsuite/gemm/testing.py b/examples/machsuite/gemm/testing.py index 3e413ab227..b175e67f32 100644 --- a/examples/machsuite/gemm/testing.py +++ b/examples/machsuite/gemm/testing.py @@ -5,7 +5,7 @@ import sys import allo import numpy as np -from allo.ir.types import float32 + _dir = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, _dir) diff --git a/examples/machsuite/gemm/testing_blocked.py b/examples/machsuite/gemm/testing_blocked.py index 4b11313874..c9618a7758 100644 --- a/examples/machsuite/gemm/testing_blocked.py +++ b/examples/machsuite/gemm/testing_blocked.py @@ -6,7 +6,7 @@ import json import allo import numpy as np -from allo.ir.types import int32 + _dir = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, _dir) diff --git a/examples/machsuite/kmp/kmp.py b/examples/machsuite/kmp/kmp.py index 42c8595d82..83144485f3 100644 --- a/examples/machsuite/kmp/kmp.py +++ b/examples/machsuite/kmp/kmp.py @@ -6,7 +6,6 @@ import json import numpy as np from allo.ir.types import int32, uint8, index -import allo.ir.types as T def python_kmp(pattern, input): diff --git a/examples/machsuite/md/grid/md.py b/examples/machsuite/md/grid/md.py index 752789d97d..3529614789 100644 --- a/examples/machsuite/md/grid/md.py +++ b/examples/machsuite/md/grid/md.py @@ -23,19 +23,6 @@ def MAX(x: int32, y: Int(34)) -> int32: return x if x > y else y -# class dvector_t: -# def __init__(self, x:float64, y:float64, z:float64): -# self.x = x -# self.y = y -# self.z = z - -# class ivector_t: -# def __init__(self, x:int32, y:int32, z:int32): -# self.x = x -# self.y = y -# self.z = z - - def md_x( n_points: int32[blockSide, blockSide, blockSide], position_x: float64[blockSide, blockSide, blockSide, densityFactor], diff --git a/examples/machsuite/md/knn/md.py b/examples/machsuite/md/knn/md.py index f44ca22360..cb11d3b1c3 100644 --- a/examples/machsuite/md/knn/md.py +++ b/examples/machsuite/md/knn/md.py @@ -2,8 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 import allo -from allo.ir.types import float64, int32, Int -import numpy as np +from allo.ir.types import float64, int32 nAtoms: int32 = 256 maxNeighbors: int32 = 16 diff --git a/examples/machsuite/merge/testing.py b/examples/machsuite/merge/testing.py index eb05c9d8c0..cc47976566 100644 --- a/examples/machsuite/merge/testing.py +++ b/examples/machsuite/merge/testing.py @@ -6,7 +6,7 @@ import json import allo import numpy as np -from allo.ir.types import int32 + _dir = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, _dir) From 4f7a37204ac2ea0ead98ab950bc499d05999a50c Mon Sep 17 00:00:00 2001 From: Niansong Zhang Date: Fri, 6 Feb 2026 14:26:44 -0500 Subject: [PATCH 11/16] [MachSuite] Remove remaining unused numpy imports Remove unused `import numpy as np` from ellpack.py, radix_sort.py, gemm_ncubed.py, and nw.py kernel files. Co-Authored-By: Claude Opus 4.6 --- examples/machsuite/gemm/gemm_ncubed.py | 1 - examples/machsuite/nw/nw.py | 1 - examples/machsuite/sort/radix/radix_sort.py | 1 - examples/machsuite/spmv/ellpack/ellpack.py | 1 - 4 files changed, 4 deletions(-) diff --git a/examples/machsuite/gemm/gemm_ncubed.py b/examples/machsuite/gemm/gemm_ncubed.py index 7774c526e4..32ac4977d8 100644 --- a/examples/machsuite/gemm/gemm_ncubed.py +++ b/examples/machsuite/gemm/gemm_ncubed.py @@ -3,7 +3,6 @@ import allo from allo.ir.types import float32 -import numpy as np def gemm(A: float32[64, 64], B: float32[64, 64]) -> float32[64, 64]: diff --git a/examples/machsuite/nw/nw.py b/examples/machsuite/nw/nw.py index 324a715c2f..2c5d7c6f1b 100644 --- a/examples/machsuite/nw/nw.py +++ b/examples/machsuite/nw/nw.py @@ -5,7 +5,6 @@ import allo from allo.ir.types import int32 -import numpy as np ALEN = 128 BLEN = 128 diff --git a/examples/machsuite/sort/radix/radix_sort.py b/examples/machsuite/sort/radix/radix_sort.py index 7ac39aaf85..50a17014c4 100644 --- a/examples/machsuite/sort/radix/radix_sort.py +++ b/examples/machsuite/sort/radix/radix_sort.py @@ -5,7 +5,6 @@ import allo from allo.ir.types import int32 -import numpy as np SIZE = 2048 NUMOFBLOCKS = 512 diff --git a/examples/machsuite/spmv/ellpack/ellpack.py b/examples/machsuite/spmv/ellpack/ellpack.py index 1a2266c2eb..d086f3d59e 100644 --- a/examples/machsuite/spmv/ellpack/ellpack.py +++ b/examples/machsuite/spmv/ellpack/ellpack.py @@ -2,7 +2,6 @@ # SPDX-License-Identifier: Apache-2.0 import allo -import numpy as np from allo.ir.types import int32, float64 N = 494 # Number of rows From e222aa5b3e047ef2ad956ce2d3eca5a74f32f905 Mon Sep 17 00:00:00 2001 From: Niansong Zhang Date: Fri, 6 Feb 2026 14:36:03 -0500 Subject: [PATCH 12/16] [MachSuite] Split BFS into bulk/ and queue/ subfolders Reorganize the BFS benchmark into two subfolders matching the other multi-variant benchmarks (md/grid, md/knn, fft/strided, fft/transpose). Each subfolder contains the Allo kernel, Python reference, and run_test. Co-Authored-By: Claude Opus 4.6 --- examples/machsuite/bfs/bulk/__init__.py | 2 + .../{bfs_bulk_allo.py => bulk/bfs_bulk.py} | 2 + .../bfs/{ => bulk}/bfs_bulk_python.py | 0 examples/machsuite/bfs/bulk/run_test.py | 87 +++++++++++++++++++ examples/machsuite/bfs/queue/__init__.py | 2 + .../{bfs_queue_allo.py => queue/bfs_queue.py} | 2 + .../bfs/{ => queue}/bfs_queue_python.py | 0 .../machsuite/bfs/{ => queue}/run_test.py | 32 ++----- examples/machsuite/test_machsuite.py | 4 +- 9 files changed, 103 insertions(+), 28 deletions(-) create mode 100644 examples/machsuite/bfs/bulk/__init__.py rename examples/machsuite/bfs/{bfs_bulk_allo.py => bulk/bfs_bulk.py} (97%) rename examples/machsuite/bfs/{ => bulk}/bfs_bulk_python.py (100%) create mode 100644 examples/machsuite/bfs/bulk/run_test.py create mode 100644 examples/machsuite/bfs/queue/__init__.py rename examples/machsuite/bfs/{bfs_queue_allo.py => queue/bfs_queue.py} (97%) rename examples/machsuite/bfs/{ => queue}/bfs_queue_python.py (100%) rename examples/machsuite/bfs/{ => queue}/run_test.py (72%) diff --git a/examples/machsuite/bfs/bulk/__init__.py b/examples/machsuite/bfs/bulk/__init__.py new file mode 100644 index 0000000000..1ab7e98c71 --- /dev/null +++ b/examples/machsuite/bfs/bulk/__init__.py @@ -0,0 +1,2 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 diff --git a/examples/machsuite/bfs/bfs_bulk_allo.py b/examples/machsuite/bfs/bulk/bfs_bulk.py similarity index 97% rename from examples/machsuite/bfs/bfs_bulk_allo.py rename to examples/machsuite/bfs/bulk/bfs_bulk.py index 633c0ac385..5ddc8d8b2f 100644 --- a/examples/machsuite/bfs/bfs_bulk_allo.py +++ b/examples/machsuite/bfs/bulk/bfs_bulk.py @@ -8,7 +8,9 @@ import numpy as np _dir = os.path.dirname(os.path.abspath(__file__)) +_parent = os.path.dirname(_dir) sys.path.insert(0, _dir) +sys.path.insert(0, _parent) from generate import generate_random_graph from bfs_bulk_python import bfs_bulk_test diff --git a/examples/machsuite/bfs/bfs_bulk_python.py b/examples/machsuite/bfs/bulk/bfs_bulk_python.py similarity index 100% rename from examples/machsuite/bfs/bfs_bulk_python.py rename to examples/machsuite/bfs/bulk/bfs_bulk_python.py diff --git a/examples/machsuite/bfs/bulk/run_test.py b/examples/machsuite/bfs/bulk/run_test.py new file mode 100644 index 0000000000..a910ebf94e --- /dev/null +++ b/examples/machsuite/bfs/bulk/run_test.py @@ -0,0 +1,87 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + +import os +import sys +import json +import random +import allo +import numpy as np + +_dir = os.path.dirname(os.path.abspath(__file__)) +_parent = os.path.dirname(_dir) +sys.path.insert(0, _dir) +sys.path.insert(0, _parent) +import generate +import bfs_bulk_python +import bfs_bulk as bfs_bulk_mod + + +def _patch_bfs_sizes(params): + """Patch BFS size constants across all relevant modules.""" + N_NODES = params["N_NODES"] + N_EDGES = params["N_EDGES"] + N_LEVELS = params["N_LEVELS"] + + # Compute SCALE from N_NODES (log2) + scale = 0 + n = N_NODES + while n > 1: + n >>= 1 + scale += 1 + + # Patch generate.py + generate.N_NODES = N_NODES + generate.N_EDGES = N_EDGES + generate.SCALE = scale + + # Patch python reference module + bfs_bulk_python.N_NODES = N_NODES + bfs_bulk_python.N_EDGES = N_EDGES + bfs_bulk_python.N_LEVELS = N_LEVELS + + # Patch allo kernel module + bfs_bulk_mod.N_NODES = N_NODES + bfs_bulk_mod.N_NODES_2 = N_NODES * 2 + bfs_bulk_mod.N_EDGES = N_EDGES + bfs_bulk_mod.N_LEVELS = N_LEVELS + + +def _generate_and_run(mod_func, ref_func, params): + """Build, generate graph, run kernel and reference, compare.""" + random.seed(42) + + s = allo.customize(mod_func) + mod = s.build(target="llvm") + + generated_data = generate.generate_random_graph() + + nodes_list = [] + for node in generated_data["nodes"]: + nodes_list.append(node.edge_begin) + nodes_list.append(node.edge_end) + edges_list = [edge.dst for edge in generated_data["edges"]] + + np_A = np.array(nodes_list, np.int32) + np_B = np.array(edges_list, np.int32) + np_C = generated_data["starting_node"] + + (D, F) = mod(np_A, np_B, np_C) + (golden_D, golden_F) = ref_func(np_A, np_B, np_C) + + np.testing.assert_allclose(D, golden_D, rtol=1e-5, atol=1e-5) + np.testing.assert_allclose(F, golden_F, rtol=1e-5, atol=1e-5) + + +def test_bfs_bulk(psize="small"): + setting_path = os.path.join(os.path.dirname(__file__), "..", "..", "psize.json") + with open(setting_path, "r") as fp: + sizes = json.load(fp) + params = sizes["bfs"][psize] + _patch_bfs_sizes(params) + _generate_and_run(bfs_bulk_mod.bfs_bulk, bfs_bulk_python.bfs_bulk_test, params) + print("BFS Bulk PASS!") + + +if __name__ == "__main__": + test_bfs_bulk("full") diff --git a/examples/machsuite/bfs/queue/__init__.py b/examples/machsuite/bfs/queue/__init__.py new file mode 100644 index 0000000000..1ab7e98c71 --- /dev/null +++ b/examples/machsuite/bfs/queue/__init__.py @@ -0,0 +1,2 @@ +# Copyright Allo authors. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 diff --git a/examples/machsuite/bfs/bfs_queue_allo.py b/examples/machsuite/bfs/queue/bfs_queue.py similarity index 97% rename from examples/machsuite/bfs/bfs_queue_allo.py rename to examples/machsuite/bfs/queue/bfs_queue.py index a65bba6812..197d7b0448 100644 --- a/examples/machsuite/bfs/bfs_queue_allo.py +++ b/examples/machsuite/bfs/queue/bfs_queue.py @@ -8,7 +8,9 @@ import numpy as np _dir = os.path.dirname(os.path.abspath(__file__)) +_parent = os.path.dirname(_dir) sys.path.insert(0, _dir) +sys.path.insert(0, _parent) from generate import generate_random_graph from bfs_queue_python import bfs_queue_test diff --git a/examples/machsuite/bfs/bfs_queue_python.py b/examples/machsuite/bfs/queue/bfs_queue_python.py similarity index 100% rename from examples/machsuite/bfs/bfs_queue_python.py rename to examples/machsuite/bfs/queue/bfs_queue_python.py diff --git a/examples/machsuite/bfs/run_test.py b/examples/machsuite/bfs/queue/run_test.py similarity index 72% rename from examples/machsuite/bfs/run_test.py rename to examples/machsuite/bfs/queue/run_test.py index 5174cd67a5..6c2f78d645 100644 --- a/examples/machsuite/bfs/run_test.py +++ b/examples/machsuite/bfs/queue/run_test.py @@ -9,12 +9,12 @@ import numpy as np _dir = os.path.dirname(os.path.abspath(__file__)) +_parent = os.path.dirname(_dir) sys.path.insert(0, _dir) +sys.path.insert(0, _parent) import generate -import bfs_bulk_python import bfs_queue_python -import bfs_bulk_allo as bfs_bulk_mod -import bfs_queue_allo as bfs_queue_mod +import bfs_queue as bfs_queue_mod def _patch_bfs_sizes(params): @@ -35,21 +35,12 @@ def _patch_bfs_sizes(params): generate.N_EDGES = N_EDGES generate.SCALE = scale - # Patch python reference modules - bfs_bulk_python.N_NODES = N_NODES - bfs_bulk_python.N_EDGES = N_EDGES - bfs_bulk_python.N_LEVELS = N_LEVELS - + # Patch python reference module bfs_queue_python.N_NODES = N_NODES bfs_queue_python.N_EDGES = N_EDGES bfs_queue_python.N_LEVELS = N_LEVELS - # Patch allo kernel modules - bfs_bulk_mod.N_NODES = N_NODES - bfs_bulk_mod.N_NODES_2 = N_NODES * 2 - bfs_bulk_mod.N_EDGES = N_EDGES - bfs_bulk_mod.N_LEVELS = N_LEVELS - + # Patch allo kernel module bfs_queue_mod.N_NODES = N_NODES bfs_queue_mod.N_NODES_2 = N_NODES * 2 bfs_queue_mod.N_EDGES = N_EDGES @@ -82,18 +73,8 @@ def _generate_and_run(mod_func, ref_func, params): np.testing.assert_allclose(F, golden_F, rtol=1e-5, atol=1e-5) -def test_bfs_bulk(psize="small"): - setting_path = os.path.join(os.path.dirname(__file__), "..", "psize.json") - with open(setting_path, "r") as fp: - sizes = json.load(fp) - params = sizes["bfs"][psize] - _patch_bfs_sizes(params) - _generate_and_run(bfs_bulk_mod.bfs_bulk, bfs_bulk_python.bfs_bulk_test, params) - print("BFS Bulk PASS!") - - def test_bfs_queue(psize="small"): - setting_path = os.path.join(os.path.dirname(__file__), "..", "psize.json") + setting_path = os.path.join(os.path.dirname(__file__), "..", "..", "psize.json") with open(setting_path, "r") as fp: sizes = json.load(fp) params = sizes["bfs"][psize] @@ -103,5 +84,4 @@ def test_bfs_queue(psize="small"): if __name__ == "__main__": - test_bfs_bulk("full") test_bfs_queue("full") diff --git a/examples/machsuite/test_machsuite.py b/examples/machsuite/test_machsuite.py index ba4e7db3bd..32663e1490 100644 --- a/examples/machsuite/test_machsuite.py +++ b/examples/machsuite/test_machsuite.py @@ -54,11 +54,11 @@ def test_backprop(): def test_bfs_bulk(): - _load_test("bfs", "run_test.py", "test_bfs_bulk")("small") + _load_test("bfs/bulk", "run_test.py", "test_bfs_bulk")("small") def test_bfs_queue(): - _load_test("bfs", "run_test.py", "test_bfs_queue")("small") + _load_test("bfs/queue", "run_test.py", "test_bfs_queue")("small") def test_fft_strided(): From be6825cc251ce3ddad781bc373a850caebfdcb57 Mon Sep 17 00:00:00 2001 From: Niansong Zhang Date: Fri, 6 Feb 2026 14:39:55 -0500 Subject: [PATCH 13/16] [MachSuite] Standardize test file naming and flatten sort directory - Rename all test files to `run_test.py` for consistency across benchmarks - Flatten `sort/radix/` to `radix_sort/` since there's only one sorting algorithm - Update test_machsuite.py to reflect all path changes Co-Authored-By: Claude Opus 4.6 --- .../strided/{test_strided.py => run_test.py} | 0 .../{test_transpose.py => run_test.py} | 0 .../gemm/{testing.py => run_test.py} | 0 ...testing_blocked.py => run_test_blocked.py} | 0 .../grid/{md_kernel_test.py => run_test.py} | 0 .../md/knn/{md_kernel_test.py => run_test.py} | 0 .../merge/{testing.py => run_test.py} | 0 .../machsuite/nw/{test_nw.py => run_test.py} | 0 .../{sort => radix_sort}/__init__.py | 0 .../{sort/radix => radix_sort}/radix_sort.py | 0 .../test_radix.py => radix_sort/run_test.py} | 2 +- examples/machsuite/sort/radix/__init__.py | 2 -- .../stencil/{test_stencil.py => run_test.py} | 0 examples/machsuite/test_machsuite.py | 22 +++++++++---------- 14 files changed, 12 insertions(+), 14 deletions(-) rename examples/machsuite/fft/strided/{test_strided.py => run_test.py} (100%) rename examples/machsuite/fft/transpose/{test_transpose.py => run_test.py} (100%) rename examples/machsuite/gemm/{testing.py => run_test.py} (100%) rename examples/machsuite/gemm/{testing_blocked.py => run_test_blocked.py} (100%) rename examples/machsuite/md/grid/{md_kernel_test.py => run_test.py} (100%) rename examples/machsuite/md/knn/{md_kernel_test.py => run_test.py} (100%) rename examples/machsuite/merge/{testing.py => run_test.py} (100%) rename examples/machsuite/nw/{test_nw.py => run_test.py} (100%) rename examples/machsuite/{sort => radix_sort}/__init__.py (100%) rename examples/machsuite/{sort/radix => radix_sort}/radix_sort.py (100%) rename examples/machsuite/{sort/radix/test_radix.py => radix_sort/run_test.py} (98%) delete mode 100644 examples/machsuite/sort/radix/__init__.py rename examples/machsuite/stencil/{test_stencil.py => run_test.py} (100%) diff --git a/examples/machsuite/fft/strided/test_strided.py b/examples/machsuite/fft/strided/run_test.py similarity index 100% rename from examples/machsuite/fft/strided/test_strided.py rename to examples/machsuite/fft/strided/run_test.py diff --git a/examples/machsuite/fft/transpose/test_transpose.py b/examples/machsuite/fft/transpose/run_test.py similarity index 100% rename from examples/machsuite/fft/transpose/test_transpose.py rename to examples/machsuite/fft/transpose/run_test.py diff --git a/examples/machsuite/gemm/testing.py b/examples/machsuite/gemm/run_test.py similarity index 100% rename from examples/machsuite/gemm/testing.py rename to examples/machsuite/gemm/run_test.py diff --git a/examples/machsuite/gemm/testing_blocked.py b/examples/machsuite/gemm/run_test_blocked.py similarity index 100% rename from examples/machsuite/gemm/testing_blocked.py rename to examples/machsuite/gemm/run_test_blocked.py diff --git a/examples/machsuite/md/grid/md_kernel_test.py b/examples/machsuite/md/grid/run_test.py similarity index 100% rename from examples/machsuite/md/grid/md_kernel_test.py rename to examples/machsuite/md/grid/run_test.py diff --git a/examples/machsuite/md/knn/md_kernel_test.py b/examples/machsuite/md/knn/run_test.py similarity index 100% rename from examples/machsuite/md/knn/md_kernel_test.py rename to examples/machsuite/md/knn/run_test.py diff --git a/examples/machsuite/merge/testing.py b/examples/machsuite/merge/run_test.py similarity index 100% rename from examples/machsuite/merge/testing.py rename to examples/machsuite/merge/run_test.py diff --git a/examples/machsuite/nw/test_nw.py b/examples/machsuite/nw/run_test.py similarity index 100% rename from examples/machsuite/nw/test_nw.py rename to examples/machsuite/nw/run_test.py diff --git a/examples/machsuite/sort/__init__.py b/examples/machsuite/radix_sort/__init__.py similarity index 100% rename from examples/machsuite/sort/__init__.py rename to examples/machsuite/radix_sort/__init__.py diff --git a/examples/machsuite/sort/radix/radix_sort.py b/examples/machsuite/radix_sort/radix_sort.py similarity index 100% rename from examples/machsuite/sort/radix/radix_sort.py rename to examples/machsuite/radix_sort/radix_sort.py diff --git a/examples/machsuite/sort/radix/test_radix.py b/examples/machsuite/radix_sort/run_test.py similarity index 98% rename from examples/machsuite/sort/radix/test_radix.py rename to examples/machsuite/radix_sort/run_test.py index 97028edf86..ef7af1248b 100644 --- a/examples/machsuite/sort/radix/test_radix.py +++ b/examples/machsuite/radix_sort/run_test.py @@ -13,7 +13,7 @@ def test_radix_sort(psize="small"): - setting_path = os.path.join(os.path.dirname(__file__), "..", "..", "psize.json") + setting_path = os.path.join(os.path.dirname(__file__), "..", "psize.json") with open(setting_path, "r") as fp: sizes = json.load(fp) params = sizes["radix"][psize] diff --git a/examples/machsuite/sort/radix/__init__.py b/examples/machsuite/sort/radix/__init__.py deleted file mode 100644 index 1ab7e98c71..0000000000 --- a/examples/machsuite/sort/radix/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -# Copyright Allo authors. All Rights Reserved. -# SPDX-License-Identifier: Apache-2.0 diff --git a/examples/machsuite/stencil/test_stencil.py b/examples/machsuite/stencil/run_test.py similarity index 100% rename from examples/machsuite/stencil/test_stencil.py rename to examples/machsuite/stencil/run_test.py diff --git a/examples/machsuite/test_machsuite.py b/examples/machsuite/test_machsuite.py index 32663e1490..8c4a6e6915 100644 --- a/examples/machsuite/test_machsuite.py +++ b/examples/machsuite/test_machsuite.py @@ -62,19 +62,19 @@ def test_bfs_queue(): def test_fft_strided(): - _load_test("fft/strided", "test_strided.py", "test_strided_fft")("small") + _load_test("fft/strided", "run_test.py", "test_strided_fft")("small") def test_fft_transpose(): - _load_test("fft/transpose", "test_transpose.py", "test_transpose_fft")("small") + _load_test("fft/transpose", "run_test.py", "test_transpose_fft")("small") def test_gemm_ncubed(): - _load_test("gemm", "testing.py", "test_gemm_ncubed")("small") + _load_test("gemm", "run_test.py", "test_gemm_ncubed")("small") def test_gemm_blocked(): - _load_test("gemm", "testing_blocked.py", "test_gemm_blocked")("small") + _load_test("gemm", "run_test_blocked.py", "test_gemm_blocked")("small") def test_kmp(): @@ -82,23 +82,23 @@ def test_kmp(): def test_md_grid(): - _load_test("md/grid", "md_kernel_test.py", "test_md_grid")("small") + _load_test("md/grid", "run_test.py", "test_md_grid")("small") def test_md_knn(): - _load_test("md/knn", "md_kernel_test.py", "test_md_knn")("small") + _load_test("md/knn", "run_test.py", "test_md_knn")("small") def test_merge(): - _load_test("merge", "testing.py", "test_merge")("small") + _load_test("merge", "run_test.py", "test_merge")("small") def test_nw(): - _load_test("nw", "test_nw.py", "test_nw")("small") + _load_test("nw", "run_test.py", "test_nw")("small") def test_radix(): - _load_test("sort/radix", "test_radix.py", "test_radix_sort")("small") + _load_test("radix_sort", "run_test.py", "test_radix_sort")("small") def test_spmv_crs(): @@ -110,11 +110,11 @@ def test_spmv_ellpack(): def test_stencil2d(): - _load_test("stencil", "test_stencil.py", "test_stencil2d")("small") + _load_test("stencil", "run_test.py", "test_stencil2d")("small") def test_stencil3d(): - _load_test("stencil", "test_stencil.py", "test_stencil3d")("small") + _load_test("stencil", "run_test.py", "test_stencil3d")("small") def test_viterbi(): From 10ce8bb0f20fd5b4a3da20244cc53a80ec4a95bc Mon Sep 17 00:00:00 2001 From: Niansong Zhang Date: Fri, 6 Feb 2026 14:41:47 -0500 Subject: [PATCH 14/16] [MachSuite] Merge gemm test files into single run_test.py Combine run_test_blocked.py into run_test.py so each benchmark has a single test file. Co-Authored-By: Claude Opus 4.6 --- examples/machsuite/gemm/run_test.py | 30 ++++++++++++++ examples/machsuite/gemm/run_test_blocked.py | 44 --------------------- examples/machsuite/test_machsuite.py | 2 +- 3 files changed, 31 insertions(+), 45 deletions(-) delete mode 100644 examples/machsuite/gemm/run_test_blocked.py diff --git a/examples/machsuite/gemm/run_test.py b/examples/machsuite/gemm/run_test.py index b175e67f32..55ff751d24 100644 --- a/examples/machsuite/gemm/run_test.py +++ b/examples/machsuite/gemm/run_test.py @@ -3,6 +3,7 @@ import os import sys +import json import allo import numpy as np @@ -10,6 +11,7 @@ _dir = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, _dir) from gemm_ncubed import gemm +import gemm_blocked def test_gemm_ncubed(psize="small"): @@ -28,5 +30,33 @@ def test_gemm_ncubed(psize="small"): print("PASS!") +def test_gemm_blocked(psize="small"): + setting_path = os.path.join(os.path.dirname(__file__), "..", "psize.json") + with open(setting_path, "r") as fp: + sizes = json.load(fp) + params = sizes["gemm_blocked"][psize] + + # Patch module constants before customize() + for key, val in params.items(): + setattr(gemm_blocked, key, val) + + M = gemm_blocked.M + N = gemm_blocked.N + K = gemm_blocked.K + + np.random.seed(42) + m1 = np.random.randint(0, 10, (M, K)).astype(np.int32) + m2 = np.random.randint(0, 10, (K, N)).astype(np.int32) + + s = allo.customize(gemm_blocked.bbgemm) + mod = s.build(target="llvm") + + actual = mod(m1, m2) + check = np.matmul(m1.astype(np.int64), m2.astype(np.int64)).astype(np.int32) + np.testing.assert_allclose(actual, check, rtol=1e-5, atol=1e-5) + print("PASS!") + + if __name__ == "__main__": test_gemm_ncubed("full") + test_gemm_blocked("full") diff --git a/examples/machsuite/gemm/run_test_blocked.py b/examples/machsuite/gemm/run_test_blocked.py deleted file mode 100644 index c9618a7758..0000000000 --- a/examples/machsuite/gemm/run_test_blocked.py +++ /dev/null @@ -1,44 +0,0 @@ -# Copyright Allo authors. All Rights Reserved. -# SPDX-License-Identifier: Apache-2.0 - -import os -import sys -import json -import allo -import numpy as np - - -_dir = os.path.dirname(os.path.abspath(__file__)) -sys.path.insert(0, _dir) -import gemm_blocked - - -def test_gemm_blocked(psize="small"): - setting_path = os.path.join(os.path.dirname(__file__), "..", "psize.json") - with open(setting_path, "r") as fp: - sizes = json.load(fp) - params = sizes["gemm_blocked"][psize] - - # Patch module constants before customize() - for key, val in params.items(): - setattr(gemm_blocked, key, val) - - M = gemm_blocked.M - N = gemm_blocked.N - K = gemm_blocked.K - - np.random.seed(42) - m1 = np.random.randint(0, 10, (M, K)).astype(np.int32) - m2 = np.random.randint(0, 10, (K, N)).astype(np.int32) - - s = allo.customize(gemm_blocked.bbgemm) - mod = s.build(target="llvm") - - actual = mod(m1, m2) - check = np.matmul(m1.astype(np.int64), m2.astype(np.int64)).astype(np.int32) - np.testing.assert_allclose(actual, check, rtol=1e-5, atol=1e-5) - print("PASS!") - - -if __name__ == "__main__": - test_gemm_blocked("full") diff --git a/examples/machsuite/test_machsuite.py b/examples/machsuite/test_machsuite.py index 8c4a6e6915..83a9d1b05c 100644 --- a/examples/machsuite/test_machsuite.py +++ b/examples/machsuite/test_machsuite.py @@ -74,7 +74,7 @@ def test_gemm_ncubed(): def test_gemm_blocked(): - _load_test("gemm", "run_test_blocked.py", "test_gemm_blocked")("small") + _load_test("gemm", "run_test.py", "test_gemm_blocked")("small") def test_kmp(): From aebde37e6ceebc0f9abb985baf629b2f0bf282a7 Mon Sep 17 00:00:00 2001 From: Niansong Zhang Date: Fri, 6 Feb 2026 14:42:51 -0500 Subject: [PATCH 15/16] [MachSuite] Merge viterbi reference into run_test.py Inline the Python reference implementation into run_test.py and remove the separate viterbi.py file. Clean up unused imports in viterbi_allo.py. Co-Authored-By: Claude Opus 4.6 --- examples/machsuite/viterbi/run_test.py | 43 +++++++++++++- examples/machsuite/viterbi/viterbi.py | 69 ---------------------- examples/machsuite/viterbi/viterbi_allo.py | 28 --------- 3 files changed, 42 insertions(+), 98 deletions(-) delete mode 100644 examples/machsuite/viterbi/viterbi.py diff --git a/examples/machsuite/viterbi/run_test.py b/examples/machsuite/viterbi/run_test.py index d8ff306380..0aed408047 100644 --- a/examples/machsuite/viterbi/run_test.py +++ b/examples/machsuite/viterbi/run_test.py @@ -10,7 +10,48 @@ _dir = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, _dir) import viterbi_allo -from viterbi import viterbi as viterbi_ref + + +def viterbi_ref(obs, init, transition, emission): + """Python/NumPy reference implementation of Viterbi algorithm.""" + N_OBS = len(obs) + N_STATES = len(init) + + llike = np.zeros((N_OBS, N_STATES)) + path = np.zeros(N_OBS, dtype=int) + + for s in range(N_STATES): + llike[0][s] = init[s] + emission[s, obs[0]] + + for t in range(1, N_OBS): + for curr in range(N_STATES): + min_p = llike[t - 1][0] + transition[0, curr] + emission[curr, obs[t]] + for prev in range(1, N_STATES): + p = llike[t - 1][prev] + transition[prev, curr] + emission[curr, obs[t]] + if p < min_p: + min_p = p + llike[t][curr] = min_p + + min_s = 0 + min_p = llike[N_OBS - 1][0] + for s in range(1, N_STATES): + p = llike[N_OBS - 1][s] + if p < min_p: + min_p = p + min_s = s + path[N_OBS - 1] = min_s + + for t in range(N_OBS - 2, -1, -1): + min_s = 0 + min_p = llike[t][0] + transition[0, path[t + 1]] + for s in range(1, N_STATES): + p = llike[t][s] + transition[s, path[t + 1]] + if p < min_p: + min_p = p + min_s = s + path[t] = min_s + + return path def test_viterbi(psize="small"): diff --git a/examples/machsuite/viterbi/viterbi.py b/examples/machsuite/viterbi/viterbi.py deleted file mode 100644 index 0f5ed50828..0000000000 --- a/examples/machsuite/viterbi/viterbi.py +++ /dev/null @@ -1,69 +0,0 @@ -# Copyright Allo authors. All Rights Reserved. -# SPDX-License-Identifier: Apache-2.0 - -import numpy as np - - -def viterbi(obs, init, transition, emission): - N_OBS = len(obs) # Number of observations - N_STATES = len(init) # Number of states - N_TOKENS = emission.shape[1] # Number of tokens - - # Initialize log-likelihood matrix - llike = np.zeros((N_OBS, N_STATES)) - path = np.zeros(N_OBS, dtype=int) - - # Initialize with the first observation and initial probabilities - for s in range(N_STATES): - llike[0][s] = init[s] + emission[s, obs[0]] - - # Iteratively compute the probabilities over time - for t in range(1, N_OBS): - for curr in range(N_STATES): - min_p = llike[t - 1][0] + transition[0, curr] + emission[curr, obs[t]] - for prev in range(1, N_STATES): - p = llike[t - 1][prev] + transition[prev, curr] + emission[curr, obs[t]] - if p < min_p: - min_p = p - llike[t][curr] = min_p - - # Identify end state - min_s = 0 - min_p = llike[N_OBS - 1][0] - for s in range(1, N_STATES): - p = llike[N_OBS - 1][s] - if p < min_p: - min_p = p - min_s = s - path[N_OBS - 1] = min_s - - # Backtrack to recover full path - for t in range(N_OBS - 2, -1, -1): - min_s = 0 - min_p = llike[t][0] + transition[0, path[t + 1]] - for s in range(1, N_STATES): - p = llike[t][s] + transition[s, path[t + 1]] - if p < min_p: - min_p = p - min_s = s - path[t] = min_s - - return path - - -if __name__ == "__main__": - from read import read_viterbi_input - - inputfile = "input.data" - init, transition, emission, obs = read_viterbi_input(inputfile) - - # Taking -log of probabilities for -log space - # init = -np.log(init) - # transition = -np.log(transition) - # emission = -np.log(emission) - - path = viterbi(obs, init, transition, emission) - print(path) - - # output_file = 'check.data' - # write_output_data(output_file, path) diff --git a/examples/machsuite/viterbi/viterbi_allo.py b/examples/machsuite/viterbi/viterbi_allo.py index a0cb251549..8d408f9d89 100644 --- a/examples/machsuite/viterbi/viterbi_allo.py +++ b/examples/machsuite/viterbi/viterbi_allo.py @@ -1,15 +1,8 @@ # Copyright Allo authors. All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 -import os -import sys import allo from allo.ir.types import float32, int32 -import numpy as np - -_dir = os.path.dirname(os.path.abspath(__file__)) -sys.path.insert(0, _dir) -from viterbi import viterbi as viterbi_ref N_OBS: int32 = 140 N_STATES: int32 = 64 @@ -64,24 +57,3 @@ def viterbi( path[actual_t] = min_s return path - - -if __name__ == "__main__": - np.random.seed(42) - - # Generate random HMM parameters in -log probability space - init = np.random.rand(N_STATES).astype(np.float32) * 10.0 - transition = np.random.rand(N_STATES, N_STATES).astype(np.float32) * 10.0 - emission = np.random.rand(N_STATES, N_TOKENS).astype(np.float32) * 10.0 - obs = np.random.randint(0, N_TOKENS, size=N_OBS).astype(np.int32) - - s = allo.customize(viterbi) - mod = s.build() - - path = mod(obs, init, transition, emission) - - # Run Python reference for comparison - ref_path = viterbi_ref(obs, init, transition, emission) - - np.testing.assert_array_equal(path, ref_path) - print("PASS!") From c9cff39746f7319fafddf311e25ca896fb391377 Mon Sep 17 00:00:00 2001 From: Niansong Zhang Date: Fri, 6 Feb 2026 14:46:27 -0500 Subject: [PATCH 16/16] [MachSuite] Standardize file organization across all benchmarks - Rename viterbi_allo.py to viterbi.py - Merge BFS python references into run_test.py, remove bfs_bulk_python.py and bfs_queue_python.py - Clean up kernel files: remove __main__ blocks and unused imports Each benchmark now consistently has .py (Allo kernel) and run_test.py (test + reference implementation). Co-Authored-By: Claude Opus 4.6 --- examples/machsuite/bfs/bulk/bfs_bulk.py | 41 ------------ .../machsuite/bfs/bulk/bfs_bulk_python.py | 58 ---------------- examples/machsuite/bfs/bulk/run_test.py | 64 ++++++++++++------ examples/machsuite/bfs/queue/bfs_queue.py | 40 ----------- .../machsuite/bfs/queue/bfs_queue_python.py | 59 ----------------- examples/machsuite/bfs/queue/run_test.py | 66 +++++++++++++------ examples/machsuite/viterbi/run_test.py | 10 +-- .../viterbi/{viterbi_allo.py => viterbi.py} | 0 8 files changed, 97 insertions(+), 241 deletions(-) delete mode 100644 examples/machsuite/bfs/bulk/bfs_bulk_python.py delete mode 100644 examples/machsuite/bfs/queue/bfs_queue_python.py rename examples/machsuite/viterbi/{viterbi_allo.py => viterbi.py} (100%) diff --git a/examples/machsuite/bfs/bulk/bfs_bulk.py b/examples/machsuite/bfs/bulk/bfs_bulk.py index 5ddc8d8b2f..7d6bec9a9d 100644 --- a/examples/machsuite/bfs/bulk/bfs_bulk.py +++ b/examples/machsuite/bfs/bulk/bfs_bulk.py @@ -1,18 +1,8 @@ # Copyright Allo authors. All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 -import os -import sys import allo from allo.ir.types import int32 -import numpy as np - -_dir = os.path.dirname(os.path.abspath(__file__)) -_parent = os.path.dirname(_dir) -sys.path.insert(0, _dir) -sys.path.insert(0, _parent) -from generate import generate_random_graph -from bfs_bulk_python import bfs_bulk_test N_NODES: int32 = 256 N_NODES_2: int32 = 512 @@ -47,34 +37,3 @@ def bfs_bulk( level_counts[horizon + 1] = cnt return level, level_counts - - -if __name__ == "__main__": - import random - - random.seed(42) - - s = allo.customize(bfs_bulk) - mod = s.build(target="llvm") - - # Generate graph programmatically - generated_data = generate_random_graph() - - # Convert to numpy arrays matching the data file format - nodes_list = [] - for node in generated_data["nodes"]: - nodes_list.append(node.edge_begin) - nodes_list.append(node.edge_end) - edges_list = [edge.dst for edge in generated_data["edges"]] - - np_A = np.array(nodes_list, np.int32) - np_B = np.array(edges_list, np.int32) - np_C = generated_data["starting_node"] - - (D, F) = mod(np_A, np_B, np_C) - - (golden_D, golden_F) = bfs_bulk_test(np_A, np_B, np_C) - - np.testing.assert_allclose(D, golden_D, rtol=1e-5, atol=1e-5) - np.testing.assert_allclose(F, golden_F, rtol=1e-5, atol=1e-5) - print("PASS!") diff --git a/examples/machsuite/bfs/bulk/bfs_bulk_python.py b/examples/machsuite/bfs/bulk/bfs_bulk_python.py deleted file mode 100644 index f3c67d6288..0000000000 --- a/examples/machsuite/bfs/bulk/bfs_bulk_python.py +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright Allo authors. All Rights Reserved. -# SPDX-License-Identifier: Apache-2.0 - -N_NODES = 256 -N_EDGES = 4096 -N_LEVELS = 10 -MAX_LEVEL = 999999 - - -def bfs_bulk_test(nodes, edges, starting_node): - level = [MAX_LEVEL] * N_NODES - level_counts = [0] * N_LEVELS - - level[starting_node] = 0 - level_counts[0] = 1 - - for horizon in range(N_LEVELS): - cnt = 0 - # Add unmarked neighbors of the current horizon to the next horizon - for n in range(N_NODES): - if level[n] == horizon: - tmp_begin = nodes[2 * n] - tmp_end = nodes[2 * n + 1] - for e in range(tmp_begin, tmp_end): - tmp_dst = edges[e] - tmp_level = level[tmp_dst] - - if tmp_level == MAX_LEVEL: # Unmarked - level[tmp_dst] = horizon + 1 - cnt += 1 - - if cnt == 0: - break - else: - level_counts[horizon + 1] = cnt - - return level, level_counts - - -# 0 -# / \ -# 1 2 -# / \ / \ -# 3 4 5 -# \ / \ / \ -# 6 7 8 - -# Define nodes and edges for the example graph -# nodes = [ 0,2,2,4,4,6,6,7,7,9,9,11,11,11,11,11,11,11] -# edges = [ 1,2,3,4,4,5,6,6,7,7,8] - -# Run BFS starting from node 0 -# level, level_counts = bfs_bulk_test(nodes, edges, 0) - - -# Print the results -# print("Node Levels:", level) -# print("Level Counts:", level_counts) diff --git a/examples/machsuite/bfs/bulk/run_test.py b/examples/machsuite/bfs/bulk/run_test.py index a910ebf94e..d10e5bae8b 100644 --- a/examples/machsuite/bfs/bulk/run_test.py +++ b/examples/machsuite/bfs/bulk/run_test.py @@ -13,12 +13,47 @@ sys.path.insert(0, _dir) sys.path.insert(0, _parent) import generate -import bfs_bulk_python import bfs_bulk as bfs_bulk_mod +N_NODES = 256 +N_EDGES = 4096 +N_LEVELS = 10 +MAX_LEVEL = 999999 + + +def bfs_bulk_ref(nodes, edges, starting_node): + """Python reference implementation of BFS (bulk synchronous).""" + level = [MAX_LEVEL] * N_NODES + level_counts = [0] * N_LEVELS + + level[starting_node] = 0 + level_counts[0] = 1 + + for horizon in range(N_LEVELS): + cnt = 0 + for n in range(N_NODES): + if level[n] == horizon: + tmp_begin = nodes[2 * n] + tmp_end = nodes[2 * n + 1] + for e in range(tmp_begin, tmp_end): + tmp_dst = edges[e] + tmp_level = level[tmp_dst] + + if tmp_level == MAX_LEVEL: + level[tmp_dst] = horizon + 1 + cnt += 1 + + if cnt == 0: + break + else: + level_counts[horizon + 1] = cnt + + return level, level_counts + def _patch_bfs_sizes(params): """Patch BFS size constants across all relevant modules.""" + global N_NODES, N_EDGES, N_LEVELS, MAX_LEVEL N_NODES = params["N_NODES"] N_EDGES = params["N_EDGES"] N_LEVELS = params["N_LEVELS"] @@ -35,11 +70,6 @@ def _patch_bfs_sizes(params): generate.N_EDGES = N_EDGES generate.SCALE = scale - # Patch python reference module - bfs_bulk_python.N_NODES = N_NODES - bfs_bulk_python.N_EDGES = N_EDGES - bfs_bulk_python.N_LEVELS = N_LEVELS - # Patch allo kernel module bfs_bulk_mod.N_NODES = N_NODES bfs_bulk_mod.N_NODES_2 = N_NODES * 2 @@ -47,11 +77,16 @@ def _patch_bfs_sizes(params): bfs_bulk_mod.N_LEVELS = N_LEVELS -def _generate_and_run(mod_func, ref_func, params): - """Build, generate graph, run kernel and reference, compare.""" +def test_bfs_bulk(psize="small"): + setting_path = os.path.join(os.path.dirname(__file__), "..", "..", "psize.json") + with open(setting_path, "r") as fp: + sizes = json.load(fp) + params = sizes["bfs"][psize] + _patch_bfs_sizes(params) + random.seed(42) - s = allo.customize(mod_func) + s = allo.customize(bfs_bulk_mod.bfs_bulk) mod = s.build(target="llvm") generated_data = generate.generate_random_graph() @@ -67,19 +102,10 @@ def _generate_and_run(mod_func, ref_func, params): np_C = generated_data["starting_node"] (D, F) = mod(np_A, np_B, np_C) - (golden_D, golden_F) = ref_func(np_A, np_B, np_C) + (golden_D, golden_F) = bfs_bulk_ref(np_A, np_B, np_C) np.testing.assert_allclose(D, golden_D, rtol=1e-5, atol=1e-5) np.testing.assert_allclose(F, golden_F, rtol=1e-5, atol=1e-5) - - -def test_bfs_bulk(psize="small"): - setting_path = os.path.join(os.path.dirname(__file__), "..", "..", "psize.json") - with open(setting_path, "r") as fp: - sizes = json.load(fp) - params = sizes["bfs"][psize] - _patch_bfs_sizes(params) - _generate_and_run(bfs_bulk_mod.bfs_bulk, bfs_bulk_python.bfs_bulk_test, params) print("BFS Bulk PASS!") diff --git a/examples/machsuite/bfs/queue/bfs_queue.py b/examples/machsuite/bfs/queue/bfs_queue.py index 197d7b0448..50368f66ef 100644 --- a/examples/machsuite/bfs/queue/bfs_queue.py +++ b/examples/machsuite/bfs/queue/bfs_queue.py @@ -1,18 +1,8 @@ # Copyright Allo authors. All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 -import os -import sys import allo from allo.ir.types import int32 -import numpy as np - -_dir = os.path.dirname(os.path.abspath(__file__)) -_parent = os.path.dirname(_dir) -sys.path.insert(0, _dir) -sys.path.insert(0, _parent) -from generate import generate_random_graph -from bfs_queue_python import bfs_queue_test N_NODES: int32 = 256 N_NODES_2: int32 = 512 @@ -52,33 +42,3 @@ def bfs_queue( rear = (rear + 1) % N_NODES return level, level_counts - - -if __name__ == "__main__": - import random - - random.seed(42) - - s = allo.customize(bfs_queue) - mod = s.build(target="llvm") - - # Generate graph programmatically (same seed as bulk) - generated_data = generate_random_graph() - - nodes_list = [] - for node in generated_data["nodes"]: - nodes_list.append(node.edge_begin) - nodes_list.append(node.edge_end) - edges_list = [edge.dst for edge in generated_data["edges"]] - - np_A = np.array(nodes_list, np.int32) - np_B = np.array(edges_list, np.int32) - np_C = generated_data["starting_node"] - - (D, F) = mod(np_A, np_B, np_C) - - (golden_D, golden_F) = bfs_queue_test(np_A, np_B, np_C) - - np.testing.assert_allclose(D, golden_D, rtol=1e-5, atol=1e-5) - np.testing.assert_allclose(F, golden_F, rtol=1e-5, atol=1e-5) - print("PASS!") diff --git a/examples/machsuite/bfs/queue/bfs_queue_python.py b/examples/machsuite/bfs/queue/bfs_queue_python.py deleted file mode 100644 index d3f7790bf5..0000000000 --- a/examples/machsuite/bfs/queue/bfs_queue_python.py +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright Allo authors. All Rights Reserved. -# SPDX-License-Identifier: Apache-2.0 - -N_NODES = 256 -N_EDGES = 4096 -N_LEVELS = 10 -MAX_LEVEL = 999999 - - -def bfs_queue_test(nodes, edges, starting_node): - level = [MAX_LEVEL] * N_NODES - level_counts = [0] * N_LEVELS - queue = [0] * N_NODES - front = 0 - rear = 0 - - level[starting_node] = 0 - level_counts[0] = 1 - queue[rear] = starting_node - rear = (rear + 1) % N_NODES - - while front != rear: - n = queue[front] - front = (front + 1) % N_NODES - tmp_begin = nodes[2 * n] - tmp_end = nodes[2 * n + 1] - for e in range(tmp_begin, tmp_end): - tmp_dst = edges[e] - tmp_level = level[tmp_dst] - - if tmp_level == MAX_LEVEL: - tmp_level = level[n] + 1 - level[tmp_dst] = tmp_level - level_counts[tmp_level] += 1 - queue[rear] = tmp_dst - rear = (rear + 1) % N_NODES - - return level, level_counts - - -# 0 -# / \ -# 1 2 -# / \ / \ -# 3 4 5 -# \ / \ / \ -# 6 7 8 - -# Define nodes and edges for the example graph -# nodes = [ 0,2,2,4,4,6,6,7,7,9,9,11,11,11,11,11,11,11] -# edges = [ 1,2,3,4,4,5,6,6,7,7,8] - - -# Run BFS starting from node 0 -# level, level_counts = bfs_queue_test(nodes, edges, 0) - -# Print the results -# print("Node Levels:", level) -# print("Level Counts:", level_counts) diff --git a/examples/machsuite/bfs/queue/run_test.py b/examples/machsuite/bfs/queue/run_test.py index 6c2f78d645..8038128fc3 100644 --- a/examples/machsuite/bfs/queue/run_test.py +++ b/examples/machsuite/bfs/queue/run_test.py @@ -13,12 +13,49 @@ sys.path.insert(0, _dir) sys.path.insert(0, _parent) import generate -import bfs_queue_python import bfs_queue as bfs_queue_mod +N_NODES = 256 +N_EDGES = 4096 +N_LEVELS = 10 +MAX_LEVEL = 999999 + + +def bfs_queue_ref(nodes, edges, starting_node): + """Python reference implementation of BFS (queue-based).""" + level = [MAX_LEVEL] * N_NODES + level_counts = [0] * N_LEVELS + queue = [0] * N_NODES + front = 0 + rear = 0 + + level[starting_node] = 0 + level_counts[0] = 1 + queue[rear] = starting_node + rear = (rear + 1) % N_NODES + + while front != rear: + n = queue[front] + front = (front + 1) % N_NODES + tmp_begin = nodes[2 * n] + tmp_end = nodes[2 * n + 1] + for e in range(tmp_begin, tmp_end): + tmp_dst = edges[e] + tmp_level = level[tmp_dst] + + if tmp_level == MAX_LEVEL: + tmp_level = level[n] + 1 + level[tmp_dst] = tmp_level + level_counts[tmp_level] += 1 + queue[rear] = tmp_dst + rear = (rear + 1) % N_NODES + + return level, level_counts + def _patch_bfs_sizes(params): """Patch BFS size constants across all relevant modules.""" + global N_NODES, N_EDGES, N_LEVELS, MAX_LEVEL N_NODES = params["N_NODES"] N_EDGES = params["N_EDGES"] N_LEVELS = params["N_LEVELS"] @@ -35,11 +72,6 @@ def _patch_bfs_sizes(params): generate.N_EDGES = N_EDGES generate.SCALE = scale - # Patch python reference module - bfs_queue_python.N_NODES = N_NODES - bfs_queue_python.N_EDGES = N_EDGES - bfs_queue_python.N_LEVELS = N_LEVELS - # Patch allo kernel module bfs_queue_mod.N_NODES = N_NODES bfs_queue_mod.N_NODES_2 = N_NODES * 2 @@ -47,11 +79,16 @@ def _patch_bfs_sizes(params): bfs_queue_mod.N_LEVELS = N_LEVELS -def _generate_and_run(mod_func, ref_func, params): - """Build, generate graph, run kernel and reference, compare.""" +def test_bfs_queue(psize="small"): + setting_path = os.path.join(os.path.dirname(__file__), "..", "..", "psize.json") + with open(setting_path, "r") as fp: + sizes = json.load(fp) + params = sizes["bfs"][psize] + _patch_bfs_sizes(params) + random.seed(42) - s = allo.customize(mod_func) + s = allo.customize(bfs_queue_mod.bfs_queue) mod = s.build(target="llvm") generated_data = generate.generate_random_graph() @@ -67,19 +104,10 @@ def _generate_and_run(mod_func, ref_func, params): np_C = generated_data["starting_node"] (D, F) = mod(np_A, np_B, np_C) - (golden_D, golden_F) = ref_func(np_A, np_B, np_C) + (golden_D, golden_F) = bfs_queue_ref(np_A, np_B, np_C) np.testing.assert_allclose(D, golden_D, rtol=1e-5, atol=1e-5) np.testing.assert_allclose(F, golden_F, rtol=1e-5, atol=1e-5) - - -def test_bfs_queue(psize="small"): - setting_path = os.path.join(os.path.dirname(__file__), "..", "..", "psize.json") - with open(setting_path, "r") as fp: - sizes = json.load(fp) - params = sizes["bfs"][psize] - _patch_bfs_sizes(params) - _generate_and_run(bfs_queue_mod.bfs_queue, bfs_queue_python.bfs_queue_test, params) print("BFS Queue PASS!") diff --git a/examples/machsuite/viterbi/run_test.py b/examples/machsuite/viterbi/run_test.py index 0aed408047..3c519dd660 100644 --- a/examples/machsuite/viterbi/run_test.py +++ b/examples/machsuite/viterbi/run_test.py @@ -9,7 +9,7 @@ _dir = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, _dir) -import viterbi_allo +import viterbi as viterbi_mod def viterbi_ref(obs, init, transition, emission): @@ -65,9 +65,9 @@ def test_viterbi(psize="small"): N_TOKENS = params["N_TOKENS"] # Patch module constants - viterbi_allo.N_OBS = N_OBS - viterbi_allo.N_STATES = N_STATES - viterbi_allo.N_TOKENS = N_TOKENS + viterbi_mod.N_OBS = N_OBS + viterbi_mod.N_STATES = N_STATES + viterbi_mod.N_TOKENS = N_TOKENS np.random.seed(42) @@ -77,7 +77,7 @@ def test_viterbi(psize="small"): emission = np.random.rand(N_STATES, N_TOKENS).astype(np.float32) * 10.0 obs = np.random.randint(0, N_TOKENS, size=N_OBS).astype(np.int32) - s = allo.customize(viterbi_allo.viterbi) + s = allo.customize(viterbi_mod.viterbi) mod = s.build() path = mod(obs, init, transition, emission) diff --git a/examples/machsuite/viterbi/viterbi_allo.py b/examples/machsuite/viterbi/viterbi.py similarity index 100% rename from examples/machsuite/viterbi/viterbi_allo.py rename to examples/machsuite/viterbi/viterbi.py